diff --git a/src/MiniDocs/Markdeep.class.st b/src/MiniDocs/Markdeep.class.st index f94979c..0727910 100644 --- a/src/MiniDocs/Markdeep.class.st +++ b/src/MiniDocs/Markdeep.class.st @@ -5,7 +5,6 @@ Class { #name : #Markdeep, #superclass : #Markdown, #instVars : [ - 'title', 'comments', 'tail', 'language', diff --git a/src/MiniDocs/Markdown.class.st b/src/MiniDocs/Markdown.class.st index f9bea0c..aca0e1d 100644 --- a/src/MiniDocs/Markdown.class.st +++ b/src/MiniDocs/Markdown.class.st @@ -9,7 +9,8 @@ Class { #superclass : #MarkupFile, #instVars : [ 'metadata', - 'body' + 'body', + 'title' ], #category : #'MiniDocs-Core' } @@ -64,7 +65,10 @@ Markdown >> containsYAMLMetadataClosing [ Markdown >> contents [ | response | response := WriteStream on: ''. - response + response + nextPutAll: '---'; cr; + nextPutAll: self metadataAsYAML; cr; + nextPutAll: '---'; cr; nextPutAll: self body. ^ response contents ] @@ -177,7 +181,8 @@ Markdown >> file: aFileReference [ Markdown >> fromFile: aFileReference [ self contents: aFileReference contents. self file: aFileReference. - self populateMetadata + self populateMetadata. + self body: self contentsWithoutYAMLMetadata ] { #category : #'instance creation' } @@ -195,6 +200,14 @@ Markdown >> gtTextFor: aView [ text: [ self contents ] ] +{ #category : #accessing } +Markdown >> headerAsTitle [ + | headerNode | + headerNode := self documentTree children + detect: [ :node | node className = 'PPCMHeader' and: [ node level = 1 ] ] ifNone: [ ^ nil ]. + ^ headerNode text +] + { #category : #utilities } Markdown >> lines [ self file ifNotNil: [^ self file contents lines ]. @@ -241,7 +254,7 @@ Markdown >> populateMetadata [ Markdown >> printOn: aStream [ super printOn: aStream. aStream - nextPutAll: '( ', (self metadata at: 'title' ifAbsent: ['untitled']), ' )' + nextPutAll: '( ', self title , ' )' ] { #category : #utilities } @@ -251,6 +264,11 @@ Markdown >> startsWithYAMLMetadataDelimiter [ ] +{ #category : #accessing } +Markdown >> title [ + ^ self metadata at: 'title' ifAbsentPut: [ self headerAsTitle] +] + { #category : #utilities } Markdown >> yamlMetadataClosingLineNumber [ "I return the line where the closing of the YAML metadata occurs or 0 if no closing is found."