Moving core functionality to GrafoscopioUtils.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2019-04-17 13:17:40 +00:00
parent b46e554b5e
commit 67b27d20b3
3 changed files with 3 additions and 115 deletions

View File

@ -59,7 +59,7 @@ GrafoscopioDocs >> initialize [
self self
addDocument: 'Docs/Es/Tutoriales/tutorial.ston'; addDocument: 'Docs/Es/Tutoriales/tutorial.ston';
addDocument: 'Docs/En/Books/Manual/manual.ston'; addDocument: 'Docs/En/Books/Manual/manual.ston';
addDocument: 'Docs/En/Books/Manual/manual.pdf'; addDocument: 'uv/Docs/En/Books/Manual/manual.pdf';
addDocument: 'Docs/En/Books/DataActivism/techniques-for-datactivism.ston'; addDocument: 'Docs/En/Books/DataActivism/techniques-for-datactivism.ston';
addDocument: 'Docs/En/dev-notes.ston'; addDocument: 'Docs/En/dev-notes.ston';
addDocument: 'Docs/En/Books/SpecIUFramework/spec-ui-framework.ston'. addDocument: 'Docs/En/Books/SpecIUFramework/spec-ui-framework.ston'.

View File

@ -814,11 +814,11 @@ GrafoscopioNotebook >> saveToFileUI [
| file | | file |
file := UIManager default file := UIManager default
chooseForSaveFileReference: 'Export notebook to file as...' chooseForSaveFileReference: 'Save notebook to file as...'
extensions: #('ston') extensions: #('ston')
path: (workingFile ifNotNil: [ workingFile parent ] ifNil: [ FileLocator documents ] ). path: (workingFile ifNotNil: [ workingFile parent ] ifNil: [ FileLocator documents ] ).
file file
ifNil: [ self inform: 'Export cancelled'. ^ self ] ifNil: [ self inform: 'Saving to file cancelled'. ^ self ]
ifNotNil:[self saveToFile: file]. ifNotNil:[self saveToFile: file].
] ]

View File

@ -1,112 +0,0 @@
"
I model the interaction between Pandoc and Grafoscopio.
"
Class {
#name : #Pandoc,
#superclass : #Object,
#classInstVars : [
'executable'
],
#category : #'Grafoscopio-Model'
}
{ #category : #'as yet unclassified' }
Pandoc class >> downloadLuaFilters [
self luaFilters do: [ :filter | | filterUrl |
filterUrl := filter asUrl.
(FileLocator temp asFileReference / (filterUrl segments last)) exists
ifFalse: [
ZnClient new
url: filterUrl;
downloadTo: FileLocator temp ] ]
]
{ #category : #accessing }
Pandoc class >> executable [
^ executable ifNil: [ self executableLocation ]
]
{ #category : #accessing }
Pandoc class >> executable: aFileReference [
executable := aFileReference
]
{ #category : #accessing }
Pandoc class >> executableLocation [
| location |
location := '/usr/bin/pandoc'.
location asFileReference exists
ifTrue: [ ^ location ]
ifFalse: [ self definePandocExecutable ]
]
{ #category : #utility }
Pandoc class >> extractImagesInUnixFor: aFileReference withFilter: aLuaFilter [
"I use Pandoc Lua scripting capabilities to extract al images links in aFileReference"
OSSUnixSubprocess new
command: 'pandoc';
arguments: {aFileReference fullName . '--lua-filter=',aLuaFilter fullName };
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString :errString |
process isSuccess
ifTrue: [
^ ((Soup fromString: outString) findAllTags: 'td') collect: [ :each | each next ] ]
ifFalse: [
"OSSUnixProcessExitStatus has a nice #printOn: "
Transcript show: 'Command exit with error status: ', process exitStatusInterpreter printString; cr.
Transcript show: 'Stderr contents: ', errString.
]
]
]
{ #category : #converters }
Pandoc class >> htmlToMarkdown: inputFile [
| outputFile |
outputFile := FileLocator temp / 'body.md'.
outputFile ensureDelete.
outputFile ensureCreateFile.
OSSUnixSubprocess new
command: 'pandoc';
arguments: {'-f'. 'html'. '-t'. 'markdown'. '--atx-headers'. inputFile fullName.
'--output'. outputFile fullName };
redirectStdout;
redirectStderr;
runAndWaitOnExitDo: [ :process :outString :errString |
process isSuccess
ifTrue: [ ^ outputFile contents ]
ifFalse: [ ^inputFile contents ]
]
]
{ #category : #'as yet unclassified' }
Pandoc class >> listImagesFrom: aFileReference [
"I provide a list of all images contained in aFile."
| filter commandString outputString |
filter := FileLocator temp asFileReference / 'image-links.lua'.
filter exists ifFalse: [ self downloadLuaFilters ].
commandString := 'pandoc ', aFileReference fullName, ' --lua-filter=',filter fullName.
Smalltalk platformName = 'unix'
ifTrue: [ ^ self extractImagesInUnixFor: aFileReference withFilter: filter ].
Smalltalk platformName = 'Win32'
ifTrue: [ self ].
]
{ #category : #utility }
Pandoc class >> luaFilters [
"I define the location of set of scripts, that allows to change the default behaviour of Pandoc
and/or the processing of supported markup languages.
For more information about Lua filters see:
https://pandoc.org/lua-filters.html
"
| filters |
filters := OrderedCollection new.
filters
add: 'http://mutabit.com/repos.fossil/dataweek/doc/tip/Artefactos/Scripts/image-links.lua'.
^ filters
]