Pandoc 一文读懂

2023-12-12 14:45
文章标签 一文 读懂 pandoc

本文主要是介绍Pandoc 一文读懂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.1Pandoc 简介

Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。

1.1.1 Pandoc 支持转换格式

from 格式类型:

  • bibtex (BibTeX bibliography)
  • biblatex (BibLaTeX bibliography)
  • bits (BITS XML, alias for jats)
  • commonmark (CommonMark Markdown)
  • commonmark_x (CommonMark Markdown with extensions)
  • creole (Creole 1.0)
  • csljson (CSL JSON bibliography)
  • csv (CSV table)
  • tsv (TSV table)
  • docbook (DocBook)
  • docx (Word docx)
  • dokuwiki (DokuWiki markup)
  • endnotexml (EndNote XML bibliography)
  • epub (EPUB)
  • fb2 (FictionBook2 e-book)
  • gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
  • haddock (Haddock markup)
  • html (HTML)
  • ipynb (Jupyter notebook)
  • jats (JATS XML)
  • jira (Jira/Confluence wiki markup)
  • json (JSON version of native AST)
  • latex (LaTeX)
  • markdown (Pandoc’s Markdown)
  • markdown_mmd (MultiMarkdown)
  • markdown_phpextra (PHP Markdown Extra)
  • markdown_strict (original unextended Markdown)
  • mediawiki (MediaWiki markup)
  • man (roff man)
  • muse (Muse)
  • native (native Haskell)
  • odt (ODT)
  • opml (OPML)
  • org (Emacs Org mode)
  • ris (RIS bibliography)
  • rtf (Rich Text Format)
  • rst (reStructuredText)
  • t2t (txt2tags)
  • textile (Textile)
  • tikiwiki (TikiWiki markup)
  • twiki (TWiki markup)
  • typst (typst)
  • vimwiki (Vimwiki)
  • 基于Lua 自定义读取

to 格式类型

  • asciidoc (modern AsciiDoc as interpreted by AsciiDoctor)
  • asciidoc_legacy (AsciiDoc as interpreted by asciidoc-py).
  • asciidoctor (deprecated synonym for asciidoc)
  • beamer (LaTeX beamer slide show)
  • bibtex (BibTeX bibliography)
  • biblatex (BibLaTeX bibliography)
  • chunkedhtml (zip archive of multiple linked HTML files)
  • commonmark (CommonMark Markdown)
  • commonmark_x (CommonMark Markdown with extensions)
  • context (ConTeXt)
  • csljson (CSL JSON bibliography)
  • docbook or docbook4 (DocBook 4)
  • docbook5 (DocBook 5)
  • docx (Word docx)
  • dokuwiki (DokuWiki markup)
  • epub or epub3 (EPUB v3 book)
  • epub2 (EPUB v2)
  • fb2 (FictionBook2 e-book)
  • gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
  • haddock (Haddock markup)
  • html or html5 (HTML, i.e. HTML5/XHTML polyglot markup)
  • html4 (XHTML 1.0 Transitional)
  • icml (InDesign ICML)
  • ipynb (Jupyter notebook)
  • jats_archiving (JATS XML, Archiving and Interchange Tag Set)
  • jats_articleauthoring (JATS XML, Article Authoring Tag Set)
  • jats_publishing (JATS XML, Journal Publishing Tag Set)
  • jats (alias for jats_archiving)
  • jira (Jira/Confluence wiki markup)
  • json (JSON version of native AST)
  • latex (LaTeX)
  • man (roff man)
  • markdown (Pandoc’s Markdown)
  • markdown_mmd (MultiMarkdown)
  • markdown_phpextra (PHP Markdown Extra)
  • markdown_strict (original unextended Markdown)
  • markua (Markua)
  • mediawiki (MediaWiki markup)
  • ms (roff ms)
  • muse (Muse)
  • native (native Haskell)
  • odt (OpenOffice text document)
  • opml (OPML)
  • opendocument (OpenDocument)
  • org (Emacs Org mode)
  • pdf (PDF)
  • plain (plain text)
  • pptx (PowerPoint slide show)
  • rst (reStructuredText)
  • rtf (Rich Text Format)
  • texinfo (GNU Texinfo)
  • textile (Textile)
  • slideous (Slideous HTML and JavaScript slide show)
  • slidy (Slidy HTML and JavaScript slide show)
  • dzslides (DZSlides HTML5 + JavaScript slide show)
  • revealjs (reveal.js HTML5 + JavaScript slide show)
  • s5 (S5 HTML and JavaScript slide show)
  • tei (TEI Simple)
  • typst (typst)
  • xwiki (XWiki markup)
  • zimwiki (ZimWiki markup)
  • 基于Lua 自定义写入

