tools: convert addon-verify to remark
This is the last use of the remark *module*. tools/remark-cli and tools/remark-preset-lint-node remain. PR-URL: https://github.com/nodejs/node/pull/21978 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
045b07d518
commit
3ffd6892c4
@ -1,28 +1,38 @@
|
||||
'use strict';
|
||||
|
||||
const { mkdir, readFileSync, writeFile } = require('fs');
|
||||
// doc/api/addons.md has a bunch of code. Extract it for verification
|
||||
// that the C++ code compiles and the js code runs.
|
||||
// Add .gyp files which will be used to compile the C++ code.
|
||||
// Modify the require paths in the js code to pull from the build tree.
|
||||
// Triggered from the build-addons target in the Makefile and vcbuild.bat.
|
||||
|
||||
const { mkdir, writeFile } = require('fs');
|
||||
const { resolve } = require('path');
|
||||
const { lexer } = require('marked');
|
||||
const vfile = require('to-vfile');
|
||||
const unified = require('unified');
|
||||
const remarkParse = require('remark-parse');
|
||||
|
||||
const rootDir = resolve(__dirname, '..', '..');
|
||||
const doc = resolve(rootDir, 'doc', 'api', 'addons.md');
|
||||
const verifyDir = resolve(rootDir, 'test', 'addons');
|
||||
|
||||
const tokens = lexer(readFileSync(doc, 'utf8'));
|
||||
const file = vfile.readSync(doc, 'utf8');
|
||||
const tree = unified().use(remarkParse).parse(file);
|
||||
const addons = {};
|
||||
let id = 0;
|
||||
let currentHeader;
|
||||
|
||||
const validNames = /^\/\/\s+(.*\.(?:cc|h|js))[\r\n]/;
|
||||
tokens.forEach(({ type, text }) => {
|
||||
if (type === 'heading') {
|
||||
currentHeader = text;
|
||||
tree.children.forEach((node) => {
|
||||
if (node.type === 'heading') {
|
||||
currentHeader = file.contents.slice(
|
||||
node.children[0].position.start.offset,
|
||||
node.position.end.offset);
|
||||
addons[currentHeader] = { files: {} };
|
||||
}
|
||||
if (type === 'code') {
|
||||
const match = text.match(validNames);
|
||||
} else if (node.type === 'code') {
|
||||
const match = node.value.match(validNames);
|
||||
if (match !== null) {
|
||||
addons[currentHeader].files[match[1]] = text;
|
||||
addons[currentHeader].files[match[1]] = node.value;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
14
tools/doc/package-lock.json
generated
14
tools/doc/package-lock.json
generated
@ -339,11 +339,6 @@
|
||||
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz",
|
||||
"integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE="
|
||||
},
|
||||
"marked": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz",
|
||||
"integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw=="
|
||||
},
|
||||
"mdast-util-definitions": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.2.tgz",
|
||||
@ -591,6 +586,15 @@
|
||||
"is-hexadecimal": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"to-vfile": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-5.0.0.tgz",
|
||||
"integrity": "sha512-sUeBtb4i09pNIzPtl/PMW20Xfe/NK82oV0IehtmoX/+PhIdvc6JHMRnmC4fjCIcy0LOwcNqB8iRMtTBzXHVbng==",
|
||||
"requires": {
|
||||
"is-buffer": "^2.0.0",
|
||||
"vfile": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"trim": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
|
||||
|
@ -7,12 +7,12 @@
|
||||
"node": ">=6"
|
||||
},
|
||||
"dependencies": {
|
||||
"marked": "^0.4.0",
|
||||
"rehype-raw": "^2.0.0",
|
||||
"rehype-stringify": "^3.0.0",
|
||||
"remark-html": "^7.0.0",
|
||||
"remark-parse": "^5.0.0",
|
||||
"remark-rehype": "^3.0.0",
|
||||
"to-vfile": "^5.0.0",
|
||||
"unified": "^7.0.0",
|
||||
"unist-util-find": "^1.0.1",
|
||||
"unist-util-select": "^1.5.0",
|
||||
|
Loading…
x
Reference in New Issue
Block a user