60 lines
1.6 KiB
Smalltalk
60 lines
1.6 KiB
Smalltalk
Extension { #name : #LePictureSnippet }
|
|
|
|
{ #category : #'*Grafoscopio-Utils-Core' }
|
|
LePictureSnippet >> asMarkdeep [
|
|
| output extraData |
|
|
output := '' writeStream.
|
|
output
|
|
nextPutAll: self metadataDiv;
|
|
nextPutAll: self centeredFigure; lf;
|
|
nextPutAll: '</div>'; lf; lf.
|
|
^ output contents
|
|
]
|
|
|
|
{ #category : #'*Grafoscopio-Utils-Core' }
|
|
LePictureSnippet >> centeredFigure [
|
|
|
|
^ '<center>
|
|
<figure>
|
|
<img src="' , self urlString , '"
|
|
width="' , (self optionAt: 'width' ifAbsent: [ '75%' ]) , '"
|
|
/>
|
|
<figcaption>*' , (self optionAt: 'caption' ifAbsent: [ '' ]) , '*
|
|
</figcaption>
|
|
</figure>
|
|
</center>'
|
|
]
|
|
|
|
{ #category : #'*Grafoscopio-Utils-Core' }
|
|
LePictureSnippet >> contentFrom: markdeepDiv [
|
|
| caption width |
|
|
caption := markdeepDiv contentString.
|
|
width := (markdeepDiv // 'img' @ 'width') stringValue.
|
|
self
|
|
optionAt: 'caption' put: caption;
|
|
optionAt: 'width' put: width.
|
|
self urlString: (markdeepDiv // 'img' @ 'src') stringValue.
|
|
]
|
|
|
|
{ #category : #'*Grafoscopio-Utils-Core' }
|
|
LePictureSnippet >> metadata [
|
|
^ self optionAt: 'metadata' ifAbsentPut: [ self metadataInit ]
|
|
]
|
|
|
|
{ #category : #'*Grafoscopio-Utils-Core' }
|
|
LePictureSnippet >> metadataInit [
|
|
| surrogate |
|
|
self parent
|
|
ifNil: [ surrogate := nil]
|
|
ifNotNil: [ surrogate := self parent uidString ].
|
|
^ OrderedDictionary new
|
|
at: 'id' put: self uidString;
|
|
at: 'parent' put: surrogate;
|
|
at: 'url' put: self contentAsString;
|
|
at: 'created' put: self createTime asString;
|
|
at: 'modified' put: self latestEditTime asString;
|
|
at: 'creator' put: self createEmail asString;
|
|
at: 'modifier' put: self editEmail asString;
|
|
yourself
|
|
]
|