Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Line break" #887

Merged
merged 1 commit into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/Microdown-Macrodown/MacConstants.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
"
Constants to be used on the extended parser.
"
Class {
#name : 'MacConstants',
#superclass : 'SharedPool',
#classVars : [
'InlineParagraphDelimiter'
],
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'initialization' }
MacConstants class >> initialize [

InlineParagraphDelimiter := ' '
]
55 changes: 55 additions & 0 deletions src/Microdown-Macrodown/MacInlineParser.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
"
Inline parser to detect and parse extended parse functionality.

- line break with two (or more) spaces.
"
Class {
#name : 'MacInlineParser',
#superclass : 'MicInlineParser',
#pools : [
'MacConstants'
],
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'adding' }
MacInlineParser >> addLineBreakInlineBlock: indexOfAssociateOpener [
| startIndex endIndex |

startIndex := opener index + opener size.
endIndex := string indexOf: Character cr startingAt: startIndex.
(endIndex = 0
or: [ (endIndex - startIndex) = 0 ])
ifTrue: [ ^ self ].

self
addInlineBlock: indexOfAssociateOpener
from: startIndex
to: endIndex
]

{ #category : 'private' }
MacInlineParser >> extentedDelimiters [

^ { MacLineBreakDelimiter }
]

{ #category : 'actions' }
MacInlineParser >> identifyMarkupFor: aString [

^ self extentedDelimiters
detect: [ :each | each matches: aString ]
ifFound: [ :aDelimiterClass |
delimiterClass := aDelimiterClass.
aDelimiterClass applyOn: self ]
ifNone: [ super identifyMarkupFor: aString ]
]

{ #category : 'applying' }
MacInlineParser >> processLineBreak [

self delimiterFoundProcess.
self addInlineBlock: (self findType: delimiterClass type).
^ result last text size
]
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,32 @@
Block to process line breaks.
"
Class {
#name : 'MicLineBreakBlock',
#name : 'MacLineBreakBlock',
#superclass : 'MicInlineElement',
#category : 'Microdown-NewMacrodown',
#package : 'Microdown-NewMacrodown'
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'visiting' }
MicLineBreakBlock >> accept: aVisitor [
MacLineBreakBlock >> accept: aVisitor [

^ aVisitor visitLineBreak: self
]

{ #category : 'accessing' }
MicLineBreakBlock >> kind [
MacLineBreakBlock >> kind [

^ #lineBreak
]

{ #category : 'accessing' }
MicLineBreakBlock >> openingDelimiter [
MacLineBreakBlock >> openingDelimiter [

^ nil
]

{ #category : 'accessing' }
MicLineBreakBlock >> openingDelimiterSize [
MacLineBreakBlock >> openingDelimiterSize [

^ 0
]
76 changes: 76 additions & 0 deletions src/Microdown-Macrodown/MacLineBreakDelimiter.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
"
Delimiter definition for line break.
"
Class {
#name : 'MacLineBreakDelimiter',
#superclass : 'MicAbstractDelimiter',
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'applying' }
MacLineBreakDelimiter class >> applyOn: inlineParser [

^ inlineParser processLineBreak
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> associatedInlineBlock [

^ MacLineBreakBlock
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> isCloser [

^ true
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> isOpener [

^ true
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> markup [

^ #lineBreak
]

{ #category : 'testing' }
MacLineBreakDelimiter class >> matches: aString [
| indexOfCr |

(aString size >= 3) ifFalse: [ ^ false ].

indexOfCr := (aString indexOf: Character cr) - 1.
indexOfCr < 2 ifTrue: [ ^ false ].

^ (aString first: indexOfCr) allSatisfy: [ :each | each = Character space ]
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> size [

^ 1
]

{ #category : 'accessing' }
MacLineBreakDelimiter class >> type [

^ #lineBreak
]

{ #category : 'adding' }
MacLineBreakDelimiter >> addInlineBlock: anIndex to: inlineParser [

inlineParser addLineBreakInlineBlock: anIndex

]

{ #category : 'accessing' }
MacLineBreakDelimiter >> endIndex [

^ self index + self size
]
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,19 @@
Definition of ""mailto"" scheme (to let the links recognise it).
"
Class {
#name : 'MicMailtoResourceReference',
#name : 'MacMailtoResourceReference',
#superclass : 'MicAbsoluteResourceReference',
#category : 'Microdown-Macro',
#package : 'Microdown',
#tag : 'Macro'
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'instance creation' }
MicMailtoResourceReference class >> handlesUriScheme: scheme [
MacMailtoResourceReference class >> handlesUriScheme: scheme [
^ scheme beginsWith: 'mailto'
]

{ #category : 'accessing' }
MicMailtoResourceReference >> contents [
MacMailtoResourceReference >> contents [

^ self error: 'Should not arrive here?'
]
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
"
This class is copied as it was from Macrodown package.

Paragraph extension to process the extended inlines.

"
Class {
#name : 'MacParagraphBlock',
Expand All @@ -11,10 +8,10 @@ Class {
'textWithoutBreak'
],
#pools : [
'MacMicrodownSharedPool'
'MacConstants'
],
#category : 'Microdown-NewMacrodown',
#package : 'Microdown-NewMacrodown'
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'parising' }
Expand All @@ -26,7 +23,7 @@ MacParagraphBlock >> addLineAndReturnNextNode: line [
(line endsWith: InlineParagraphDelimiter) ifFalse: [ ^ self ].
"add nodes up to now, then insert break and continue"
children addAll: (self inlineParse: textWithoutBreak).
children add: MicLineBreakBlock new.
children add: (MacLineBreakBlock new).
textWithoutBreak := nil
]

Expand Down
53 changes: 53 additions & 0 deletions src/Microdown-Macrodown/MacRawParagraphBlock.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
"
A raw paragraph block is a block that containes raw content (e.g. plain HTML)
"
Class {
#name : 'MacRawParagraphBlock',
#superclass : 'MicParagraphBlock',
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'private' }
MacRawParagraphBlock class >> htmlTags [

^ #('!--' 'a' 'abbr' 'address' 'area' 'article' 'aside' 'audio' 'b' 'base' 'bdi' 'bdo' 'blockquote' 'body' 'br' 'button' 'canvas' 'caption' 'cite' 'code' 'col' 'colgroup' 'data' 'datalist' 'dd' 'del' 'details' 'dfn' 'dialog' 'div' 'dl' 'dt' 'em' 'embed' 'fieldset' 'figcaption' 'figure' 'footer' 'form' 'h1' 'h2' 'h3' 'h4' 'h5' 'h6' 'head' 'header' 'hgroup' 'hr' 'html' 'i' 'iframe' 'img' 'input' 'ins' 'kbd' 'label' 'legend' 'li' 'link' 'main' 'map' 'mark' 'menu' 'meta' 'meter' 'nav' 'noscript' 'object' 'ol' 'optgroup' 'option' 'output' 'p' 'param' 'picture' 'pre' 'progress' 'q' 'rb' 'rp' 'rt' 'rtc' 'ruby' 's' 'samp' 'script' 'section' 'select' 'slot' 'small' 'source' 'span' 'strong' 'style' 'sub' 'summary' 'sup' 'table' 'tbody' 'td' 'template' 'textarea' 'tfoot' 'th' 'thead' 'time' 'title' 'tr' 'track' 'u' 'ul' 'var' 'video' 'wbr')
]

{ #category : 'testing' }
MacRawParagraphBlock class >> matches: aString [

^ self matches: aString trimLeft withAnyOf: self htmlTags
]

{ #category : 'private' }
MacRawParagraphBlock class >> matches: aString withAnyOf: htmlTags [

aString ifEmpty: [ ^ false ].
^ (aString first = $<)
and: [ htmlTags includes: (aString readStream upToAnyOf: '> ') allButFirst ]
]

{ #category : 'testing' }
MacRawParagraphBlock class >> matchesComment: aString [

^ self
matches: aString trimLeft
withAnyOf: { self htmlTags first }
]

{ #category : 'visiting' }
MacRawParagraphBlock >> accept: aVisitor [

^ aVisitor visitRawParagraph: self
]

{ #category : 'parse support' }
MacRawParagraphBlock >> closeMe [

self children: {
MicRawBlock
from: 1
to: text size
withSubstring: text }
]
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This is a variation of the MicrodownParser that tries to be as close as possible
Class {
#name : 'MacrodownParser',
#superclass : 'MicrodownParser',
#category : 'Microdown-NewMacrodown',
#package : 'Microdown-NewMacrodown'
#category : 'Microdown-Macrodown',
#package : 'Microdown-Macrodown'
}

{ #category : 'public' }
Expand Down
13 changes: 13 additions & 0 deletions src/Microdown-Macrodown/MicAbstractDelimiter.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Extension { #name : 'MicAbstractDelimiter' }

{ #category : '*Microdown-Macrodown' }
MicAbstractDelimiter classSide >> applyOn: inlineParser [

self subclassResponsibility
]

{ #category : '*Microdown-Macrodown' }
MicAbstractDelimiter classSide >> matches: aString [

^ false
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Extension { #name : 'MicMicrodownObjectToPillarObjectConverter' }

{ #category : '*Microdown-Macrodown' }
MicMicrodownObjectToPillarObjectConverter >> visitLineBreak: aBreak [

^ PRLineBreak new
]

{ #category : '*Microdown-Macrodown' }
MicMicrodownObjectToPillarObjectConverter >> visitRawParagraph: aRawParagraph [

^ PRRaw content: aRawParagraph text
]
12 changes: 12 additions & 0 deletions src/Microdown-Macrodown/MicrodownVisitor.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Extension { #name : 'MicrodownVisitor' }

{ #category : '*Microdown-Macrodown' }
MicrodownVisitor >> visitLineBreak: aBreak [

]

{ #category : '*Microdown-Macrodown' }
MicrodownVisitor >> visitRawParagraph: aRawParagraph [

^ self visitChildrenOf: aRawParagraph
]
33 changes: 0 additions & 33 deletions src/Microdown-NewMacrodown/MacMicrodownSharedPool.class.st

This file was deleted.

Loading
Loading