1.1.2 Pandoc 功能拓展

Pandoc 可以基于LaTeX、Groff ms或HTML生成PDF。

Pandoc 针对Markdown 增强语法包含:包括表格、定义列表、元数据块、脚注、引文、数学等语法。

Pandoc  包含模块设计器,它由一组读取器和一组写入器构成。读取器主要用于解析指定文本并产生文档对象。写入器主要用于将文档对象转换为模板对象。用户基于Lua 实现自定义读取器和写入器的filter来修改AST。

1.2 Pandoc 安装

Window 10 安装Pandoc

1. 安装软件
1)首先打开官网地址下载好的安装包: pandoc-3.1.9-windows-x86_64.msi

Pandoc Github 下载 地址:https://github.com/jgm/pandoc/tags

 

我这里选择了 Pandoc  最新 版本:Windows_x86_64 位版本

2)不用更改设置,傻瓜式操作,下一步下一步完成

3)软件安装成功

2. 测试是否安装成功
1)打开CMD命令提示符

2)输入pandoc --version命令

3)会显示出pandoc的版本信息,则说明安装成功了

Linux 安装Pandoc

# 通过apt-get 下载pandoc
sudo apt-get install pandoc
Do you want to continue? [Y/n] Y
******
# 查看pandoc 版本信息验证是否安装成功
pandoc --version
******

1.3 Pandoc 使用指南

Pandoc 使用

1)如果没有指定输入文件,则从标准输入中实现读取。默认情况下输出为Output,输出至指定文件请使用参数:-o

Windows 演示:在D:\test 文件夹下新增input.text, 输入文本内容如下:"Hello Pandoc".

在CMD 窗口执行如下命令:D:\test>pandoc -o output.html input.txt

效果截图:

2)默认情况下,Pandoc 仅仅是生成HTML片段,希望生成 一个标准HTML页面,请使用参数:-s/-standalone.

在CMD 窗口执行如下命令:D:\test>pandoc -s -o output.html input.txt

CMD 窗口指令:

D:\test>pandoc -s -o output.html input.txt
[WARNING] This document format requires a nonempty <title> element.Defaulting to 'input' as the title.To specify a title, use 'title' in metadata or --metadata title="...".

 警告:标准文档要求title 标签对象非空,指定title 可以通过参数:--metadata title ="***" 实现添加。

CMD 窗口指令优化:

D:\test>pandoc -s -o output.html input.txt --metadata title="Html 标准格式"

效果截图:

 

3) 如果输入文件有多个,Pandoc 会自动将多个文件进行合并。请使用参数:--file-scope

Windows 演示:在D:\test 文件夹下新增input1.text, 输入文本内容如下:"Pandoc 多文件合并".

在CMD 窗口执行如下命令:D:\test>pandoc --file-scope -s -o output.html input.txt input1.txt --metadata title="HTML 标准格式"

效果截图:

4)Pandoc  指定输入格式,请使用参数:-f/--from, Pandoc 指定输出格式,请使用参数:-t/--to。实例:将hello.txt 文本转换为markdown,需要结合使用latex 工具。Pandoc 指令如下:

pandoc -f markdown -t latex hello.txt

 实例:将基于Makedown 编写的HTML文件生成hello.html。Pandoc 指令如下:

pandoc -f html -t markdown hello.html

5) 查看Pandoc 支持的输入格式和输出格式,请使用如下指令:

D:\test>pandoc --list-input-formats
biblatex
bibtex
bits
commonmark
******
D:\test>pandoc --list-output-formats
asciidoc
asciidoc_legacy
asciidoctor
beamer
biblatex
bibtex
chunkedhtml
commonmark
commonmark_x
******

Pandoc指定格式

Pandoc 默认使用UTF-8字符编码处理输入和输出。如果你本地编码格式不是UTF-8, 你可以通过iconv设置编码格式。

iconv -t utf-8 input.txt | iconv -f utf-8

Pandoc 生成PDF

实例:将test.txt 文本生成PDF 文件,请使用如下指令:

pandoc test.txt -o test.pdf

默认情况下,Pandoc将使用LaTeX创建PDF,这需要安装LaTeX引擎(请参阅下面的--pdf-engine)。或者,Pandoc也可以使用ConTeXt、roff ms或HTML等中间件。指定PDF生成引擎可以通过--pdf-engine参数或者 -t context, -t html, or -t ms 。

你可以使用变量控制PDF的样式,主要取决于生成PD

pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" \https://www.fsf.org

