Skip to content

Commit

Permalink
toc build esm
Browse files Browse the repository at this point in the history
  • Loading branch information
domoritz committed Jan 30, 2024
1 parent ded7386 commit 207f6f9
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions scripts/generate-toc
Original file line number Diff line number Diff line change
@@ -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}`;
Expand All @@ -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');
});
}
Expand Down

0 comments on commit 207f6f9

Please sign in to comment.