0.0.3 - "mmm cheese"
* Formatted the default template * Markdown content is now formatted using `@liquify/prettify` (not `esthetic` due to implementation issues) + Added the ability to specify the virtual prefix for the rendered pages * Changed GNUmakefile to use double quotes instead of singles. AC: gak gak gak gak gak gak gak gak gak gak gak gak gak gak gak
This commit is contained in:
parent
c10aa967d1
commit
f931edbfa5
|
@ -22,8 +22,8 @@ MARKER = node compile
|
||||||
BUILD_DIR = ./build
|
BUILD_DIR = ./build
|
||||||
SRC_DIRS = ./docs
|
SRC_DIRS = ./docs
|
||||||
|
|
||||||
MARKDOWN_L = $(patsubst %.md,%.html,$(shell find $(SRC_DIRS) -name '*.md'))
|
MARKDOWN_L = $(patsubst %.md,%.html,$(shell find $(SRC_DIRS) -name "*.md"))
|
||||||
COPY_L = $(patsubst %.css,%.justcopytobuilddir,$(shell find $(SRC_DIRS) -name '*.css'))
|
COPY_L = $(patsubst %.css,%.justcopytobuilddir,$(shell find $(SRC_DIRS) -name "*.css"))
|
||||||
|
|
||||||
all: $(MARKDOWN_L) $(COPY_L)
|
all: $(MARKDOWN_L) $(COPY_L)
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,11 @@ Otherwise, if you just want to use `yiki` to render one file:
|
||||||
|
|
||||||
Example: `gmake WIKINAME="I love options!"`
|
Example: `gmake WIKINAME="I love options!"`
|
||||||
|
|
||||||
|
`VPREFIX` Specify the virtual root of that the default template links to
|
||||||
|
for the `yiki.css` and the `index.html` files.
|
||||||
|
|
||||||
|
Example: `gmake VPREFIX:="/yiki/"`
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
I request (but not require) that you modify files without Carriage Returns,
|
I request (but not require) that you modify files without Carriage Returns,
|
||||||
|
|
31
compile.js
31
compile.js
|
@ -22,6 +22,7 @@
|
||||||
const Remarkable = require("remarkable").Remarkable; // remove .Remarkable if you're using Remarkable ^1.0.0!
|
const Remarkable = require("remarkable").Remarkable; // remove .Remarkable if you're using Remarkable ^1.0.0!
|
||||||
const TOCGenerator = require("markdown-toc");
|
const TOCGenerator = require("markdown-toc");
|
||||||
const RemarkableHeaderIDs = require("remarkable-header-ids");
|
const RemarkableHeaderIDs = require("remarkable-header-ids");
|
||||||
|
const HTMLFormatter = require("@liquify/prettify").formatSync;
|
||||||
|
|
||||||
// natives
|
// natives
|
||||||
const Process = require("process");
|
const Process = require("process");
|
||||||
|
@ -41,11 +42,39 @@ function render(input, options) {
|
||||||
|
|
||||||
function format(data, name) {
|
function format(data, name) {
|
||||||
var wikiName = "A new yiki!";
|
var wikiName = "A new yiki!";
|
||||||
|
var rootPrefix = "/";
|
||||||
if(process.env["WIKINAME"]) {
|
if(process.env["WIKINAME"]) {
|
||||||
wikiName = process.env["WIKINAME"];
|
wikiName = process.env["WIKINAME"];
|
||||||
}
|
}
|
||||||
|
if(process.env["VPREFIX"]) {
|
||||||
|
rootPrefix = process.env["VPREFIX"];
|
||||||
|
}
|
||||||
|
// forceIndent screws with text nodes pretty bad but the alternative is to not allow the full document to be formatted
|
||||||
|
const formatterRules = {"indentChar": "\t", "indentSize": 1, "markup": {"forceAttribute": false, "forceIndent": true}};
|
||||||
// probably should bring in a better templating engine but whatever
|
// probably should bring in a better templating engine but whatever
|
||||||
return (`<!doctype html>\r\n<html><head<meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>${name} - Documentation</title><link rel="stylesheet" type="text/css" href="/yiki.css"></head><body><nav><span>${wikiName}</span><span> | </span><a href="/index.htm">home</a></nav><hr>${data}</body></html>`);
|
return ( /* eslint-disable indent */
|
||||||
|
`<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>${name} - Documentation</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="${rootPrefix}yiki.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<nav>
|
||||||
|
<span>${wikiName}</span>
|
||||||
|
<span> | </span>
|
||||||
|
<a href="${rootPrefix}index.html">home</a>
|
||||||
|
</nav>
|
||||||
|
<hr>
|
||||||
|
<main>
|
||||||
|
${HTMLFormatter(data, formatterRules).split("\n").join("\n\t\t\t")}
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>`
|
||||||
|
); /* eslint-enable indent */
|
||||||
}
|
}
|
||||||
|
|
||||||
let content = render(Filesystem.readFileSync(Process.argv[2]).toString());
|
let content = render(Filesystem.readFileSync(Process.argv[2]).toString());
|
||||||
|
|
|
@ -1,19 +1,29 @@
|
||||||
{
|
{
|
||||||
"name": "yiki",
|
"name": "yiki",
|
||||||
"version": "0.0.2",
|
"version": "0.0.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "yiki",
|
"name": "yiki",
|
||||||
"version": "0.0.1",
|
"version": "0.0.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@liquify/prettify": "^0.5.5-beta.1",
|
||||||
"markdown-toc": "^1.2.0",
|
"markdown-toc": "^1.2.0",
|
||||||
"remarkable": "^2.0.1",
|
"remarkable": "^2.0.1",
|
||||||
"remarkable-header-ids": "^0.2.0"
|
"remarkable-header-ids": "^0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@liquify/prettify": {
|
||||||
|
"version": "0.5.5-beta.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@liquify/prettify/-/prettify-0.5.5-beta.1.tgz",
|
||||||
|
"integrity": "sha512-VOJiXf6OEpXFQoF0W1hwGvolMURzWLurATnekVs8TcsrE0aSuCsdfWdk7bw8U/dSmsXe05PIq5VtmYMcecIIyw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12",
|
||||||
|
"pnpm": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ansi-red": {
|
"node_modules/ansi-red": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "yiki",
|
"name": "yiki",
|
||||||
"version": "0.0.2",
|
"version": "0.0.3",
|
||||||
"description": "The yellows111 wiki system",
|
"description": "The yellows111 wiki system",
|
||||||
"main": "compile.js",
|
"main": "compile.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -12,6 +12,7 @@
|
||||||
"author": "yellows111",
|
"author": "yellows111",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@liquify/prettify": "^0.5.5-beta.1",
|
||||||
"markdown-toc": "^1.2.0",
|
"markdown-toc": "^1.2.0",
|
||||||
"remarkable": "^2.0.1",
|
"remarkable": "^2.0.1",
|
||||||
"remarkable-header-ids": "^0.2.0"
|
"remarkable-header-ids": "^0.2.0"
|
||||||
|
|
Loading…
Reference in New Issue