mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
Fixes #455
This commit is contained in:
parent
fde4948b4d
commit
a590622b15
5 changed files with 29 additions and 14 deletions
12
.github/workflows/test.yaml
vendored
12
.github/workflows/test.yaml
vendored
|
|
@ -5,7 +5,7 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
go-version: [1.19.x, 1.20.x]
|
go-version: [1.21.x, 1.22.x]
|
||||||
platform: [ubuntu-latest, macos-latest, windows-latest]
|
platform: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
runs-on: ${{ matrix.platform }}
|
runs-on: ${{ matrix.platform }}
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -16,16 +16,18 @@ jobs:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Run lints
|
- name: Run lints
|
||||||
uses: golangci/golangci-lint-action@v3
|
uses: golangci/golangci-lint-action@v6
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
if: "matrix.platform == 'ubuntu-latest'" # gofmt linter fails on Windows for CRLF problems
|
if: "matrix.platform == 'ubuntu-latest'" # gofmt linter fails on Windows for CRLF problems
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
|
env:
|
||||||
|
GOLDMARK_TEST_TIMEOUT_MULTIPLIER: 5
|
||||||
run: go test -v ./... -covermode=count -coverprofile=coverage.out -coverpkg=./...
|
run: go test -v ./... -covermode=count -coverprofile=coverage.out -coverpkg=./...
|
||||||
|
- name: Install goveralls
|
||||||
|
run: go install github.com/mattn/goveralls@latest
|
||||||
- name: Send coverage
|
- name: Send coverage
|
||||||
if: "matrix.platform == 'ubuntu-latest'"
|
if: "matrix.platform == 'ubuntu-latest'"
|
||||||
env:
|
env:
|
||||||
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: goveralls -coverprofile=coverage.out -service=github
|
||||||
GO111MODULE=off go get github.com/mattn/goveralls
|
|
||||||
$(go env GOPATH)/bin/goveralls -coverprofile=coverage.out -service=github
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,6 @@
|
||||||
<p><del>Hi</del> Hello, world!</p>
|
<p><del>Hi</del> Hello, world!</p>
|
||||||
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2
|
2
|
||||||
//- - - - - - - - -//
|
//- - - - - - - - -//
|
||||||
This ~~has a
|
This ~~has a
|
||||||
|
|
@ -17,11 +15,25 @@ new paragraph~~.
|
||||||
<p>new paragraph~~.</p>
|
<p>new paragraph~~.</p>
|
||||||
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3
|
3
|
||||||
//- - - - - - - - -//
|
//- - - - - - - - -//
|
||||||
~Hi~ Hello, world!
|
~Hi~ Hello, world!
|
||||||
//- - - - - - - - -//
|
//- - - - - - - - -//
|
||||||
<p><del>Hi</del> Hello, world!</p>
|
<p><del>Hi</del> Hello, world!</p>
|
||||||
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
4: Three or more tildes do not create a strikethrough
|
||||||
|
//- - - - - - - - -//
|
||||||
|
This will ~~~not~~~ strike.
|
||||||
|
//- - - - - - - - -//
|
||||||
|
<p>This will ~~~not~~~ strike.</p>
|
||||||
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
5: Leading three or more tildes do not create a strikethrough, create a code block
|
||||||
|
//- - - - - - - - -//
|
||||||
|
~~~Hi~~~ Hello, world!
|
||||||
|
//- - - - - - - - -//
|
||||||
|
<pre><code class="language-Hi~~~"></code></pre>
|
||||||
|
//= = = = = = = = = = = = = = = = = = = = = = = =//
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,10 @@ func (s *strikethroughParser) Parse(parent gast.Node, block text.Reader, pc pars
|
||||||
before := block.PrecendingCharacter()
|
before := block.PrecendingCharacter()
|
||||||
line, segment := block.PeekLine()
|
line, segment := block.PeekLine()
|
||||||
node := parser.ScanDelimiter(line, before, 1, defaultStrikethroughDelimiterProcessor)
|
node := parser.ScanDelimiter(line, before, 1, defaultStrikethroughDelimiterProcessor)
|
||||||
if node == nil {
|
if node == nil || node.OriginalLength > 2 || before == '~' {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
node.Segment = segment.WithStop(segment.Start + node.OriginalLength)
|
node.Segment = segment.WithStop(segment.Start + node.OriginalLength)
|
||||||
block.Advance(node.OriginalLength)
|
block.Advance(node.OriginalLength)
|
||||||
pc.PushDelimiter(node)
|
pc.PushDelimiter(node)
|
||||||
|
|
|
||||||
|
|
@ -492,7 +492,7 @@ func (r *TableHTMLRenderer) renderTableCell(
|
||||||
tag = "th"
|
tag = "th"
|
||||||
}
|
}
|
||||||
if entering {
|
if entering {
|
||||||
fmt.Fprintf(w, "<%s", tag)
|
_, _ = fmt.Fprintf(w, "<%s", tag)
|
||||||
if n.Alignment != ast.AlignNone {
|
if n.Alignment != ast.AlignNone {
|
||||||
amethod := r.TableConfig.TableCellAlignMethod
|
amethod := r.TableConfig.TableCellAlignMethod
|
||||||
if amethod == TableCellAlignDefault {
|
if amethod == TableCellAlignDefault {
|
||||||
|
|
@ -505,7 +505,7 @@ func (r *TableHTMLRenderer) renderTableCell(
|
||||||
switch amethod {
|
switch amethod {
|
||||||
case TableCellAlignAttribute:
|
case TableCellAlignAttribute:
|
||||||
if _, ok := n.AttributeString("align"); !ok { // Skip align render if overridden
|
if _, ok := n.AttributeString("align"); !ok { // Skip align render if overridden
|
||||||
fmt.Fprintf(w, ` align="%s"`, n.Alignment.String())
|
_, _ = fmt.Fprintf(w, ` align="%s"`, n.Alignment.String())
|
||||||
}
|
}
|
||||||
case TableCellAlignStyle:
|
case TableCellAlignStyle:
|
||||||
v, ok := n.AttributeString("style")
|
v, ok := n.AttributeString("style")
|
||||||
|
|
@ -528,7 +528,7 @@ func (r *TableHTMLRenderer) renderTableCell(
|
||||||
}
|
}
|
||||||
_ = w.WriteByte('>')
|
_ = w.WriteByte('>')
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "</%s>\n", tag)
|
_, _ = fmt.Fprintf(w, "</%s>\n", tag)
|
||||||
}
|
}
|
||||||
return gast.WalkContinue, nil
|
return gast.WalkContinue, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -445,7 +445,7 @@ func (r *Renderer) renderList(w util.BufWriter, source []byte, node ast.Node, en
|
||||||
_ = w.WriteByte('<')
|
_ = w.WriteByte('<')
|
||||||
_, _ = w.WriteString(tag)
|
_, _ = w.WriteString(tag)
|
||||||
if n.IsOrdered() && n.Start != 1 {
|
if n.IsOrdered() && n.Start != 1 {
|
||||||
fmt.Fprintf(w, " start=\"%d\"", n.Start)
|
_, _ = fmt.Fprintf(w, " start=\"%d\"", n.Start)
|
||||||
}
|
}
|
||||||
if n.Attributes() != nil {
|
if n.Attributes() != nil {
|
||||||
RenderAttributes(w, n, ListAttributeFilter)
|
RenderAttributes(w, n, ListAttributeFilter)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue