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
|
|
]
|