markdown-maker 1.9.2 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.github/workflows/node.js.yml +1 -1
- package/build/cltool.d.ts +1 -0
- package/build/cltool.js +161 -0
- package/build/cltool.js.map +1 -0
- package/build/commands.d.ts +43 -0
- package/build/commands.js +223 -0
- package/build/commands.js.map +1 -0
- package/build/parse.d.ts +65 -0
- package/build/parse.js +281 -0
- package/build/parse.js.map +1 -0
- package/build/templates.d.ts +10 -0
- package/build/templates.js +20 -0
- package/build/templates.js.map +1 -0
- package/package.json +2 -2
- package/src/cltool.ts +11 -3
- package/src/commands.ts +44 -40
- package/src/parse.ts +13 -19
- package/src/templates/configTemplate.json +13 -0
- package/test/advanced.test.js +10 -8
- package/test/basic.test.js +11 -0
- package/test/errors.test.js +23 -1
- package/test/hooks.js +9 -0
- package/test/tester.test.js +12 -3
@@ -0,0 +1 @@
|
|
1
|
+
export declare const argParser: any;
|
package/build/cltool.js
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.argParser = void 0;
|
7
|
+
var fs = require("fs"); /* for handling reading of files */
|
8
|
+
var path = require("path"); /* for handling file paths */
|
9
|
+
var Colors = require("colors.ts"); /* for adding colours to strings */
|
10
|
+
var parse_1 = __importDefault(require("./parse"));
|
11
|
+
var ws_1 = require("ws");
|
12
|
+
Colors.enable();
|
13
|
+
var ArgumentParser = require("argparse").ArgumentParser; /* for parsing clargs */
|
14
|
+
var version = require("../package.json").version; /* package version number */
|
15
|
+
var choki = require("chokidar");
|
16
|
+
exports.argParser = new ArgumentParser({
|
17
|
+
description: "Markdown bundler, with extra options. Extension file is loaded from ./extensions.js, if it exists",
|
18
|
+
prog: "mdparse",
|
19
|
+
});
|
20
|
+
var configFileName = ".mdmconfig.json";
|
21
|
+
//#region command line args
|
22
|
+
exports.argParser.add_argument("src", {
|
23
|
+
help: "file to be parsed. If this is a directory, it looks for entry point in the directory, see --entry",
|
24
|
+
});
|
25
|
+
exports.argParser.add_argument("--version", { action: "version", version: version });
|
26
|
+
exports.argParser.add_argument("-v", "--verbose", {
|
27
|
+
action: "store_true",
|
28
|
+
help: "enable verbose output",
|
29
|
+
});
|
30
|
+
exports.argParser.add_argument("-D", "--debug", {
|
31
|
+
action: "store_true",
|
32
|
+
help: "enable debugging information",
|
33
|
+
});
|
34
|
+
exports.argParser.add_argument("-o", "--output", {
|
35
|
+
help: "destination of bundle, by default is 'dist/bundle.md'",
|
36
|
+
default: "dist/bundle.md",
|
37
|
+
});
|
38
|
+
exports.argParser.add_argument("-d", "--max-depth", {
|
39
|
+
help: "maximum recursion depth, by default is 15",
|
40
|
+
default: 15,
|
41
|
+
type: "int",
|
42
|
+
});
|
43
|
+
exports.argParser.add_argument("-e", "--entry", {
|
44
|
+
help: "assign entry point in directory, by default is 'main.md'",
|
45
|
+
default: "main.md",
|
46
|
+
});
|
47
|
+
exports.argParser.add_argument("-w", "--watch", {
|
48
|
+
action: "store_true",
|
49
|
+
help: "recompile after a change in target target file or directory.",
|
50
|
+
});
|
51
|
+
exports.argParser.add_argument("-u", "--use-underscore", {
|
52
|
+
action: "store_true",
|
53
|
+
help: "set the parser to use '_' as seperator in ids for Table of Content. If the links in the table does not work, this is likely to be the issue.",
|
54
|
+
});
|
55
|
+
exports.argParser.add_argument("-t", "--toc-level", {
|
56
|
+
help: "the section level of the table of contents, by default is 3",
|
57
|
+
default: 3,
|
58
|
+
type: "int",
|
59
|
+
});
|
60
|
+
exports.argParser.add_argument("-H", "--html", {
|
61
|
+
action: "store_true",
|
62
|
+
help: "compile HTML from the parsed markdown",
|
63
|
+
});
|
64
|
+
exports.argParser.add_argument("--allow-undefined", "-A", {
|
65
|
+
action: "store_true",
|
66
|
+
help: "allow the use of the \"<thing>\" syntax, without raising an error when 'thing' is not a variable. Mostly useful when writing inline html tags, and other non-strictly markdown related uses",
|
67
|
+
});
|
68
|
+
//#endregion
|
69
|
+
function main() {
|
70
|
+
var clargs, fileargs;
|
71
|
+
var server;
|
72
|
+
/* Read config file or parse args from cmd-line */
|
73
|
+
if (fs.existsSync(configFileName)) {
|
74
|
+
var data = JSON.parse(fs.readFileSync(configFileName)).opts;
|
75
|
+
var args_1 = [];
|
76
|
+
Object.entries(data).forEach(function (_a) {
|
77
|
+
var key = _a[0], value = _a[1];
|
78
|
+
if (key != "src" && value !== false) {
|
79
|
+
args_1.push("--" + key);
|
80
|
+
}
|
81
|
+
if (typeof value != "boolean") {
|
82
|
+
args_1.push(value);
|
83
|
+
}
|
84
|
+
});
|
85
|
+
/* We skip [0] and [1], as it is the binary and source file, even when compiled*/
|
86
|
+
for (var i = 2; i < process.argv.length; i++)
|
87
|
+
args_1.push(process.argv[i]);
|
88
|
+
clargs = exports.argParser.parse_args(args_1);
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
clargs = exports.argParser.parse_args();
|
92
|
+
}
|
93
|
+
/* if src is init, create config file and exit */
|
94
|
+
if (clargs.src == "init") {
|
95
|
+
var template = fs.readFileSync(path.join(__dirname, "..", "src", "templates", "configTemplate.json"));
|
96
|
+
fs.writeFileSync(configFileName, template);
|
97
|
+
fs.writeFileSync("main.md", "# Main\n");
|
98
|
+
return;
|
99
|
+
}
|
100
|
+
/* helper method for calling parser */
|
101
|
+
var compile = function (source, output, cb) {
|
102
|
+
/* load data from file, if it exists,
|
103
|
+
* otherwise, interpret as string */
|
104
|
+
var parser = new parse_1.default(source, clargs);
|
105
|
+
parser.to(output, function (file) {
|
106
|
+
console.log("Compiled ".concat(file).green);
|
107
|
+
if (cb)
|
108
|
+
cb();
|
109
|
+
});
|
110
|
+
return parser;
|
111
|
+
};
|
112
|
+
var internalCooldown = 1000;
|
113
|
+
function watcher(event, path) {
|
114
|
+
var now = Date.now();
|
115
|
+
if (!this.time)
|
116
|
+
this.time = now;
|
117
|
+
if (now - this.time < internalCooldown)
|
118
|
+
return;
|
119
|
+
console.log(path);
|
120
|
+
console.log("Detected change in ".concat(path, "..."));
|
121
|
+
try {
|
122
|
+
compile(clargs.src, clargs.output, function () {
|
123
|
+
/* after compile, send refresh command to clients */
|
124
|
+
server.clients.forEach(function (client) {
|
125
|
+
if (client.OPEN)
|
126
|
+
client.send("refresh");
|
127
|
+
});
|
128
|
+
});
|
129
|
+
}
|
130
|
+
catch (e) {
|
131
|
+
console.log(e.message);
|
132
|
+
}
|
133
|
+
this.time = now;
|
134
|
+
}
|
135
|
+
/* in case source is a directory, look for entry in directory */
|
136
|
+
if (fs.existsSync(clargs.src) && fs.lstatSync(clargs.src).isDirectory()) {
|
137
|
+
clargs.src = path.join(clargs.src, clargs.entry);
|
138
|
+
}
|
139
|
+
if (clargs.debug)
|
140
|
+
console.dir(clargs);
|
141
|
+
/* compile once */
|
142
|
+
if (!clargs.watch)
|
143
|
+
compile(clargs.src, clargs.output);
|
144
|
+
/* watch the folder and recompile on change */
|
145
|
+
else {
|
146
|
+
var srcDirName = path.dirname(clargs.src);
|
147
|
+
console.log("Watching ".concat(srcDirName, " for changes...").yellow);
|
148
|
+
server = new ws_1.WebSocketServer({ port: 7788 });
|
149
|
+
var _watcher = choki.watch(srcDirName).on("all", watcher);
|
150
|
+
try {
|
151
|
+
compile(clargs.src, clargs.output);
|
152
|
+
}
|
153
|
+
catch (e) {
|
154
|
+
console.log(e.message);
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}
|
158
|
+
/* main entrypoint */
|
159
|
+
if (require.main === module)
|
160
|
+
main();
|
161
|
+
//# sourceMappingURL=cltool.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cltool.js","sourceRoot":"","sources":["../src/cltool.ts"],"names":[],"mappings":";;;;;;AAAA,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;AAC7D,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B;AAE3D,kCAAqC,CAAC,mCAAmC;AACzE,kDAA6B;AAC7B,yBAAqC;AAErC,MAAM,CAAC,MAAM,EAAE,CAAC;AACR,IAAA,cAAc,GAAK,OAAO,CAAC,UAAU,CAAC,eAAxB,CAAyB,CAAC,wBAAwB;AAChE,IAAA,OAAO,GAAK,OAAO,CAAC,iBAAiB,CAAC,QAA/B,CAAgC,CAAC,4BAA4B;AAC5E,IAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAErB,QAAA,SAAS,GAAG,IAAI,cAAc,CAAC;IACxC,WAAW,EAAE,mGAAmG;IAChH,IAAI,EAAE,SAAS;CAClB,CAAC,CAAC;AAEH,IAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC,2BAA2B;AAC3B,iBAAS,CAAC,YAAY,CAAC,KAAK,EAAE;IAC1B,IAAI,EAAE,mGAAmG;CAC5G,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;AACpE,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE;IACtC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,uBAAuB;CAChC,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE;IACpC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,8BAA8B;CACvC,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE;IACrC,IAAI,EAAE,uDAAuD;IAC7D,OAAO,EAAE,gBAAgB;CAC5B,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE;IACxC,IAAI,EAAE,2CAA2C;IACjD,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,KAAK;CACd,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE;IACpC,IAAI,EAAE,0DAA0D;IAChE,OAAO,EAAE,SAAS;CACrB,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE;IACpC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,8DAA8D;CACvE,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE;IAC7C,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,8IAA8I;CACvJ,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE;IACxC,IAAI,EAAE,6DAA6D;IACnE,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,KAAK;CACd,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE;IACnC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,uCAAuC;CAChD,CAAC,CAAC;AACH,iBAAS,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,EAAE;IAC9C,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,6LAA6L;CACtM,CAAC,CAAC;AACH,YAAY;AAEZ,SAAS,IAAI;IACT,IAAI,MAAM,EAAE,QAAQ,CAAC;IACrB,IAAI,MAAmC,CAAC;IAExC,kDAAkD;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QAC/B,IAAI,IAAI,GAAiD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1G,IAAI,MAAI,GAAwB,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACrC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE;gBACjC,MAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;aACzB;YACD,IAAI,OAAO,KAAK,IAAI,SAAS,EAAE;gBAC3B,MAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;QAEH,kFAAkF;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzE,MAAM,GAAG,iBAAS,CAAC,UAAU,CAAC,MAAI,CAAC,CAAC;KACvC;SAAM;QACH,MAAM,GAAG,iBAAS,CAAC,UAAU,EAAE,CAAC;KACnC;IAED,iDAAiD;IACjD,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,EAAE;QACtB,IAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACxG,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO;KACV;IAED,sCAAsC;IACtC,IAAM,OAAO,GAAG,UAAC,MAAM,EAAE,MAAM,EAAE,EAAG;QAChC;4CACoC;QAEpC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,IAAI;YACnB,OAAO,CAAC,GAAG,CAAC,mBAAY,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,EAAE;gBAAE,EAAE,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,IAAI,CAAC;IAC9B,SAAS,OAAO,CAAC,KAAK,EAAE,IAAI;QACxB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,gBAAgB;YAAE,OAAO;QAE/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,6BAAsB,IAAI,QAAK,CAAC,CAAC;QAE7C,IAAI;YACA,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE;gBAC/B,oDAAoD;gBACpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;oBAC1B,IAAI,MAAM,CAAC,IAAI;wBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,gEAAgE;IAChE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACrE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;KACpD;IAED,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,kBAAkB;IAClB,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,8CAA8C;SACzC;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mBAAY,UAAU,oBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,GAAG,IAAI,oBAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI;YACA,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SACtC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC1B;KACJ;AAEL,CAAC;AAED,qBAAqB;AACrB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,IAAI,EAAE,CAAC"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import Parser from "./parse";
|
2
|
+
export declare class MDMError extends Error {
|
3
|
+
match: RegExpMatchArray;
|
4
|
+
constructor(message: string, match: RegExpMatchArray);
|
5
|
+
}
|
6
|
+
export declare const commands: {
|
7
|
+
preparse: Command[];
|
8
|
+
parse: Command[];
|
9
|
+
postparse: Command[];
|
10
|
+
};
|
11
|
+
export declare enum CommandType {
|
12
|
+
PREPARSE = 0,
|
13
|
+
PARSE = 1,
|
14
|
+
POSTPARSE = 2
|
15
|
+
}
|
16
|
+
export declare enum TargetType {
|
17
|
+
HTML = 0,
|
18
|
+
MARKDOWN = 1
|
19
|
+
}
|
20
|
+
export declare class Command {
|
21
|
+
validator: RegExp;
|
22
|
+
acter: (match: RegExpMatchArray, parser: Parser) => string | void;
|
23
|
+
type: CommandType;
|
24
|
+
constructor(validator: RegExp, acter: (match: RegExpMatchArray, parser: Parser) => string | void, type: CommandType);
|
25
|
+
act(match: any, parser: any): string | void;
|
26
|
+
}
|
27
|
+
export declare function load_extensions(parser: Parser): void;
|
28
|
+
/**
|
29
|
+
*
|
30
|
+
* @param regex The regex to match the command
|
31
|
+
* @param acter The function called when a match is found. Takes two arguments, `match` and `parser`. `match` is the result of the regex match, and `parser` is the parser instance. The function should return the replacement string.
|
32
|
+
* @param type When the command should be run. Can be `CommandType.PREPARSE`, `CommandType.PARSE`, or `CommandType.POSTPARSE`. Defaults to `CommandType.PARSE`.
|
33
|
+
*/
|
34
|
+
export declare function new_command(regex: RegExp, acter: (match: RegExpMatchArray, parser: Parser) => string, type?: CommandType): void;
|
35
|
+
declare const _default: {
|
36
|
+
commands: {
|
37
|
+
preparse: Command[];
|
38
|
+
parse: Command[];
|
39
|
+
postparse: Command[];
|
40
|
+
};
|
41
|
+
load_extensions: typeof load_extensions;
|
42
|
+
};
|
43
|
+
export default _default;
|
@@ -0,0 +1,223 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
3
|
+
var extendStatics = function (d, b) {
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
+
return extendStatics(d, b);
|
8
|
+
};
|
9
|
+
return function (d, b) {
|
10
|
+
if (typeof b !== "function" && b !== null)
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
+
extendStatics(d, b);
|
13
|
+
function __() { this.constructor = d; }
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
+
};
|
16
|
+
})();
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
18
|
+
if (k2 === undefined) k2 = k;
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
22
|
+
}
|
23
|
+
Object.defineProperty(o, k2, desc);
|
24
|
+
}) : (function(o, m, k, k2) {
|
25
|
+
if (k2 === undefined) k2 = k;
|
26
|
+
o[k2] = m[k];
|
27
|
+
}));
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
30
|
+
}) : function(o, v) {
|
31
|
+
o["default"] = v;
|
32
|
+
});
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
34
|
+
if (mod && mod.__esModule) return mod;
|
35
|
+
var result = {};
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
37
|
+
__setModuleDefault(result, mod);
|
38
|
+
return result;
|
39
|
+
};
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
42
|
+
};
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
44
|
+
exports.new_command = exports.load_extensions = exports.Command = exports.TargetType = exports.CommandType = exports.commands = exports.MDMError = void 0;
|
45
|
+
var path = __importStar(require("path"));
|
46
|
+
var parse_1 = __importDefault(require("./parse"));
|
47
|
+
var fs = __importStar(require("fs"));
|
48
|
+
var templates_1 = __importStar(require("./templates"));
|
49
|
+
var require_runtime_1 = __importDefault(require("require-runtime"));
|
50
|
+
var MDMError = /** @class */ (function (_super) {
|
51
|
+
__extends(MDMError, _super);
|
52
|
+
function MDMError(message, match) {
|
53
|
+
var _this = _super.call(this, message) || this;
|
54
|
+
_this.name = "MDMError";
|
55
|
+
_this.match = match;
|
56
|
+
return _this;
|
57
|
+
}
|
58
|
+
return MDMError;
|
59
|
+
}(Error));
|
60
|
+
exports.MDMError = MDMError;
|
61
|
+
exports.commands = {
|
62
|
+
preparse: [],
|
63
|
+
parse: [],
|
64
|
+
postparse: [],
|
65
|
+
};
|
66
|
+
var CommandType;
|
67
|
+
(function (CommandType) {
|
68
|
+
CommandType[CommandType["PREPARSE"] = 0] = "PREPARSE";
|
69
|
+
CommandType[CommandType["PARSE"] = 1] = "PARSE";
|
70
|
+
CommandType[CommandType["POSTPARSE"] = 2] = "POSTPARSE";
|
71
|
+
})(CommandType = exports.CommandType || (exports.CommandType = {}));
|
72
|
+
var TargetType;
|
73
|
+
(function (TargetType) {
|
74
|
+
TargetType[TargetType["HTML"] = 0] = "HTML";
|
75
|
+
TargetType[TargetType["MARKDOWN"] = 1] = "MARKDOWN";
|
76
|
+
})(TargetType = exports.TargetType || (exports.TargetType = {}));
|
77
|
+
var Command = /** @class */ (function () {
|
78
|
+
function Command(validator, acter, type) {
|
79
|
+
this.type = type;
|
80
|
+
this.validator = validator;
|
81
|
+
this.acter = acter;
|
82
|
+
/* add this function to appropriate file */
|
83
|
+
switch (type) {
|
84
|
+
case CommandType.PARSE:
|
85
|
+
exports.commands.parse.push(this);
|
86
|
+
break;
|
87
|
+
case CommandType.PREPARSE:
|
88
|
+
exports.commands.preparse.push(this);
|
89
|
+
break;
|
90
|
+
case CommandType.POSTPARSE:
|
91
|
+
exports.commands.postparse.push(this);
|
92
|
+
break;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
Command.prototype.act = function (match, parser) {
|
96
|
+
return this.acter(match, parser);
|
97
|
+
};
|
98
|
+
return Command;
|
99
|
+
}());
|
100
|
+
exports.Command = Command;
|
101
|
+
/* variable shorthand */
|
102
|
+
new Command(/(\s|^)<(.+)>/, function (match, parser) { return "".concat(match[1], "#mdvar<").concat(match[2], ">"); }, CommandType.PREPARSE);
|
103
|
+
/* mddef */
|
104
|
+
new Command(/#mddef< *(.+?) *= *(.+?) *>/ /* first .+ is lazy so as to not match following spaces */, function (match, parser) {
|
105
|
+
parser.opts.defs[match[1]] = match[2].replace("_", " ");
|
106
|
+
}, CommandType.PARSE);
|
107
|
+
/* mdvar */
|
108
|
+
new Command(/#mdvar<(.+?)>/, function (match, parser) {
|
109
|
+
var value = parser.opts.defs[match[1]];
|
110
|
+
if (!value && !parser.opts.allow_undefined)
|
111
|
+
throw new Error("Undefined variable: ".concat(match[1]));
|
112
|
+
return (value = value || "<".concat(match[1], ">"));
|
113
|
+
}, CommandType.PARSE);
|
114
|
+
/** mdinclude */
|
115
|
+
new Command(/#mdinclude<([\w.\/-]+)(?:[,\s]+([\w]+))?>/, function (match, parser) {
|
116
|
+
/* increase the current recursive depth */
|
117
|
+
parser.opts.depth++;
|
118
|
+
if (parser.opts.depth > parser.opts.max_depth) {
|
119
|
+
throw new Error("max depth exceeded!");
|
120
|
+
}
|
121
|
+
/* get the matching group */
|
122
|
+
var _ = match[0], name = match[1], condition = match[2];
|
123
|
+
/* implement conditional imports */
|
124
|
+
if (condition && !parser.opts.args.includes(condition))
|
125
|
+
return;
|
126
|
+
var fsstat = fs.lstatSync(path.join(parser.wd, name));
|
127
|
+
if (fsstat.isDirectory()) {
|
128
|
+
/* check if a file with the same name of the
|
129
|
+
* exists in the folder */
|
130
|
+
if (fs.existsSync(path.join(parser.wd, name, "".concat(name, ".md")))) {
|
131
|
+
name = path.join(name, "".concat(name, ".md"));
|
132
|
+
}
|
133
|
+
else {
|
134
|
+
throw new Error("No entry file found in folder \"".concat(name, "\". Looking for \"").concat(name, ".md\""));
|
135
|
+
}
|
136
|
+
}
|
137
|
+
var recursiveParser = new parse_1.default(path.join(parser.wd, name), parser.opts, {
|
138
|
+
parent: parser,
|
139
|
+
});
|
140
|
+
/* keep the options the same */
|
141
|
+
recursiveParser.opts = parser.opts;
|
142
|
+
recursiveParser.parent = parser;
|
143
|
+
var fileType = path.extname(recursiveParser.file);
|
144
|
+
var blob = fileType === ".md"
|
145
|
+
? recursiveParser.get(parser.opts.targetType)
|
146
|
+
: recursiveParser.raw;
|
147
|
+
parser.opts.depth--;
|
148
|
+
return blob;
|
149
|
+
}, CommandType.PARSE);
|
150
|
+
/* mdlabel */
|
151
|
+
new Command(/#mdlabel<(\d+),\s?(.+)>/, function (match, parser) {
|
152
|
+
if (parser.opts.targetType !== TargetType.HTML)
|
153
|
+
return "";
|
154
|
+
var level = Number.parseInt(match[1]);
|
155
|
+
var title = match[2];
|
156
|
+
var link = parser.titleId(title);
|
157
|
+
parser.opts.secs.push({ level: level, title: title });
|
158
|
+
return "<span id=\"".concat(link, "\"></span>");
|
159
|
+
}, CommandType.PREPARSE);
|
160
|
+
/* mdref */
|
161
|
+
new Command(/#mdref<(.+)>/, function (match, parser) {
|
162
|
+
for (var i = 0; i < parser.opts.secs.length; i++) {
|
163
|
+
var title = parser.opts.secs[i].title;
|
164
|
+
if (title === match[1])
|
165
|
+
break;
|
166
|
+
if (i === parser.opts.secs.length - 1)
|
167
|
+
throw new Error("Reference to [".concat(match[1], "] could not be resolved!"));
|
168
|
+
}
|
169
|
+
match[1] = match[1].replace("_", " ");
|
170
|
+
var link = parser.titleId(match[1]);
|
171
|
+
if (parser.opts.targetType === TargetType.HTML)
|
172
|
+
return "<a href=\"#".concat(link, "\">").concat(match[1], "</a>");
|
173
|
+
else if (parser.opts.targetType === TargetType.MARKDOWN)
|
174
|
+
return "[".concat(match[1], "](#").concat(link, ")");
|
175
|
+
}, CommandType.PARSE);
|
176
|
+
/* mdtemplate */
|
177
|
+
new Command(/#mdtemplate<(\w+?)>/, function (match, parser) {
|
178
|
+
var template = match[1];
|
179
|
+
var replacement = templates_1.default[template];
|
180
|
+
if (replacement !== undefined) {
|
181
|
+
return replacement;
|
182
|
+
}
|
183
|
+
else {
|
184
|
+
throw new MDMError("Template \"".concat(template, "\" not found!"), match);
|
185
|
+
}
|
186
|
+
}, CommandType.PARSE);
|
187
|
+
new Command(/#mdmaketoc(?:<>)?/, function (match, parser) { return parser.gen_toc(); }, CommandType.POSTPARSE);
|
188
|
+
var loaded_extentions = [];
|
189
|
+
function load_extension(parser, file) {
|
190
|
+
if (loaded_extentions.includes(file))
|
191
|
+
return;
|
192
|
+
if (fs.existsSync(file)) {
|
193
|
+
var extensions = (0, require_runtime_1.default)(file);
|
194
|
+
loaded_extentions.push(file);
|
195
|
+
extensions.main(templates_1.new_template, new_command);
|
196
|
+
if (parser.opts.verbose)
|
197
|
+
console.log("Loaded extensions from ".concat(file).yellow);
|
198
|
+
}
|
199
|
+
else if (parser.opts.debug) {
|
200
|
+
console.log("No extensions found at ".concat(file).red);
|
201
|
+
}
|
202
|
+
}
|
203
|
+
function load_extensions(parser) {
|
204
|
+
/* global extention */
|
205
|
+
var global_extensions_path = path.join(__dirname, "extensions.js");
|
206
|
+
load_extension(parser, global_extensions_path);
|
207
|
+
/* project extention */
|
208
|
+
var project_extensions_path = path.join(parser.wd_full, "extensions.js");
|
209
|
+
load_extension(parser, project_extensions_path);
|
210
|
+
}
|
211
|
+
exports.load_extensions = load_extensions;
|
212
|
+
/**
|
213
|
+
*
|
214
|
+
* @param regex The regex to match the command
|
215
|
+
* @param acter The function called when a match is found. Takes two arguments, `match` and `parser`. `match` is the result of the regex match, and `parser` is the parser instance. The function should return the replacement string.
|
216
|
+
* @param type When the command should be run. Can be `CommandType.PREPARSE`, `CommandType.PARSE`, or `CommandType.POSTPARSE`. Defaults to `CommandType.PARSE`.
|
217
|
+
*/
|
218
|
+
function new_command(regex, acter, type) {
|
219
|
+
new Command(regex, acter, type || CommandType.PARSE);
|
220
|
+
}
|
221
|
+
exports.new_command = new_command;
|
222
|
+
exports.default = { commands: exports.commands, load_extensions: load_extensions };
|
223
|
+
//# sourceMappingURL=commands.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/build/parse.d.ts
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
import { Command } from "./commands";
|
2
|
+
declare enum TargetType {
|
3
|
+
HTML = 0,
|
4
|
+
MARKDOWN = 1
|
5
|
+
}
|
6
|
+
declare class Parser {
|
7
|
+
file: string;
|
8
|
+
parent?: Parser;
|
9
|
+
line_num: number;
|
10
|
+
wd: string;
|
11
|
+
wd_full: string;
|
12
|
+
blobs: {
|
13
|
+
[key: number]: string | undefined;
|
14
|
+
};
|
15
|
+
opts: {
|
16
|
+
defs: {
|
17
|
+
[key: string]: string;
|
18
|
+
};
|
19
|
+
secs: {
|
20
|
+
level: number;
|
21
|
+
title: string;
|
22
|
+
}[];
|
23
|
+
args: string[];
|
24
|
+
depth: number;
|
25
|
+
verbose: boolean;
|
26
|
+
debug: boolean;
|
27
|
+
max_depth: number;
|
28
|
+
use_underscore: boolean;
|
29
|
+
toc_level: number;
|
30
|
+
allow_undefined: boolean;
|
31
|
+
html: boolean;
|
32
|
+
watch: boolean;
|
33
|
+
targetType: TargetType | undefined;
|
34
|
+
only_warn: boolean;
|
35
|
+
parent?: Parser;
|
36
|
+
isFileCallback: (s: string) => false | string;
|
37
|
+
};
|
38
|
+
raw: string;
|
39
|
+
static TOKEN: string;
|
40
|
+
constructor(filename: any, clargs: any, opts?: {
|
41
|
+
parent?: Parser;
|
42
|
+
isFileCallback?: (s: string) => false | string;
|
43
|
+
});
|
44
|
+
/**
|
45
|
+
* parse wrapper for handling
|
46
|
+
* preprocessing, parsing and postprocess
|
47
|
+
**/
|
48
|
+
parse(): any;
|
49
|
+
mainparse(blob: string): string;
|
50
|
+
preprocess(blob: string): string;
|
51
|
+
postprocess(blob: string): string;
|
52
|
+
parse_commands(blob: string, commands: Command[]): string;
|
53
|
+
parse_all_commands(blob: string, commands: {
|
54
|
+
[key: string]: Command[];
|
55
|
+
}): string;
|
56
|
+
titleId(title: string): string;
|
57
|
+
gen_toc(): string;
|
58
|
+
line_num_from_index(index: number): number;
|
59
|
+
remove_double_blank_lines(blob: any): any;
|
60
|
+
to(bundleName: string, callback: (fileName: string) => void): void;
|
61
|
+
html(): any;
|
62
|
+
get(targetType?: TargetType, callback?: (blob: string) => void): string;
|
63
|
+
}
|
64
|
+
export declare function splice(str: string, startIndex: number, width: number, newSubStr: string): string;
|
65
|
+
export default Parser;
|