Improving metadata handling for Markdeep exportation. Further modularization and refactoring is pending.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2022-02-03 13:01:35 -05:00
parent f89851f993
commit 1c536c7e96
4 changed files with 59 additions and 10 deletions

View File

@ -2,14 +2,7 @@ Extension { #name : #LeModel }
{ #category : #'*Grafoscopio-Utils-Core' } { #category : #'*Grafoscopio-Utils-Core' }
LeModel >> metadata [ LeModel >> metadata [
^ OrderedDictionary new ^ self optionAt: 'metadata' ifAbsent: [ self optionAt: 'metadata' put: self metadataInit ]
at: 'id' put: self uidString;
at: 'parent' put: self parent uidString;
at: 'created' put: self createTime asString;
at: 'edited' put: self latestEditTime asString;
at: 'creator' put: self createEmail asString;
at: 'editor' put: self editEmail asString;
yourself.
] ]
@ -22,3 +15,15 @@ LeModel >> metadataDiv [
nextPutAll: ' st-data="', (STON toString: self metadata), '">'; lf. nextPutAll: ' st-data="', (STON toString: self metadata), '">'; lf.
^ output contents. ^ output contents.
] ]
{ #category : #'*Grafoscopio-Utils-Core' }
LeModel >> metadataInit [
^ OrderedDictionary new
at: 'id' put: self uidString;
at: 'title' 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
]

View File

@ -33,6 +33,13 @@ LePage >> asMarkdeepInto: aFileLocator [
self preorderTraversal self preorderTraversal
] ]
{ #category : #'*Grafoscopio-Utils-Core' }
LePage >> detectSnippetWithUid: uidString [
"Answer a boolean indicating whether the supplied uid is present"
^ self preorderTraversal detect: [ :snippet | snippet uidString = uidString ] ifNone: [ ^ nil ]
]
{ #category : #'*Grafoscopio-Utils-Core' } { #category : #'*Grafoscopio-Utils-Core' }
LePage >> fileName [ LePage >> fileName [
^ self title asDashedLowercase, '.', ((self uidString copyFrom: 1 to: 5 ) copyWithoutAll: '/'), '.md.html' ^ self title asDashedLowercase, '.', ((self uidString copyFrom: 1 to: 5 ) copyWithoutAll: '/'), '.md.html'
@ -94,9 +101,11 @@ LePage >> options [
{ #category : #'*Grafoscopio-Utils-Core' } { #category : #'*Grafoscopio-Utils-Core' }
LePage >> populateChildrenFrom: docTreeDivs [ LePage >> populateChildrenFrom: docTreeDivs [
docTreeDivs doWithIndex: [:div :i | docTreeDivs doWithIndex: [:div :i | | snippet |
snippet := LeSnippet fromMetaMarkdeep:div.
self children self children
addSnippet: (LeSnippet fromMetaMarkdeep:div) beforeIndex: i addSnippet: snippet beforeIndex: i.
"self detectSnippetWithUid: "
] ]
] ]

View File

@ -35,3 +35,21 @@ LePictureSnippet >> contentFrom: markdeepDiv [
optionAt: 'width' put: width. optionAt: 'width' put: width.
^ self urlString: (markdeepDiv // 'img' @ 'src') stringValue. ^ self urlString: (markdeepDiv // 'img' @ 'src') stringValue.
] ]
{ #category : #'*Grafoscopio-Utils-Core' }
LePictureSnippet >> metadataInit [
^ OrderedDictionary new
at: 'id' put: self uidString;
at: 'parent' put: self parent uidString;
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
]
{ #category : #'*Grafoscopio-Utils-Core' }
LePictureSnippet >> metatada [
self optionAt: 'metadata' ifAbsent: [ self metadataInit ]
]

View File

@ -8,3 +8,20 @@ LeTextSnippet >> contentFrom: markdeepDiv [
sanitized := sanitized allButLast. sanitized := sanitized allButLast.
self string: sanitized. self string: sanitized.
] ]
{ #category : #'*Grafoscopio-Utils-Core' }
LeTextSnippet >> metadata [
^ self optionAt: 'metadata' ifAbsentPut: [ self metadataInit ]
]
{ #category : #'*Grafoscopio-Utils-Core' }
LeTextSnippet >> metadataInit [
^ OrderedDictionary new
at: 'id' put: self uidString;
at: 'title' 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
]