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!
new paragraph~~.
//= = = = = = = = = = = = = = = = = = = = = = = =// - - 3 //- - - - - - - - -// ~Hi~ Hello, world! //- - - - - - - - -//Hi Hello, world!
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)