Extension { #name : #LePage } { #category : #'*Markdeep' } LePage >> asMarkdeep [ | bodyStream markdeep | bodyStream := '' writeStream. self preorderTraversal do: [:snippet | bodyStream nextPutAll: snippet asMarkdeep ]. markdeep := Markdeep new title: self title; body: bodyStream contents; navTop: self navTop. self metadata keysAndValuesDo: [:k :v | k = 'lang' ifTrue: [ markdeep head add: ''; yourself. ] ifFalse: [ markdeep head add: ''; yourself. ] ]. self metadata at: 'authors' ifPresent: [:author | markdeep metadata at: 'authors' put: author ]. self metadata at: 'version' ifPresent: [:version | markdeep metadata at: 'version' put: version ]. ^ markdeep. ] { #category : #'*Markdeep' } LePage >> asMarkdeepFile [ | folder | folder := self options at: 'storage' ifAbsent: [ FileLocator temp ]. ^ self asMarkdeep exportAsFileOn: folder / self markdeepFileName ] { #category : #'*Markdeep' } LePage >> markdeepFileName [ | sanitized | sanitized := self title asDashedLowercase copyWithoutAll: #($/). ^ sanitized, '--',(self uidString copyFrom: 1 to: 5), '.md.html'. ]