diff --git a/docs/html/.gitkeep b/docs/html/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/docs/md/.gitkeep b/docs/md/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..cbccce0
--- /dev/null
+++ b/package.json
@@ -0,0 +1,6 @@
+{
+ "dependencies": {
+ "highlight.js": "^9.12.0",
+ "marked": "^0.3.7"
+ }
+}
diff --git a/parse.js b/parse.js
index 54628b7..e4cb14a 100644
--- a/parse.js
+++ b/parse.js
@@ -1,4 +1,10 @@
const fs = require('fs')
+const marked = require('marked');
+const highlight = require('highlight.js');
+
+marked.setOptions({
+ highlight: code => highlight.highlightAuto(code).value
+});
fs.readFile('js_protocol.pdl', 'utf8', (err, data) => {
const js_schema = parse(data);
@@ -7,6 +13,7 @@ fs.readFile('js_protocol.pdl', 'utf8', (err, data) => {
const schema = {domains: js_schema.domains.concat(browser_schema.domains)};
traceUsages(schema);
markdown(schema);
+ html(schema);
});
});
@@ -323,7 +330,7 @@ function markdown(schema) {
const usages = type.usages.get(usageType);
for (const {item, prefix} of usages) {
const domainName = item.domain.name;
- result.push(`[${domainName}.${item.name}]: ${domainName.toLowerCase()}.md#${prefix}-${domainName.toLowerCase()}${item.name.toLowerCase()} "${domainName}.${item.name}"`);
+ result.push(`[${domainName}.${item.name}]: ${domainName.toLowerCase()}.html#${prefix}-${domainName.toLowerCase()}-${item.name.toLowerCase()} "${domainName}.${item.name}"`);
}
}
}
@@ -332,7 +339,7 @@ function markdown(schema) {
for (const type of domain.usedTypes) {
const domainName = type.domain.name.toLowerCase();
const name = type.name.toLowerCase();
- result.push(`[${type.domain.name}.${type.name}]: ${domainName}.md#type-${domainName}${name} "${type.domain.name}.${type.name}"`);
+ result.push(`[${type.domain.name}.${type.name}]: ${domainName}.html#type-${domainName}-${name} "${type.domain.name}.${type.name}"`);
}
result.push(`[boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON "JSON boolean"`);
@@ -342,6 +349,14 @@ function markdown(schema) {
result.push(`[object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON "JSON object"`);
result.push(`[any]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON "JSON any"`);
- fs.writeFileSync(`docs/${domain.name.toLowerCase()}.md`, result.join('\n'));
+ fs.writeFileSync(`docs/md/${domain.name.toLowerCase()}.md`, result.join('\n'));
+ }
+}
+
+function html(schema) {
+ for (const domain of schema.domains) {
+ const md = fs.readFileSync(`docs/md/${domain.name.toLowerCase()}.md`, 'utf8');
+debugger;
+ fs.writeFileSync(`docs/html/${domain.name.toLowerCase()}.html`, marked(md));
}
}