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