Linux命令 pandoc
pandoc源码
MMD语法参考
官方参考文档
Pandoc Markdown
Pandoc中的Markdown语法
#####################################
[](https://github.com/jgm/pandoc-templates.git)
[](https://github.com/jgm/pandocfilters.git)
[](https://github.com/kjhealy/pandoc-templates.git)
eval "$(pandoc --bash-completion)" #
pandoc --list-highlight-styles # 查看支持的语法高亮样式
pandoc --list-input-formats
pandoc -t markdown_github+pipe_tables url -o file.md
#增加markdown +表格转换
pandoc -t markdown+implicit_figures+link_attributes url -o file.md
#增加图片解析 + 表格解析
pandoc -t markdown-markdown_in_html_blocks url -o file.md
#移除多余的html标识
find ./posts -name '*.md' -exec pandoc {} -s -S --toc -o {}.html \;
# markdown 转 html
curl -s http://www.xker.com/page/e2012/0926/120758.html | iconv -f gb2312 -t utf-8 | pandoc -f html -o iptables常用规则.md -t markdown_github+auto_identifiers
#中文编码gb2312curl -s http://freeloda.blog.51cto.com/2033581/1241545 | iconv -f gbk -t utf-8 | pandoc -f html -o iptables详解及7层过滤.md -t markdown_github+auto_identifiers
#gbk编码
pandoc -f html -t markdown http://www.fsf.org
-f参数用于指定源文件格式
-t参数用于指定输出文件格式
-o参数用于指定输出文件
-s, --standalone #不输出header and footer 信息
[](https://xuanwo.org/2015/11/14/pandoc/?utm_source=tuicool&utm_medium=referral)
docker run jagregory/pandoc
查看支持的输出格式
pandoc --list-output-formats
json
latex
markdown
markdown_github
markdown_mmd
markdown_phpextra
markdown_strict
Markdown
(pandoc's extended Markdown)- [footnotes],[tables], flexible [ordered lists], [definition lists], [fenced code blocks],
[superscripts and subscripts], [strikeout], [metadata blocks], automatic tables of
contents, embedded LaTeX [math], [citations], and [Markdown inside HTML block
elements][Extension:markdown_in_html_blocks
]markdown_phpextra
(PHP Markdown Extra)footnotes
,pipe_tables
,raw_html
,markdown_attribute
,fenced_code_blocks
,definition_lists
,intraword_underscores
,header_attributes
,link_attributes
,abbreviations
,shortcut_reference_links
.markdown_github
(GitHub-Flavored Markdown)pipe_tables
,raw_html
,fenced_code_blocks
,auto_identifiers
,ascii_identifiers
,backtick_code_blocks
,autolink_bare_uris
,intraword_underscores
,strikeout
,hard_line_breaks
,emoji
,shortcut_reference_links
,angle_brackets_escapable
.markdown_mmd
(MultiMarkdown)pipe_tables
,raw_html
,markdown_attribute
,mmd_link_attributes
,tex_math_double_backslash
,intraword_underscores
,mmd_title_block
,footnotes
,definition_lists
,all_symbols_escapable
,implicit_header_references
,auto_identifiers
,mmd_header_identifiers
,shortcut_reference_links
.markdown_strict
(Markdown.pl)raw_html
,
implicit_header_references`,
`auto_identifiers`, `mmd_header_identifiers`,
`shortcut_reference_links`.
markdown_strict
(Markdown.pl)raw_html
查看支持的Extension
pandoc --list-extensions
段落
Extension: escaped_line_breaks
Definition lists 列表
Extension: definition_lists
Term 1
: Definition 1
Extension: example_lists
Tables 表格
Extension: table_captions
Extension: simple_tables
Extension: multiline_tables
Extension: grid_tables
Extension: pipe_tables
Metadata blocks
Extension: pandoc_title_block
% title
% author(s) (separated by semicolons)
% date
Extension: yaml_metadata_block
title: 'This is the title: colon'
author:
- Author One
Author Two
tags: [nothing, nothingness]
abstract: |
This is the abstract.Backslash escapes 特殊字符
Extension: all_symbols_escapable
Markdown provides backslash escapes for the following characters: \ backslash ` backtick * asterisk _ underscore {} curly braces [] square brackets () parentheses # hash mark + plus sign - minus sign (hyphen) . dot ! exclamation mark
Emphasis 强调
strong emphasis and with underscores
Extension: intraword_underscores 斜体
用 替换
Extension: strikeout 删除线删除线
Extension: superscript, subscript 上标 下标2^10
2^10,1^
H~2~O
H~2n
Verbatimhtml 嵌入html 元素
Extension: raw_html
Extension:markdown_in_html_blocks
Extension: native_divs
Extension: native_spansImages 图像
1.Extension: implicit_figures # 添加图片解析 ![]()
2.Extension: link_attributes #添加图像属性(若转换失败添加此项)
{ width=50% }Spans
Extension: bracketed_spans
Footnotes 脚注
Extension: footnotes
Here is a footnote reference,1 and another.2
Extension: inline_notes
Here is an inline note.3Citations 引用
Extension: citations
未启用插件
Extension: angle_brackets_escapable
all_symbols_escapable
Extension: lists_without_preceding_blankline
Extension: hard_line_breaks
Extension: ignore_line_breaks
Extension: east_asian_line_breaks
Extension: emoji
Extension: tex_math_single_backslash
Extension: tex_math_double_backslash
Extension: markdown_attribute
Extension: mmd_title_block
Extension: abbreviations
Extension: autolink_bare_uris
Extension: ascii_identifiers
Extension: mmd_link_attributes
Extension: mmd_header_identifiers
Extension: compact_definition_lists
################################################################################HTML [](http://www.cnblogs.com/xuxinkun/p/5368809.html)
写成HTML,也就是网页形式是最普遍的。有很多工具可以直接生成HTML。常用的工具比如python-Markdown,pandoc。
这里比较推荐的是pandoc。其支持众多的格式转化,如下图:
使用pandoc可以轻松的生成HTML,pdf等等诸多格式,还可以制作ppt(下文将详述)。pandoc支持多个平台,包括windows。下载安装即可,环境搭建极其简单。
制作HTML
下面,我们可以使用一条命令就能够生成HTML。
pandoc.exe -t html -s .\xxx.markdown -o .\xxx.html
该命令含义为将xxx.markdown
文件转化为html,并输出到xxx.html
中。
打开xxx.html
可以看到markdown已经被对应转化为了HTML。比如一级标题被转为<h1></h1>
,代码被转为<code></code>
。
但是这样的HTML虽然可读性很强,但是不够美观。因此我们需要给他加上一些样式。pandoc提供了一个样例样式。在生成html时将CSS样式引入,即可。这里看一个样例。
pandoc -s -S --toc -c pandoc.css -A footer.html README -o example3.html
这里说明一下--toc
是让pandoc为该文档自动生成目录索引。-c
即引入pandoc.css作为生成页面的css。最后生成出来的页面效果就会美观很多。当然也可以使用自己定义CSS样式。
制作PPT
使用reveal.js做ppt,炫酷的3D切换效果绝对惊艳。不信可以看看在线demo。reveal.js本身支持使用markdown编写ppt内容。但是你需要修改在一个HTML中嵌入markdown语句,无论是易读和维护性上,都不如直接使用markdown的纯文本来的直观。如果使用pandoc,则可以将markdown的纯文本转换为reveal.js的PPT页面。你只需要执行下面的语句:
git clone https://github.com/hakimel/reveal.js.git
pandoc.exe -t revealjs -s xxx.md -V theme=sky -V transition=convex -o .\xxx.html
-V theme=sky
可以指定使用reveal.js的样式,-V transition=convex
可以指定其切换效果。最后生成的效果可以参看这里。
Pandoc Docker container with XeLaTeX
Provides a Docker container with Pandoc
and LaTeX
installed.
$ docker run --rm -v `pwd`:/data jpbernius/pandoc
pandoc [OPTIONS] [FILES]
Input formats: commonmark, docbook, docx, epub, haddock, html, json*, latex,
markdown, markdown_github, markdown_mmd, markdown_phpextra,
markdown_strict, mediawiki, native, odt, opml, org, rst, t2t,
textile, twiki
[ *only Pandoc's JSON version of native AST]
Output formats: asciidoc, beamer, commonmark, context, docbook, docx, dokuwiki,
dzslides, epub, epub3, fb2, haddock, html, html5, icml, json*,
latex, man, markdown, markdown_github, markdown_mmd,
markdown_phpextra, markdown_strict, mediawiki, native, odt,
opendocument, opml, org, pdf**, plain, revealjs, rst, rtf, s5,
slideous, slidy, tei, texinfo, textile
[**for pdf output, use latex or beamer and -o FILENAME.pdf]
Example
Generate HTML from Markdown
$ docker run --rm -v `pwd`:/data jpbernius/pandoc -o example.html example.md
Generate PDF from Markdown
$ docker run --rm -v `pwd`:/data jpbernius/pandoc -o example.html example.md
Packages
LaTeX | Pandoc |
---|---|
lmodern | pandoc |
texlive-latex-base | pandoc-citeproc |
texlive-fonts-recommended | pandoc-citeproc-preamble |
texlive-generic-recommended | pandoc-crossref |
texlive-lang-english | |
texlive-lang-german | |
latex-xcolor | |
texlive-math-extra | |
texlive-latex-extra | |
texlive-bibtex-extra | |
biber | |
fontconfig | |
texlive-xetex |
2 .Pandoc的用法
2.1 Web版Pandoc
首先我们可以看下Pandoc的官网 http://johnmacfarlane.net/pandoc/
在介绍中我们知道Pandoc支持linux,Mac OS,Win多平台,还有简易的web版提供我们在线转换格式。打开web版 http://johnmacfarlane.net/pandoc/try ,便可以进行简单的格式转换了。不过网页版的反应速度不是很快,不适合大型文件的格式转换,一两篇文章还是可以的。
2.2 Linux版Pandoc
就我自己用的ubuntu下安装Pandoc,还算是非常简单的。以下是ubuntu下的使用步骤:
sudo apt-get install pandoc
如果apt-get安装的pandoc功能不齐全,可以如官网上一样先安装cable,再安装pandoc:
sudo apt-get install cabal-install
cabal update
cabal install pandoc
然后就可以尝试着用一下了:
pandoc demo.md -o demo.html
这样便可以简单的将demo的markdown文件转换成html文档了。另外还可以强制格式转换如下:
pandoc demo.txt -o demo.html -f markdown -t html
上面的代码便是将demo.txt中的文档以markdown的格式转换成html并存入demo.html中了。
最关键的 PDF文件 到了,PDF文档能在不同平台保持一致的表现,是许多文档传输的首选。在转换PDF之前,还需要安装一个texlive的包:
sodu apt-get install texlive
然后便可以自如的转换PDF文件了:
pandoc demo.md -o demo.pdf
英文文件转换状况良好,中文字体问题请参考 Pandoc 用命令行转换标记语言
Markdown与Pandoc的用法也就说到这了,无疑它们搭配起来会让写作变得更加简单专注,这也就是我们的初衷。另外在写作中多结合Git,将文档推到GitHub上会是很好的尝试。
文本转换神器——Pandoc
介绍
Pandoc是一个用haskell编写的文本转换工具,小巧迅速且支持格式广泛,堪称文本转换应用的瑞士军刀。
支持格式
输入
markdown
reStructuredText
textile
HTML
DocBook
LaTeX
MediaWiki markup
TWiki markup
OPML
Emacs Org-Mode
Txt2Tags
Microsoft Word docx
LibreOffice ODT
EPUB
Haddock markup
输出
HTML格式: XHTML, HTML5, 和 HTML slide shows using
Slidy,
reveal.js,
Slideous,
S5, 或
DZSlides.
字处理格式: Microsoft Word
docx,
OpenOffice/LibreOffice
ODT, OpenDocument
XML
电子书: EPUB version 2或3,
FictionBook2
文档格式: DocBook, GNU
TexInfo, Groff
man pages, Haddock
markup
页面布局格式: InDesign
ICML
大纲格式: OPML
TeX 格式: LaTeX,
ConTeXt, LaTeX Beamer slides
PDF via
LaTeX
轻量级标记格式:
Markdown (including
CommonMark),
reStructuredText,
AsciiDoc, MediaWiki
markup, DokuWiki
markup, Emacs
Org-Mode,
Textile
自定义格式: custom writers can be written in
lua.
安装
安装Pandoc
在此页面上寻找对应平台的二进制安装包
Windows平台需要将Pandoc加入Path目录才能在cmd环境中调用
安装Tex支持(可选,用于编译Tex并输出PDF)
Windows平台建议MiKTeX
MacOS平台建议BasicTeX并使用tlmgr工具安装需要的包
Linux平台建议Tex Live
使用
你可以使用在线的DEMO
pandoc x.html -o x.md
pandoc -f html -t markdown http://www.fsf.org
-f参数用于指定源文件格式
-t参数用于指定输出文件格式
-o参数用于指定输出文件
如果不使用-f和-t参数,pandoc将会根据输入文件以及-o指定的输出文件格式来确定转换的格式类型
注意事项
Pandoc不支持.doc格式,如果需要进行转换,则需要先将.doc转换为.docx
引用资源
Pandoc官网 需要梯子
Pandoc User Guide
黑魔法利器pandoc
Markdown写作进阶:Pandoc入门浅谈
Examples 原文
To see the output created by each of the commands below, click on the
name of the output file:
- HTML fragment:
pandoc MANUAL.txt -o example1.html - Standalone HTML file:
pandoc -s MANUAL.txt -o example2.html - HTML with smart quotes, table of contents, CSS, and custom footer:
pandoc -s -S --toc -c pandoc.css -A footer.html MANUAL.txt -o example3.html - LaTeX:
pandoc -s MANUAL.txt -o example4.tex - From LaTeX to markdown:
pandoc -s example4.tex -o example5.text - reStructuredText:
pandoc -s -t rst --toc MANUAL.txt -o example6.text - Rich text format (RTF):
pandoc -s MANUAL.txt -o example7.rtf - Beamer slide show:
pandoc -t beamer SLIDES -o example8.pdf - DocBook XML:
pandoc -s -S -t docbook MANUAL.txt -o example9.db - Man page:
pandoc -s -t man pandoc.1.md -o example10.1 - ConTeXt:
pandoc -s -t context MANUAL.txt -o example11.tex - Converting a web page to markdown:
pandoc -s -r html http://www.gnu.org/software/make/ -o example12.text - From markdown to PDF:
pandoc MANUAL.txt --latex-engine=xelatex -o example13.pdf - PDF with numbered sections and a custom LaTeX header:
pandoc -N --template=mytemplate.tex --variable mainfont="Palatino" --variable sansfont="Helvetica" --variable monofont="Menlo" --variable fontsize=12pt --variable version=1.17.2 MANUAL.txt --latex-engine=xelatex --toc -o example14.pdf - A wiki program using Happstack and pandoc:
gitit - HTML slide shows:
pandoc -s --mathml -i -t dzslides SLIDES -o example16a.html
pandoc -s --webtex -i -t slidy SLIDES -o example16b.html
pandoc -s --mathjax -i -t revealjs SLIDES -o example16d.html - TeX math in HTML:
pandoc math.text -s -o mathDefault.html
pandoc math.text -s --mathml -o mathMathML.html
pandoc math.text -s --webtex -o mathWebTeX.html
pandoc math.text -s --mathjax -o mathMathJax.html
pandoc math.text -s --latexmathml -o mathLaTeXMathML.html - Syntax highlighting of delimited code blocks:
pandoc code.text -s --highlight-style pygments -o example18a.html
pandoc code.text -s --highlight-style kate -o example18b.html
pandoc code.text -s --highlight-style monochrome -o example18c.html
pandoc code.text -s --highlight-style espresso -o example18d.html
pandoc code.text -s --highlight-style haddock -o example18e.html
pandoc code.text -s --highlight-style tango -o example18f.html
pandoc code.text -s --highlight-style zenburn -o example18g.html - GNU Texinfo, converted to info, HTML, and PDF formats:
pandoc MANUAL.txt -s -o example19.texi
makeinfo --no-validate --force example19.texi -o example19.info
makeinfo --no-validate --force example19.texi --html -o example19
texi2pdf example19.texi # produces example19.pdf - OpenDocument XML:
pandoc MANUAL.txt -s -t opendocument -o example20.xml - ODT (OpenDocument Text, readable by OpenOffice):
pandoc MANUAL.txt -o example21.odt - MediaWiki markup:
pandoc -s -S -t mediawiki --toc MANUAL.txt -o example22.wiki - EPUB ebook:
pandoc -S MANUAL.txt -o MANUAL.epub - Markdown citations:
pandoc -s -S --bibliography biblio.bib --filter pandoc-citeproc CITATIONS -o example24a.html
pandoc -s -S --bibliography biblio.json --filter pandoc-citeproc --csl chicago-fullnote-bibliography.csl CITATIONS -o example24b.html
pandoc -s -S --bibliography biblio.yaml --filter pandoc-citeproc --csl ieee.csl CITATIONS -t man -o example24c.1 - Textile writer:
pandoc -s -S MANUAL.txt -t textile -o example25.textile - Textile reader:
pandoc -s -S example25.textile -f textile -t html -o example26.html - Org-mode:
pandoc -s -S MANUAL.txt -o example27.org - AsciiDoc:
pandoc -s -S MANUAL.txt -t asciidoc -o example28.txt - Word docx:
pandoc -s -S MANUAL.txt -o example29.docx - LaTeX math to docx:
pandoc -s math.tex -o example30.docx - DocBook to markdown:
pandoc -f docbook -t markdown -s howto.xml -o example31.text - MediaWiki to html5:
pandoc -f mediawiki -t html5 -s haskell.wiki -o example32.html - Custom writer:
pandoc -t sample.lua example33.text -o example33.html - Docx with a reference docx:
pandoc -S --reference-docx twocolumns.docx -o UsersGuide.docx MANUAL.txt - Docx to markdown, including math:
pandoc -s example30.docx -t markdown -o example35.md - EPUB to plain text:
pandoc MANUAL.epub -t plain -o example36.text