From 3876b12eb9ab0f94b1e4f40213959e0fcba5f180 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Tue, 26 Jul 2022 17:59:22 -0500 Subject: [PATCH] Migrating from GrafoscopioUtils. --- src/MiniDocs/LePage.extension.st | 45 ++++++++++++++++++++++ src/MiniDocs/LePharoSnippet.extension.st | 19 +++++++-- src/MiniDocs/LeTextualSnippet.extension.st | 12 +++++- 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/MiniDocs/LePage.extension.st b/src/MiniDocs/LePage.extension.st index 44a65fa..5c83315 100644 --- a/src/MiniDocs/LePage.extension.st +++ b/src/MiniDocs/LePage.extension.st @@ -84,6 +84,13 @@ LePage >> defaultPandocTemplate [ ^ FileLocator home / '.pandoc' / 'templates' / 'clean-menu-mod.html' ] +{ #category : #'*MiniDocs' } +LePage >> detectParentSnippetWithUid: uidString [ + "Answer a boolean indicating whether the supplied uid is present" + + ^ self preorderTraversal detect: [ :snippet | snippet uidString = uidString ] ifNone: [ ^ self ] +] + { #category : #'*MiniDocs' } LePage >> exportedFileName [ | sanitized | @@ -91,6 +98,28 @@ LePage >> exportedFileName [ ^ sanitized , '--' , (self uidString copyFrom: 1 to: 5) ] +{ #category : #'*MiniDocs' } +LePage >> fileName [ + ^ self title asDashedLowercase, '.', ((self uidString copyFrom: 1 to: 5 ) copyWithoutAll: '/'), '.md.html' +] + +{ #category : #'*MiniDocs' } +LePage >> fromMarkdeepUrl: aString [ + | docTree pageMetadata | + docTree := GrafoscopioUtils xmlFromUrl: aString. + pageMetadata := Markdeep new metadataFromXML: docTree. + self + basicUid: (pageMetadata at: 'id'); + title: (pageMetadata at: 'title'); + createTime: (pageMetadata at: 'created') asDateAndTime; + editTime: (pageMetadata at: 'modified') asDateAndTime; + createEmail: (pageMetadata at: 'creator'); + editEmail: (pageMetadata at: 'modifier'); + optionAt: 'metadata' put: pageMetadata. + self populateChildrenFrom: (docTree xpath: '//div') + +] + { #category : #'*MiniDocs' } LePage >> htmlFileName [ ^ self exportedFileName, '.html' @@ -126,6 +155,15 @@ LePage >> metadataInit [ yourself ] +{ #category : #'*MiniDocs' } +LePage >> navTop [ + | topNavFile | + topNavFile := ((self optionAt: 'storage') / '_navtop.html'). + topNavFile exists + ifFalse: [ ^ '' ] + ifTrue: [ ^ topNavFile contents ] +] + { #category : #'*MiniDocs' } LePage >> options [ ^ options @@ -139,6 +177,13 @@ LePage >> preorderTraversal [ ^ output. ] +{ #category : #'*MiniDocs' } +LePage >> removeSnippetsMetadata [ + self preorderTraversal do: [ :snippet | + (snippet options isNotNil and: [ snippet options includesKey: 'metadata' ]) + ifTrue: [ snippet options removeKey: 'metadata' ] ] +] + { #category : #'*MiniDocs' } LePage >> storage [ diff --git a/src/MiniDocs/LePharoSnippet.extension.st b/src/MiniDocs/LePharoSnippet.extension.st index 49fe68e..96cea95 100644 --- a/src/MiniDocs/LePharoSnippet.extension.st +++ b/src/MiniDocs/LePharoSnippet.extension.st @@ -1,5 +1,13 @@ Extension { #name : #LePharoSnippet } +{ #category : #'*MiniDocs' } +LePharoSnippet >> contentAsStringCustomized [ + | customCoder | + (self tags includes: 'output') ifFalse: [ ^ self contentAsString ]. + customCoder := GtPharoSnippetCoder forSource: self contentAsString. + ^ (customCoder doItAll) value greaseString +] + { #category : #'*MiniDocs' } LePharoSnippet >> markdeepCustomCloser [ ^ String streamContents: [ :stream | @@ -20,6 +28,7 @@ LePharoSnippet >> markdeepCustomOpener [ { #category : #'*MiniDocs' } LePharoSnippet >> markdownCustomCloser [ + (self tags includes: 'output') ifTrue: [^ String with: Character lf]. ^ String streamContents: [:stream | stream nextPutAll: '~~~'; lf @@ -28,8 +37,10 @@ LePharoSnippet >> markdownCustomCloser [ { #category : #'*MiniDocs' } LePharoSnippet >> markdownCustomOpener [ - ^ String streamContents: [:stream | - stream - nextPutAll: '~~~ Smalltalk'; lf - ] + (self tags includes: 'output') ifTrue: [ ^ String with: Character lf ]. + ^ String + streamContents: [ :stream | + stream + nextPutAll: '~~~ Smalltalk'; + lf ] ] diff --git a/src/MiniDocs/LeTextualSnippet.extension.st b/src/MiniDocs/LeTextualSnippet.extension.st index 82af829..17c7677 100644 --- a/src/MiniDocs/LeTextualSnippet.extension.st +++ b/src/MiniDocs/LeTextualSnippet.extension.st @@ -10,12 +10,17 @@ LeTextualSnippet >> asMarkdown [ nextPutAll: '
'; lf; nextPutAll: self markdownCustomOpener; - nextPutAll: self contentAsString; lf; + nextPutAll: self contentAsStringCustomized; lf; nextPutAll: self markdownCustomCloser; nextPutAll: '
'; lf; lf. ^ output contents ] +{ #category : #'*MiniDocs' } +LeTextualSnippet >> contentAsStringCustomized [ + ^ self contentAsString +] + { #category : #'*MiniDocs' } LeTextualSnippet >> markdeepCustomCloser [ ^ '' @@ -35,3 +40,8 @@ LeTextualSnippet >> markdownCustomCloser [ LeTextualSnippet >> markdownCustomOpener [ ^ self markdeepCustomOpener ] + +{ #category : #'*MiniDocs' } +LeTextualSnippet >> tags [ + ^ self metadata at: 'tags' +]