49 lines
1.1 KiB
Smalltalk
49 lines
1.1 KiB
Smalltalk
|
Class {
|
||
|
#name : #CMBlockVisitor,
|
||
|
#superclass : #CMVisitor,
|
||
|
#instVars : [
|
||
|
'inlineParser'
|
||
|
],
|
||
|
#category : #'PetitMarkdown-Visitors'
|
||
|
}
|
||
|
|
||
|
{ #category : #initialization }
|
||
|
CMBlockVisitor >> initialize [
|
||
|
inlineParser := PPCommonMarkInlinesParser new.
|
||
|
]
|
||
|
|
||
|
{ #category : #'as yet unclassified' }
|
||
|
CMBlockVisitor >> visitLinkRefDef: node [
|
||
|
inlineParser registerLinkRefDef: node.
|
||
|
^ super visitLinkRefDef: node
|
||
|
]
|
||
|
|
||
|
{ #category : #'as yet unclassified' }
|
||
|
CMBlockVisitor >> visitParagraph: node [
|
||
|
| result text |
|
||
|
self assert: (node children anySatisfy: [ :e | e isLine ]).
|
||
|
text := Character cr join: (node children collect: [:e | e text]).
|
||
|
|
||
|
result := inlineParser parse: (text trimRight).
|
||
|
^ PPCMParagraph new
|
||
|
addChildren: result;
|
||
|
yourself
|
||
|
]
|
||
|
|
||
|
{ #category : #'as yet unclassified' }
|
||
|
CMBlockVisitor >> visitPlainLine: node [
|
||
|
| result |
|
||
|
self assert: node text isString.
|
||
|
result := inlineParser parse: node text.
|
||
|
^ PPCMLine new
|
||
|
addChildren: result;
|
||
|
yourself
|
||
|
]
|
||
|
|
||
|
{ #category : #'as yet unclassified' }
|
||
|
CMBlockVisitor >> visitPlainText: node [
|
||
|
^ PPCMText new
|
||
|
text: node text;
|
||
|
yourself
|
||
|
]
|