markdown-maker 1.10.3 → 1.10.4

Sign up to get free protection for your applications and to get access to all the features.
package/bundle/main.js ADDED
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __read = (this && this.__read) || function (o, n) {
27
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
28
+ if (!m) return o;
29
+ var i = m.call(o), r, ar = [], e;
30
+ try {
31
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
32
+ }
33
+ catch (error) { e = { error: error }; }
34
+ finally {
35
+ try {
36
+ if (r && !r.done && (m = i["return"])) m.call(i);
37
+ }
38
+ finally { if (e) throw e.error; }
39
+ }
40
+ return ar;
41
+ };
42
+ var __importDefault = (this && this.__importDefault) || function (mod) {
43
+ return (mod && mod.__esModule) ? mod : { "default": mod };
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ var path_1 = __importDefault(require("path"));
47
+ var ws_1 = require("ws");
48
+ var fs = __importStar(require("fs"));
49
+ var chokidar_1 = __importDefault(require("chokidar"));
50
+ var parser_1 = __importDefault(require("./parser"));
51
+ /* for adding colours to strings */
52
+ var colors_ts_1 = require("colors.ts");
53
+ (0, colors_ts_1.enable)();
54
+ var cltool_1 = require("./cltool");
55
+ var configFileName = ".mdmconfig.json";
56
+ function main() {
57
+ var clargs;
58
+ var server;
59
+ /* Read config file or parse args from cmd-line */
60
+ if (fs.existsSync(configFileName)) {
61
+ var data = JSON.parse(fs.readFileSync(configFileName).toString()).opts;
62
+ var args_1 = [];
63
+ Object.entries(data).forEach(function (_a) {
64
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
65
+ if (key != "src" && value !== false) {
66
+ args_1.push("--" + key);
67
+ }
68
+ if (typeof value != "boolean") {
69
+ args_1.push(value);
70
+ }
71
+ });
72
+ /* We skip [0] and [1], as it is the binary and source file, even when compiled*/
73
+ for (var i = 2; i < process.argv.length; i++)
74
+ args_1.push(process.argv[i]);
75
+ clargs = cltool_1.argParser.parse_args(args_1.map(function (x) { return x.toString(); }));
76
+ }
77
+ else {
78
+ clargs = cltool_1.argParser.parse_args();
79
+ }
80
+ /* if src is init, create config file and exit */
81
+ if (clargs.src == "init") {
82
+ var template = fs.readFileSync(path_1.default.join(__dirname, "..", "src", "templates", "configTemplate.json"));
83
+ fs.writeFileSync(configFileName, template);
84
+ fs.writeFileSync("main.md", "# Main\n");
85
+ console.log("Created config file ".concat(configFileName.green));
86
+ return;
87
+ }
88
+ /* helper method for calling parser */
89
+ var compile = function (source, output, cb) {
90
+ /* load data from file, if it exists,
91
+ * otherwise, interpret as string */
92
+ var parser = new parser_1.default(source, clargs);
93
+ parser.to(output, function (file) {
94
+ console.log("Compiled ".concat(file).green);
95
+ if (cb)
96
+ cb();
97
+ });
98
+ return parser;
99
+ };
100
+ var internalCooldown = 1000;
101
+ function watcher(_, path) {
102
+ var now = Date.now();
103
+ if (!this.time)
104
+ this.time = now;
105
+ if (now - this.time < internalCooldown)
106
+ return;
107
+ console.log("Detected change in ".concat(path, "..."));
108
+ try {
109
+ compile(clargs.src, clargs.output, function () {
110
+ /* after compile, send refresh command to clients */
111
+ server.clients.forEach(function (client) {
112
+ if (client.OPEN)
113
+ client.send("refresh");
114
+ });
115
+ });
116
+ }
117
+ catch (e) {
118
+ console.log(e.message);
119
+ }
120
+ this.time = now;
121
+ }
122
+ /* in case source is a directory, look for entry in directory */
123
+ if (fs.existsSync(clargs.src) && fs.lstatSync(clargs.src).isDirectory()) {
124
+ clargs.src = path_1.default.join(clargs.src, clargs.entry);
125
+ }
126
+ if (clargs.debug)
127
+ console.dir(clargs);
128
+ /* compile once if not watching
129
+ otherwise watch the folder and recompile on change */
130
+ if (!clargs.watch)
131
+ compile(clargs.src, clargs.output);
132
+ else {
133
+ var srcDirName = path_1.default.dirname(clargs.src);
134
+ console.log("Watching ".concat(srcDirName, " for changes...").yellow);
135
+ server = new ws_1.WebSocketServer({ port: 7788 });
136
+ var _watcher = chokidar_1.default.watch(srcDirName).on("all", watcher);
137
+ try {
138
+ compile(clargs.src, clargs.output);
139
+ }
140
+ catch (e) {
141
+ console.log(e.message);
142
+ }
143
+ }
144
+ }
145
+ exports.default = {
146
+ Parser: parser_1.default,
147
+ };
148
+ /* main entrypoint */
149
+ if (require.main === module) {
150
+ main();
151
+ }
152
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { IncompleteCommandLineArgs, IncompleteParserOptions, ParserOptions } from "./cltool";
2
+ import { TaggedElement, TargetType } from "./types";
3
+ declare class Parser {
4
+ file: string;
5
+ parent?: Parser;
6
+ line_num: number;
7
+ wd: string;
8
+ wd_full: string;
9
+ blobs: {
10
+ [key: number]: string | undefined;
11
+ };
12
+ opts: ParserOptions;
13
+ raw: string;
14
+ static TOKEN: string;
15
+ constructor(filename: string, clargs?: IncompleteCommandLineArgs, opts?: IncompleteParserOptions);
16
+ private parse;
17
+ private mainparse;
18
+ private preprocess;
19
+ private postprocess;
20
+ private parse_commands;
21
+ private parse_all_commands;
22
+ titleId(title: string): string;
23
+ get_toc(): string;
24
+ add_hook(name: string, hook: (map: {
25
+ [key: string]: TaggedElement;
26
+ }) => void): void;
27
+ private line_num_from_index;
28
+ private remove_double_blank_lines;
29
+ to(bundleName: string, callback: (fileName: string) => void): void;
30
+ html(): string;
31
+ createChild(file: string): Parser;
32
+ get(targetType?: TargetType, callback?: (blob: string) => void): string;
33
+ }
34
+ export declare function splice(str: string, startIndex: number, width: number, newSubStr: string): string;
35
+ export default Parser;
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.splice = void 0;
18
+ var fs_1 = __importDefault(require("fs")); /* for handling reading of files */
19
+ var path_1 = __importDefault(require("path")); /* for handling file paths */
20
+ var marked_1 = __importDefault(require("marked"));
21
+ var commands_1 = require("./commands");
22
+ var cltool_1 = require("./cltool");
23
+ var errors_1 = require("./errors");
24
+ var types_1 = require("./types");
25
+ /* parse some md
26
+ * recursively with extra options */
27
+ var Parser = /** @class */ (function () {
28
+ function Parser(filename, clargs, opts) {
29
+ /* this.working_directory */
30
+ this.file = filename;
31
+ this.line_num = 0;
32
+ this.wd = path_1.default.dirname(filename);
33
+ this.wd_full = path_1.default.resolve(this.wd);
34
+ /* finished blob */
35
+ this.blobs = {};
36
+ if (!clargs) {
37
+ clargs = cltool_1.argParser.parse_args([filename]);
38
+ }
39
+ /* get default options, and overwrite with the ones present
40
+ in the arguments */
41
+ this.opts = defaultParserOptions();
42
+ Object.assign(this.opts, clargs);
43
+ Object.assign(this.opts, opts);
44
+ this.raw = this.opts.isFileCallback(filename) || filename;
45
+ }
46
+ Parser.prototype.parse = function () {
47
+ (0, commands_1.load_extensions)(this);
48
+ if (this.opts.verbose || this.opts.debug) {
49
+ console.log("parsing ".concat(this.file, ": depth=").concat(this.opts.depth).magenta);
50
+ }
51
+ if (this.opts.debug) {
52
+ console.log("Parsing options:");
53
+ console.log(this.opts);
54
+ }
55
+ /* reset sections for beginning parse */
56
+ if (this.opts.depth === 0)
57
+ this.opts.secs = [];
58
+ var __blob = this.raw;
59
+ /* apply preproccessing to raw file */
60
+ __blob = this.preprocess(__blob);
61
+ /* main parser instance call */
62
+ __blob = this.mainparse(__blob);
63
+ /**
64
+ * apply postprocessing after */
65
+ __blob = this.postprocess(__blob);
66
+ return __blob;
67
+ };
68
+ Parser.prototype.mainparse = function (blob) {
69
+ var _this = this;
70
+ if (this.opts.verbose || this.opts.debug) {
71
+ console.debug("beginning mainparse of '".concat(this.file, "'").blue);
72
+ }
73
+ /* main parser instance loop */
74
+ blob.split("\n").forEach(function (line, lnum) {
75
+ _this.line_num = lnum;
76
+ /* if line looks like a title */
77
+ var titleMatch = line.trim().match(/^(#+) (.+)$/);
78
+ if (titleMatch) {
79
+ if (_this.opts.verbose || _this.opts.debug)
80
+ console.log("found toc element: " + line);
81
+ /* implement toc level */
82
+ var level = titleMatch[1].length;
83
+ var title = titleMatch[2];
84
+ _this.opts.secs.push({ level: level, title: title });
85
+ if (_this.opts.debug) {
86
+ console.log("updated sections:", { level: level, title: title });
87
+ }
88
+ }
89
+ });
90
+ return this.parse_commands(blob, commands_1.commands.parse);
91
+ };
92
+ Parser.prototype.preprocess = function (blob) {
93
+ if (this.opts.verbose || this.opts.debug) {
94
+ console.debug("beginning preprocess of '".concat(this.file, "'").blue);
95
+ }
96
+ return this.parse_commands(blob, commands_1.commands.preparse);
97
+ };
98
+ Parser.prototype.postprocess = function (blob) {
99
+ if (this.opts.verbose || this.opts.debug) {
100
+ console.debug("beginning postprocess of '".concat(this.file, "'").blue);
101
+ }
102
+ blob = this.parse_commands(blob, commands_1.commands.postparse);
103
+ /* remove double empty lines */
104
+ blob = this.remove_double_blank_lines(blob);
105
+ blob = blob.trimEnd() + "\n\n";
106
+ return blob;
107
+ };
108
+ Parser.prototype.parse_commands = function (blob, commands) {
109
+ var _this = this;
110
+ commands.forEach(function (command) {
111
+ /* Add global flag to RegExp */
112
+ var re = new RegExp(command.validator.source, (command.validator.flags || "") + "g");
113
+ var replacer = function (args) {
114
+ try {
115
+ return command.act(args, _this) || "";
116
+ }
117
+ catch (error) {
118
+ switch (true) {
119
+ case error instanceof errors_1.MDMError:
120
+ throw error;
121
+ case error instanceof errors_1.MDMWarning:
122
+ console.warn(error.message);
123
+ return "**Warning: ".concat(error.message, "**");
124
+ default:
125
+ console.error(error);
126
+ throw error;
127
+ }
128
+ }
129
+ };
130
+ /* */
131
+ var match;
132
+ while ((match = re.exec(blob)) !== null) {
133
+ blob =
134
+ blob.slice(0, match.index) +
135
+ replacer(match) +
136
+ blob.slice(match.index + match[0].length);
137
+ }
138
+ });
139
+ return blob;
140
+ };
141
+ /* Parse all commands sequentially on a sub-blob */
142
+ Parser.prototype.parse_all_commands = function (blob, commands) {
143
+ blob = this.parse_commands(blob, commands.preparse);
144
+ blob = this.parse_commands(blob, commands.parse);
145
+ blob = this.parse_commands(blob, commands.postparse);
146
+ return blob;
147
+ };
148
+ Parser.prototype.titleId = function (title) {
149
+ var sep = this.opts.use_underscore ? "_" : "-";
150
+ title = title
151
+ .toLowerCase()
152
+ .replace(/[^\w\s]+/g, "")
153
+ .replace(/[\s_]+/g, sep);
154
+ return title;
155
+ };
156
+ Parser.prototype.get_toc = function () {
157
+ var _this = this;
158
+ var __blob = [];
159
+ var tabSize = 2;
160
+ var beg = "* ";
161
+ var hor = " ".repeat(tabSize);
162
+ this.opts.secs.forEach(function (sec) {
163
+ if (sec.level > _this.opts.toc_level)
164
+ return;
165
+ var title = sec.title.replace(/_/g, " ");
166
+ title = _this.parse_all_commands(title, commands_1.commands);
167
+ var link = _this.titleId(title);
168
+ var __line = hor.repeat(Math.max(sec.level - 1, 0)) +
169
+ beg +
170
+ "[".concat(title, "](#").concat(link, ")");
171
+ __blob.push(__line);
172
+ });
173
+ return __blob.join("\n");
174
+ };
175
+ Parser.prototype.add_hook = function (name, hook) {
176
+ if (this.opts.hooks[name] != undefined)
177
+ throw new errors_1.MDMNonParserError("Hook \"".concat(name, "\" already exists!"));
178
+ this.opts.hooks[name] = hook;
179
+ };
180
+ Parser.prototype.line_num_from_index = function (index) {
181
+ return this.raw.substring(0, index).split("\n").length;
182
+ };
183
+ Parser.prototype.remove_double_blank_lines = function (blob) {
184
+ /* replace all triple newlines, and EOF by double newline */
185
+ blob = blob.replace(/(\r\n|\n){3,}/g, "\n\n");
186
+ return blob;
187
+ };
188
+ /* output the parsed document to bundle */
189
+ Parser.prototype.to = function (bundleName, callback) {
190
+ var dir = path_1.default.dirname(bundleName);
191
+ if (callback === undefined)
192
+ callback = function () { };
193
+ if (!fs_1.default.existsSync(dir)) {
194
+ fs_1.default.mkdirSync(dir, { recursive: true });
195
+ }
196
+ if (!this.opts.html) {
197
+ this.get(types_1.TargetType.MARKDOWN, function (blob) {
198
+ fs_1.default.writeFile(bundleName, blob, function () { return callback(bundleName); });
199
+ });
200
+ }
201
+ else {
202
+ var htmlFileName_1 = bundleName.replace(".md", ".html");
203
+ fs_1.default.writeFile(htmlFileName_1, this.html(), function () {
204
+ return callback(htmlFileName_1);
205
+ });
206
+ }
207
+ };
208
+ Parser.prototype.html = function () {
209
+ var htmlFormatted = marked_1.default
210
+ .parse(this.get(types_1.TargetType.HTML))
211
+ .toString();
212
+ if (this.opts.watch) {
213
+ return ("<script>" +
214
+ "w=new WebSocket(\"ws:localhost:7788\");" +
215
+ "w.addEventListener(\"message\",(e)=>" +
216
+ " {if(e.data==\"refresh\")location.reload();}" +
217
+ ");" +
218
+ "</script>\n" +
219
+ htmlFormatted);
220
+ }
221
+ return htmlFormatted;
222
+ };
223
+ Parser.prototype.createChild = function (file) {
224
+ return new Parser(file, undefined, __assign({ parent: this, depth: this.opts.depth + 1 }, this.opts));
225
+ };
226
+ Parser.prototype.get = function (targetType, callback) {
227
+ /* If target type is undefined, markdown is the default */
228
+ if (targetType === undefined)
229
+ targetType = types_1.TargetType.MARKDOWN;
230
+ if (this.blobs[targetType]) {
231
+ if (callback) {
232
+ callback(this.blobs[targetType]);
233
+ }
234
+ return this.blobs[targetType];
235
+ }
236
+ else {
237
+ try {
238
+ this.opts.targetType = targetType;
239
+ var blob = this.parse();
240
+ this.opts.targetType = undefined;
241
+ if (callback)
242
+ callback(blob);
243
+ return blob;
244
+ }
245
+ catch (error) {
246
+ /* Compile a traceback of error */
247
+ var traceback = "";
248
+ var p = this;
249
+ do {
250
+ if (error instanceof errors_1.MDMError)
251
+ traceback += "\n...on line ".concat(p.line_num_from_index(error.match.index), " in ").concat(p.file).grey(15);
252
+ else
253
+ traceback +=
254
+ "\n...on line ".concat(p.line_num, " in ").concat(p.file).grey(15);
255
+ if (p.parent)
256
+ p = p.parent;
257
+ } while (p.parent);
258
+ error.message += traceback;
259
+ /* only interested in node stacktrace when debugging */
260
+ if (!this.opts.debug)
261
+ error.stack = "";
262
+ if (this.opts.only_warn)
263
+ console.error(error);
264
+ else
265
+ throw error;
266
+ }
267
+ }
268
+ };
269
+ Parser.TOKEN = "#md";
270
+ return Parser;
271
+ }());
272
+ function defaultParserOptions() {
273
+ return {
274
+ defs: {},
275
+ secs: [],
276
+ args: [],
277
+ depth: 0,
278
+ verbose: false,
279
+ debug: false,
280
+ max_depth: 5,
281
+ use_underscore: false,
282
+ toc_level: 3,
283
+ allow_undefined: false,
284
+ html: false,
285
+ watch: false,
286
+ targetType: undefined,
287
+ only_warn: false,
288
+ parent: undefined,
289
+ hooks: {},
290
+ isFileCallback: function (f) {
291
+ if (!fs_1.default.existsSync(f))
292
+ return false;
293
+ return fs_1.default.readFileSync(f, "utf-8") + "\n";
294
+ },
295
+ };
296
+ }
297
+ function splice(str, startIndex, width, newSubStr) {
298
+ var start = str.slice(0, startIndex);
299
+ var end = str.slice(startIndex + width);
300
+ return start + newSubStr + end;
301
+ }
302
+ exports.splice = splice;
303
+ /* add extention to marked for classed blockquotes*/
304
+ marked_1.default.use({
305
+ renderer: {
306
+ blockquote: function (quote) {
307
+ /* find the ending, and if not, return the default */
308
+ var ending = quote.match(/\{(.+)\}\s*<\/p>/);
309
+ if (!ending)
310
+ return "<blockquote>".concat(quote, "</blockquote>");
311
+ var args = ending[1].split(" ");
312
+ var classes = args.filter(function (arg) { return arg.startsWith("."); });
313
+ var id = args.filter(function (arg) { return arg.startsWith("#"); });
314
+ var classNames = classes.map(function (c) { return c.slice(1); });
315
+ var classText = classes.length > 0 ? "class=\"".concat(classNames.join(" "), "\"") : "";
316
+ var idText = id.length > 0 ? "id=\"".concat(id[0].slice(1), "\"") : "";
317
+ /* remove the ending from the quote */
318
+ quote = quote.replace(/\{(.+)\}\s*<\/p>/, "</p>");
319
+ return "<blockquote ".concat(classText, " ").concat(idText, ">\n").concat(quote.trim(), "</blockquote>");
320
+ },
321
+ heading: function (text, level) {
322
+ /* add an id to each heading */
323
+ return "<h".concat(level, " id=\"").concat(text
324
+ .replace(/ /g, "-")
325
+ .toLowerCase(), "\">").concat(text, "</h").concat(level, ">");
326
+ },
327
+ },
328
+ });
329
+ exports.default = Parser;
330
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export = template;
2
+ declare const template: "<script src=\"https://polyfill.io/v3/polyfill.min.js?features=es6\"></script><script id=\"MathJax-script\" async src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\"></script>";
@@ -0,0 +1,3 @@
1
+ var template = "<script src=\"https://polyfill.io/v3/polyfill.min.js?features=es6\"></script><script id=\"MathJax-script\" async src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\"></script>";
2
+ module.exports = template;
3
+ //# sourceMappingURL=mathjax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathjax.js","sourceRoot":"","sources":["../../src/templates/mathjax.js"],"names":[],"mappings":"AAAA,IAAM,QAAQ,GAAG,gMAA0L,CAAC;AAE5M,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export = template;
2
+ declare const template: "<style>html {width: 100vw;height: 100vh;}.slide {padding: 5%;border-radius: 25px;margin: 0;}div > .slide-num {position: absolute;top: 12.5%;right: 15%;/* font-size: 150%; */}body {margin: 5% 15%;}img {max-width: 100%;max-height: 40vh;}</style><script>document.addEventListener(\"DOMContentLoaded\", () => {let current_slide = 0;const all_slides = document.querySelectorAll(\"div.slide\");const num_slides = all_slides.length;all_slides.forEach((slide) => {const num_elem = document.createElement(\"p\");num_elem.classList.add(\"slide-num\");slide.appendChild(num_elem);});onkeydown = (ev) => {if (ev.key == \"ArrowRight\" && current_slide < all_slides.length - 1)update_slide(++current_slide);else if (ev.key == \"ArrowLeft\" && current_slide > 0)update_slide(--current_slide);};const update_slide = (index) => {all_slides.forEach((slide) => (slide.style.display = \"none\"));all_slides[current_slide].style.display = \"block\";all_slides[current_slide].lastChild.textContent = `${current_slide + 1} / ${num_slides}`;};update_slide(current_slide);});</script>";
@@ -0,0 +1,3 @@
1
+ var template = "<style>html {width: 100vw;height: 100vh;}.slide {padding: 5%;border-radius: 25px;margin: 0;}div > .slide-num {position: absolute;top: 12.5%;right: 15%;/* font-size: 150%; */}body {margin: 5% 15%;}img {max-width: 100%;max-height: 40vh;}</style><script>document.addEventListener(\"DOMContentLoaded\", () => {let current_slide = 0;const all_slides = document.querySelectorAll(\"div.slide\");const num_slides = all_slides.length;all_slides.forEach((slide) => {const num_elem = document.createElement(\"p\");num_elem.classList.add(\"slide-num\");slide.appendChild(num_elem);});onkeydown = (ev) => {if (ev.key == \"ArrowRight\" && current_slide < all_slides.length - 1)update_slide(++current_slide);else if (ev.key == \"ArrowLeft\" && current_slide > 0)update_slide(--current_slide);};const update_slide = (index) => {all_slides.forEach((slide) => (slide.style.display = \"none\"));all_slides[current_slide].style.display = \"block\";all_slides[current_slide].lastChild.textContent = `${current_slide + 1} / ${num_slides}`;};update_slide(current_slide);});</script>";
2
+ module.exports = template;
3
+ //# sourceMappingURL=presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../src/templates/presentation.js"],"names":[],"mappings":"AAAA,IAAM,QAAQ,GAAG,qiCAAyhC,CAAC;AAE3iC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare const templates: {
2
+ [key: string]: string;
3
+ };
4
+ /**
5
+ * Function to add a template to the templates object. Similar to definitions and variables, but reside as an extension.
6
+ * @param name The name of the template
7
+ * @param content The replacement string
8
+ */
9
+ export declare function new_template(name: string, content: string): void;
10
+ export default templates;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.new_template = void 0;
4
+ var errors_1 = require("./errors");
5
+ var templates = {};
6
+ /**
7
+ * Function to add a template to the templates object. Similar to definitions and variables, but reside as an extension.
8
+ * @param name The name of the template
9
+ * @param content The replacement string
10
+ */
11
+ function new_template(name, content) {
12
+ if (name in templates)
13
+ throw new errors_1.MDMNonParserError("Template \"".concat(name, "\" already exists"));
14
+ templates[name] = content;
15
+ }
16
+ exports.new_template = new_template;
17
+ /* initialize default templates */
18
+ var presentation_template = require("../src/templates/presentation.js");
19
+ var mathjax_template = require("../src/templates/mathjax.js");
20
+ new_template("presentation", presentation_template);
21
+ new_template("mathjax", mathjax_template);
22
+ exports.default = templates;
23
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":";;;AAAA,mCAAuD;AAEvD,IAAM,SAAS,GAA8B,EAAE,CAAC;AAEhD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,IAAI,SAAS;QACpB,MAAM,IAAI,0BAAiB,CAAC,qBAAa,IAAI,sBAAkB,CAAC,CAAC;IAClE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAC3B,CAAC;AAJD,oCAIC;AAED,kCAAkC;AAClC,IAAM,qBAAqB,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC1E,IAAM,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAChE,YAAY,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AACpD,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE1C,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { HTMLElement } from "node-html-parser";
2
+ import { Command } from "./commands";
3
+ export type CommandGroupType = {
4
+ preparse: Command[];
5
+ parse: Command[];
6
+ postparse: Command[];
7
+ };
8
+ type TaggedElementArguments = {
9
+ repeat?: number;
10
+ };
11
+ export type TaggedElement = {
12
+ "html-tag": string;
13
+ "var-tag": string;
14
+ _raw: string;
15
+ args: TaggedElementArguments;
16
+ node: HTMLElement;
17
+ };
18
+ export declare enum CommandType {
19
+ PREPARSE = 0,
20
+ PARSE = 1,
21
+ POSTPARSE = 2
22
+ }
23
+ export declare enum TargetType {
24
+ HTML = 0,
25
+ MARKDOWN = 1
26
+ }
27
+ export type Checksum = string;
28
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TargetType = exports.CommandType = void 0;
4
+ var CommandType;
5
+ (function (CommandType) {
6
+ CommandType[CommandType["PREPARSE"] = 0] = "PREPARSE";
7
+ CommandType[CommandType["PARSE"] = 1] = "PARSE";
8
+ CommandType[CommandType["POSTPARSE"] = 2] = "POSTPARSE";
9
+ })(CommandType = exports.CommandType || (exports.CommandType = {}));
10
+ var TargetType;
11
+ (function (TargetType) {
12
+ TargetType[TargetType["HTML"] = 0] = "HTML";
13
+ TargetType[TargetType["MARKDOWN"] = 1] = "MARKDOWN";
14
+ })(TargetType = exports.TargetType || (exports.TargetType = {}));
15
+ //# sourceMappingURL=types.js.map