diff --git a/src/MiniDocs/HedgeDoc.class.st b/src/MiniDocs/HedgeDoc.class.st index 49b21a1..4efbb71 100644 --- a/src/MiniDocs/HedgeDoc.class.st +++ b/src/MiniDocs/HedgeDoc.class.st @@ -31,11 +31,13 @@ HedgeDoc class >> newDefault [ HedgeDoc >> asLePage [ | newPage snippet | snippet := LeTextSnippet new - string: self bodyWithoutTitleHeader. + string: self bodyWithoutTitleHeader promoteMarkdownHeaders. newPage := LePage new initializeTitle: self title; addSnippet: snippet; yourself. + newPage incomingLinks. + newPage metadata addAll: self metadata. ^ newPage ] diff --git a/src/MiniDocs/LeHeaderNode.extension.st b/src/MiniDocs/LeHeaderNode.extension.st new file mode 100644 index 0000000..53fff8d --- /dev/null +++ b/src/MiniDocs/LeHeaderNode.extension.st @@ -0,0 +1,8 @@ +Extension { #name : #LeHeaderNode } + +{ #category : #'*MiniDocs' } +LeHeaderNode >> headerFullName [ + ^ self topParent completeSource + copyFrom: self startPosition + to: self stopPosition +] diff --git a/src/MiniDocs/String.extension.st b/src/MiniDocs/String.extension.st index 3352cd6..b97431e 100644 --- a/src/MiniDocs/String.extension.st +++ b/src/MiniDocs/String.extension.st @@ -50,6 +50,16 @@ String >> detectYAMLMetadata [ ifFound: [ ^ true ] ifNone: [ ^ false ] ] ] +{ #category : #'*MiniDocs' } +String >> promoteMarkdownHeaders [ + | headers response | + response := self contents. + headers := (LeTextSnippet string: response) ast // #LeHeaderNode collect: [ :each | each headerFullName asString ]. + headers do: [ :each | + response := response copyReplaceAll: each with: each allButFirst ]. + ^ response +] + { #category : #'*MiniDocs' } String >> romanizeAccents [ | modified corrections |