From 207f6f9b516bd3bbb7ee273ccd18ad5e1d4294a4 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 30 Jan 2024 17:05:53 -0500 Subject: [PATCH] toc build esm --- scripts/generate-toc | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/scripts/generate-toc b/scripts/generate-toc index 8a499cfee9..ae7383575b 100755 --- a/scripts/generate-toc +++ b/scripts/generate-toc @@ -1,28 +1,28 @@ #!/usr/bin/env node 'use strict'; -var fs = require('fs'), - cheerio = require('cheerio'), - yamlFront = require('yaml-front-matter'); +import fs from 'fs'; +import {load} from 'cheerio'; +import yamlFront from 'yaml-front-matter'; -var URL = '{{site.baseurl}}/docs/'; +const URL = '{{site.baseurl}}/docs/'; -var DIR = __dirname + '/../site/'; -var DOCS_LAYOUT = DIR + '_layouts/docs.html'; -var COMPILED_DOCS = DIR + '_site/docs'; -var TOC = DIR + '_includes/docs_toc.md'; +const DIR = __dirname + '/../site/'; +const DOCS_LAYOUT = DIR + '_layouts/docs.html'; +const COMPILED_DOCS = DIR + '_site/docs'; +const TOC = DIR + '_includes/docs_toc.md'; -var CONTENT_TAG = '.page-content'; -var INNER_LINK_TAG = 'h2'; +const CONTENT_TAG = '.page-content'; +const INNER_LINK_TAG = 'h2'; -var writeStream = fs.createWriteStream(TOC, {flags: 'w'}); // w flag means overwrite existing file +const writeStream = fs.createWriteStream(TOC, {flags: 'w'}); // w flag means overwrite existing file writeStream.write('[//]: # (Auto-generated by scripts/generate-toc)\r\n'); // generate markdown for list item function generateListItem(content, buffer) { - var indent = ''; - for (var i = 0; i < buffer; i++) { + const indent = ''; + for (const i = 0; i < buffer; i++) { indent += ' '; } return `${indent}- ${content}`; @@ -39,29 +39,29 @@ fs.readFile(DOCS_LAYOUT, function (err, contents) { throw err; } - var front = yamlFront.loadFront(contents.toString()); - var sidebar = front.sidebar; // docs sidebar, top level + const front = yamlFront.loadFront(contents.toString()); + const sidebar = front.sidebar; // docs sidebar, top level function parseSidebar(sidebar, depth) { for (const el of sidebar) { // skip break and table of contents itself if (!el.break && el.url !== 'toc') { - var page = `${COMPILED_DOCS}/${el.url}.html`; + const page = `${COMPILED_DOCS}/${el.url}.html`; // generate markdown for top level navigation - var link = generateLink(el.text, el.url); - var li = generateListItem(link, depth); + const link = generateLink(el.text, el.url); + const li = generateListItem(link, depth); writeStream.write(li + '\r\n'); // build DOM - var $ = cheerio.load(fs.readFileSync(page).toString()); + const $ = load(fs.readFileSync(page).toString()); // iterate through links in DOM tree $(CONTENT_TAG + ' ' + INNER_LINK_TAG).each(function () { // generate markdown for in-page navigation - var hash = '#' + $(this).attr('id'); - var link = generateLink($(this).text(), el.url, hash); - var li = generateListItem(link, depth + 1); + const hash = '#' + $(this).attr('id'); + const link = generateLink($(this).text(), el.url, hash); + const li = generateListItem(link, depth + 1); writeStream.write(li + '\r\n'); }); }