F选择的中间件,请参考LaTex 变量、ConTeXt变量、wkhtmltopdf变量、ms 变量。使用HTML作为中间控制PDF样式使用CSS变量控制。

Pandoc 基于web 生成

实例:将基于Markdown 的网站:https://www.fsf.org.输出为HTML

pandoc -f html -t markdown https://www.fsf.org

 添加头部请求参数:

pandoc -f html -t markdown --request-header User-Agent:"Mozilla/5.0" \https://www.fsf.org

参考资料:

Pandoc 官网开发指南: https://pandoc.org/MANUAL.html

这篇关于Pandoc 一文读懂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/484989

相关文章

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成

读懂《机器学习实战》代码—K-近邻算法

一,K近邻算法概念 K近邻算法即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。KNN 算法是一种 lazy-learning 算法,分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为 n,

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

一文说清什么是AI原生(AI Native)应用以及特点

引言:智能新纪元 如今,走在街头,哪儿不被智能科技包围?智能音箱、自动驾驶汽车、聊天机器人......这些都在用不同的方式提升我们的生活体验。然而,究竟什么才能称得上“AI原生应用”呢? 什么是AI原生?   AI原生不仅仅是简单地引入人工智能功能。真正的AI原生应用犹如一个智慧的“大脑”,它的每一个决策都依赖于深度学习与数据分析。以Siri为例,它通过学习用户的习惯和需求,提供个性化的

世界公认十大护眼灯数据出炉!一文看懂孩子用的台灯哪个牌子好

近年来,随着科技的迅猛发展,诸如智能手机、电脑等电子设备在工作、学习及娱乐中的应用日益广泛,人们对这些设备的依赖程度也随之加深。然而,长时间面对屏幕不可避免地给眼睛带来伤害,如眼疲劳、干燥甚至近视等问题。因此,市场对能够缓解眼疲劳的照明产品的需求日益增长。这类护眼照明产品通常采用无频闪、无紫外线辐射等技术,旨在减少对眼睛的潜在危害,有效保护视力健康,并降低眼疾的发生率。随着护眼台灯的不断创新进步,

一文详解go底层原理之垃圾回收

1 前置知识 1.1 三色回收法 三色回收法在gov1.5版本时是主流的gc方式 简单介绍一下流程: 暂停程序执行流程(开启STW)将新创建的对象全部标记为白色从根节点开始遍历,把遍历到的第一层全部改为灰色遍历一次灰色集合,将灰色集合引用对象变为黑色重复上述步骤,知道没有灰色对象清除白色对象结束STW 1.2 STW 上述1.1所说的STW就是指的stop the world,简单的说

涉密电脑插U盘会不会被发现?如何禁止涉密电脑插U盘?30秒读懂!

在涉密电脑插U盘的那一瞬间,你是否也好奇会不会被发现?涉密电脑的安全监控可是滴水不漏的!想知道如何彻底禁止涉密电脑插U盘?简单几招搞定,轻松锁死外部设备,信息安全无懈可击! 涉密电脑插U盘会不会被发现? 涉密电脑是否会在插入U盘时被发现,需要根据具体情况来判断。在一些情况下,涉密电脑可能没有安装任何监控软件或安全工具,插入U盘可能不会立即触发警告。然而,随着信息安全管理的不断升级,越来越多

Apache Spark3.0什么样?一文读懂Apache Spark最新技术发展与展望

简介: 阿里巴巴高级技术专家李呈祥带来了《Apache Spark 最新技术发展和3.0+ 展望》的全面解析,为大家介绍了Spark在整体IT基础设施上云背景下的新挑战和最新技术进展,同时预测了Spark 3.0即将重磅发布的新功能。 2019阿里云峰会·上海开发者大会于7月24日盛大开幕,在本次峰会的开源大数据专场上,阿里巴巴高级技术专家李呈祥带来了《Apache Spark 最新技术发展和

一文俯瞰Elasticsearch核心原理

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多惊喜 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! Lucene 介绍 Lucene是一种高性能、可伸缩的信息搜索(IR)库,在2000年开源,最初由鼎鼎大名的Doug Cutting开发,是基于Java实现的高性能的开源项目。Lucene采用了基于倒排表的设计原理,可以非常高

【数字信号处理】一文讲清FFT(快速傅里叶变换)

目录 快速傅里叶变换(Fast Fourier Transform,FFT)FFT的背景快速傅里叶变换(Fast Fourier Transform,FFT)DFT的数学表达实际计算重要性和应用频谱泄露、频谱混叠奈奎斯特采样定理参考链接 快速傅里叶变换(Fast Fourier Transform,FFT) FFT的背景 1、为什么要时域→频域频率?50Hz+频率120Hz