Cleaning up the code. Trying to find why code nodes are serialized so big! (problem was solved already for textual nodes)
This commit is contained in:
parent
25598642b3
commit
2cdb2f61a1
@ -87,38 +87,31 @@ GrafoscopioBrowser class >> configureSettings [
|
|||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
GrafoscopioBrowser class >> downloadTutorial [
|
GrafoscopioBrowser class >> downloadTutorial [
|
||||||
"I download the interactive tutorial in STON format.
|
"I download the interactive tutorial in STON format.
|
||||||
I define some metadata associated to the tutorial document.
|
If a the tutorial is already present in the system I made a temporal backup and download a new copy"
|
||||||
Language is provided according to the ISO 639-1 code convention."
|
|
||||||
|
|
||||||
| doc client |
|
| client localTutorial temporalBackup remoteTutorial |
|
||||||
|
|
||||||
doc := Dictionary
|
localTutorial := './', (self tutorialData at: 'relativePath'), (self tutorialData at: 'filename').
|
||||||
with: 'type' -> 'tutorial'
|
temporalBackup := './', (self tutorialData at: 'relativePath'), 'tutorial.temp.ston'.
|
||||||
with: 'language' -> 'ES_CO'
|
remoteTutorial := (self tutorialData at: 'remoteRepo'), 'doc/tip/', (self tutorialData at: 'relativePath'), (self tutorialData at: 'filename').
|
||||||
with: 'remote' -> 'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/tutorial.ston'
|
localTutorial asFileReference exists
|
||||||
with: 'local' -> './Docs/Es/Tutoriales/'.
|
|
||||||
((doc at: 'local'), 'tutorial.ston') asFileReference exists
|
|
||||||
ifTrue: [
|
ifTrue: [
|
||||||
((doc at: 'local'), 'tutorial.temp.ston') asFileReference exists
|
temporalBackup asFileReference exists ifTrue: [ temporalBackup asFileReference delete].
|
||||||
ifTrue: [ ((doc at: 'local'), 'tutorial.temp.ston') asFileReference delete].
|
localTutorial asFileReference renameTo: 'tutorial.temp.ston'
|
||||||
((doc at: 'local'), 'tutorial.ston') asFileReference renameTo: 'tutorial.temp.ston'
|
|
||||||
].
|
].
|
||||||
[: bar |
|
[: bar |
|
||||||
bar title: 'Actualizando el tutorial...'.
|
bar title: 'Actualizando el tutorial...'.
|
||||||
[client := ZnClient new.
|
[client := ZnClient new.
|
||||||
client
|
client
|
||||||
get: (doc at: 'remote');
|
get: remoteTutorial;
|
||||||
signalProgress: true;
|
signalProgress: true;
|
||||||
downloadTo: (doc at: 'local').
|
downloadTo: ('./', (self tutorialData at: 'relativePath')). ]
|
||||||
]
|
|
||||||
on: HTTPProgress
|
on: HTTPProgress
|
||||||
do: [ :progress |
|
do: [ :progress |
|
||||||
progress isEmpty ifFalse: [ bar current: progress percentage ].
|
progress isEmpty ifFalse: [ bar current: progress percentage ].
|
||||||
progress resume ].
|
progress resume ].
|
||||||
|
|
||||||
] asJob run.
|
] asJob run.
|
||||||
client isSuccess
|
|
||||||
ifFalse: [ self inform: 'Algo salió mal. Verifique su conexión a Internet.' ]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
@ -267,11 +260,11 @@ GrafoscopioBrowser class >> startDockingBar [
|
|||||||
|
|
||||||
launchMenu := MenuMorph new.
|
launchMenu := MenuMorph new.
|
||||||
launchMenu
|
launchMenu
|
||||||
add: 'Documento interactivo nuevo' target: GrafoscopioBrowser selector: #open;
|
add: 'Cuaderno nuevo' target: GrafoscopioBrowser selector: #open;
|
||||||
add: 'Documento interactivo desde archivo' target: (GrafoscopioBrowser new) selector: #openFromFileSelector;
|
add: 'Cuaderno desde archivo...' target: (GrafoscopioBrowser new) selector: #openFromFileSelector;
|
||||||
add: 'Documento interactivo desde Internet' target: (GrafoscopioBrowser new) selector: #openFromUrlUI;
|
add: 'Cuaderno desde Internet...' target: (GrafoscopioBrowser new) selector: #openFromUrlUI;
|
||||||
add: 'Documentos interactivos recientes' target: GrafoscopioBrowser selector: #openFromRecentlyUsed;
|
add: 'Cuadernos recientes...' target: GrafoscopioBrowser selector: #openFromRecentlyUsed;
|
||||||
add: 'Documentos interactivos de ejemplo' target: GrafoscopioBrowser selector: #messageNotImplementedYet;
|
add: 'Cuadernos de ejemplo' target: GrafoscopioBrowser selector: #messageNotImplementedYet;
|
||||||
add: 'Ejemplos de visualizaciones en Roassal' target: (RTExampleBrowser new) selector: #open;
|
add: 'Ejemplos de visualizaciones en Roassal' target: (RTExampleBrowser new) selector: #open;
|
||||||
add: 'Playground' target: (Smalltalk tools) selector: #openWorkspace;
|
add: 'Playground' target: (Smalltalk tools) selector: #openWorkspace;
|
||||||
add: 'Transcript' target: (Smalltalk tools) selector: #openTranscript.
|
add: 'Transcript' target: (Smalltalk tools) selector: #openTranscript.
|
||||||
@ -307,6 +300,39 @@ GrafoscopioBrowser class >> startDockingBar [
|
|||||||
openInWorld.
|
openInWorld.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #updating }
|
||||||
|
GrafoscopioBrowser class >> tutorialData [
|
||||||
|
"I define some metadata associated to the tutorial document.
|
||||||
|
Language is provided according to the ISO 639-1 code convention."
|
||||||
|
|
||||||
|
| docData |
|
||||||
|
|
||||||
|
docData := Dictionary
|
||||||
|
with: 'type' -> 'tutorial'
|
||||||
|
with: 'languageCode' -> 'ES_CO'
|
||||||
|
with: 'remoteRepo' -> 'http://mutabit.com/repos.fossil/grafoscopio/'
|
||||||
|
with: 'relativePath' -> 'Docs/Es/Tutoriales/'
|
||||||
|
with: 'filename' -> 'tutorial.ston'.
|
||||||
|
^ docData
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #updating }
|
||||||
|
GrafoscopioBrowser class >> tutorialIsUpdated [
|
||||||
|
"I compare the cryptografic signatures of the local copy of the tutorial and the remote one to see if the're the same,
|
||||||
|
in which case I return True or False in any other cases."
|
||||||
|
|
||||||
|
| folderLastContents lastRemoteTutorial localTutorial |
|
||||||
|
|
||||||
|
localTutorial := './', (GrafoscopioBrowser tutorialData at: 'relativePath'), (GrafoscopioBrowser tutorialData at: 'filename').
|
||||||
|
folderLastContents := NeoJSONReader fromString:
|
||||||
|
(ZnEasy get: (self tutorialData at: 'remoteRepo'), 'json/dir?ci=tip&name=', (self tutorialData at: 'relativePath')) contents.
|
||||||
|
lastRemoteTutorial := ((folderLastContents at: 'payload') at: 'entries')
|
||||||
|
detect: [:entry | (entry at: 'name') = (self tutorialData at: 'filename') ].
|
||||||
|
^ (lastRemoteTutorial at: 'uuid') = (SHA1 new hashMessage: (localTutorial asFileReference contents)) hex
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
GrafoscopioBrowser class >> updateDataviz [
|
GrafoscopioBrowser class >> updateDataviz [
|
||||||
"Updates Dataviz package with new versions of itself take from the source code repository and
|
"Updates Dataviz package with new versions of itself take from the source code repository and
|
||||||
@ -369,39 +395,6 @@ GrafoscopioBrowser class >> updateDocumentation [
|
|||||||
].
|
].
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
|
||||||
GrafoscopioBrowser class >> updateDocumentationTemp [
|
|
||||||
"Updates documentation (manual, tutorials) from official repository"
|
|
||||||
|
|
||||||
| update filePath fileLocation client docs |
|
|
||||||
update := (UIManager default
|
|
||||||
confirm: '¿Desea actualizar la documentación?'
|
|
||||||
label: 'Actualizar documentación').
|
|
||||||
update
|
|
||||||
ifTrue: [
|
|
||||||
docs := Dictionary
|
|
||||||
with: 'tutorial' -> (Dictionary
|
|
||||||
with: 'remote' -> 'http://mutabit.com/repos.fossil/grafoscopio/doc/tip/Docs/Es/Tutoriales/tutorial.ston'
|
|
||||||
with: 'local' -> './Docs/Es/Tutoriales/'
|
|
||||||
).
|
|
||||||
docs do: [:each |
|
|
||||||
client := ZnClient new.
|
|
||||||
client get: (each at: 'remote').
|
|
||||||
client isSuccess
|
|
||||||
ifFalse: [ self inform: 'Algo salió mal. Verifique su conexión a Internet.' ]
|
|
||||||
ifTrue: [
|
|
||||||
filePath := each at: 'local'.
|
|
||||||
filePath asFileReference ensureCreateDirectory.
|
|
||||||
fileLocation := filePath, ((each at: 'remote') splitOn: '/') last.
|
|
||||||
fileLocation asFileReference
|
|
||||||
writeStreamDo: [:stream |
|
|
||||||
stream write: client contents utf8Decoded asString].
|
|
||||||
].
|
|
||||||
self inform: 'Actualización de la documentación terminada'.
|
|
||||||
]
|
|
||||||
].
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
GrafoscopioBrowser class >> updateGrafoscopio [
|
GrafoscopioBrowser class >> updateGrafoscopio [
|
||||||
"Updates Grafoscopio with new versions of itself take from the source code repository and
|
"Updates Grafoscopio with new versions of itself take from the source code repository and
|
||||||
@ -549,12 +542,20 @@ GrafoscopioBrowser class >> updateSystem [
|
|||||||
GrafoscopioBrowser class >> updateTutorial [
|
GrafoscopioBrowser class >> updateTutorial [
|
||||||
"I Update main tutorial from official repository"
|
"I Update main tutorial from official repository"
|
||||||
|
|
||||||
| update |
|
| update unnecessaryUpdate |
|
||||||
update := (UIManager default
|
update := UIManager default
|
||||||
confirm: '¿Desea actualizar el tutorial?'
|
confirm: '¿Desea actualizar el tutorial?'
|
||||||
label: 'Actualizar el tutorial').
|
label: 'Actualizar el tutorial'.
|
||||||
update
|
update
|
||||||
ifTrue: [self downloadTutorial]
|
ifTrue: [
|
||||||
|
self tutorialIsUpdated
|
||||||
|
ifFalse: [self downloadTutorial]
|
||||||
|
ifTrue: [
|
||||||
|
unnecessaryUpdate := UIManager default
|
||||||
|
abort: 'El tutorial ya se encuentra en su versión más reciente.'
|
||||||
|
title: 'Nada que actualizar!'
|
||||||
|
]
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
@ -614,29 +615,6 @@ GrafoscopioBrowser >> addToTagsAvailable [
|
|||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
|
||||||
GrafoscopioBrowser >> body2ForTransmediaIn: constructor for: aNode [
|
|
||||||
"Shows the body of a transmedia type of nodes, which are tagged as 'original' and 'transmediado'"
|
|
||||||
| innerBrowser originalNode transmediaNode |
|
|
||||||
|
|
||||||
aNode tags = 'original'
|
|
||||||
ifFalse: [^self ]
|
|
||||||
ifTrue: [
|
|
||||||
innerBrowser := GLMTabulator new.
|
|
||||||
GLMTabulator new.
|
|
||||||
innerBrowser
|
|
||||||
column: [ :c |
|
|
||||||
c row: [ :r | r column: #original; column: #transmediado] span: 7";
|
|
||||||
row: #buttons; span: 1"].
|
|
||||||
originalNode := aNode.
|
|
||||||
originalNode children isNotNil
|
|
||||||
ifTrue: [transmediaNode := originalNode children detect: [:node | node tags = 'transmediado']
|
|
||||||
ifNone: [ transmediaNode := nil ] ].
|
|
||||||
constructor custom: innerBrowser]
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
GrafoscopioBrowser >> bodyForCodeIn: constructor for: aNode [
|
GrafoscopioBrowser >> bodyForCodeIn: constructor for: aNode [
|
||||||
"Shows the body of a node as an interactive playground. If node is not tagged it will return itself,
|
"Shows the body of a node as an interactive playground. If node is not tagged it will return itself,
|
||||||
@ -652,24 +630,6 @@ GrafoscopioBrowser >> bodyForCodeIn: constructor for: aNode [
|
|||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
|
||||||
GrafoscopioBrowser >> bodyForTransmediaIn: constructor for: aNode [
|
|
||||||
"Shows the body of a transmedia type of nodes, which are tagged as 'original' and 'transmediado'"
|
|
||||||
|
|
||||||
aNode tags = 'original'
|
|
||||||
ifFalse: [^self ]
|
|
||||||
ifTrue: [constructor custom: (self panelTransmediaFor: aNode)]
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
|
||||||
GrafoscopioBrowser >> bodyForTransmediaOn: constructor [
|
|
||||||
"Shows the body of a transmedia type of node"
|
|
||||||
|
|
||||||
constructor custom: self panelBrowserForTransmediaton.
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
GrafoscopioBrowser >> bodyIn: constructor [
|
GrafoscopioBrowser >> bodyIn: constructor [
|
||||||
"Shows the body of a selected node"
|
"Shows the body of a selected node"
|
||||||
@ -689,7 +649,7 @@ GrafoscopioBrowser >> bodyIn: constructor for: aNode [
|
|||||||
|
|
||||||
| specialTags |
|
| specialTags |
|
||||||
|
|
||||||
specialTags := #('código' 'original').
|
specialTags := #('código').
|
||||||
(specialTags includes: aNode tags)
|
(specialTags includes: aNode tags)
|
||||||
ifTrue: [^self ].
|
ifTrue: [^self ].
|
||||||
(constructor text)
|
(constructor text)
|
||||||
@ -732,7 +692,7 @@ browser
|
|||||||
(browser transmit)
|
(browser transmit)
|
||||||
to: #nodeBody;
|
to: #nodeBody;
|
||||||
from: #tree;
|
from: #tree;
|
||||||
andShow: [ :a | self bodyIn: a].
|
andShow: [ :a | self bodyIn: a asString].
|
||||||
(browser transmit )
|
(browser transmit )
|
||||||
from: #tree port: #selection;
|
from: #tree port: #selection;
|
||||||
from: #nodeBody port: #text;
|
from: #nodeBody port: #text;
|
||||||
@ -796,8 +756,7 @@ browser
|
|||||||
when: [:selection | selection notNil];
|
when: [:selection | selection notNil];
|
||||||
andShow: [ :a :node |
|
andShow: [ :a :node |
|
||||||
self bodyIn: a for: node.
|
self bodyIn: a for: node.
|
||||||
self bodyForCodeIn: a for: node.
|
self bodyForCodeIn: a for: node].
|
||||||
self bodyForTransmediaIn: a for: node ].
|
|
||||||
(browser transmit )
|
(browser transmit )
|
||||||
from: #tree port: #selection;
|
from: #tree port: #selection;
|
||||||
from: #nodeBody port: #text;
|
from: #nodeBody port: #text;
|
||||||
@ -806,7 +765,7 @@ browser
|
|||||||
transformed: [:node :content |
|
transformed: [:node :content |
|
||||||
node tags = 'código'
|
node tags = 'código'
|
||||||
ifFalse: [node body: content asString]
|
ifFalse: [node body: content asString]
|
||||||
ifTrue: [node body: content]].
|
ifTrue: [node body: content asString]].
|
||||||
(browser transmit)
|
(browser transmit)
|
||||||
from: #tree;
|
from: #tree;
|
||||||
to: #nodeHeader;
|
to: #nodeHeader;
|
||||||
@ -819,57 +778,6 @@ browser
|
|||||||
transformed: [:node :text | node header: text asString]
|
transformed: [:node :text | node header: text asString]
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
|
||||||
GrafoscopioBrowser >> buildBrowserNamed: aName inMode: aModeName [
|
|
||||||
"Main method for building the interface for trees and its nodes. The name of the browser corresponds to the name of the file
|
|
||||||
where tree is stored (or is named 'draft.ston' by default). The name of the mode correspond to a way of showing and dealing with
|
|
||||||
the data.
|
|
||||||
|
|
||||||
The idea is to support several modes in the future, starting with the 'Transmediaton' mode and adding more as needed."
|
|
||||||
|
|
||||||
self configureInitialTags.
|
|
||||||
|
|
||||||
browser := GLMTabulator new
|
|
||||||
title: aName, ' | Grafoscopio'.
|
|
||||||
|
|
||||||
browser
|
|
||||||
column: [:c |
|
|
||||||
c row: #tree span: 6;
|
|
||||||
row: #nodeHeader span: 1] span: 2;
|
|
||||||
column: [ :c |
|
|
||||||
c row: #nodeBody span: 2] span: 5.
|
|
||||||
browser
|
|
||||||
updateOn: GLMItemAdded from: #yourself;
|
|
||||||
updateOn: GLMItemRemoved from: #yourself.
|
|
||||||
|
|
||||||
(browser transmit)
|
|
||||||
to: #tree;
|
|
||||||
andShow: [:a | self treeOn: a].
|
|
||||||
"Creating a self updatable body pane"
|
|
||||||
(browser transmit)
|
|
||||||
to: #nodeBody;
|
|
||||||
from: #tree;
|
|
||||||
andShow: [ :a |
|
|
||||||
(aModeName = 'transmedia')
|
|
||||||
ifTrue: [self bodyForTransmediaOn: a]].
|
|
||||||
(browser transmit )
|
|
||||||
from: #tree port: #selection;
|
|
||||||
from: #nodeBody port: #text;
|
|
||||||
when: [:node :text | text notNil];
|
|
||||||
to: #nodeBody port: #neverland;
|
|
||||||
transformed: [:node :text | node body: text asString].
|
|
||||||
(browser transmit)
|
|
||||||
from: #tree;
|
|
||||||
to: #nodeHeader;
|
|
||||||
andShow: [ :h | self headerOn: h ].
|
|
||||||
(browser transmit )
|
|
||||||
from: #tree port: #selection;
|
|
||||||
from: #nodeHeader port: #text;
|
|
||||||
when: [:node :text | text notNil];
|
|
||||||
to: #nodeHeader port: #neverland1;
|
|
||||||
transformed: [:node :text | node header: text asString]
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'persistance / repositories' }
|
{ #category : #'persistance / repositories' }
|
||||||
GrafoscopioBrowser >> commitToRepository [
|
GrafoscopioBrowser >> commitToRepository [
|
||||||
"Commits to the associated repository for the current document tree.
|
"Commits to the associated repository for the current document tree.
|
||||||
@ -1137,24 +1045,6 @@ GrafoscopioBrowser >> openFromFile: aFileName [
|
|||||||
browser openOn: mainTree children.
|
browser openOn: mainTree children.
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #persistence }
|
|
||||||
GrafoscopioBrowser >> openFromFile: aFileName inMode: aModeName [
|
|
||||||
"Opens a tree from a file named aFileName"
|
|
||||||
|
|
||||||
| currentChildren |
|
|
||||||
GrafoscopioBrowser configureSettings.
|
|
||||||
|
|
||||||
aFileName isNil ifTrue: [ ^nil ].
|
|
||||||
workingFile := aFileName name asFileReference.
|
|
||||||
currentChildren := (STON fromString: aFileName contents).
|
|
||||||
self buildBrowserNamed: aFileName basenameWithIndicator inMode: aModeName.
|
|
||||||
mainTree := GrafoscopioNode new
|
|
||||||
header: 'Arbol principal';
|
|
||||||
level: 0.
|
|
||||||
mainTree children: currentChildren.
|
|
||||||
browser openOn: mainTree children.
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #persistence }
|
{ #category : #persistence }
|
||||||
GrafoscopioBrowser >> openFromFileSelector [
|
GrafoscopioBrowser >> openFromFileSelector [
|
||||||
"Opens a tree from a file by using the file selector GUI."
|
"Opens a tree from a file by using the file selector GUI."
|
||||||
@ -1238,21 +1128,6 @@ GrafoscopioBrowser >> openLandscape [
|
|||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #persistence }
|
|
||||||
GrafoscopioBrowser >> openLast [
|
|
||||||
"Opens a new browser with a fixed 'last' working tree. May be this should be changed"
|
|
||||||
| workingFile currentChildren| "workingChildren would sound too cruel!"
|
|
||||||
self buildBrowser.
|
|
||||||
workingFile := '/home/offray/Documentos/U/Libertadores/Grafoscopio/bootstrapping-objeto-investigacion.ston' asFileReference readStream.
|
|
||||||
currentChildren := (STON fromStream: workingFile).
|
|
||||||
mainTree := GrafoscopioNode new
|
|
||||||
header: 'Bootstrapping the research object';
|
|
||||||
level: 0.
|
|
||||||
mainTree children: currentChildren.
|
|
||||||
browser openOn: mainTree children.
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #persistence }
|
{ #category : #persistence }
|
||||||
GrafoscopioBrowser >> openTutorialInGrafoscopio [
|
GrafoscopioBrowser >> openTutorialInGrafoscopio [
|
||||||
"Opens the help tree from a file"
|
"Opens the help tree from a file"
|
||||||
@ -1269,15 +1144,6 @@ GrafoscopioBrowser >> openTutorialInGrafoscopio [
|
|||||||
browser openOn: mainTree children.
|
browser openOn: mainTree children.
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #persistence }
|
|
||||||
GrafoscopioBrowser >> openWorking [
|
|
||||||
"Opens a new browser with the last working tree"
|
|
||||||
self buildBrowser.
|
|
||||||
mainTree := '/home/offray/Documentos/U/Libertadores/Grafoscopio/bootstrapping-objeto-investigacion.ston' asFileReference readStream.
|
|
||||||
browser openOn: mainTree children.
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
GrafoscopioBrowser >> panelAsCodeFor: aNode [
|
GrafoscopioBrowser >> panelAsCodeFor: aNode [
|
||||||
"Shows an interactive playground for Smalltalk code in a node body"
|
"Shows an interactive playground for Smalltalk code in a node body"
|
||||||
@ -1287,9 +1153,9 @@ GrafoscopioBrowser >> panelAsCodeFor: aNode [
|
|||||||
browser column: #code.
|
browser column: #code.
|
||||||
browser transmit
|
browser transmit
|
||||||
to: #code;
|
to: #code;
|
||||||
transformed: [ GTPlayPage new content: aNode body ];
|
transformed: [ GTPlayPage new content: aNode body asString];
|
||||||
andShow: [ :a | a custom: GTPlayground new ].
|
andShow: [ :a | a custom: GTPlayground new ].
|
||||||
browser sendToOutside: #nodeBody from: #code -> #text.
|
browser sendToOutside: (#nodeBody asString) from: #code -> #text.
|
||||||
^ browser.
|
^ browser.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ GrafoscopioNode >> addNodeAfter [
|
|||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
GrafoscopioNode >> ancestors [
|
GrafoscopioNode >> ancestors [
|
||||||
"Returns a collection of all the nodes wich are ancestors of the receiver node"
|
"I return a collection of all the nodes wich are ancestors of the receiver node"
|
||||||
| currentNode ancestors |
|
| currentNode ancestors |
|
||||||
|
|
||||||
currentNode := self.
|
currentNode := self.
|
||||||
@ -102,8 +102,9 @@ GrafoscopioNode >> ancestors [
|
|||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
GrafoscopioNode >> ancestorsHeaders [
|
GrafoscopioNode >> ancestorsHeaders [
|
||||||
"Returns the headers of all the ancestors of the node. Maybe this and 'headers' should be integrated, so both act on a collection of
|
"Returns the headers of all the ancestors of the node.
|
||||||
children instead of having two separate methods"
|
Maybe this and 'headers' should be integrated, so both act on a collection of children instead of
|
||||||
|
having two separate methods"
|
||||||
| currentNode ancestors |
|
| currentNode ancestors |
|
||||||
|
|
||||||
currentNode := self.
|
currentNode := self.
|
||||||
@ -146,43 +147,31 @@ GrafoscopioNode >> asSton [
|
|||||||
|
|
||||||
{ #category : #initialization }
|
{ #category : #initialization }
|
||||||
GrafoscopioNode >> becomeDefaultTestTree [
|
GrafoscopioNode >> becomeDefaultTestTree [
|
||||||
| node1 node2 node3 |
|
| node1 node2 |
|
||||||
self level: 0.
|
self level: 0.
|
||||||
self header: 'Arbol principal'.
|
self header: 'Arbol principal'.
|
||||||
node1 := GrafoscopioNode new
|
node1 := GrafoscopioNode new
|
||||||
header: 'Nodo 1';
|
header: 'Markup';
|
||||||
body: 'Texto 1'.
|
body: 'I am just a node with markup'.
|
||||||
node2 := GrafoscopioNode new
|
node2 := GrafoscopioNode new
|
||||||
header: 'Nodo 2';
|
header: 'Code';
|
||||||
body: 'Texto 2'.
|
body: 'PharoTutorial openPharoZenWorkspace';
|
||||||
node3 := GrafoscopioNode new
|
|
||||||
header: 'Nodo 3';
|
|
||||||
body: 'ProfStef openPharoZenWorkspace';
|
|
||||||
tagAs: 'código'.
|
tagAs: 'código'.
|
||||||
self
|
self
|
||||||
addNode: node1;
|
addNode: node1;
|
||||||
addNode: node2.
|
addNode: node2.
|
||||||
node2 addNode: node3.
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #initialization }
|
{ #category : #initialization }
|
||||||
GrafoscopioNode >> becomeDefaultTree [
|
GrafoscopioNode >> becomeDefaultTree [
|
||||||
| node1 node2 node3 |
|
"I create a starting tree for all grafoscopio notebooks with just one textual node"
|
||||||
|
| node1 |
|
||||||
self level: 0.
|
self level: 0.
|
||||||
self header: 'Arbol principal'.
|
self header: 'Arbol principal'.
|
||||||
node1 := GrafoscopioNode
|
node1 := GrafoscopioNode
|
||||||
header: 'Nodo 1'
|
header: 'Nodo 1'
|
||||||
body: 'Texto 1'.
|
body: 'Texto 1'.
|
||||||
node2 := GrafoscopioNode
|
self addNode: node1.
|
||||||
header: 'Nodo 2'
|
|
||||||
body: 'Texto 2'.
|
|
||||||
node3 := GrafoscopioNode
|
|
||||||
header: 'Nodo 3'
|
|
||||||
body: 'Texto 3'.
|
|
||||||
self
|
|
||||||
addNode: node1;
|
|
||||||
addNode: node2.
|
|
||||||
node2 addNode: node3.
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
@ -343,16 +332,6 @@ GrafoscopioNode >> level: anInteger [
|
|||||||
level := anInteger
|
level := anInteger
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
GrafoscopioNode >> localRepository [
|
|
||||||
^ localRepository
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
GrafoscopioNode >> localRepository: anObject [
|
|
||||||
localRepository := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #exporting }
|
{ #category : #exporting }
|
||||||
GrafoscopioNode >> markdownContent [
|
GrafoscopioNode >> markdownContent [
|
||||||
"Extracts the markdown of a node using body as content, header as title and level as hierarchical level of the title.
|
"Extracts the markdown of a node using body as content, header as title and level as hierarchical level of the title.
|
||||||
@ -530,40 +509,6 @@ GrafoscopioNode >> removeNode: aNode [
|
|||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #exporting }
|
|
||||||
GrafoscopioNode >> returnConfig [
|
|
||||||
"Detects a children node containing the configuration for the creation of the output files. If nothing is detected,
|
|
||||||
creates defaults for that. Pending:
|
|
||||||
- Verifying that file data in config node is accurate, and if not create the proper locations.
|
|
||||||
- Maybe there is a need to consider if it should run on all the tree, instead of a particular node."
|
|
||||||
|
|
||||||
| configString configNode configDict |
|
|
||||||
|
|
||||||
configNode := (self children) detect: [:nodeContent | nodeContent header = 'Config' ] ifNone: [ nil ].
|
|
||||||
"This part always enter for the nil option! MUST BE CORRECTED"
|
|
||||||
configNode isNil
|
|
||||||
ifTrue: [
|
|
||||||
configString := '{
|
|
||||||
"title": "Boostrapping para el objeto de investigación",
|
|
||||||
"author": {
|
|
||||||
"given": "Offray Vladimir",
|
|
||||||
"family": "Luna Cárdenas"
|
|
||||||
},
|
|
||||||
"file": {
|
|
||||||
"relative-path" : "U/Libertadores/Grafoscopio/",
|
|
||||||
"name": "bootstrapping-objeto-investigacion",
|
|
||||||
"formats": [
|
|
||||||
#ston,
|
|
||||||
#markdown
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}'
|
|
||||||
]
|
|
||||||
ifFalse: [ configString := configNode body ].
|
|
||||||
configDict := STON fromString: configString.
|
|
||||||
^configDict
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
GrafoscopioNode >> saveContent: anObject [
|
GrafoscopioNode >> saveContent: anObject [
|
||||||
"Sets the receivers body to the given object"
|
"Sets the receivers body to the given object"
|
||||||
@ -577,8 +522,8 @@ GrafoscopioNode >> tagAs: aTag [
|
|||||||
know if a tag excludes others from the same node"
|
know if a tag excludes others from the same node"
|
||||||
|
|
||||||
tags := aTag.
|
tags := aTag.
|
||||||
aTag = 'código'
|
"aTag = 'código'
|
||||||
ifTrue: [self body: (GTPlayPage new content: self body) content]
|
ifTrue: [self body: (GTPlayPage new content: self body) content]"
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
|
Loading…
Reference in New Issue
Block a user