filters/html-converters/md2html (view raw)
1#!/usr/bin/env python
2import markdown
3print('''
4<style>
5.markdown-body {
6 font-size: 14px;
7 line-height: 1.6;
8 overflow: hidden;
9}
10.markdown-body>*:first-child {
11 margin-top: 0 !important;
12}
13.markdown-body>*:last-child {
14 margin-bottom: 0 !important;
15}
16.markdown-body a.absent {
17 color: #c00;
18}
19.markdown-body a.anchor {
20 display: block;
21 padding-left: 30px;
22 margin-left: -30px;
23 cursor: pointer;
24 position: absolute;
25 top: 0;
26 left: 0;
27 bottom: 0;
28}
29.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 {
30 margin: 20px 0 10px;
31 padding: 0;
32 font-weight: bold;
33 -webkit-font-smoothing: antialiased;
34 cursor: text;
35 position: relative;
36}
37.markdown-body h1 .mini-icon-link, .markdown-body h2 .mini-icon-link, .markdown-body h3 .mini-icon-link, .markdown-body h4 .mini-icon-link, .markdown-body h5 .mini-icon-link, .markdown-body h6 .mini-icon-link {
38 display: none;
39 color: #000;
40}
41.markdown-body h1:hover a.anchor, .markdown-body h2:hover a.anchor, .markdown-body h3:hover a.anchor, .markdown-body h4:hover a.anchor, .markdown-body h5:hover a.anchor, .markdown-body h6:hover a.anchor {
42 text-decoration: none;
43 line-height: 1;
44 padding-left: 0;
45 margin-left: -22px;
46 top: 15%}
47.markdown-body h1:hover a.anchor .mini-icon-link, .markdown-body h2:hover a.anchor .mini-icon-link, .markdown-body h3:hover a.anchor .mini-icon-link, .markdown-body h4:hover a.anchor .mini-icon-link, .markdown-body h5:hover a.anchor .mini-icon-link, .markdown-body h6:hover a.anchor .mini-icon-link {
48 display: inline-block;
49}
50.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code {
51 font-size: inherit;
52}
53.markdown-body h1 {
54 font-size: 28px;
55 color: #000;
56}
57.markdown-body h2 {
58 font-size: 24px;
59 border-bottom: 1px solid #ccc;
60 color: #000;
61}
62.markdown-body h3 {
63 font-size: 18px;
64}
65.markdown-body h4 {
66 font-size: 16px;
67}
68.markdown-body h5 {
69 font-size: 14px;
70}
71.markdown-body h6 {
72 color: #777;
73 font-size: 14px;
74}
75.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre {
76 margin: 15px 0;
77}
78.markdown-body hr {
79 background: transparent url("/dirty-shade.png") repeat-x 0 0;
80 border: 0 none;
81 color: #ccc;
82 height: 4px;
83 padding: 0;
84}
85.markdown-body>h2:first-child, .markdown-body>h1:first-child, .markdown-body>h1:first-child+h2, .markdown-body>h3:first-child, .markdown-body>h4:first-child, .markdown-body>h5:first-child, .markdown-body>h6:first-child {
86 margin-top: 0;
87 padding-top: 0;
88}
89.markdown-body a:first-child h1, .markdown-body a:first-child h2, .markdown-body a:first-child h3, .markdown-body a:first-child h4, .markdown-body a:first-child h5, .markdown-body a:first-child h6 {
90 margin-top: 0;
91 padding-top: 0;
92}
93.markdown-body h1+p, .markdown-body h2+p, .markdown-body h3+p, .markdown-body h4+p, .markdown-body h5+p, .markdown-body h6+p {
94 margin-top: 0;
95}
96.markdown-body li p.first {
97 display: inline-block;
98}
99.markdown-body ul, .markdown-body ol {
100 padding-left: 30px;
101}
102.markdown-body ul.no-list, .markdown-body ol.no-list {
103 list-style-type: none;
104 padding: 0;
105}
106.markdown-body ul li>:first-child, .markdown-body ul li ul:first-of-type, .markdown-body ul li ol:first-of-type, .markdown-body ol li>:first-child, .markdown-body ol li ul:first-of-type, .markdown-body ol li ol:first-of-type {
107 margin-top: 0px;
108}
109.markdown-body ul li p:last-of-type, .markdown-body ol li p:last-of-type {
110 margin-bottom: 0;
111}
112.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul {
113 margin-bottom: 0;
114}
115.markdown-body dl {
116 padding: 0;
117}
118.markdown-body dl dt {
119 font-size: 14px;
120 font-weight: bold;
121 font-style: italic;
122 padding: 0;
123 margin: 15px 0 5px;
124}
125.markdown-body dl dt:first-child {
126 padding: 0;
127}
128.markdown-body dl dt>:first-child {
129 margin-top: 0px;
130}
131.markdown-body dl dt>:last-child {
132 margin-bottom: 0px;
133}
134.markdown-body dl dd {
135 margin: 0 0 15px;
136 padding: 0 15px;
137}
138.markdown-body dl dd>:first-child {
139 margin-top: 0px;
140}
141.markdown-body dl dd>:last-child {
142 margin-bottom: 0px;
143}
144.markdown-body blockquote {
145 border-left: 4px solid #DDD;
146 padding: 0 15px;
147 color: #777;
148}
149.markdown-body blockquote>:first-child {
150 margin-top: 0px;
151}
152.markdown-body blockquote>:last-child {
153 margin-bottom: 0px;
154}
155.markdown-body table th {
156 font-weight: bold;
157}
158.markdown-body table th, .markdown-body table td {
159 border: 1px solid #ccc;
160 padding: 6px 13px;
161}
162.markdown-body table tr {
163 border-top: 1px solid #ccc;
164 background-color: #fff;
165}
166.markdown-body table tr:nth-child(2n) {
167 background-color: #f8f8f8;
168}
169.markdown-body img {
170 max-width: 100%;
171 -moz-box-sizing: border-box;
172 box-sizing: border-box;
173}
174.markdown-body span.frame {
175 display: block;
176 overflow: hidden;
177}
178.markdown-body span.frame>span {
179 border: 1px solid #ddd;
180 display: block;
181 float: left;
182 overflow: hidden;
183 margin: 13px 0 0;
184 padding: 7px;
185 width: auto;
186}
187.markdown-body span.frame span img {
188 display: block;
189 float: left;
190}
191.markdown-body span.frame span span {
192 clear: both;
193 color: #333;
194 display: block;
195 padding: 5px 0 0;
196}
197.markdown-body span.align-center {
198 display: block;
199 overflow: hidden;
200 clear: both;
201}
202.markdown-body span.align-center>span {
203 display: block;
204 overflow: hidden;
205 margin: 13px auto 0;
206 text-align: center;
207}
208.markdown-body span.align-center span img {
209 margin: 0 auto;
210 text-align: center;
211}
212.markdown-body span.align-right {
213 display: block;
214 overflow: hidden;
215 clear: both;
216}
217.markdown-body span.align-right>span {
218 display: block;
219 overflow: hidden;
220 margin: 13px 0 0;
221 text-align: right;
222}
223.markdown-body span.align-right span img {
224 margin: 0;
225 text-align: right;
226}
227.markdown-body span.float-left {
228 display: block;
229 margin-right: 13px;
230 overflow: hidden;
231 float: left;
232}
233.markdown-body span.float-left span {
234 margin: 13px 0 0;
235}
236.markdown-body span.float-right {
237 display: block;
238 margin-left: 13px;
239 overflow: hidden;
240 float: right;
241}
242.markdown-body span.float-right>span {
243 display: block;
244 overflow: hidden;
245 margin: 13px auto 0;
246 text-align: right;
247}
248.markdown-body code, .markdown-body tt {
249 margin: 0 2px;
250 padding: 0px 5px;
251 border: 1px solid #eaeaea;
252 background-color: #f8f8f8;
253 border-radius: 3px;
254}
255.markdown-body code {
256 white-space: nowrap;
257}
258.markdown-body pre>code {
259 margin: 0;
260 padding: 0;
261 white-space: pre;
262 border: none;
263 background: transparent;
264}
265.markdown-body .highlight pre, .markdown-body pre {
266 background-color: #f8f8f8;
267 border: 1px solid #ccc;
268 font-size: 13px;
269 line-height: 19px;
270 overflow: auto;
271 padding: 6px 10px;
272 border-radius: 3px;
273}
274.markdown-body pre code, .markdown-body pre tt {
275 margin: 0;
276 padding: 0;
277 background-color: transparent;
278 border: none;
279}
280</style>
281''')
282print("<div class='markdown-body'>")
283# Note: you may want to run this through bleach for sanitization
284markdown.markdownFromFile(output_format="html5")
285print("</div>")