diff --git a/repository/TiddlyWiki/Tiddler.class.st b/repository/TiddlyWiki/Tiddler.class.st index 28ab1b0..ecdcb90 100644 --- a/repository/TiddlyWiki/Tiddler.class.st +++ b/repository/TiddlyWiki/Tiddler.class.st @@ -267,6 +267,12 @@ Tiddler >> gtTextFor: aView [ text: [ text ] ] +{ #category : #testing } +Tiddler >> hasUID [ + + ^ self customFields includesKey: 'uid' +] + { #category : #accessing } Tiddler >> importFedWikiPage: pageViewUrlString [ | pageTitle pageViewUrl pageData | @@ -302,7 +308,8 @@ Tiddler >> installTiddlerExporter [ { #category : #testing } Tiddler >> isImage [ - ^ self type = 'image/' + ^ self type ifNil: [ ^ false ]; + beginsWith: 'image/' ] { #category : #testing } diff --git a/repository/TiddlyWiki/TiddlyWiki.class.st b/repository/TiddlyWiki/TiddlyWiki.class.st index 6486d2e..b18a4cf 100644 --- a/repository/TiddlyWiki/TiddlyWiki.class.st +++ b/repository/TiddlyWiki/TiddlyWiki.class.st @@ -25,9 +25,9 @@ TiddlyWiki class >> createFromRemote: aRemoteTWUrl in: aFolder [ aFolder hasChildren ifTrue: [ ^ nil ]. wiki := TiddlyWiki new remote: aRemoteTWUrl; - folder: aFolder; - file: (aFolder / 'index.html') ensureCreateFile. + folder: (aFolder ensureCreateDirectory). ^ wiki downloadHTML; + file: (aFolder / 'index.html'); tiddlers. ] @@ -52,6 +52,33 @@ TiddlyWiki class >> fromJSONUrl: anUrlString [ name: anUrlString ] +{ #category : #accessing } +TiddlyWiki class >> loadFromLocalFolder: aFolder [ + + | wiki | + wiki := TiddlyWiki new + folder: aFolder; + file: aFolder / 'index.html'; + jsonFile: aFolder / 'tiddlers.json'. + ^ wiki fromString: wiki jsonFile. +] + +{ #category : #accessing } +TiddlyWiki class >> loadFromLocalFolder: aFolder named: aName [ + + | wiki | + wiki := TiddlyWiki loadFromLocalFolder: aFolder. + ^ wiki name: aName +] + +{ #category : #accessing } +TiddlyWiki class >> loadFromLocalFolder: aFolder named: aName withRemote: aRemoteURL [ + + | wiki | + wiki := self loadFromLocalFolder: aFolder named: aName. + ^ wiki remote: aRemoteURL +] + { #category : #accessing } TiddlyWiki >> addRecentChangesToRepo [ @@ -181,7 +208,7 @@ TiddlyWiki >> downloadHTML [ localCopy := self folder / 'index.html'. localCopy exists ifTrue: [ | timestamp | timestamp := (DateAndTime now asString) copyReplaceAll: ':' with: '_'. - localCopy renameTo: 'index', timestamp, '.html']. + localCopy renameTo: 'index-', timestamp, '.html']. ZnClient new url: htmlLink; downloadTo: self folder / 'index.html'. @@ -427,7 +454,12 @@ TiddlyWiki >> importJSONFile [ { #category : #accessing } TiddlyWiki >> importJSONLink [ - self jsonFile: self folder / 'tiddlers.json'. + | localCopy | + self jsonFile ifNil: [ self jsonFile: self folder / 'tiddlers.json' ]. + localCopy := self folder / 'tiddlers.json'. + localCopy exists ifTrue: [ | timestamp | + timestamp := (DateAndTime now asString) copyReplaceAll: ':' with: '_'. + localCopy renameTo: 'tiddlers-', timestamp, '.json']. MarkupFile exportAsFileOn: jsonFile containing: self remoteTiddlersContentsString. ^ self fromString: self remoteTiddlersContentsString ] @@ -795,6 +827,21 @@ TiddlyWiki >> tiddlersJSONUrl [ self remote ifNil: [^ nil]. ] +{ #category : #accessing } +TiddlyWiki >> tiddlersMissingUID [ + + ^ self tiddlers reject: [ :tiddler | (tiddler customFields includesKey: 'uid') or: [ (tiddler title beginsWith:'$') ] ]. +] + +{ #category : #accessing } +TiddlyWiki >> updateFilesFromRemote [ + + self remote ifNil: [ self inform: 'No remote found. If you have one, please provide its URL.'. + ^ self ]. + ^ self downloadHTML; + importJSONLink +] + { #category : #accessing } TiddlyWiki >> updateFromHtml [ self