diff --git a/extension/_test/strikethrough.txt b/extension/_test/strikethrough.txt index e74f58d..5f37627 100644 --- a/extension/_test/strikethrough.txt +++ b/extension/_test/strikethrough.txt @@ -5,8 +5,6 @@

Hi Hello, world!

//= = = = = = = = = = = = = = = = = = = = = = = =// - - 2 //- - - - - - - - -// This ~~has a @@ -17,11 +15,25 @@ new paragraph~~.

new paragraph~~.

//= = = = = = = = = = = = = = = = = = = = = = = =// - - 3 //- - - - - - - - -// ~Hi~ Hello, world! //- - - - - - - - -//

Hi Hello, world!

//= = = = = = = = = = = = = = = = = = = = = = = =// + +4: Three or more tildes do not create a strikethrough +//- - - - - - - - -// +This will ~~~not~~~ strike. +//- - - - - - - - -// +

This will ~~~not~~~ strike.

+//= = = = = = = = = = = = = = = = = = = = = = = =// + +5: Leading three or more tildes do not create a strikethrough, create a code block +//- - - - - - - - -// +~~~Hi~~~ Hello, world! +//- - - - - - - - -// +
+//= = = = = = = = = = = = = = = = = = = = = = = =// + + diff --git a/extension/strikethrough.go b/extension/strikethrough.go index fbb099f..9fc0bec 100644 --- a/extension/strikethrough.go +++ b/extension/strikethrough.go @@ -47,9 +47,10 @@ func (s *strikethroughParser) Parse(parent gast.Node, block text.Reader, pc pars before := block.PrecendingCharacter() line, segment := block.PeekLine() node := parser.ScanDelimiter(line, before, 1, defaultStrikethroughDelimiterProcessor) - if node == nil { + if node == nil || node.OriginalLength > 2 || before == '~' { return nil } + node.Segment = segment.WithStop(segment.Start + node.OriginalLength) block.Advance(node.OriginalLength) pc.PushDelimiter(node)