Associating PubPubContents to their respective files.
This commit is contained in:
parent
6c4fc47900
commit
f2b41dd546
@ -6,7 +6,8 @@ Class {
|
||||
'language',
|
||||
'url',
|
||||
'thumbnail',
|
||||
'work'
|
||||
'work',
|
||||
'contents'
|
||||
],
|
||||
#category : #'MiniDocs-Model'
|
||||
}
|
||||
@ -40,6 +41,16 @@ PubPubContent >> asMarkdeepFrontPageElement [
|
||||
^ response contents
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubContent >> contents: anObject [
|
||||
contents := anObject
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubContent >> fileName [
|
||||
^ self shortName,'--', self id, '.md'
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubContent >> fromXML: aXMLElement [
|
||||
| image anchor|
|
||||
|
@ -35,6 +35,12 @@ PubPubWork >> address: anUrl [
|
||||
address := anUrl
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubWork >> bookishFolder [
|
||||
^ { 'en' -> 'book'.
|
||||
'es' -> 'libro'} asDictionary
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubWork >> currentLanguage [
|
||||
^ currentLanguage
|
||||
@ -59,16 +65,17 @@ PubPubWork >> defaultTitle [
|
||||
{ #category : #accessing }
|
||||
PubPubWork >> downloadContents [
|
||||
| workingDirectory |
|
||||
workingDirectory := self folder / self currentLanguage / 'book'.
|
||||
self tableOfContentsDictionary keysAndValuesDo: [ :name :chapterAddress | |currentFileName|
|
||||
currentFileName := name, '--', chapterAddress, '.md'.
|
||||
(workingDirectory / currentFileName) asFileReference ensureDelete.
|
||||
(workingDirectory / 'markdown') asFileReference ensureDelete.
|
||||
ZnClient new
|
||||
get: self address, 'pub/', chapterAddress, '/download/markdown';
|
||||
downloadTo: workingDirectory .
|
||||
workingDirectory / 'markdown' renameTo: currentFileName
|
||||
].
|
||||
workingDirectory := self workingDirectory.
|
||||
self tableOfContentsDictionary
|
||||
keysAndValuesDo: [ :name :chapterAddress |
|
||||
| currentFileName |
|
||||
currentFileName := name , '--' , chapterAddress , '.md'.
|
||||
(workingDirectory / currentFileName) asFileReference ensureDelete.
|
||||
(workingDirectory / 'markdown') asFileReference ensureDelete.
|
||||
ZnClient new
|
||||
get: self address , 'pub/' , chapterAddress , '/download/markdown';
|
||||
downloadTo: workingDirectory.
|
||||
workingDirectory / 'markdown' renameTo: currentFileName ].
|
||||
^ workingDirectory
|
||||
]
|
||||
|
||||
@ -165,8 +172,12 @@ PubPubWork >> markdownFiles [
|
||||
PubPubWork >> populateContents [
|
||||
self tableOfContents isEmptyOrNil
|
||||
ifTrue: [ self populateTableOfContents ].
|
||||
^ self tableOfContents
|
||||
|
||||
self workingDirectory children ifEmpty: [self downloadContents].
|
||||
self tableOfContents do: [:pubPubContent | | contentFile|
|
||||
contentFile := self workingDirectory / pubPubContent fileName.
|
||||
contentFile exists
|
||||
ifTrue: [ pubPubContent contents: (Markdown new fromFile: contentFile) ]
|
||||
]
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
@ -213,3 +224,17 @@ PubPubWork >> tableOfContentsDictionary [
|
||||
PubPubWork >> titles [
|
||||
^ titles ifNil: [titles := OrderedDictionary new]
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubWork >> viewContentsFor: aView [
|
||||
<gtView>
|
||||
^ aView list
|
||||
title: 'Contents';
|
||||
priority: 10;
|
||||
items: [ self tableOfContents ]
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
PubPubWork >> workingDirectory [
|
||||
^ self folder / self currentLanguage / (self bookishFolder at: self currentLanguage)
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user