From e393519bf4cedeb22d09283b10b7f6b2cf9d66c0 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Wed, 27 Jul 2022 12:11:51 -0500 Subject: [PATCH] Accessing page shared variables. --- src/MiniDocs/LePage.extension.st | 29 ++++++++++++++++++---- src/MiniDocs/LeTextualSnippet.extension.st | 2 +- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/MiniDocs/LePage.extension.st b/src/MiniDocs/LePage.extension.st index 5c83315..7eddb63 100644 --- a/src/MiniDocs/LePage.extension.st +++ b/src/MiniDocs/LePage.extension.st @@ -98,11 +98,6 @@ 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 | @@ -184,6 +179,30 @@ LePage >> removeSnippetsMetadata [ ifTrue: [ snippet options removeKey: 'metadata' ] ] ] +{ #category : #'*MiniDocs' } +LePage >> sharedVariablesBindings [ + | codeSnippets shared | + codeSnippets := self preorderTraversal select: [:snippet | + snippet class = LePharoSnippet and: [ snippet code includesSubstring: ':='] + ]. + + codeSnippets first in: [:snippet | | context | + context := snippet coder evaluationContext. + snippet coder doItInContext: context. + shared := context bindingStrategy bindings detect: [:each | + each isKindOf: GtSharedVariablesBindings + ] + ]. + + codeSnippets asArray allButFirstDo: [:snippet| | context| + context := snippet coder evaluationContext. + context addBindings: shared. + snippet coder doItInContext: context + ]. + + ^ shared asDictionary +] + { #category : #'*MiniDocs' } LePage >> storage [ diff --git a/src/MiniDocs/LeTextualSnippet.extension.st b/src/MiniDocs/LeTextualSnippet.extension.st index 17c7677..f3baec3 100644 --- a/src/MiniDocs/LeTextualSnippet.extension.st +++ b/src/MiniDocs/LeTextualSnippet.extension.st @@ -43,5 +43,5 @@ LeTextualSnippet >> markdownCustomOpener [ { #category : #'*MiniDocs' } LeTextualSnippet >> tags [ - ^ self metadata at: 'tags' + ^ self metadata at: 'tags' ifAbsentPut: [ Set new ] ]