Footnotes improved identifiers partial implementaiton.
This commit is contained in:
parent
a3741918c9
commit
e20cca500e
@ -293,6 +293,10 @@ Markdeep >> pubPubFootnoteMetadataFromString: string [
|
|||||||
altString := altString copyReplaceAll: ' node-type='
|
altString := altString copyReplaceAll: ' node-type='
|
||||||
with: '
|
with: '
|
||||||
node-type= '.
|
node-type= '.
|
||||||
|
altString := altString copyReplaceAll: ' data-value=' with: '
|
||||||
|
data-value='.
|
||||||
|
altString := altString copyReplaceAll: ' date-structured-value=' with: '
|
||||||
|
date-structured-value= '.
|
||||||
altString lines allButFirstDo: [:line |
|
altString lines allButFirstDo: [:line |
|
||||||
(line beginsWith: '>')
|
(line beginsWith: '>')
|
||||||
ifTrue: [ altLine := line allButFirst ]
|
ifTrue: [ altLine := line allButFirst ]
|
||||||
@ -320,7 +324,7 @@ Markdeep >> pubPubFootnotesLinesRange [
|
|||||||
| beginningLine endingLine |
|
| beginningLine endingLine |
|
||||||
beginningLine := self contents lines size + 1.
|
beginningLine := self contents lines size + 1.
|
||||||
self contents lines doWithIndex: [:line :i |
|
self contents lines doWithIndex: [:line :i |
|
||||||
(line beginsWith: '::: {.pub-notes}') ifTrue: [ beginningLine := i ].
|
(line includesSubstring: '::: {.pub-notes}') ifTrue: [ beginningLine := i ].
|
||||||
(i > beginningLine and: [ line beginsWith: ':::' ])
|
(i > beginningLine and: [ line beginsWith: ':::' ])
|
||||||
ifTrue: [
|
ifTrue: [
|
||||||
endingLine := i.
|
endingLine := i.
|
||||||
@ -344,30 +348,6 @@ Markdeep >> pubPubFootnotesText [
|
|||||||
^ output contents allButLast
|
^ output contents allButLast
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
Markdeep >> pubPubFootnotesToMarkdeep [
|
|
||||||
| footnotes sanitized cleanedFootnotesText parsedLinks |
|
|
||||||
footnotes := OrderedDictionary new.
|
|
||||||
parsedLinks := self pubPubFootnoteRawLinks.
|
|
||||||
parsedLinks ifEmpty: [ ^self ].
|
|
||||||
sanitized := self body.
|
|
||||||
parsedLinks do: [:link | | footnote |
|
|
||||||
footnote := self pubPubFootnoteMetadataFromString: link second.
|
|
||||||
footnote ifNotNil: [ | toReplace |
|
|
||||||
footnotes at: (footnote at: 'id') put: footnote.
|
|
||||||
toReplace := '[', link first, ']{', link second, '}'.
|
|
||||||
sanitized := sanitized copyReplaceAll: toReplace with: '[^', (footnote at: 'id'), ']'
|
|
||||||
]
|
|
||||||
].
|
|
||||||
cleanedFootnotesText := '' writeStream.
|
|
||||||
footnotes keysAndValuesDo: [:k :v |
|
|
||||||
cleanedFootnotesText
|
|
||||||
nextPutAll: '[^', k, ']: ';
|
|
||||||
nextPutAll: (v at: 'data-value'), String lf, String lf.
|
|
||||||
].
|
|
||||||
self body: (sanitized copyReplaceAll: self pubPubFootnotesText with: cleanedFootnotesText contents)
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Markdeep >> pubPubImageLinks [
|
Markdeep >> pubPubImageLinks [
|
||||||
^ self selectPubPubLinksWithSize: 3
|
^ self selectPubPubLinksWithSize: 3
|
||||||
@ -429,6 +409,24 @@ Markdeep >> removeCCByLicenseDiv [
|
|||||||
self body: (self body copyReplaceAll: licenseDiv with: '')
|
self body: (self body copyReplaceAll: licenseDiv with: '')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
Markdeep >> renamePubPubFootnotes [
|
||||||
|
| footnotesLines footnotesIDs toReplace |
|
||||||
|
footnotesLines := self contents lines
|
||||||
|
copyFrom: self pubPubFootnotesLinesRange first
|
||||||
|
to: self pubPubFootnotesLinesRange second.
|
||||||
|
footnotesIDs := self replacePubPubFootnotesIdentifiers.
|
||||||
|
toReplace := footnotesLines select: [:line |
|
||||||
|
(line includesSubstring: ' [[]{.pub-note-content-component}]{#fn-')
|
||||||
|
].
|
||||||
|
toReplace doWithIndex: [:replacement :i | | index |
|
||||||
|
index := footnotesLines indexOf: replacement.
|
||||||
|
footnotesLines at: index put: '[^', (footnotesIDs at: i),']: '
|
||||||
|
].
|
||||||
|
^ footnotesLines
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Markdeep >> replaceBackslashBreaklines [
|
Markdeep >> replaceBackslashBreaklines [
|
||||||
self bodyReplaceAll: '\
|
self bodyReplaceAll: '\
|
||||||
@ -436,6 +434,25 @@ Markdeep >> replaceBackslashBreaklines [
|
|||||||
'
|
'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
Markdeep >> replacePubPubFootnotesIdentifiers [
|
||||||
|
| footnotes sanitized parsedLinks linkIdentifiers footnotesLines |
|
||||||
|
footnotes := OrderedDictionary new.
|
||||||
|
parsedLinks := self pubPubFootnoteRawLinks.
|
||||||
|
parsedLinks ifEmpty: [ ^self ].
|
||||||
|
sanitized := self body.
|
||||||
|
linkIdentifiers := OrderedCollection new.
|
||||||
|
parsedLinks do: [:link | | id currentLinkText |
|
||||||
|
id := (link second splitOn: '.footnote') first trimmed.
|
||||||
|
linkIdentifiers add: id.
|
||||||
|
currentLinkText := '[', link first, ']{#',link second,'}'.
|
||||||
|
sanitized := sanitized copyReplaceAll: currentLinkText with: '[^', id, ']'
|
||||||
|
].
|
||||||
|
self body: sanitized.
|
||||||
|
^ linkIdentifiers
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
Markdeep >> selectPubPubLinksWithSize: naturalNumber [
|
Markdeep >> selectPubPubLinksWithSize: naturalNumber [
|
||||||
^ self pubPubRawLinks select: [ :each | each size = naturalNumber ]
|
^ self pubPubRawLinks select: [ :each | each size = naturalNumber ]
|
||||||
|
Loading…
Reference in New Issue
Block a user