git.iko.soy/typeable/pandoc
on master help sign in
HTML writer: ensure that line numbers in code blocks get id-prefix.

Closes #5650.

commit5c655e86d5d34172bc5892927309d8dff6023493 authorJohn MacFarlane <jgm@berkeley.edu> dateThu 18 Jul 2019, 22:08 (7 years ago) parent4d65bbf
2 files changed+27−3
src/Text/Pandoc/Writers/HTML.hs+5−3 test/command/5650.md+22
src/Text/Pandoc/Writers/HTML.hs+5−3
@@ -776,8 +776,8 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
776776 then do
777777 modify $ \st -> st{ stCodeBlockNum = stCodeBlockNum st + 1 }
778778 codeblocknum <- gets stCodeBlockNum
779− return ("cb" ++ show codeblocknum)
780− else return id'
779+ return (writerIdentifierPrefix opts ++ "cb" ++ show codeblocknum)
780+ else return (writerIdentifierPrefix opts ++ id')
781781 let tolhs = isEnabled Ext_literate_haskell opts &&
782782 any (\c -> map toLower c == "haskell") classes &&
783783 any (\c -> map toLower c == "literate") classes
@@ -800,7 +800,9 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
800800 addAttrs opts (id',classes,keyvals)
801801 $ H.pre $ H.code $ toHtml adjCode
802802 Right h -> modify (\st -> st{ stHighlighting = True }) >>
803− addAttrs opts (id'',[],keyvals) h
803+ -- we set writerIdentifierPrefix to "" since id'' already
804+ -- includes it:
805+ addAttrs opts{writerIdentifierPrefix = ""} (id'',[],keyvals) h
804806blockToHtml opts (BlockQuote blocks) = do
805807 -- in S5, treat list in blockquote specially
806808 -- if default is incremental, make it nonincremental;
test/command/5650.mdnew file+22
@@ -0,0 +1,22 @@
1+````
2+% pandoc --id-prefix foo
3+```haskell
4+a
5+b
6+```
7+^D
8+<div class="sourceCode" id="foocb1"><pre class="sourceCode haskell"><code class="sourceCode haskell"><span id="foocb1-1"><a href="#foocb1-1"></a>a</span>
9+<span id="foocb1-2"><a href="#foocb1-2"></a>b</span></code></pre></div>
10+````
11+
12+````
13+% pandoc --id-prefix foo
14+``` {.haskell #bar}
15+a
16+b
17+```
18+^D
19+<div class="sourceCode" id="foobar"><pre class="sourceCode haskell"><code class="sourceCode haskell"><span id="foobar-1"><a href="#foobar-1"></a>a</span>
20+<span id="foobar-2"><a href="#foobar-2"></a>b</span></code></pre></div>
21+````
22+