all repos — cgit @ 3f9e14ada1e9cb3bb5b162f10f824336e3142440

a hyperfast web frontend for git written in c

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>")