mirror of
https://github.com/tale/headplane.git
synced 2026-08-19 17:36:19 +00:00
feat: nix: docs: improve NixOS docs generations
This commit is contained in:
committed by
Aarnav Tale
parent
9192013bfe
commit
c98dc5ed1d
+37
@@ -0,0 +1,37 @@
|
||||
import fs from "node:fs";
|
||||
|
||||
function renderOptions(options) {
|
||||
const blocks = Object.keys(options).map((key) => {
|
||||
const opt = options[key];
|
||||
const name = key.split(".").slice(2).join(".");
|
||||
const lines = [];
|
||||
lines.push(`## ${name}`);
|
||||
lines.push(`*Description:* ${opt.description}\n`);
|
||||
lines.push(`*Type:* ${opt.type}\n`);
|
||||
if (opt.default) {
|
||||
lines.push(`*Default:* \`${opt.default.text}\`\n`);
|
||||
}
|
||||
if (opt.example) {
|
||||
lines.push(`*Example:* \`${opt.example.text}\`\n`);
|
||||
}
|
||||
return lines.join("\n");
|
||||
});
|
||||
|
||||
return [
|
||||
`# NixOS module options
|
||||
|
|
||||
|All options must be under \`services.headplane\`.
|
||||
|
|
||||
|For example: \`settings.headscale.config_path\` becomes \`services.headplane.settings.headscale.config_path\`.`
|
||||
.split("|")
|
||||
.map((s) => s.replace(/\n\s+/g, ""))
|
||||
.join("\n"),
|
||||
]
|
||||
.concat(blocks)
|
||||
.join("\n\n");
|
||||
}
|
||||
|
||||
const filename = process.argv[2];
|
||||
const file = fs.readFileSync(filename);
|
||||
const json = JSON.parse(file);
|
||||
console.log(renderOptions(json));
|
||||
Reference in New Issue
Block a user