[GITEA] Require Latex code to have a end sequence
- Currently the parser will look for `\[` and `$$` to detect when Latex code starts, it will look for `\]` and `$$` respectively in order to determine the end of the code. However if no end is found the parser assumes the rest of the input is part of the Latex code. - Adjust the parser's behavior to not allow the case to assume the rest of the input is part of the Latex code and requires in order to determine if some input is Latex code that the end sequence is also specified. - Example: `\[hello]` would no longer be detected as Latex code with this patch. - Added unit tests. - Resolves https://codeberg.org/forgejo/forgejo/issues/1817 (cherry picked from commit 452aef1bb1a5ccf986f187b6467d9827b01789f3) (cherry picked from commit 8a857c24b0421145ece67a69d54e78af20689e0d) (cherry picked from commit acd1456db9e5a16ad0f697b52b789cca4f96fc7c) (cherry picked from commit 6523b45073838c168df75108b444f7fb2ef9dd2c) (cherry picked from commit e2e1a8afe7f8a2627d518e7dc18cc7f97ca86e48) (cherry picked from commit a46ef652ebac4422f6e4d48a676f8386dbfb7d0d) (cherry picked from commit 54d5a8c073f49332358d181a8dd78464c6d58641) (cherry picked from commit 4a88dc6416c7c6c552018ca0382373aa63329c9e) (cherry picked from commit f88b58be3f6964d71094a7d7fe5067d9004a303c) (cherry picked from commit 316ff9767ffc37a44949b6c504d465fc65ed4a60)
This commit is contained in:
parent
75ce1e2ac1
commit
e1a82a15d3
2 changed files with 13 additions and 4 deletions
|
@ -524,6 +524,18 @@ func TestMathBlock(t *testing.T) {
|
||||||
"$$a$$",
|
"$$a$$",
|
||||||
`<pre class="code-block is-loading"><code class="chroma language-math display">a</code></pre>` + nl,
|
`<pre class="code-block is-loading"><code class="chroma language-math display">a</code></pre>` + nl,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
`\[a b\]`,
|
||||||
|
`<pre class="code-block is-loading"><code class="chroma language-math display">a b</code></pre>` + nl,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
`\[a b]`,
|
||||||
|
`<p>[a b]</p>` + nl,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
`$$a`,
|
||||||
|
`<p>$$a</p>` + nl,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range testcases {
|
for _, test := range testcases {
|
||||||
|
|
|
@ -55,10 +55,7 @@ func (b *blockParser) Open(parent ast.Node, reader text.Reader, pc parser.Contex
|
||||||
return node, parser.Close | parser.NoChildren
|
return node, parser.Close | parser.NoChildren
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.Advance(segment.Len() - 1)
|
return nil, parser.NoChildren
|
||||||
segment.Start += 2
|
|
||||||
node.Lines().Append(segment)
|
|
||||||
return node, parser.NoChildren
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Continue parses the current line and returns a result of parsing.
|
// Continue parses the current line and returns a result of parsing.
|
||||||
|
|
Loading…
Reference in a new issue