website: update all 11ty file to .mjs / ESM modules

This commit is contained in:
Starbeamrainbowlabs 2024-10-02 00:55:24 +01:00
parent 1f8ad8e106
commit 39bba6bef1
No known key found for this signature in database
GPG Key ID: 1BE5172E637709C2
11 changed files with 76 additions and 92 deletions

@ -1,13 +1,15 @@
"use strict";
import fs from "fs";
import path from "path";
const fs = require("fs");
const path = require("path");
import columnify from "columnify";
import htmlentities from "html-entities";
const columnify = require("columnify");
const htmlentities = require("html-entities");
import a from "./lib/Ansi.mjs";
import parse_sections from "./lib/parse_sections.mjs";
const a = require("./lib/Ansi.js");
const parse_sections = require("./lib/parse_sections.js");
// HACK: Make sure __dirname is defined when using es6 modules. I forget where I found this - a PR with a source URL would be great!
const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/"));
let { sections, categories } = parse_sections(fs.readFileSync(
path.resolve(
@ -36,7 +38,7 @@ console.log(columnify(Array.from(categories).map(el => { return {
colour: el[1]
} })));
module.exports = {
export default {
layout: "theme.njk",
title: "Reference",
tags: "navigable",

@ -1,6 +1,11 @@
const fs = require("fs");
const path = require("path");
const htmlentities = require("html-entities");
"use strict";
import fs from 'fs';
import path from 'path';
import htmlentities from 'html-entities';
// HACK: Make sure __dirname is defined when using es6 modules. I forget where I found this - a PR with a source URL would be great!
const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/"));
function read_contributors() {
return fs.readFileSync(path.resolve(__dirname, "../../CONTRIBUTORS.tsv"), "utf-8")
@ -20,4 +25,4 @@ const contributors = read_contributors();
console.log(`CONTRIBUTORS`, contributors);
module.exports = contributors;
export default contributors;

@ -10,11 +10,9 @@ import phin from "phin";
import CleanCSS from "clean-css";
import { minify as minify_html } from "html-minifier-terser";
import UpgradeHelper from "@11ty/eleventy-upgrade-help";
import moondoc_runner from "./lib/moondoc_runner.js";
import HTMLPicture from "./lib/HTMLPicture.js";
import FileFetcher from "./lib/FileFetcher.js";
import moondoc_runner from "./lib/moondoc_runner.mjs";
import HTMLPicture from "./lib/HTMLPicture.mjs";
import FileFetcher from "./lib/FileFetcher.mjs";
const file_fetcher = new FileFetcher();
// HACK: Make sure __dirname is defined when using es6 modules. I forget where I found this - a PR with a source URL would be great!
@ -129,7 +127,6 @@ export default function config(eleventyConfig) {
path.resolve(__dirname, "_site/api/index.html")
);
eleventyConfig.addPlugin(UpgradeHelper);
eleventyConfig.addTransform("cssmin", do_minify_css);
eleventyConfig.addTransform("htmlmin", do_minify_html);

9
.docs/eslint.config.mjs Normal file

@ -0,0 +1,9 @@
export default [
{
files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
rules: {
"prefer-const": "warn",
"no-constant-binary-expression": "error"
}
}
];

@ -85,4 +85,4 @@ class Ansi {
}
}
module.exports = new Ansi();
export default new Ansi();

@ -1,12 +1,16 @@
"use strict";
const path = require("path");
const fs = require("fs");
const os = require("os");
import fs from "fs";
import path from "path";
import os from "os";
const phin = require("phin");
import phin from "phin";
import a from "./Ansi.mjs";
// HACK: Make sure __dirname is defined when using es6 modules. I forget where I found this - a PR with a source URL would be great!
const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/"));
const a = require("./Ansi.js");
var pretty_ms = null;
class FileFetcher {
@ -19,7 +23,7 @@ class FileFetcher {
}
fetch_file(url) {
let target_client = path.join(`/img`, path.basename(url));
const target_client = path.join(`/img`, path.basename(url));
if(this.#cache.includes(url)) return target_client;
@ -37,11 +41,11 @@ class FileFetcher {
if(this.#pkg_obj === null) {
this.#pkg_obj = JSON.parse(await fs.promises.readFile(
path.join(path.dirname(__dirname), "package.json"), "utf8"
path.resolve(path.dirname(__dirname), "package.json"), "utf8"
));
}
let target_download = path.join(`_site/img`, path.basename(url));
const target_download = path.join(`_site/img`, path.basename(url));
const response = await phin({
url,
@ -64,4 +68,4 @@ class FileFetcher {
}
module.exports = FileFetcher;
export default FileFetcher;

@ -1,14 +1,18 @@
"use strict";
const os = require(`os`);
const fs = require("fs");
const path = require("path");
import os from 'os';
import fs from 'fs';
import path from 'path';
const debug = require("debug")("image");
const imagickal = require("imagickal");
const htmlentities = require("html-entities");
import imagickal from 'imagickal';
import htmlentities from "html-entities";
import PQueue from "p-queue";
import pMemoize from "p-memoize";
import pretty_ms from "pretty-ms";
import Debug from 'debug';
const debug = Debug("image");
const a = require("./Ansi.js");
import a from './Ansi.mjs';
function calculate_size(width, height, size_spec) {
if(size_spec.indexOf("%") > -1) {
@ -34,7 +38,6 @@ var queue = null;
async function make_queue() {
// 1: Setup task queue
const PQueue = (await import("p-queue")).default;
let concurrency = os.cpus().length;
if(process.env["MAX_CONCURRENT"])
concurrency = parseInt(process.env["MAX_CONCURRENT"], 10);
@ -142,16 +145,8 @@ async function picture(source_image, alt, target_dir, urlpath, formats = "__AUTO
return result;
}
var picture_memoize = null;
var pretty_ms;
var picture_memoize = pMemoize(picture);
async function setup_memoize() {
const pMemoize = (await import("p-memoize")).default;
picture_memoize = pMemoize(picture);
}
module.exports = async function(...args) {
if(picture_memoize === null) await setup_memoize();
pretty_ms = (await import("pretty-ms")).default;
export default async function(...args) {
return await picture_memoize(...args);
};

@ -1,14 +1,17 @@
"use strict";
const promisify = require("util").promisify;
const fs = require("fs");
const path = require("path");
const child_process = require("child_process");
import { promisify } from "util";
import fs from "fs";
import path from "path";
import child_process from "child_process";
// HACK: Make sure __dirname is defined when using es6 modules. I forget where I found this - a PR with a source URL would be great!
const __dirname = import.meta.url.slice(7, import.meta.url.lastIndexOf("/"));
const filepath_moondoc = path.resolve(__dirname, `../node_modules/.bin/moondoc`);
const dirpath_root = path.resolve(__dirname, `../..`);
module.exports = function moondoc_runner(filepath_output) {
export default function moondoc_runner(filepath_output) {
const dirpath = path.dirname(filepath_output);
if(!fs.existsSync(dirpath)) {
fs.mkdirSync(dirpath, { recursive: true });

@ -1,14 +1,18 @@
"use strict";
const crypto = require("crypto");
import crypto from "crypto";
const htmlentities = require("html-entities");
const markdown = require("markdown-it")({
import htmlentities from "html-entities";
import MarkdownIt from "markdown-it";
import chroma from "chroma-js";
import markdown_prism from "markdown-it-prism";
import markdown_alerts from "markdown-it-github-alerts";
const markdown = new MarkdownIt({
xhtmlOut: true
});
const chroma = require("chroma-js");
const markdown_prism = require("markdown-it-prism");
markdown.use(markdown_prism, {
init: (Prism) => {
Prism.languages.weacmd = {
@ -21,8 +25,7 @@ markdown.use(markdown_prism, {
}
});
const alerts = require("markdown-it-github-alerts");
markdown.use(alerts);
markdown.use(markdown_alerts);
function extract_title(line) {
return line.match(/#+\s+(.+)\s*/)[1].replace(/^`*|`*$/g, "")
@ -47,7 +50,7 @@ function make_section(acc, cat_current, cats) {
};
}
module.exports = function parse_sections(source) {
export default function parse_sections(source) {
const cats = new Map();
source.match(/^##\s+.*$/gm)
.map(extract_title)

@ -10,7 +10,6 @@
"license": "MPL-2.0",
"dependencies": {
"@11ty/eleventy": "^3.0.0",
"@11ty/eleventy-upgrade-help": "^3.0.1",
"chroma-js": "^3.1.1",
"clean-css": "^5.3.2",
"columnify": "^1.6.0",
@ -163,26 +162,6 @@
"url": "https://opencollective.com/11ty"
}
},
"node_modules/@11ty/eleventy-upgrade-help": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz",
"integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==",
"license": "MIT",
"dependencies": {
"fast-glob": "^3.3.2",
"kleur": "^4.1.5",
"minimist": "^1.2.8",
"posthtml-match-helper": "^2.0.2",
"semver": "^7.6.3"
},
"engines": {
"node": ">=18"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/11ty"
}
},
"node_modules/@11ty/eleventy-utils": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz",
@ -3351,18 +3330,6 @@
"posthtml-match-helper": "^2.0.2"
}
},
"@11ty/eleventy-upgrade-help": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@11ty/eleventy-upgrade-help/-/eleventy-upgrade-help-3.0.1.tgz",
"integrity": "sha512-69CttBBfplByurn5vW7eRiLPywZZZHCH6B68Ib3t3348PaHHG9RysVPRqPQzMrGIEEbXg+0+ICm+R8sAkgjfPQ==",
"requires": {
"fast-glob": "^3.3.2",
"kleur": "^4.1.5",
"minimist": "^1.2.8",
"posthtml-match-helper": "^2.0.2",
"semver": "^7.6.3"
}
},
"@11ty/eleventy-utils": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.3.tgz",

@ -21,7 +21,6 @@
"homepage": "https://github.com/sbrl/Minetest-WorldEditAdditions#readme",
"dependencies": {
"@11ty/eleventy": "^3.0.0",
"@11ty/eleventy-upgrade-help": "^3.0.1",
"chroma-js": "^3.1.1",
"clean-css": "^5.3.2",
"columnify": "^1.6.0",