-
-
Notifications
You must be signed in to change notification settings - Fork 33.9k
Closed
Labels
good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.toolsIssues and PRs related to the tools directory.Issues and PRs related to the tools directory.
Description
Basically, this code is not good:
Lines 70 to 93 in 5a042a6
| fs.readFile(filename, 'utf8', async (er, input) => { | |
| if (er) throw er; | |
| const content = unified() | |
| .use(markdown) | |
| .use(html.preprocessText) | |
| .use(json.jsonAPI, { filename }) | |
| .use(html.firstHeader) | |
| .use(html.preprocessElements, { filename }) | |
| .use(html.buildToc, { filename, apilinks }) | |
| .use(remark2rehype, { allowDangerousHTML: true }) | |
| .use(raw) | |
| .use(htmlStringify) | |
| .processSync(input); | |
| const basename = path.basename(filename, '.md'); | |
| const myHtml = await html.toHTML({ input, content, filename, nodeVersion }); | |
| const htmlTarget = path.join(outputDir, `${basename}.html`); | |
| fs.writeFileSync(htmlTarget, myHtml); | |
| const jsonTarget = path.join(outputDir, `${basename}.json`); | |
| fs.writeFileSync(jsonTarget, JSON.stringify(content.json, null, 2)); | |
| }); |
Issues with that:
- Async function set as a callback (unhandled)
- sync I/O calls inside an async function
unifiedis synchronously invoked still
This is all the direct result of f4f856b, which is the result of something else. In hindsight, I wish I payed a bit more attention in my review of that.
Unfortunately my focus is elsewhere, so someone else should probably try to clean this up.
Metadata
Metadata
Assignees
Labels
good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.toolsIssues and PRs related to the tools directory.Issues and PRs related to the tools directory.