HTML writer: ensure that line numbers in code blocks get id-prefix.

Closes #5650.
This commit is contained in:
John MacFarlane 2019-07-18 22:08:37 -07:00
parent 4d65bbf0df
commit 5c655e86d5
2 changed files with 27 additions and 3 deletions

View file

@ -776,8 +776,8 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
then do
modify $ \st -> st{ stCodeBlockNum = stCodeBlockNum st + 1 }
codeblocknum <- gets stCodeBlockNum
return ("cb" ++ show codeblocknum)
else return id'
return (writerIdentifierPrefix opts ++ "cb" ++ show codeblocknum)
else return (writerIdentifierPrefix opts ++ id')
let tolhs = isEnabled Ext_literate_haskell opts &&
any (\c -> map toLower c == "haskell") classes &&
any (\c -> map toLower c == "literate") classes
@ -800,7 +800,9 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
addAttrs opts (id',classes,keyvals)
$ H.pre $ H.code $ toHtml adjCode
Right h -> modify (\st -> st{ stHighlighting = True }) >>
addAttrs opts (id'',[],keyvals) h
-- we set writerIdentifierPrefix to "" since id'' already
-- includes it:
addAttrs opts{writerIdentifierPrefix = ""} (id'',[],keyvals) h
blockToHtml opts (BlockQuote blocks) = do
-- in S5, treat list in blockquote specially
-- if default is incremental, make it nonincremental;

22
test/command/5650.md Normal file
View file

@ -0,0 +1,22 @@
````
% pandoc --id-prefix foo
```haskell
a
b
```
^D
<div class="sourceCode" id="foocb1"><pre class="sourceCode haskell"><code class="sourceCode haskell"><span id="foocb1-1"><a href="#foocb1-1"></a>a</span>
<span id="foocb1-2"><a href="#foocb1-2"></a>b</span></code></pre></div>
````
````
% pandoc --id-prefix foo
``` {.haskell #bar}
a
b
```
^D
<div class="sourceCode" id="foobar"><pre class="sourceCode haskell"><code class="sourceCode haskell"><span id="foobar-1"><a href="#foobar-1"></a>a</span>
<span id="foobar-2"><a href="#foobar-2"></a>b</span></code></pre></div>
````