Improving formats conversion.
This commit is contained in:
parent
e8c73c7563
commit
5cc4d7cfa4
@ -32,6 +32,11 @@ Tiddler >> asDictionary [
|
|||||||
yourself.
|
yourself.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #converting }
|
||||||
|
Tiddler >> asJson [
|
||||||
|
^ STON toStringPretty: self asDictionary
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Tiddler >> caption [
|
Tiddler >> caption [
|
||||||
|
|
||||||
@ -101,6 +106,20 @@ Tiddler >> list: anObject [
|
|||||||
list := anObject
|
list := anObject
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #utilities }
|
||||||
|
Tiddler >> markdownLinksAsWikiText [
|
||||||
|
"I'm useful to convert _internal_ links between formats, as is a common pattern
|
||||||
|
found when migrating content from Markdown to TiddlyWiki's WikiText.
|
||||||
|
I DON'T work on external links. A better regex could be used for that.
|
||||||
|
See:
|
||||||
|
- https://davidwells.io/snippets/regex-match-markdown-links
|
||||||
|
- http://blog.michaelperrin.fr/2019/02/04/advanced-regular-expressions/"
|
||||||
|
| markdownLinks |
|
||||||
|
markdownLinks := (self text splitOn: Character space) select: [:each | each matchesRegex: '\[(.+)\)'].
|
||||||
|
markdownLinks ifEmpty: [^ self].
|
||||||
|
^ markdownLinks
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Tiddler >> modified [
|
Tiddler >> modified [
|
||||||
|
|
||||||
@ -125,6 +144,13 @@ Tiddler >> mofier: anObject [
|
|||||||
mofier := anObject
|
mofier := anObject
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
Tiddler >> printOn: aStream [
|
||||||
|
super printOn: aStream.
|
||||||
|
aStream
|
||||||
|
nextPutAll: '( ', self title, ' )'
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Tiddler >> tags [
|
Tiddler >> tags [
|
||||||
|
|
||||||
|
34
repository/TiddlyWiki/WikiText.class.st
Normal file
34
repository/TiddlyWiki/WikiText.class.st
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Class {
|
||||||
|
#name : #WikiText,
|
||||||
|
#superclass : #Object,
|
||||||
|
#instVars : [
|
||||||
|
'content'
|
||||||
|
],
|
||||||
|
#category : #'TiddlyWiki-Model'
|
||||||
|
}
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiText >> content [
|
||||||
|
^ content
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiText >> content: aString [
|
||||||
|
content := aString
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiText >> convertMarkdownLinks [
|
||||||
|
| markdownLinks markdownLinksRegex |
|
||||||
|
markdownLinksRegex := '\[([\w|\s]+)\]\((\S+)\)'.
|
||||||
|
"For the explanation of the Regex details see: http://scottradcliff.com/how-to-parse-urls-in-markdown.html"
|
||||||
|
markdownLinks := self content regex: markdownLinksRegex matchesCollect: [:link | link ].
|
||||||
|
markdownLinks ifEmpty: [^ self content ].
|
||||||
|
markdownLinks do: [:markdownLink | | linkText closingLinkIndex newContent |
|
||||||
|
closingLinkIndex := markdownLink indexOf: $].
|
||||||
|
linkText := markdownLink copyFrom: 2 to: closingLinkIndex.
|
||||||
|
newContent := self content copyReplaceAll: markdownLink with: '[[', linkText, ']'.
|
||||||
|
self content: newContent.
|
||||||
|
].
|
||||||
|
^ self content
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user