diff --git a/scripts/md2html/md2html.js b/scripts/md2html/md2html.js index ef95f67761..fd3ec78f69 100644 --- a/scripts/md2html/md2html.js +++ b/scripts/md2html/md2html.js @@ -13,6 +13,41 @@ const path = require('path'); const url = require('url'); const hljs = require('highlight.js'); +hljs.registerLanguage('uritemplate', function() { + return { + case_insensitive: true, + contains: [ + { + scope: "attr", + match: /(?<=[{,])[^,}\n\r]+/, + } + ], + } + }); +hljs.registerLanguage('uri', function() { + return { + case_insensitive: true, + classNameAliases: { + pathsegment: "attr", + option: "attr", + value: "literal" + }, + contains: [ + { + scope: "pathsegment", + match: /(?<=[/])[^/?#\n\r]+/, + }, + { + scope: "option", + match: /(?<=[?])[^=?\n\r]+/, + }, + { + scope: "value", + match: /(?<=\=)[^?\n\r]+/, + } + ], + } + }); const cheerio = require('cheerio'); let argv = require('yargs') @@ -36,7 +71,8 @@ const md = require('markdown-it')({ ''; } - return '
' + md.utils.escapeHtml(str) + '
';
+ if (lang) console.warn('highlight.js does not support language',lang);
+ return '' + md.utils.escapeHtml(str) + '
';
}
});
diff --git a/tests/md2html/fixtures/basic-new.html b/tests/md2html/fixtures/basic-new.html
index f9fecd4a12..c1b911743b 100644
--- a/tests/md2html/fixtures/basic-new.html
+++ b/tests/md2html/fixtures/basic-new.html
@@ -24,7 +24,13 @@
text/plain
-no language
+no language
+
+unknown language
+
+https://foo.com/bar?baz=qux&fred=waldo#fragment
+
+https://foo.com/bar{?baz*,qux}
Appendix A: Revision History
diff --git a/tests/md2html/fixtures/basic-new.md b/tests/md2html/fixtures/basic-new.md
index 8d0c1e6efd..2119776f54 100644
--- a/tests/md2html/fixtures/basic-new.md
+++ b/tests/md2html/fixtures/basic-new.md
@@ -50,6 +50,18 @@ text/plain
no language
```
+```unknown
+unknown language
+```
+
+```uri
+https://foo.com/bar?baz=qux&fred=waldo#fragment
+```
+
+```uritemplate
+https://foo.com/bar{?baz*,qux}
+```
+
## Appendix A: Revision History
Version | Date