Pandoc:仅将部分 markdown 转换为 LaTeX

Pandoc:仅将部分 markdown 转换为 LaTeX

我有一个如下所示的 markdown 文件:

# Sors inmotusque emicat de ope onus in

## Virgo cupidusque timet stant

Lorem *markdownum*, premeret, atque expresso contraria ossibus, et virgo et
speciem castris nostris. **Obliquis** adest, e quantum mirata me crinem gentis
clamabat versae fretoque sinistris. Speciem omne inpia illi mundi arbor virgis
misit aliquid, alas et lacertos restatque roganti. Primae patriosque, gravitate
omnes. Manu illa nec, qua est, ex vero inmittitur ursos, AI.

> Mare meritorum pellite corpore [Caras](http://cernis.com/). Nati sed aut
> moritura fluit crescitque Cereale nactusque exorabilis venias patruelibus
> arbore et invitat perfudit motatque adversi Zetesque sibi. Rectoque genua, per
> indefletaeque icta et nitentia arserat ignara caede nati semesaque. Iacentes
> lumina nutrix confluat cum positoque tuta, et quod et sanguine.

Iam pavet hac cum visis faxo undis volucres caligine odium, ubi crimen praelatus
munere strepitum fortuna solum **iunctis**! Propositique signa natas poenam
somnus quinque obstitit; iunxit si ubi in en arma,
[spatiis](http://iamqueaquarum.net/) successerat ripas. Feruntur forte moram
fore finem, piae perque **aut retia mollibat**, nec. **In obliquis**: situsque
lacerata nomine propera nubilus vincemur vestigia *consuetissima nititur
interea* repugnat.

我有两种输出格式:HTML 和 LaTeX。

我怎样才能实现仅将部分 markdown 转换为 HTML/LaTeX?

假设 markdown 文件的第一段应该出现在 HTML 文件中但不出现在 LaTeX 文件中,而最后一段应该出现在 LaTeX 文件中但不出现在 HTML 文件中。

答案1

您可以编写一个过滤器来删除被隔离的 div,具体取决于输出格式:

# Sors inmotusque emicat de ope onus in

## Virgo cupidusque timet stant

:::: onlyhtml
Lorem *markdownum*, premeret, atque expresso contraria ossibus, et virgo et
speciem castris nostris. **Obliquis** adest, e quantum mirata me crinem gentis
clamabat versae fretoque sinistris. Speciem omne inpia illi mundi arbor virgis
misit aliquid, alas et lacertos restatque roganti. Primae patriosque, gravitate
omnes. Manu illa nec, qua est, ex vero inmittitur ursos, AI.
::::

> Mare meritorum pellite corpore [Caras](http://cernis.com/). Nati sed aut
> moritura fluit crescitque Cereale nactusque exorabilis venias patruelibus
> arbore et invitat perfudit motatque adversi Zetesque sibi. Rectoque genua, per
> indefletaeque icta et nitentia arserat ignara caede nati semesaque. Iacentes
> lumina nutrix confluat cum positoque tuta, et quod et sanguine.

:::: onlylatex
Iam pavet hac cum visis faxo undis volucres caligine odium, ubi crimen praelatus
munere strepitum fortuna solum **iunctis**! Propositique signa natas poenam
somnus quinque obstitit; iunxit si ubi in en arma,
[spatiis](http://iamqueaquarum.net/) successerat ripas. Feruntur forte moram
fore finem, piae perque **aut retia mollibat**, nec. **In obliquis**: situsque
lacerata nomine propera nubilus vincemur vestigia *consuetissima nititur
interea* repugnat.
::::

该过滤器名为onlyparts.lua

function Div(el)
  if el.classes[1] == "onlyhtml" and not FORMAT:match 'html' then
    el.content = ""
  elseif el.classes[1] == "onlylatex" and not FORMAT:match 'latex' then
    el.content = ""
  end
  return el
end

现在你可以像这样使用过滤器:

$ pandoc in.md --lua-filter=./onlyparts.lua -o out.html

在此处输入图片描述

或者那个:

$ pandoc in.md --lua-filter=./onlyparts.lua -o out.pdf

在此处输入图片描述

相关内容