From 84885317265f4e2ccc229ff0ab98e4b69dab731e Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Thu, 12 Oct 2023 17:01:26 -0500 Subject: [PATCH] Prototyping copying pages. Snippets' order is preserved, but not (yet) hierarchy. --- src/MiniDocs/LeDatabase.extension.st | 18 ++++++++++++++++++ src/MiniDocs/LePage.extension.st | 9 +++++++++ 2 files changed, 27 insertions(+) diff --git a/src/MiniDocs/LeDatabase.extension.st b/src/MiniDocs/LeDatabase.extension.st index ea5ff04..2dfe2b1 100644 --- a/src/MiniDocs/LeDatabase.extension.st +++ b/src/MiniDocs/LeDatabase.extension.st @@ -1,5 +1,23 @@ Extension { #name : #LeDatabase } +{ #category : #'*MiniDocs' } +LeDatabase >> addPageCopy: aLePage [ + | page | + page := LePage new. + page title: ('Copy of ', aLePage title,' (id: ', (page uid asString copyFrom: 1 to: 8), ')'). + aLePage children do: [ :snippet | | newSnippet | + newSnippet := snippet class new. + newSnippet className = 'LeTextSnippet' ifTrue: [ newSnippet + string: snippet contentAsString ]. + newSnippet className = 'LePharoSnippet' ifTrue: [ newSnippet code: snippet contentAsString ]. + newSnippet uid: LeUID new. + page addSnippet: newSnippet. + newSnippet database: self. + self registerSnippet: newSnippet ]. + self addPage: page. + ^ page +] + { #category : #'*MiniDocs' } LeDatabase >> addPageFromMarkdeep: markdeepDocTree withRemote: externalDocLocation [ | remoteMetadata divSnippets snippets page | diff --git a/src/MiniDocs/LePage.extension.st b/src/MiniDocs/LePage.extension.st index 9e62d1e..eb8d74a 100644 --- a/src/MiniDocs/LePage.extension.st +++ b/src/MiniDocs/LePage.extension.st @@ -224,6 +224,15 @@ LePage >> storage [ ^ self optionAt: 'storage' ] +{ #category : #'*MiniDocs' } +LePage >> uiAddCopyButtonFor: anAction [ + + ^ anAction button + tooltip: 'Export Page'; + icon: BrGlamorousVectorIcons changes; + action: [:aButton | aButton phlow spawnObject: (self page database addPageCopy: self page) ] +] + { #category : #'*MiniDocs' } LePage >> uiDefineFolderFor: anAction [