58 lines
1.6 KiB
Smalltalk
58 lines
1.6 KiB
Smalltalk
Extension { #name : #LeYoutubeReferenceSnippet }
|
|
|
|
{ #category : #'*MiniDocs' }
|
|
LeYoutubeReferenceSnippet >> asMarkdeep [
|
|
| output |
|
|
output := WriteStream on: ''.
|
|
output
|
|
nextPutAll: self metadataDiv;
|
|
nextPutAll: '![ ', self title, ' | ', self authorName, ' ](',self urlString, ')';
|
|
nextPut: Character lf;
|
|
nextPutAll: '</div>';
|
|
nextPut: Character lf;
|
|
nextPut: Character lf.
|
|
^ output contents
|
|
]
|
|
|
|
{ #category : #'*MiniDocs' }
|
|
LeYoutubeReferenceSnippet >> metadata [
|
|
^ self optionAt: 'metadata' ifAbsentPut: [ self metadataUpdate ]
|
|
]
|
|
|
|
{ #category : #'*MiniDocs' }
|
|
LeYoutubeReferenceSnippet >> metadataDiv [
|
|
| output |
|
|
output := WriteStream on: ''.
|
|
output
|
|
nextPutAll: '<div st-class="' , self class greaseString , '"';
|
|
nextPut: Character lf;
|
|
nextPutAll: ' st-data="' , (STON toStringPretty: self metadata) , '">'.
|
|
^ output contents withInternetLineEndings.
|
|
]
|
|
|
|
{ #category : #'*MiniDocs' }
|
|
LeYoutubeReferenceSnippet >> metadataUpdate [
|
|
| surrogate |
|
|
self parent
|
|
ifNil: [ surrogate := nil]
|
|
ifNotNil: [ surrogate := self parent uidString ].
|
|
^ OrderedDictionary new
|
|
at: 'id' put: self uidString;
|
|
at: 'parent' put: surrogate;
|
|
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
|
|
]
|
|
|
|
{ #category : #'*MiniDocs' }
|
|
LeYoutubeReferenceSnippet >> sanitizeMetadata [
|
|
self metadata keysAndValuesDo: [:k :v |
|
|
(v includesAny: #($< $>))
|
|
ifTrue: [
|
|
self metadata at: k put: (v copyWithoutAll: #($< $>))
|
|
]
|
|
]
|
|
]
|