gpt4 book ai didi

markdown - 在HTML页面的底部或底部是否有pandoc脚注?

转载 作者:行者123 更新时间:2023-12-03 13:41:02 26 4
gpt4 key购买 nike

我已经开始在Markdown中使用内联脚注:

Some text^[an aside here]. More text.

当我使用pandoc导出到HTML时,它们显示在整个文档的末尾,而在PDF中,它们显示在页面的末尾。我希望在页面末尾使用它们,并且我想知道是否有一种方法可以在HTML中以这种方式获取它们?

我意识到HTML会使页面结尾变得复杂;本节的结尾对我也一样。实际上,将它们放在PDF中该部分的末尾而不是页面末尾可能也很有用。 (我尝试将 ---放在分节符中,但脚注仍以文档结尾结尾。)

(我也尝试过制作pdf,然后制作 pdf2html,这种方法可以工作,但是确实很难看。Pandoc似乎不支持pdf到html,我得到“无法解码字节'\xd0'...” )

(这不是以下内容的重复: Generate inline rather than list-style footnotes in Pandoc Markdown output?这个问题与从另一种格式转换为 Markdown 格式时处理脚注的方式有关。)

最佳答案

不知道如何在(打印的)页面上执行此操作(我正在寻找自己的页面),但是对于逐节的脚注,您不能在将输入文档传递给pandoc之前将输入文档分成多个部分,然后重新组装之后的零件?

例如。假设您的markdown文件看起来像这样(myfile.md):

Some text with a footnote.^[First note.]
----
Some more text with a footnote.^[Second note.]
----
And a third passage.^[Third note.]

然后,您可以使用例如以下PHP脚本(尽管我敢肯定有百万种方法可以执行此操作),即 pandoc-sections.php
<?php

$input_file = $argv[1];

if (!file_exists($input_file)) {
exit('File not found.');
}

$chunks = preg_split('/\n-----*\n/',file_get_contents($input_file));

for ($i=0; $i<count($chunks); $i++) {
$chunk = $chunks[$i];
$idprefix = "section" . ($i+1);

$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w") // stderr
);

$pandoc_process = proc_open('pandoc --id-prefix=' .
$idprefix, $descriptorspec, $pipes);

if (is_resource($pandoc_process)) {
fwrite($pipes[0], $chunk);
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($pandoc_process);
}

}

?>

然后跑
php pandoc-sections.php myfile.md
你会得到:
<p>Some text with a footnote.<a href="#section1fn1" class="footnote-ref" id="section1fnref1"><sup>1</sup></a></p>
<section class="footnotes">
<hr />
<ol>
<li id="section1fn1"><p>First note.<a href="#section1section1fnref1" class="footnote-back">↩</a></p></li>
</ol>
</section>
<p>Some more text with a footnote.<a href="#section2fn1" class="footnote-ref" id="section2fnref1"><sup>1</sup></a></p>
<section class="footnotes">
<hr />
<ol>
<li id="section2fn1"><p>Second note.<a href="#section2section2fnref1" class="footnote-back">↩</a></p></li>
</ol>
</section>
<p>And a third passage.<a href="#section3fn1" class="footnote-ref" id="section3fnref1"><sup>1</sup></a></p>
<section class="footnotes">
<hr />
<ol>
<li id="section3fn1"><p>Third note.<a href="#section3section3fnref1" class="footnote-back">↩</a></p></li>
</ol>
</section>

根据需要进行调整。

关于markdown - 在HTML页面的底部或底部是否有pandoc脚注?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com