diff --git a/src/MiniDocs/LeDatabase.extension.st b/src/MiniDocs/LeDatabase.extension.st index a54583d..a66ed8e 100644 --- a/src/MiniDocs/LeDatabase.extension.st +++ b/src/MiniDocs/LeDatabase.extension.st @@ -1,5 +1,36 @@ Extension { #name : #LeDatabase } +{ #category : #'*MiniDocs' } +LeDatabase >> addPage2FromMarkdeep: markdeepDocTree withRemote: externalDocLocation [ + | remoteMetadata divSnippets dataSnippets snippets page | + divSnippets := (markdeepDocTree xpath: '//div[@st-class]') asOrderedCollection + collect: [ :xmlElement | xmlElement postCopy ]. + remoteMetadata := Markdeep new metadataFromXML: markdeepDocTree. + remoteMetadata at: 'origin' put: externalDocLocation. + dataSnippets := self sanitizeMarkdeepSnippets: divSnippets withMetadata: remoteMetadata. + snippets := dataSnippets collect: [ :each | each asLepiterSnippet ]. + page := LePage new + title: (remoteMetadata at: 'title'); + basicUid: (UUID fromString36: (remoteMetadata at: 'id')); + createTime: (LeTime new time: (remoteMetadata at: 'created') asDateAndTime); + editTime: (LeTime new time: (remoteMetadata at: 'modified') asDateAndTime); + latestEditTime: (LeTime new time: (remoteMetadata at: 'modified') asDateAndTime); + createEmail: (remoteMetadata at: 'creator'); + editEmail: (remoteMetadata at: 'modifier'). + ^ { snippets . page } + "snippets do: [ :snippet | + (self hasBlockUID: snippet uid) + ifTrue: [ | existingPage | + existingPage := self pages + detect: [ :pageTemp | pageTemp includesSnippetUid: snippet uid ]. + self importErrorForLocal: existingPage withRemote: externalDocLocation. + ^ self ] + ifFalse: [ snippet database: self. + self registerSnippet: snippet ] ]. + self addPage: page. + ^ page" +] + { #category : #'*MiniDocs' } LeDatabase >> addPageCopy: aLePage [ | pageTitle timestamp shortID page | @@ -55,7 +86,7 @@ LeDatabase >> addPageFromMarkdeepUrl: aString [ ifNotNil: [ :arg | self importErrorForLocal: page withRemote: aString. ^ self ]. - ^ self addPageFromMarkdeep: (self docTreeForLink: aString) withRemote: aString + ^ self addPage2FromMarkdeep: (self docTreeForLink: aString) withRemote: aString ] { #category : #'*MiniDocs' } diff --git a/src/MiniDocs/LePage.extension.st b/src/MiniDocs/LePage.extension.st index 3650dfc..77f2505 100644 --- a/src/MiniDocs/LePage.extension.st +++ b/src/MiniDocs/LePage.extension.st @@ -92,7 +92,7 @@ LePage >> detectParentSnippetWithUid: uidString [ { #category : #'*MiniDocs' } LePage >> exportedFileName [ | sanitized | - sanitized := self title asDashedLowercase romanizeAccents copyWithoutAll: #($/ $:). + sanitized := self title asDashedLowercase romanizeAccents copyWithoutAll: #($/ $: $🢒). ^ sanitized , '--' , (self uidString copyFrom: 1 to: 5) ]