GrafoscopioUtils/repository/Grafoscopio-Utils/LePictureSnippet.extension.st

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
]