- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试 Hakyll对于学术和数学为主的静态网站。我想使用 pandoc-crossref用于对方程式的交叉引用。
将 pandoc-crossref
包含到编译器链中的最简单方法是什么?
到目前为止,我能够像这样将引用书目集成到编译器中
pandocComplilerWithBibAndOptions :: Compiler (Item String)
pandocComplilerWithBibAndOptions = do
csl <- load $ fromFilePath "apa.csl"
bib <- load $ fromFilePath "bibliography.bib"
fmap write (getResourceString >>= read csl bib)
where
read = readPandocBiblio readerOptions
write = writePandocWith writerOptions
readerOptions = defaultHakyllReaderOptions {
readerExtensions = newExtentions <> pandocExtensions
}
writerOptions = defaultHakyllWriterOptions {
writerExtensions = newExtentions <> pandocExtensions,
writerHTMLMathMethod = MathJax ""
}
newExtentions = extensionsFromList [Ext_tex_math_double_backslash,
Ext_citations,
Ext_latex_macros]
main :: IO ()
main = hakyll $ do
...
match "posts/*" $ do
route $ setExtension "html"
compile $ pandocComplilerWithBibAndOptions
>>= loadAndApplyTemplate "templates/post.html" postCtx
>>= loadAndApplyTemplate "templates/default.html" postCtx
>>= relativizeUrls
match "*.bib" $ compile biblioCompiler
match "*.csl" $ compile cslCompiler
...
虽然这很好用,但我对如何集成交叉引用一无所知。我最好的选择是将其表达为某种转换并使用 pandocCompileWithTransformM
,但我不知道如何整合引用书目。
最佳答案
Text.Pandoc.CrossRef
APIimport Text.Pandoc.CrossRef
import Text.Pandoc.Definition (Pandoc) -- pandoc-types
crossRef :: Pandoc -> Pandoc
crossRef = runCrossRef meta Nothing defaultCrossRefAction
where
meta = defaultMeta -- Settings for crossref rendering
尝试在 read
和 write
之间插入:
fmap (write . fmap crossRef) (getResourceString >>= read csl bib)
pandoc-crossref
可执行文件pandoc-crossref
提供一个过滤器作为可执行文件。
pandoc 库有一个函数 applyFilters
允许您通过提供可执行文件的路径来运行此类过滤器。
applyFilters :: ... -> Pandoc -> m Pandoc
您可以在read
和write
之间插入。
--
filterCrossRef :: Pandoc -> PandocIO Pandoc
filterCrossRef = applyFilters env ["pandoc-crossref"] []
将其嵌入到 hakyll Compiler
monad 中需要一些额外的步骤(可能是 hakyll 中的 recompilingUnsafeCompiler
以及从 PandocIO
到 IO
在 pandoc 中)。
关于haskell - 如何在 Hakyll 中使用 pandoc-crossref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74600615/
我正在尝试 Hakyll对于学术和数学为主的静态网站。我想使用 pandoc-crossref用于对方程式的交叉引用。 将 pandoc-crossref 包含到编译器链中的最简单方法是什么? 到目前
我正在使用 habanero库以检索给定 DOI 的引文信息。在尝试检索有关引用给定 DOI 的作品的信息时,我遇到了障碍。例如, from habanero import counts c = co
是否可以使用 CrossRef Rest API 获取 Zenodo 中出版物的元数据? 例如,调用 https://api.crossref.org/works/10.5281/zenodo.259
是否可以使用 CrossRef Rest API 获取 Zenodo 中出版物的元数据? 例如,调用 https://api.crossref.org/works/10.5281/zenodo.259
表达式 reftex-view-crossref-extra为 reftex-view-crossref 设置附加模式功能。它由宏正则表达式、搜索正则表达式和高亮组组成(如下图所示): (MACRO-
如果您将 CrossRef 电子邮件放入以下 URL 会生成一个 XML 文件 "http://www.crossref.org/openurl?title=Science&aulast=Fern
我想通过将 DOI(数字对象标识符)发送到 http://www.crossref.org 来检索 bibtex 数据(用于构建引用书目)从 matlab 中。 crossref API 建议是这样的
我是一名优秀的程序员,十分优秀!