From 5f37293f4d6aa0c7d19b443bfa10e290fd201491 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Tue, 26 Jul 2022 17:25:17 -0500 Subject: [PATCH] Migrating from GrafoscopioUtils and implementing snippet tagging. --- Wiki/es/minidocs:-calendarios--d7pnm.md | 72 +++++++++++++++++++++++++ src/MiniDocs/LePage.extension.st | 2 +- src/MiniDocs/LeTextSnippet.extension.st | 45 ++++++++++++++-- 3 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 Wiki/es/minidocs:-calendarios--d7pnm.md diff --git a/Wiki/es/minidocs:-calendarios--d7pnm.md b/Wiki/es/minidocs:-calendarios--d7pnm.md new file mode 100644 index 0000000..60b563d --- /dev/null +++ b/Wiki/es/minidocs:-calendarios--d7pnm.md @@ -0,0 +1,72 @@ +--- +id: d7pnmr5dy8j995l5sbpmijayp +title: MiniDocs: Calendarios +created: 26 July 2022 4:30:40.031296 pm +modified: 26 July 2022 4:30:40.031296 pm +creator: +modifier: +--- + +
+MiniDocs también permite exportar documentos con vistas interactivas HTML, +siempre y cuando los objetos en una narrativa de datos tengan métodos que permiten producir vistas. +Por ejemplo, es posible usar [EchartsPharo](https://code.tupale.co/mutabiT/EchartsPharo) +para producir una vista de un calendario interactivo, dado un conjunto de datos. +
+ +
+Empecemos por definir un conjunto de eventos: +
+ +
+~~~ Smalltalk +citasOftalmologia := EcEvent new + name: 'Cita en Oftalmología'; + dates: #('2022-01-25' '2022-03-19'); + color: Color orange "asHexString"; + type: 'graph' +~~~ +
+ +
+~~~ Smalltalk +quejasSupersalud := EcEvent new + name: 'Queja en Supersalud'; + dates: #('2022-02-16' '2022-03-26' '2022-06-21'); + color: Color green ; + type: 'graph' +~~~ +
+ +
+Ahora agreguemos los eventos a un calendario: +
+ +
+~~~ Smalltalk +calendario := EcCalendar new. +calendario events + add: citasOftalmologia; + add: quejasSupersalud. +calendario +~~~ +
+ +
+Y exportémoslo como una vista interactiva en HTML: +
+ +
+~~~ Smalltalk +calendario asHTMLElement +~~~ +
+ diff --git a/src/MiniDocs/LePage.extension.st b/src/MiniDocs/LePage.extension.st index 48402d6..44a65fa 100644 --- a/src/MiniDocs/LePage.extension.st +++ b/src/MiniDocs/LePage.extension.st @@ -62,7 +62,7 @@ LePage >> asMarkdown [ nextPutAll: String lf. self metadata keysAndValuesDo: [ :k :v | bodyStream - nextPutAll: k , ': ' , v; + nextPutAll: k , ': "' , v, '"'; nextPutAll: String lf ]. bodyStream nextPutAll: '---' , String lf , String lf. self preorderTraversal diff --git a/src/MiniDocs/LeTextSnippet.extension.st b/src/MiniDocs/LeTextSnippet.extension.st index ce25eed..b439894 100644 --- a/src/MiniDocs/LeTextSnippet.extension.st +++ b/src/MiniDocs/LeTextSnippet.extension.st @@ -1,7 +1,46 @@ Extension { #name : #LeTextSnippet } { #category : #'*MiniDocs' } -LeTextSnippet >> tagged: aString [ - self optionAt: 'tags' ifPresent: [ (self optionAt: 'tags') add: aString; yourself ] ifAbsentPut: [ Set new ]. - ^ self optionAt: 'tags' +LeTextSnippet >> contentFrom: markdeepDiv [ + | sanitized | + sanitized := markdeepDiv contentString. + sanitized := sanitized allButFirst. + sanitized := sanitized allButLast. + self string: sanitized. +] + +{ #category : #'*MiniDocs' } +LeTextSnippet >> metadata [ + + ^ self optionAt: 'metadata' ifAbsentPut: [ self metadataInit ] +] + +{ #category : #'*MiniDocs' } +LeTextSnippet >> metadataInit [ + + ^ OrderedDictionary new + at: 'id' put: self uidString; + at: 'parent' put: self parentId; + 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' } +LeTextSnippet >> options [ + ^ options +] + +{ #category : #'*MiniDocs' } +LeTextSnippet >> parentId [ + self parent ifNil: [ ^ self ]. + ^ self parent uidString. +] + +{ #category : #'*MiniDocs' } +LeTextSnippet >> taggedWith: aString [ + self metadata at: 'tags' ifPresent: [ (self metadata at: 'tags') add: aString; yourself ] ifAbsentPut: [ Set new ]. + ^ self metadata at: 'tags' ]