使用Pandoc命令将Markdown格式文件转换为HTML格式文件

时间:2021-06-02 06:45:01

一、Pandoc命令介绍

Pandoc是一个强大的格式语言转换工具,被称为该领域的“瑞士军刀”。比如可用Pandoc命令将Markdown格式文件转换成HTML格式文件。

二、具体转换命令

具体转换命令如下:

pandoc --standalone --self-contained --css pandoc.css src.md --output target.html

以上转换命令中选项含义介绍如下。
1、“–standalone”
为目标格式文件增加合适的“header”和“footer”。如果目标格式是“HTML”,那么通过该选项可解决“由于未设置合适的字符编码,而导致的乱码问题”。
2、“–self-contained”
如果目标格式是“HTML”,那么可得到如下效果:在转换得到目标HTML文件的过程中,会将依赖的“脚本,CSS,图片,视频”等文件的内容内嵌到目标HTML文件中。
3、“–css pandoc.css”
使得目标格式文件最后使用“pandoc.css”文件作为CSS文件,否则,使用默认的CSS文件有可能只能得到丑陋的展现效果。
4、“src.md”
原文件,从中也可以知道原文件的格式为“Markdown”。
5、“–output target.html”
指定目标文件路径,从中也可以知道目标文件的格式为“HTML”。

三、选用的CSS文件

使用Pandoc命令将Markdown格式文件转换成HTML格式文件,目标HTML文件如果使用默认的CSS文件,那么展现效果非常丑陋,因而需要使用独立的CSS文件。
本人使用的CSS文件内容如下,来自于链接

/*
* I add this to html files generated with pandoc.
*/


html {
font-size: 100%;
overflow-y: scroll;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}


body {
color: #444;
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
font-size: 12px;
line-height: 1.7;
padding: 1em;
margin: auto;
max-width: 42em;
background: #fefefe;
}


a {
color: #0645ad;
text-decoration: none;
}


a:visited {
color: #0b0080;
}


a:hover {
color: #06e;
}


a:active {
color: #faa700;
}


a:focus {
outline: thin dotted;
}


*::-moz-selection {
background: rgba(255, 255, 0, 0.3);
color: #000;
}


*::selection {
background: rgba(255, 255, 0, 0.3);
color: #000;
}


a::-moz-selection {
background: rgba(255, 255, 0, 0.3);
color: #0645ad;
}


a::selection {
background: rgba(255, 255, 0, 0.3);
color: #0645ad;
}


p {
margin: 1em 0;
}


img {
max-width: 100%;
}


h1, h2, h3, h4, h5, h6 {
color: #111;
line-height: 125%;
margin-top: 2em;
font-weight: normal;
}


h4, h5, h6 {
font-weight: bold;
}


h1 {
font-size: 2.5em;
}


h2 {
font-size: 2em;
}


h3 {
font-size: 1.5em;
}


h4 {
font-size: 1.2em;
}


h5 {
font-size: 1em;
}


h6 {
font-size: 0.9em;
}


blockquote {
color: #666666;
margin: 0;
padding-left: 3em;
border-left: 0.5em #EEE solid;
}


hr {
display: block;
height: 2px;
border: 0;
border-top: 1px solid #aaa;
border-bottom: 1px solid #eee;
margin: 1em 0;
padding: 0;
}


pre, code, kbd, samp {
color: #000;
font-family: monospace, monospace;
_font-family: 'courier new', monospace;
font-size: 0.98em;
}


pre {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}


b, strong {
font-weight: bold;
}


dfn {
font-style: italic;
}


ins {
background: #ff9;
color: #000;
text-decoration: none;
}


mark {
background: #ff0;
color: #000;
font-style: italic;
font-weight: bold;
}


sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}


sup {
top: -0.5em;
}


sub {
bottom: -0.25em;
}


ul, ol {
margin: 1em 0;
padding: 0 0 0 2em;
}


li p:last-child {
margin-bottom: 0;
}


ul ul, ol ol {
margin: .3em 0;
}


dl {
margin-bottom: 1em;
}


dt {
font-weight: bold;
margin-bottom: .8em;
}


dd {
margin: 0 0 .8em 2em;
}


dd:last-child {
margin-bottom: 0;
}


img {
border: 0;
-ms-interpolation-mode: bicubic;
vertical-align: middle;
}


figure {
display: block;
text-align: center;
margin: 1em 0;
}


figure img {
border: none;
margin: 0 auto;
}


figcaption {
font-size: 0.8em;
font-style: italic;
margin: 0 0 .8em;
}


table {
margin-bottom: 2em;
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
border-spacing: 0;
border-collapse: collapse;
}


table th {
padding: .2em 1em;
background-color: #eee;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
}


table td {
padding: .2em 1em;
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
vertical-align: top;
}


.author {
font-size: 1.2em;
text-align: center;
}


@media only screen and (min-width: 480px) {
body {
font-size: 14px;
}

}
@media only screen and (min-width: 768px) {
body {
font-size: 16px;
}

}
@media print {
* {
background: transparent !important;
color: black !important;
filter: none !important;
-ms-filter: none !important;
}


body {
font-size: 12pt;
max-width: 100%;
}


a, a:visited {
text-decoration: underline;
}


hr {
height: 1px;
border: 0;
border-bottom: 1px solid black;
}


a[href]:after {
content: " (" attr(href) ")";
}


abbr[title]:after {
content: " (" attr(title) ")";
}


.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
content: "";
}


pre, blockquote {
border: 1px solid #999;
padding-right: 1em;
page-break-inside: avoid;
}


tr, img {
page-break-inside: avoid;
}


img {
max-width: 100% !important;
}


@page :left {
margin: 15mm 20mm 15mm 10mm;
}


@page :right {
margin: 15mm 10mm 15mm 20mm;
}


p, h2, h3 {
orphans: 3;
widows: 3;
}


h2, h3 {
page-break-after: avoid;
}

}



参考文献:
[1]https://gist.github.com/killercup/5917178
[2]https://gist.github.com/ryangray/1882525
[3]https://zh.wikipedia.org/wiki/Pandoc