├── README.md
├── css
├── fonts
│ ├── KaTeX_AMS-Regular.woff2
│ ├── KaTeX_Caligraphic-Bold.woff2
│ ├── KaTeX_Caligraphic-Regular.woff2
│ ├── KaTeX_Fraktur-Bold.woff2
│ ├── KaTeX_Fraktur-Regular.woff2
│ ├── KaTeX_Main-Bold.woff2
│ ├── KaTeX_Main-BoldItalic.woff2
│ ├── KaTeX_Main-Italic.woff2
│ ├── KaTeX_Main-Regular.woff2
│ ├── KaTeX_Math-BoldItalic.woff2
│ ├── KaTeX_Math-Italic.woff2
│ ├── KaTeX_SansSerif-Bold.woff2
│ ├── KaTeX_SansSerif-Italic.woff2
│ ├── KaTeX_SansSerif-Regular.woff2
│ ├── KaTeX_Script-Regular.woff2
│ ├── KaTeX_Size1-Regular.woff2
│ ├── KaTeX_Size2-Regular.woff2
│ ├── KaTeX_Size3-Regular.woff2
│ ├── KaTeX_Size4-Regular.woff2
│ └── KaTeX_Typewriter-Regular.woff2
├── gitlab.css
├── katex.css
└── prism.css
├── icons
├── 128x128.png
├── 16x16.png
└── 48x48.png
├── js
├── katex.js
├── main.js
├── markdown-it-html5-embed.js
├── markdown-it.js
├── prism.js
└── texmath.js
└── manifest.json
/README.md:
--------------------------------------------------------------------------------
1 | # GitLab Mardown Viewer
2 |
3 | * Renders markdown files in GitLab style.
4 | * Math formulas are supported.
5 | * Both Firefox (including Android version) and Chrome are Supported.
6 | * Only UTF-8 encoded markdown files are supported.
7 |
--------------------------------------------------------------------------------
/css/fonts/KaTeX_AMS-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_AMS-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Caligraphic-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Caligraphic-Bold.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Caligraphic-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Caligraphic-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Fraktur-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Fraktur-Bold.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Fraktur-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Fraktur-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Main-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Main-Bold.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Main-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Main-BoldItalic.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Main-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Main-Italic.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Main-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Main-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Math-BoldItalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Math-BoldItalic.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Math-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Math-Italic.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_SansSerif-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_SansSerif-Bold.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_SansSerif-Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_SansSerif-Italic.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_SansSerif-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_SansSerif-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Script-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Script-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Size1-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Size1-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Size2-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Size2-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Size3-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Size3-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Size4-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Size4-Regular.woff2
--------------------------------------------------------------------------------
/css/fonts/KaTeX_Typewriter-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/css/fonts/KaTeX_Typewriter-Regular.woff2
--------------------------------------------------------------------------------
/css/katex.css:
--------------------------------------------------------------------------------
1 | /* stylelint-disable font-family-no-missing-generic-family-keyword */
2 | @font-face {
3 | font-family: 'KaTeX_AMS';
4 | src: url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'), url(fonts/KaTeX_AMS-Regular.woff) format('woff'), url(fonts/KaTeX_AMS-Regular.ttf) format('truetype');
5 | font-weight: normal;
6 | font-style: normal;
7 | }
8 | @font-face {
9 | font-family: 'KaTeX_Caligraphic';
10 | src: url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype');
11 | font-weight: bold;
12 | font-style: normal;
13 | }
14 | @font-face {
15 | font-family: 'KaTeX_Caligraphic';
16 | src: url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype');
17 | font-weight: normal;
18 | font-style: normal;
19 | }
20 | @font-face {
21 | font-family: 'KaTeX_Fraktur';
22 | src: url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'), url(fonts/KaTeX_Fraktur-Bold.ttf) format('truetype');
23 | font-weight: bold;
24 | font-style: normal;
25 | }
26 | @font-face {
27 | font-family: 'KaTeX_Fraktur';
28 | src: url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'), url(fonts/KaTeX_Fraktur-Regular.ttf) format('truetype');
29 | font-weight: normal;
30 | font-style: normal;
31 | }
32 | @font-face {
33 | font-family: 'KaTeX_Main';
34 | src: url(fonts/KaTeX_Main-Bold.woff2) format('woff2'), url(fonts/KaTeX_Main-Bold.woff) format('woff'), url(fonts/KaTeX_Main-Bold.ttf) format('truetype');
35 | font-weight: bold;
36 | font-style: normal;
37 | }
38 | @font-face {
39 | font-family: 'KaTeX_Main';
40 | src: url(fonts/KaTeX_Main-BoldItalic.woff2) format('woff2'), url(fonts/KaTeX_Main-BoldItalic.woff) format('woff'), url(fonts/KaTeX_Main-BoldItalic.ttf) format('truetype');
41 | font-weight: bold;
42 | font-style: italic;
43 | }
44 | @font-face {
45 | font-family: 'KaTeX_Main';
46 | src: url(fonts/KaTeX_Main-Italic.woff2) format('woff2'), url(fonts/KaTeX_Main-Italic.woff) format('woff'), url(fonts/KaTeX_Main-Italic.ttf) format('truetype');
47 | font-weight: normal;
48 | font-style: italic;
49 | }
50 | @font-face {
51 | font-family: 'KaTeX_Main';
52 | src: url(fonts/KaTeX_Main-Regular.woff2) format('woff2'), url(fonts/KaTeX_Main-Regular.woff) format('woff'), url(fonts/KaTeX_Main-Regular.ttf) format('truetype');
53 | font-weight: normal;
54 | font-style: normal;
55 | }
56 | @font-face {
57 | font-family: 'KaTeX_Math';
58 | src: url(fonts/KaTeX_Math-BoldItalic.woff2) format('woff2'), url(fonts/KaTeX_Math-BoldItalic.woff) format('woff'), url(fonts/KaTeX_Math-BoldItalic.ttf) format('truetype');
59 | font-weight: bold;
60 | font-style: italic;
61 | }
62 | @font-face {
63 | font-family: 'KaTeX_Math';
64 | src: url(fonts/KaTeX_Math-Italic.woff2) format('woff2'), url(fonts/KaTeX_Math-Italic.woff) format('woff'), url(fonts/KaTeX_Math-Italic.ttf) format('truetype');
65 | font-weight: normal;
66 | font-style: italic;
67 | }
68 | @font-face {
69 | font-family: 'KaTeX_SansSerif';
70 | src: url(fonts/KaTeX_SansSerif-Bold.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Bold.woff) format('woff'), url(fonts/KaTeX_SansSerif-Bold.ttf) format('truetype');
71 | font-weight: bold;
72 | font-style: normal;
73 | }
74 | @font-face {
75 | font-family: 'KaTeX_SansSerif';
76 | src: url(fonts/KaTeX_SansSerif-Italic.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Italic.woff) format('woff'), url(fonts/KaTeX_SansSerif-Italic.ttf) format('truetype');
77 | font-weight: normal;
78 | font-style: italic;
79 | }
80 | @font-face {
81 | font-family: 'KaTeX_SansSerif';
82 | src: url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'), url(fonts/KaTeX_SansSerif-Regular.ttf) format('truetype');
83 | font-weight: normal;
84 | font-style: normal;
85 | }
86 | @font-face {
87 | font-family: 'KaTeX_Script';
88 | src: url(fonts/KaTeX_Script-Regular.woff2) format('woff2'), url(fonts/KaTeX_Script-Regular.woff) format('woff'), url(fonts/KaTeX_Script-Regular.ttf) format('truetype');
89 | font-weight: normal;
90 | font-style: normal;
91 | }
92 | @font-face {
93 | font-family: 'KaTeX_Size1';
94 | src: url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size1-Regular.woff) format('woff'), url(fonts/KaTeX_Size1-Regular.ttf) format('truetype');
95 | font-weight: normal;
96 | font-style: normal;
97 | }
98 | @font-face {
99 | font-family: 'KaTeX_Size2';
100 | src: url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size2-Regular.woff) format('woff'), url(fonts/KaTeX_Size2-Regular.ttf) format('truetype');
101 | font-weight: normal;
102 | font-style: normal;
103 | }
104 | @font-face {
105 | font-family: 'KaTeX_Size3';
106 | src: url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size3-Regular.woff) format('woff'), url(fonts/KaTeX_Size3-Regular.ttf) format('truetype');
107 | font-weight: normal;
108 | font-style: normal;
109 | }
110 | @font-face {
111 | font-family: 'KaTeX_Size4';
112 | src: url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size4-Regular.woff) format('woff'), url(fonts/KaTeX_Size4-Regular.ttf) format('truetype');
113 | font-weight: normal;
114 | font-style: normal;
115 | }
116 | @font-face {
117 | font-family: 'KaTeX_Typewriter';
118 | src: url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'), url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'), url(fonts/KaTeX_Typewriter-Regular.ttf) format('truetype');
119 | font-weight: normal;
120 | font-style: normal;
121 | }
122 | .katex {
123 | font: normal 1.21em KaTeX_Main, Times New Roman, serif;
124 | line-height: 1.2;
125 | text-indent: 0;
126 | text-rendering: auto;
127 | }
128 | .katex * {
129 | -ms-high-contrast-adjust: none !important;
130 | }
131 | .katex .katex-version::after {
132 | content: "0.11.0";
133 | }
134 | .katex .katex-mathml {
135 | position: absolute;
136 | clip: rect(1px, 1px, 1px, 1px);
137 | padding: 0;
138 | border: 0;
139 | height: 1px;
140 | width: 1px;
141 | overflow: hidden;
142 | }
143 | .katex .katex-html {
144 | /* \newline is an empty block at top level, between .base elements */
145 | }
146 | .katex .katex-html > .newline {
147 | display: block;
148 | }
149 | .katex .base {
150 | position: relative;
151 | display: inline-block;
152 | white-space: nowrap;
153 | width: min-content;
154 | }
155 | .katex .strut {
156 | display: inline-block;
157 | }
158 | .katex .textbf {
159 | font-weight: bold;
160 | }
161 | .katex .textit {
162 | font-style: italic;
163 | }
164 | .katex .textrm {
165 | font-family: KaTeX_Main;
166 | }
167 | .katex .textsf {
168 | font-family: KaTeX_SansSerif;
169 | }
170 | .katex .texttt {
171 | font-family: KaTeX_Typewriter;
172 | }
173 | .katex .mathdefault {
174 | font-family: KaTeX_Math;
175 | font-style: italic;
176 | }
177 | .katex .mathit {
178 | font-family: KaTeX_Main;
179 | font-style: italic;
180 | }
181 | .katex .mathrm {
182 | font-style: normal;
183 | }
184 | .katex .mathbf {
185 | font-family: KaTeX_Main;
186 | font-weight: bold;
187 | }
188 | .katex .boldsymbol {
189 | font-family: KaTeX_Math;
190 | font-weight: bold;
191 | font-style: italic;
192 | }
193 | .katex .amsrm {
194 | font-family: KaTeX_AMS;
195 | }
196 | .katex .mathbb,
197 | .katex .textbb {
198 | font-family: KaTeX_AMS;
199 | }
200 | .katex .mathcal {
201 | font-family: KaTeX_Caligraphic;
202 | }
203 | .katex .mathfrak,
204 | .katex .textfrak {
205 | font-family: KaTeX_Fraktur;
206 | }
207 | .katex .mathtt {
208 | font-family: KaTeX_Typewriter;
209 | }
210 | .katex .mathscr,
211 | .katex .textscr {
212 | font-family: KaTeX_Script;
213 | }
214 | .katex .mathsf,
215 | .katex .textsf {
216 | font-family: KaTeX_SansSerif;
217 | }
218 | .katex .mathboldsf,
219 | .katex .textboldsf {
220 | font-family: KaTeX_SansSerif;
221 | font-weight: bold;
222 | }
223 | .katex .mathitsf,
224 | .katex .textitsf {
225 | font-family: KaTeX_SansSerif;
226 | font-style: italic;
227 | }
228 | .katex .mainrm {
229 | font-family: KaTeX_Main;
230 | font-style: normal;
231 | }
232 | .katex .vlist-t {
233 | display: inline-table;
234 | table-layout: fixed;
235 | }
236 | .katex .vlist-r {
237 | display: table-row;
238 | }
239 | .katex .vlist {
240 | display: table-cell;
241 | vertical-align: bottom;
242 | position: relative;
243 | }
244 | .katex .vlist > span {
245 | display: block;
246 | height: 0;
247 | position: relative;
248 | }
249 | .katex .vlist > span > span {
250 | display: inline-block;
251 | }
252 | .katex .vlist > span > .pstrut {
253 | overflow: hidden;
254 | width: 0;
255 | }
256 | .katex .vlist-t2 {
257 | margin-right: -2px;
258 | }
259 | .katex .vlist-s {
260 | display: table-cell;
261 | vertical-align: bottom;
262 | font-size: 1px;
263 | width: 2px;
264 | min-width: 2px;
265 | }
266 | .katex .msupsub {
267 | text-align: left;
268 | }
269 | .katex .mfrac > span > span {
270 | text-align: center;
271 | }
272 | .katex .mfrac .frac-line {
273 | display: inline-block;
274 | width: 100%;
275 | border-bottom-style: solid;
276 | }
277 | .katex .mfrac .frac-line,
278 | .katex .overline .overline-line,
279 | .katex .underline .underline-line,
280 | .katex .hline,
281 | .katex .hdashline,
282 | .katex .rule {
283 | min-height: 1px;
284 | }
285 | .katex .mspace {
286 | display: inline-block;
287 | }
288 | .katex .llap,
289 | .katex .rlap,
290 | .katex .clap {
291 | width: 0;
292 | position: relative;
293 | }
294 | .katex .llap > .inner,
295 | .katex .rlap > .inner,
296 | .katex .clap > .inner {
297 | position: absolute;
298 | }
299 | .katex .llap > .fix,
300 | .katex .rlap > .fix,
301 | .katex .clap > .fix {
302 | display: inline-block;
303 | }
304 | .katex .llap > .inner {
305 | right: 0;
306 | }
307 | .katex .rlap > .inner,
308 | .katex .clap > .inner {
309 | left: 0;
310 | }
311 | .katex .clap > .inner > span {
312 | margin-left: -50%;
313 | margin-right: 50%;
314 | }
315 | .katex .rule {
316 | display: inline-block;
317 | border: solid 0;
318 | position: relative;
319 | }
320 | .katex .overline .overline-line,
321 | .katex .underline .underline-line,
322 | .katex .hline {
323 | display: inline-block;
324 | width: 100%;
325 | border-bottom-style: solid;
326 | }
327 | .katex .hdashline {
328 | display: inline-block;
329 | width: 100%;
330 | border-bottom-style: dashed;
331 | }
332 | .katex .sqrt > .root {
333 | margin-left: 0.27777778em;
334 | margin-right: -0.55555556em;
335 | }
336 | .katex .sizing.reset-size1.size1,
337 | .katex .fontsize-ensurer.reset-size1.size1 {
338 | font-size: 1em;
339 | }
340 | .katex .sizing.reset-size1.size2,
341 | .katex .fontsize-ensurer.reset-size1.size2 {
342 | font-size: 1.2em;
343 | }
344 | .katex .sizing.reset-size1.size3,
345 | .katex .fontsize-ensurer.reset-size1.size3 {
346 | font-size: 1.4em;
347 | }
348 | .katex .sizing.reset-size1.size4,
349 | .katex .fontsize-ensurer.reset-size1.size4 {
350 | font-size: 1.6em;
351 | }
352 | .katex .sizing.reset-size1.size5,
353 | .katex .fontsize-ensurer.reset-size1.size5 {
354 | font-size: 1.8em;
355 | }
356 | .katex .sizing.reset-size1.size6,
357 | .katex .fontsize-ensurer.reset-size1.size6 {
358 | font-size: 2em;
359 | }
360 | .katex .sizing.reset-size1.size7,
361 | .katex .fontsize-ensurer.reset-size1.size7 {
362 | font-size: 2.4em;
363 | }
364 | .katex .sizing.reset-size1.size8,
365 | .katex .fontsize-ensurer.reset-size1.size8 {
366 | font-size: 2.88em;
367 | }
368 | .katex .sizing.reset-size1.size9,
369 | .katex .fontsize-ensurer.reset-size1.size9 {
370 | font-size: 3.456em;
371 | }
372 | .katex .sizing.reset-size1.size10,
373 | .katex .fontsize-ensurer.reset-size1.size10 {
374 | font-size: 4.148em;
375 | }
376 | .katex .sizing.reset-size1.size11,
377 | .katex .fontsize-ensurer.reset-size1.size11 {
378 | font-size: 4.976em;
379 | }
380 | .katex .sizing.reset-size2.size1,
381 | .katex .fontsize-ensurer.reset-size2.size1 {
382 | font-size: 0.83333333em;
383 | }
384 | .katex .sizing.reset-size2.size2,
385 | .katex .fontsize-ensurer.reset-size2.size2 {
386 | font-size: 1em;
387 | }
388 | .katex .sizing.reset-size2.size3,
389 | .katex .fontsize-ensurer.reset-size2.size3 {
390 | font-size: 1.16666667em;
391 | }
392 | .katex .sizing.reset-size2.size4,
393 | .katex .fontsize-ensurer.reset-size2.size4 {
394 | font-size: 1.33333333em;
395 | }
396 | .katex .sizing.reset-size2.size5,
397 | .katex .fontsize-ensurer.reset-size2.size5 {
398 | font-size: 1.5em;
399 | }
400 | .katex .sizing.reset-size2.size6,
401 | .katex .fontsize-ensurer.reset-size2.size6 {
402 | font-size: 1.66666667em;
403 | }
404 | .katex .sizing.reset-size2.size7,
405 | .katex .fontsize-ensurer.reset-size2.size7 {
406 | font-size: 2em;
407 | }
408 | .katex .sizing.reset-size2.size8,
409 | .katex .fontsize-ensurer.reset-size2.size8 {
410 | font-size: 2.4em;
411 | }
412 | .katex .sizing.reset-size2.size9,
413 | .katex .fontsize-ensurer.reset-size2.size9 {
414 | font-size: 2.88em;
415 | }
416 | .katex .sizing.reset-size2.size10,
417 | .katex .fontsize-ensurer.reset-size2.size10 {
418 | font-size: 3.45666667em;
419 | }
420 | .katex .sizing.reset-size2.size11,
421 | .katex .fontsize-ensurer.reset-size2.size11 {
422 | font-size: 4.14666667em;
423 | }
424 | .katex .sizing.reset-size3.size1,
425 | .katex .fontsize-ensurer.reset-size3.size1 {
426 | font-size: 0.71428571em;
427 | }
428 | .katex .sizing.reset-size3.size2,
429 | .katex .fontsize-ensurer.reset-size3.size2 {
430 | font-size: 0.85714286em;
431 | }
432 | .katex .sizing.reset-size3.size3,
433 | .katex .fontsize-ensurer.reset-size3.size3 {
434 | font-size: 1em;
435 | }
436 | .katex .sizing.reset-size3.size4,
437 | .katex .fontsize-ensurer.reset-size3.size4 {
438 | font-size: 1.14285714em;
439 | }
440 | .katex .sizing.reset-size3.size5,
441 | .katex .fontsize-ensurer.reset-size3.size5 {
442 | font-size: 1.28571429em;
443 | }
444 | .katex .sizing.reset-size3.size6,
445 | .katex .fontsize-ensurer.reset-size3.size6 {
446 | font-size: 1.42857143em;
447 | }
448 | .katex .sizing.reset-size3.size7,
449 | .katex .fontsize-ensurer.reset-size3.size7 {
450 | font-size: 1.71428571em;
451 | }
452 | .katex .sizing.reset-size3.size8,
453 | .katex .fontsize-ensurer.reset-size3.size8 {
454 | font-size: 2.05714286em;
455 | }
456 | .katex .sizing.reset-size3.size9,
457 | .katex .fontsize-ensurer.reset-size3.size9 {
458 | font-size: 2.46857143em;
459 | }
460 | .katex .sizing.reset-size3.size10,
461 | .katex .fontsize-ensurer.reset-size3.size10 {
462 | font-size: 2.96285714em;
463 | }
464 | .katex .sizing.reset-size3.size11,
465 | .katex .fontsize-ensurer.reset-size3.size11 {
466 | font-size: 3.55428571em;
467 | }
468 | .katex .sizing.reset-size4.size1,
469 | .katex .fontsize-ensurer.reset-size4.size1 {
470 | font-size: 0.625em;
471 | }
472 | .katex .sizing.reset-size4.size2,
473 | .katex .fontsize-ensurer.reset-size4.size2 {
474 | font-size: 0.75em;
475 | }
476 | .katex .sizing.reset-size4.size3,
477 | .katex .fontsize-ensurer.reset-size4.size3 {
478 | font-size: 0.875em;
479 | }
480 | .katex .sizing.reset-size4.size4,
481 | .katex .fontsize-ensurer.reset-size4.size4 {
482 | font-size: 1em;
483 | }
484 | .katex .sizing.reset-size4.size5,
485 | .katex .fontsize-ensurer.reset-size4.size5 {
486 | font-size: 1.125em;
487 | }
488 | .katex .sizing.reset-size4.size6,
489 | .katex .fontsize-ensurer.reset-size4.size6 {
490 | font-size: 1.25em;
491 | }
492 | .katex .sizing.reset-size4.size7,
493 | .katex .fontsize-ensurer.reset-size4.size7 {
494 | font-size: 1.5em;
495 | }
496 | .katex .sizing.reset-size4.size8,
497 | .katex .fontsize-ensurer.reset-size4.size8 {
498 | font-size: 1.8em;
499 | }
500 | .katex .sizing.reset-size4.size9,
501 | .katex .fontsize-ensurer.reset-size4.size9 {
502 | font-size: 2.16em;
503 | }
504 | .katex .sizing.reset-size4.size10,
505 | .katex .fontsize-ensurer.reset-size4.size10 {
506 | font-size: 2.5925em;
507 | }
508 | .katex .sizing.reset-size4.size11,
509 | .katex .fontsize-ensurer.reset-size4.size11 {
510 | font-size: 3.11em;
511 | }
512 | .katex .sizing.reset-size5.size1,
513 | .katex .fontsize-ensurer.reset-size5.size1 {
514 | font-size: 0.55555556em;
515 | }
516 | .katex .sizing.reset-size5.size2,
517 | .katex .fontsize-ensurer.reset-size5.size2 {
518 | font-size: 0.66666667em;
519 | }
520 | .katex .sizing.reset-size5.size3,
521 | .katex .fontsize-ensurer.reset-size5.size3 {
522 | font-size: 0.77777778em;
523 | }
524 | .katex .sizing.reset-size5.size4,
525 | .katex .fontsize-ensurer.reset-size5.size4 {
526 | font-size: 0.88888889em;
527 | }
528 | .katex .sizing.reset-size5.size5,
529 | .katex .fontsize-ensurer.reset-size5.size5 {
530 | font-size: 1em;
531 | }
532 | .katex .sizing.reset-size5.size6,
533 | .katex .fontsize-ensurer.reset-size5.size6 {
534 | font-size: 1.11111111em;
535 | }
536 | .katex .sizing.reset-size5.size7,
537 | .katex .fontsize-ensurer.reset-size5.size7 {
538 | font-size: 1.33333333em;
539 | }
540 | .katex .sizing.reset-size5.size8,
541 | .katex .fontsize-ensurer.reset-size5.size8 {
542 | font-size: 1.6em;
543 | }
544 | .katex .sizing.reset-size5.size9,
545 | .katex .fontsize-ensurer.reset-size5.size9 {
546 | font-size: 1.92em;
547 | }
548 | .katex .sizing.reset-size5.size10,
549 | .katex .fontsize-ensurer.reset-size5.size10 {
550 | font-size: 2.30444444em;
551 | }
552 | .katex .sizing.reset-size5.size11,
553 | .katex .fontsize-ensurer.reset-size5.size11 {
554 | font-size: 2.76444444em;
555 | }
556 | .katex .sizing.reset-size6.size1,
557 | .katex .fontsize-ensurer.reset-size6.size1 {
558 | font-size: 0.5em;
559 | }
560 | .katex .sizing.reset-size6.size2,
561 | .katex .fontsize-ensurer.reset-size6.size2 {
562 | font-size: 0.6em;
563 | }
564 | .katex .sizing.reset-size6.size3,
565 | .katex .fontsize-ensurer.reset-size6.size3 {
566 | font-size: 0.7em;
567 | }
568 | .katex .sizing.reset-size6.size4,
569 | .katex .fontsize-ensurer.reset-size6.size4 {
570 | font-size: 0.8em;
571 | }
572 | .katex .sizing.reset-size6.size5,
573 | .katex .fontsize-ensurer.reset-size6.size5 {
574 | font-size: 0.9em;
575 | }
576 | .katex .sizing.reset-size6.size6,
577 | .katex .fontsize-ensurer.reset-size6.size6 {
578 | font-size: 1em;
579 | }
580 | .katex .sizing.reset-size6.size7,
581 | .katex .fontsize-ensurer.reset-size6.size7 {
582 | font-size: 1.2em;
583 | }
584 | .katex .sizing.reset-size6.size8,
585 | .katex .fontsize-ensurer.reset-size6.size8 {
586 | font-size: 1.44em;
587 | }
588 | .katex .sizing.reset-size6.size9,
589 | .katex .fontsize-ensurer.reset-size6.size9 {
590 | font-size: 1.728em;
591 | }
592 | .katex .sizing.reset-size6.size10,
593 | .katex .fontsize-ensurer.reset-size6.size10 {
594 | font-size: 2.074em;
595 | }
596 | .katex .sizing.reset-size6.size11,
597 | .katex .fontsize-ensurer.reset-size6.size11 {
598 | font-size: 2.488em;
599 | }
600 | .katex .sizing.reset-size7.size1,
601 | .katex .fontsize-ensurer.reset-size7.size1 {
602 | font-size: 0.41666667em;
603 | }
604 | .katex .sizing.reset-size7.size2,
605 | .katex .fontsize-ensurer.reset-size7.size2 {
606 | font-size: 0.5em;
607 | }
608 | .katex .sizing.reset-size7.size3,
609 | .katex .fontsize-ensurer.reset-size7.size3 {
610 | font-size: 0.58333333em;
611 | }
612 | .katex .sizing.reset-size7.size4,
613 | .katex .fontsize-ensurer.reset-size7.size4 {
614 | font-size: 0.66666667em;
615 | }
616 | .katex .sizing.reset-size7.size5,
617 | .katex .fontsize-ensurer.reset-size7.size5 {
618 | font-size: 0.75em;
619 | }
620 | .katex .sizing.reset-size7.size6,
621 | .katex .fontsize-ensurer.reset-size7.size6 {
622 | font-size: 0.83333333em;
623 | }
624 | .katex .sizing.reset-size7.size7,
625 | .katex .fontsize-ensurer.reset-size7.size7 {
626 | font-size: 1em;
627 | }
628 | .katex .sizing.reset-size7.size8,
629 | .katex .fontsize-ensurer.reset-size7.size8 {
630 | font-size: 1.2em;
631 | }
632 | .katex .sizing.reset-size7.size9,
633 | .katex .fontsize-ensurer.reset-size7.size9 {
634 | font-size: 1.44em;
635 | }
636 | .katex .sizing.reset-size7.size10,
637 | .katex .fontsize-ensurer.reset-size7.size10 {
638 | font-size: 1.72833333em;
639 | }
640 | .katex .sizing.reset-size7.size11,
641 | .katex .fontsize-ensurer.reset-size7.size11 {
642 | font-size: 2.07333333em;
643 | }
644 | .katex .sizing.reset-size8.size1,
645 | .katex .fontsize-ensurer.reset-size8.size1 {
646 | font-size: 0.34722222em;
647 | }
648 | .katex .sizing.reset-size8.size2,
649 | .katex .fontsize-ensurer.reset-size8.size2 {
650 | font-size: 0.41666667em;
651 | }
652 | .katex .sizing.reset-size8.size3,
653 | .katex .fontsize-ensurer.reset-size8.size3 {
654 | font-size: 0.48611111em;
655 | }
656 | .katex .sizing.reset-size8.size4,
657 | .katex .fontsize-ensurer.reset-size8.size4 {
658 | font-size: 0.55555556em;
659 | }
660 | .katex .sizing.reset-size8.size5,
661 | .katex .fontsize-ensurer.reset-size8.size5 {
662 | font-size: 0.625em;
663 | }
664 | .katex .sizing.reset-size8.size6,
665 | .katex .fontsize-ensurer.reset-size8.size6 {
666 | font-size: 0.69444444em;
667 | }
668 | .katex .sizing.reset-size8.size7,
669 | .katex .fontsize-ensurer.reset-size8.size7 {
670 | font-size: 0.83333333em;
671 | }
672 | .katex .sizing.reset-size8.size8,
673 | .katex .fontsize-ensurer.reset-size8.size8 {
674 | font-size: 1em;
675 | }
676 | .katex .sizing.reset-size8.size9,
677 | .katex .fontsize-ensurer.reset-size8.size9 {
678 | font-size: 1.2em;
679 | }
680 | .katex .sizing.reset-size8.size10,
681 | .katex .fontsize-ensurer.reset-size8.size10 {
682 | font-size: 1.44027778em;
683 | }
684 | .katex .sizing.reset-size8.size11,
685 | .katex .fontsize-ensurer.reset-size8.size11 {
686 | font-size: 1.72777778em;
687 | }
688 | .katex .sizing.reset-size9.size1,
689 | .katex .fontsize-ensurer.reset-size9.size1 {
690 | font-size: 0.28935185em;
691 | }
692 | .katex .sizing.reset-size9.size2,
693 | .katex .fontsize-ensurer.reset-size9.size2 {
694 | font-size: 0.34722222em;
695 | }
696 | .katex .sizing.reset-size9.size3,
697 | .katex .fontsize-ensurer.reset-size9.size3 {
698 | font-size: 0.40509259em;
699 | }
700 | .katex .sizing.reset-size9.size4,
701 | .katex .fontsize-ensurer.reset-size9.size4 {
702 | font-size: 0.46296296em;
703 | }
704 | .katex .sizing.reset-size9.size5,
705 | .katex .fontsize-ensurer.reset-size9.size5 {
706 | font-size: 0.52083333em;
707 | }
708 | .katex .sizing.reset-size9.size6,
709 | .katex .fontsize-ensurer.reset-size9.size6 {
710 | font-size: 0.5787037em;
711 | }
712 | .katex .sizing.reset-size9.size7,
713 | .katex .fontsize-ensurer.reset-size9.size7 {
714 | font-size: 0.69444444em;
715 | }
716 | .katex .sizing.reset-size9.size8,
717 | .katex .fontsize-ensurer.reset-size9.size8 {
718 | font-size: 0.83333333em;
719 | }
720 | .katex .sizing.reset-size9.size9,
721 | .katex .fontsize-ensurer.reset-size9.size9 {
722 | font-size: 1em;
723 | }
724 | .katex .sizing.reset-size9.size10,
725 | .katex .fontsize-ensurer.reset-size9.size10 {
726 | font-size: 1.20023148em;
727 | }
728 | .katex .sizing.reset-size9.size11,
729 | .katex .fontsize-ensurer.reset-size9.size11 {
730 | font-size: 1.43981481em;
731 | }
732 | .katex .sizing.reset-size10.size1,
733 | .katex .fontsize-ensurer.reset-size10.size1 {
734 | font-size: 0.24108004em;
735 | }
736 | .katex .sizing.reset-size10.size2,
737 | .katex .fontsize-ensurer.reset-size10.size2 {
738 | font-size: 0.28929605em;
739 | }
740 | .katex .sizing.reset-size10.size3,
741 | .katex .fontsize-ensurer.reset-size10.size3 {
742 | font-size: 0.33751205em;
743 | }
744 | .katex .sizing.reset-size10.size4,
745 | .katex .fontsize-ensurer.reset-size10.size4 {
746 | font-size: 0.38572806em;
747 | }
748 | .katex .sizing.reset-size10.size5,
749 | .katex .fontsize-ensurer.reset-size10.size5 {
750 | font-size: 0.43394407em;
751 | }
752 | .katex .sizing.reset-size10.size6,
753 | .katex .fontsize-ensurer.reset-size10.size6 {
754 | font-size: 0.48216008em;
755 | }
756 | .katex .sizing.reset-size10.size7,
757 | .katex .fontsize-ensurer.reset-size10.size7 {
758 | font-size: 0.57859209em;
759 | }
760 | .katex .sizing.reset-size10.size8,
761 | .katex .fontsize-ensurer.reset-size10.size8 {
762 | font-size: 0.69431051em;
763 | }
764 | .katex .sizing.reset-size10.size9,
765 | .katex .fontsize-ensurer.reset-size10.size9 {
766 | font-size: 0.83317261em;
767 | }
768 | .katex .sizing.reset-size10.size10,
769 | .katex .fontsize-ensurer.reset-size10.size10 {
770 | font-size: 1em;
771 | }
772 | .katex .sizing.reset-size10.size11,
773 | .katex .fontsize-ensurer.reset-size10.size11 {
774 | font-size: 1.19961427em;
775 | }
776 | .katex .sizing.reset-size11.size1,
777 | .katex .fontsize-ensurer.reset-size11.size1 {
778 | font-size: 0.20096463em;
779 | }
780 | .katex .sizing.reset-size11.size2,
781 | .katex .fontsize-ensurer.reset-size11.size2 {
782 | font-size: 0.24115756em;
783 | }
784 | .katex .sizing.reset-size11.size3,
785 | .katex .fontsize-ensurer.reset-size11.size3 {
786 | font-size: 0.28135048em;
787 | }
788 | .katex .sizing.reset-size11.size4,
789 | .katex .fontsize-ensurer.reset-size11.size4 {
790 | font-size: 0.32154341em;
791 | }
792 | .katex .sizing.reset-size11.size5,
793 | .katex .fontsize-ensurer.reset-size11.size5 {
794 | font-size: 0.36173633em;
795 | }
796 | .katex .sizing.reset-size11.size6,
797 | .katex .fontsize-ensurer.reset-size11.size6 {
798 | font-size: 0.40192926em;
799 | }
800 | .katex .sizing.reset-size11.size7,
801 | .katex .fontsize-ensurer.reset-size11.size7 {
802 | font-size: 0.48231511em;
803 | }
804 | .katex .sizing.reset-size11.size8,
805 | .katex .fontsize-ensurer.reset-size11.size8 {
806 | font-size: 0.57877814em;
807 | }
808 | .katex .sizing.reset-size11.size9,
809 | .katex .fontsize-ensurer.reset-size11.size9 {
810 | font-size: 0.69453376em;
811 | }
812 | .katex .sizing.reset-size11.size10,
813 | .katex .fontsize-ensurer.reset-size11.size10 {
814 | font-size: 0.83360129em;
815 | }
816 | .katex .sizing.reset-size11.size11,
817 | .katex .fontsize-ensurer.reset-size11.size11 {
818 | font-size: 1em;
819 | }
820 | .katex .delimsizing.size1 {
821 | font-family: KaTeX_Size1;
822 | }
823 | .katex .delimsizing.size2 {
824 | font-family: KaTeX_Size2;
825 | }
826 | .katex .delimsizing.size3 {
827 | font-family: KaTeX_Size3;
828 | }
829 | .katex .delimsizing.size4 {
830 | font-family: KaTeX_Size4;
831 | }
832 | .katex .delimsizing.mult .delim-size1 > span {
833 | font-family: KaTeX_Size1;
834 | }
835 | .katex .delimsizing.mult .delim-size4 > span {
836 | font-family: KaTeX_Size4;
837 | }
838 | .katex .nulldelimiter {
839 | display: inline-block;
840 | width: 0.12em;
841 | }
842 | .katex .delimcenter {
843 | position: relative;
844 | }
845 | .katex .op-symbol {
846 | position: relative;
847 | }
848 | .katex .op-symbol.small-op {
849 | font-family: KaTeX_Size1;
850 | }
851 | .katex .op-symbol.large-op {
852 | font-family: KaTeX_Size2;
853 | }
854 | .katex .op-limits > .vlist-t {
855 | text-align: center;
856 | }
857 | .katex .accent > .vlist-t {
858 | text-align: center;
859 | }
860 | .katex .accent .accent-body {
861 | position: relative;
862 | }
863 | .katex .accent .accent-body:not(.accent-full) {
864 | width: 0;
865 | }
866 | .katex .overlay {
867 | display: block;
868 | }
869 | .katex .mtable .vertical-separator {
870 | display: inline-block;
871 | min-width: 1px;
872 | }
873 | .katex .mtable .arraycolsep {
874 | display: inline-block;
875 | }
876 | .katex .mtable .col-align-c > .vlist-t {
877 | text-align: center;
878 | }
879 | .katex .mtable .col-align-l > .vlist-t {
880 | text-align: left;
881 | }
882 | .katex .mtable .col-align-r > .vlist-t {
883 | text-align: right;
884 | }
885 | .katex .svg-align {
886 | text-align: left;
887 | }
888 | .katex svg {
889 | display: block;
890 | position: absolute;
891 | width: 100%;
892 | height: inherit;
893 | fill: currentColor;
894 | stroke: currentColor;
895 | fill-rule: nonzero;
896 | fill-opacity: 1;
897 | stroke-width: 1;
898 | stroke-linecap: butt;
899 | stroke-linejoin: miter;
900 | stroke-miterlimit: 4;
901 | stroke-dasharray: none;
902 | stroke-dashoffset: 0;
903 | stroke-opacity: 1;
904 | }
905 | .katex svg path {
906 | stroke: none;
907 | }
908 | .katex img {
909 | border-style: none;
910 | min-width: 0;
911 | min-height: 0;
912 | max-width: none;
913 | max-height: none;
914 | }
915 | .katex .stretchy {
916 | width: 100%;
917 | display: block;
918 | position: relative;
919 | overflow: hidden;
920 | }
921 | .katex .stretchy::before,
922 | .katex .stretchy::after {
923 | content: "";
924 | }
925 | .katex .hide-tail {
926 | width: 100%;
927 | position: relative;
928 | overflow: hidden;
929 | }
930 | .katex .halfarrow-left {
931 | position: absolute;
932 | left: 0;
933 | width: 50.2%;
934 | overflow: hidden;
935 | }
936 | .katex .halfarrow-right {
937 | position: absolute;
938 | right: 0;
939 | width: 50.2%;
940 | overflow: hidden;
941 | }
942 | .katex .brace-left {
943 | position: absolute;
944 | left: 0;
945 | width: 25.1%;
946 | overflow: hidden;
947 | }
948 | .katex .brace-center {
949 | position: absolute;
950 | left: 25%;
951 | width: 50%;
952 | overflow: hidden;
953 | }
954 | .katex .brace-right {
955 | position: absolute;
956 | right: 0;
957 | width: 25.1%;
958 | overflow: hidden;
959 | }
960 | .katex .x-arrow-pad {
961 | padding: 0 0.5em;
962 | }
963 | .katex .x-arrow,
964 | .katex .mover,
965 | .katex .munder {
966 | text-align: center;
967 | }
968 | .katex .boxpad {
969 | padding: 0 0.3em 0 0.3em;
970 | }
971 | .katex .fbox,
972 | .katex .fcolorbox {
973 | box-sizing: border-box;
974 | border: 0.04em solid;
975 | }
976 | .katex .cancel-pad {
977 | padding: 0 0.2em 0 0.2em;
978 | }
979 | .katex .cancel-lap {
980 | margin-left: -0.2em;
981 | margin-right: -0.2em;
982 | }
983 | .katex .sout {
984 | border-bottom-style: solid;
985 | border-bottom-width: 0.08em;
986 | }
987 | .katex-display {
988 | display: block;
989 | margin: 1em 0;
990 | text-align: center;
991 | }
992 | .katex-display > .katex {
993 | display: block;
994 | text-align: center;
995 | white-space: nowrap;
996 | }
997 | .katex-display > .katex > .katex-html {
998 | display: block;
999 | position: relative;
1000 | }
1001 | .katex-display > .katex > .katex-html > .tag {
1002 | position: absolute;
1003 | right: 0;
1004 | }
1005 | .katex-display.leqno > .katex > .katex-html > .tag {
1006 | left: 0;
1007 | right: auto;
1008 | }
1009 | .katex-display.fleqn > .katex {
1010 | text-align: left;
1011 | }
1012 |
1013 |
--------------------------------------------------------------------------------
/css/prism.css:
--------------------------------------------------------------------------------
1 | .token.comment,
2 | .token.prolog,
3 | .token.doctype,
4 | .token.cdata {
5 | color: #998;
6 | font-style: italic
7 | }
8 |
9 | .token.string,
10 | .token.attr-value {
11 | color: #d14
12 | }
13 |
14 | .token.entity,
15 | .token.url,
16 | .token.symbol,
17 | .token.number,
18 | .token.boolean,
19 | .token.variable,
20 | .token.constant,
21 | .token.property,
22 | .token.regex,
23 | .token.inserted {
24 | color: #099
25 | }
26 |
27 | .token.atrule,
28 | .token.keyword,
29 | .token.attr-name,
30 | .language-autohotkey .token.selector {
31 | font-weight: bold
32 | }
33 |
34 | .token.function,
35 | .token.deleted,
36 | .language-autohotkey .token.tag {
37 | color: #900
38 | }
39 |
40 | .token.class-name {
41 | color: #458;
42 | font-weight: bold
43 | }
44 |
45 | .token.tag,
46 | .token.selector,
47 | .language-autohotkey .token.keyword {
48 | color: #009
49 | }
50 |
51 | .token.important,
52 | .token.function,
53 | .token.bold {
54 | font-weight: bold
55 | }
56 |
57 | .token.italic {
58 | font-style: italic
59 | }
60 |
--------------------------------------------------------------------------------
/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/icons/128x128.png
--------------------------------------------------------------------------------
/icons/16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/icons/16x16.png
--------------------------------------------------------------------------------
/icons/48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/painyeph/GitLabMarkdownViewer/a1a3b0150c7bb26efe1a953f6c7d4eec0816fb87/icons/48x48.png
--------------------------------------------------------------------------------
/js/main.js:
--------------------------------------------------------------------------------
1 | const getURL = (typeof browser === 'undefined') ? chrome.runtime.getURL : browser.runtime.getURL;
2 |
3 | const markdownText = document.body.textContent;
4 | document.body.textContent = '';
5 |
6 | // Style the page and code highlights.
7 | const gitlabStyle = document.createElement('link');
8 | gitlabStyle.rel = 'stylesheet';
9 | gitlabStyle.type = 'text/css';
10 | gitlabStyle.href = getURL('css/gitlab.css');
11 | document.head.appendChild(gitlabStyle);
12 |
13 | const prismStyle = document.createElement('link');
14 | prismStyle.rel = 'stylesheet';
15 | prismStyle.type = 'text/css';
16 | prismStyle.href = getURL('css/prism.css');
17 | document.head.appendChild(prismStyle);
18 |
19 | const mathStyle = document.createElement('link');
20 | mathStyle.rel = 'stylesheet';
21 | mathStyle.type = 'text/css';
22 | mathStyle.href = getURL('css/katex.css');
23 | document.head.appendChild(mathStyle);
24 |
25 | // This is considered a good practice for mobiles.
26 | var viewport = document.createElement('meta');
27 | viewport.name = 'viewport';
28 | viewport.content = 'width=device-width, initial-scale=1';
29 | document.head.appendChild(viewport);
30 |
31 | // Insert html for the markdown into an element for processing.
32 | var markdownRoot = document.createElement('div');
33 | markdownRoot.className = "wiki";
34 | markdownRoot.innerHTML = markdownit({
35 | html: true,
36 | linkify: true,
37 | highlight: function (str, lang) {
38 | if (!Prism.languages[lang]) return '';
39 | return Prism.highlight(str, Prism.languages[lang]);
40 | }
41 | }).use(texmath.use(katex), {delimiters: 'gitlab'})
42 | .use(markdownitHTML5Embed, { html5embed: { useImageSyntax: true } })
43 | .render(markdownText);
44 |
45 | // Trample out script elements.
46 | markdownRoot.querySelectorAll('script').forEach(each => {
47 | each.innerText = '';
48 | each.src = '';
49 | });
50 |
51 | // Remove hrefs that don't look like URLs.
52 | const likeUrl = /^[-a-z]*:\/\//i;
53 | markdownRoot.querySelectorAll('[href]').forEach(each => {
54 | if (!likeUrl.test(each.href)) {
55 | each.href = '';
56 | }
57 | });
58 |
59 | // Remove event handlers. (Others?)
60 | var events = ['onclick', 'onload', 'onmouseover', 'onmouseout'];
61 | var eventsJoined = '[' + events.join('],[') + ']';
62 | markdownRoot.querySelectorAll(eventsJoined).forEach(each => {
63 | events.forEach(attr => {
64 | if (each.getAttribute(attr)) { each.setAttribute(attr, null); }
65 | });
66 | });
67 |
68 | // Set the page title.
69 | var title = markdownRoot.querySelector('h1, h2, h3, h4, h5, h6'); // First header
70 | if (title) {
71 | title = title.textContent.trim();
72 | } else {
73 | title = markdownRoot.textContent.trim().split("\n", 1)[0].trim(); // First line
74 | }
75 | if (title.length > 50) {
76 | title = title.substr(0, 50) + "...";
77 | }
78 | document.title = title;
79 |
80 | // Finally insert the markdown.
81 | document.body.appendChild(markdownRoot);
82 |
83 | // Jump to anchor
84 | if (location.hash) {
85 | setTimeout(function () {
86 | if (typeof browser !== "undefined") { // Firefox
87 | window.location.hash = location.hash;
88 | } else { // Chrome
89 | window.location.href = location.hash;
90 | }
91 | }, 0);
92 | }
93 |
--------------------------------------------------------------------------------
/js/texmath.js:
--------------------------------------------------------------------------------
1 | /*---------------------------------------------------------------------------------------------
2 | * Copyright (c) Stefan Goessner - 2017-19. All rights reserved.
3 | * Licensed under the MIT License. See License.txt in the project root for license information.
4 | *--------------------------------------------------------------------------------------------*/
5 | 'use strict';
6 |
7 | function texmath(md,options) {
8 | let delimiters = options && options.delimiters || 'dollars',
9 | macros = options && options.macros;
10 |
11 | if (delimiters in texmath.rules) {
12 | for (let rule of texmath.rules[delimiters].inline) {
13 | md.inline.ruler.before('escape', rule.name, texmath.inline(rule)); // ! important
14 | md.renderer.rules[rule.name] = (tokens, idx) => rule.tmpl.replace(/\$1/,texmath.render(tokens[idx].content,false,macros));
15 | }
16 |
17 | for (let rule of texmath.rules[delimiters].block) {
18 | md.block.ruler.before('fence', rule.name, texmath.block(rule));
19 | md.renderer.rules[rule.name] = (tokens, idx) => rule.tmpl.replace(/\$2/,tokens[idx].info) // equation number .. ?
20 | .replace(/\$1/,texmath.render(tokens[idx].content,true,macros));
21 | }
22 | }
23 | }
24 |
25 | texmath.applyRule = function(rule, str, beg, inBlockquote) {
26 | let pre, match, post;
27 | rule.rex.lastIndex = beg;
28 |
29 | pre = str.startsWith(rule.tag,beg) && (!rule.pre || rule.pre(str,beg));
30 | match = pre && rule.rex.exec(str);
31 | if (match) {
32 | match.lastIndex = rule.rex.lastIndex;
33 | post = (!rule.post || rule.post(str, match.lastIndex-1)) // valid post-condition
34 | && (!inBlockquote || !match[1].includes('\n')); // remove evil blockquote bug (https://github.com/goessner/mdmath/issues/50)
35 | }
36 | rule.rex.lastIndex = 0;
37 |
38 | return post && match;
39 | }
40 |
41 | // texmath.inline = (rule) => dollar; // just for testing ..
42 |
43 | texmath.inline = (rule) =>
44 | function(state, silent) {
45 | let res = texmath.applyRule(rule, state.src, state.pos);
46 | if (res) {
47 | if (!silent) {
48 | let token = state.push(rule.name, 'math', 0);
49 | token.content = res[1]; // group 1 from regex ..
50 | token.markup = rule.tag;
51 | }
52 | state.pos = res.lastIndex;
53 | }
54 | return !!res;
55 | }
56 |
57 | texmath.block = (rule) =>
58 | function(state, begLine, endLine, silent) {
59 | let res = texmath.applyRule(rule, state.src, state.bMarks[begLine] + state.tShift[begLine], state.parentType==='blockquote');
60 | if (res) {
61 | if (!silent) {
62 | let token = state.push(rule.name, 'math', 0);
63 | token.block = true;
64 | token.content = res[1];
65 | token.info = res[res.length-1];
66 | token.markup = rule.tag;
67 | }
68 | for (let line=begLine, endpos=res.lastIndex-1; line < endLine; line++)
69 | if (endpos >= state.bMarks[line] && endpos <= state.eMarks[line]) { // line for end of block math found ...
70 | state.line = line+1;
71 | break;
72 | }
73 | state.pos = res.lastIndex;
74 | }
75 | return !!res;
76 | }
77 |
78 | texmath.render = function(tex,displayMode,macros) {
79 | let res;
80 | try {
81 | res = texmath.katex.renderToString(tex,{throwOnError:false,displayMode,macros});
82 | }
83 | catch(err) {
84 | res = tex+": "+err.message.replace("<","<");
85 | }
86 | return res;
87 | }
88 |
89 | texmath.use = function(katex) { // math renderer used ...
90 | texmath.katex = katex; // ... katex solely at current ...
91 | return texmath;
92 | }
93 |
94 | /*
95 | function dollar(state, silent) {
96 | var start, max, marker, matchStart, matchEnd, token,
97 | pos = state.pos,
98 | ch = state.src.charCodeAt(pos);
99 |
100 | if (ch !== 0x24) { return false; } // $
101 |
102 | start = pos;
103 | pos++;
104 | max = state.posMax;
105 |
106 | while (pos < max && state.src.charCodeAt(pos) === 0x24) { pos++; }
107 |
108 | marker = state.src.slice(start, pos);
109 |
110 | matchStart = matchEnd = pos;
111 |
112 | while ((matchStart = state.src.indexOf('$', matchEnd)) !== -1) {
113 | matchEnd = matchStart + 1;
114 |
115 | while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x24) { matchEnd++; }
116 |
117 | if (matchEnd - matchStart === marker.length) {
118 | if (!silent) {
119 | token = state.push('math_inline', 'math', 0);
120 | token.markup = marker;
121 | token.content = state.src.slice(pos, matchStart)
122 | .replace(/[ \n]+/g, ' ')
123 | .trim();
124 | }
125 | state.pos = matchEnd;
126 | return true;
127 | }
128 | }
129 |
130 | if (!silent) { state.pending += marker; }
131 | state.pos += marker.length;
132 | return true;
133 | };
134 | */
135 |
136 | texmath.$_pre = (str,beg) => {
137 | let prv = beg > 0 ? str[beg-1].charCodeAt(0) : false;
138 | return !prv || prv !== 0x5c // no backslash,
139 | && (prv < 0x30 || prv > 0x39); // no decimal digit .. before opening '$'
140 | }
141 | texmath.$_post = (str,end) => {
142 | let nxt = str[end+1] && str[end+1].charCodeAt(0);
143 | return !nxt || nxt < 0x30 || nxt > 0x39; // no decimal digit .. after closing '$'
144 | }
145 |
146 | texmath.rules = {
147 | brackets: {
148 | inline: [
149 | { name: 'math_inline',
150 | rex: /\\\((.+?)\\\)/gy,
151 | tmpl: '$1',
152 | tag: '\\('
153 | }
154 | ],
155 | block: [
156 | { name: 'math_block_eqno',
157 | rex: /\\\[(((?!\\\]|\\\[)[\s\S])+?)\\\]\s*?\(([^)$\r\n]+?)\)/gmy,
158 | tmpl: '',
159 | tag: '\\['
160 | },
161 | { name: 'math_block',
162 | rex: /\\\[([\s\S]+?)\\\]/gmy,
163 | tmpl: '',
164 | tag: '\\['
165 | }
166 | ]
167 | },
168 | gitlab: {
169 | inline: [
170 | { name: 'math_inline',
171 | rex: /\$`(.+?)`\$/gy,
172 | tmpl: '$1',
173 | tag: '$`'
174 | }
175 | ],
176 | block: [
177 | { name: 'math_block_eqno',
178 | rex: /`{3}math\s+?([^`]+?)\s+?`{3}\s*?\(([^)$\r\n]+?)\)/gmy,
179 | tmpl: '',
180 | tag: '```math'
181 | },
182 | { name: 'math_block',
183 | rex: /`{3}math\s+?([^`]+?)\s+?`{3}/gmy,
184 | tmpl: '',
185 | tag: '```math'
186 | }
187 | ]
188 | },
189 | kramdown: {
190 | inline: [
191 | { name: 'math_inline',
192 | rex: /\${2}([^$\r\n]*?)\${2}/gy,
193 | tmpl: '$1',
194 | tag: '$$'
195 | }
196 | ],
197 | block: [
198 | { name: 'math_block_eqno',
199 | rex: /\${2}([^$]*?)\${2}\s*?\(([^)$\r\n]+?)\)/gmy,
200 | tmpl: '',
201 | tag: '$$'
202 | },
203 | { name: 'math_block',
204 | rex: /\${2}([^$]*?)\${2}/gmy,
205 | tmpl: '',
206 | tag: '$$'
207 | }
208 | ]
209 | },
210 | dollars: {
211 | inline: [
212 | { name: 'math_inline',
213 | rex: /\$(\S[^$\r\n]*?[^\s\\]{1}?)\$/gy,
214 | tmpl: '$1',
215 | tag: '$',
216 | pre: texmath.$_pre,
217 | post: texmath.$_post
218 | },
219 | { name: 'math_single',
220 | rex: /\$([^$\s\\]{1}?)\$/gy,
221 | tmpl: '$1',
222 | tag: '$',
223 | pre: texmath.$_pre,
224 | post: texmath.$_post
225 | }
226 | ],
227 | block: [
228 | { name: 'math_block_eqno',
229 | rex: /\${2}([^$]*?)\${2}\s*?\(([^)$\r\n]+?)\)/gmy,
230 | tmpl: '',
231 | tag: '$$'
232 | },
233 | { name: 'math_block',
234 | rex: /\${2}([^$]*?)\${2}/gmy,
235 | tmpl: '',
236 | tag: '$$'
237 | }
238 | ]
239 | }
240 | };
241 |
242 | if (typeof module === "object" && module.exports)
243 | module.exports = texmath;
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | "manifest_version": 2,
4 | "name": "GitLab Markdown Viewer",
5 | "version": "1.2.8",
6 | "description": "Renders markdown files in GitLab style.",
7 |
8 | "icons": {
9 | "16": "icons/16x16.png",
10 | "48": "icons/48x48.png",
11 | "128": "icons/128x128.png"
12 | },
13 |
14 | "content_scripts": [
15 | {
16 | "matches": ["file:///*.md", "file:///*.markdown"],
17 | "js": ["js/markdown-it.js",
18 | "js/markdown-it-html5-embed.js",
19 | "js/prism.js",
20 | "js/katex.js",
21 | "js/texmath.js",
22 | "js/main.js"
23 | ]
24 | }
25 | ],
26 |
27 | "web_accessible_resources": [
28 | "css/gitlab.css",
29 | "css/prism.css",
30 | "css/katex.css",
31 | "css/fonts/KaTeX_AMS-Regular.woff2",
32 | "css/fonts/KaTeX_Caligraphic-Bold.woff2",
33 | "css/fonts/KaTeX_Caligraphic-Regular.woff2",
34 | "css/fonts/KaTeX_Fraktur-Bold.woff2",
35 | "css/fonts/KaTeX_Fraktur-Regular.woff2",
36 | "css/fonts/KaTeX_Main-Bold.woff2",
37 | "css/fonts/KaTeX_Main-BoldItalic.woff2",
38 | "css/fonts/KaTeX_Main-Italic.woff2",
39 | "css/fonts/KaTeX_Main-Regular.woff2",
40 | "css/fonts/KaTeX_Math-BoldItalic.woff2",
41 | "css/fonts/KaTeX_Math-Italic.woff2",
42 | "css/fonts/KaTeX_SansSerif-Bold.woff2",
43 | "css/fonts/KaTeX_SansSerif-Italic.woff2",
44 | "css/fonts/KaTeX_SansSerif-Regular.woff2",
45 | "css/fonts/KaTeX_Script-Regular.woff2",
46 | "css/fonts/KaTeX_Size1-Regular.woff2",
47 | "css/fonts/KaTeX_Size2-Regular.woff2",
48 | "css/fonts/KaTeX_Size3-Regular.woff2",
49 | "css/fonts/KaTeX_Size4-Regular.woff2",
50 | "css/fonts/KaTeX_Typewriter-Regular.woff2"
51 | ]
52 |
53 | }
54 |
--------------------------------------------------------------------------------