git.iko.soy/typeable/pandoc
on master help sign in
HTML writer: ensure that line numbers in code blocks get id-prefix.
5c655e8John MacFarlane
src/Text/Pandoc/Writers/HTML.hs+5−3
@@ -776,8 +776,8 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
776 then do
776 then do
777 modify $ \st -> st{ stCodeBlockNum = stCodeBlockNum st + 1 }
777 modify $ \st -> st{ stCodeBlockNum = stCodeBlockNum st + 1 }
778 codeblocknum <- gets stCodeBlockNum
778 codeblocknum <- gets stCodeBlockNum
779− return ("cb" ++ show codeblocknum)
779+ return (writerIdentifierPrefix opts ++ "cb" ++ show codeblocknum)
780− else return id'
780+ else return (writerIdentifierPrefix opts ++ id')
781 let tolhs = isEnabled Ext_literate_haskell opts &&
781 let tolhs = isEnabled Ext_literate_haskell opts &&
782 any (\c -> map toLower c == "haskell") classes &&
782 any (\c -> map toLower c == "haskell") classes &&
783 any (\c -> map toLower c == "literate") classes
783 any (\c -> map toLower c == "literate") classes
@@ -800,7 +800,9 @@ blockToHtml opts (CodeBlock (id',classes,keyvals) rawCode) = do
800 addAttrs opts (id',classes,keyvals)
800 addAttrs opts (id',classes,keyvals)
801 $ H.pre $ H.code $ toHtml adjCode
801 $ H.pre $ H.code $ toHtml adjCode
802 Right h -> modify (\st -> st{ stHighlighting = True }) >>
802 Right h -> modify (\st -> st{ stHighlighting = True }) >>
803+ -- we set writerIdentifierPrefix to "" since id'' already
804+ -- includes it:
803− addAttrs opts (id'',[],keyvals) h
805+ addAttrs opts{writerIdentifierPrefix = ""} (id'',[],keyvals) h
804blockToHtml opts (BlockQuote blocks) = do
806blockToHtml opts (BlockQuote blocks) = do
805 -- in S5, treat list in blockquote specially
807 -- in S5, treat list in blockquote specially
806 -- if default is incremental, make it nonincremental;
808 -- 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+