markupress 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +244 -10
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/content.d.ts +42 -1
- package/dist/content.d.ts.map +1 -1
- package/dist/content.js +276 -23
- package/dist/content.js.map +1 -1
- package/dist/controllers/code.d.ts +7 -0
- package/dist/controllers/code.d.ts.map +1 -0
- package/dist/controllers/code.js +31 -0
- package/dist/controllers/code.js.map +1 -0
- package/dist/controllers/outline.d.ts +8 -0
- package/dist/controllers/outline.d.ts.map +1 -0
- package/dist/controllers/outline.js +45 -0
- package/dist/controllers/outline.js.map +1 -0
- package/dist/controllers/shell.d.ts +6 -1
- package/dist/controllers/shell.d.ts.map +1 -1
- package/dist/controllers/shell.js +19 -24
- package/dist/controllers/shell.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +24 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +54 -0
- package/dist/markdown.js.map +1 -0
- package/dist/navigation.d.ts +51 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +71 -0
- package/dist/navigation.js.map +1 -0
- package/dist/site.d.ts +47 -10
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +152 -262
- package/dist/site.js.map +1 -1
- package/dist/theme.d.ts +2 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +4 -34
- package/dist/theme.js.map +1 -1
- package/dist/versions.d.ts.map +1 -1
- package/dist/versions.js +10 -5
- package/dist/versions.js.map +1 -1
- package/package.json +21 -12
- package/styles/base.css +1 -21
- package/styles/prose.css +14 -0
- package/theme/outline.html +11 -0
- package/theme/shell.html +66 -0
- package/theme/theme.css +52 -0
package/dist/content.js
CHANGED
|
@@ -2,6 +2,7 @@ import { basename, resolve } from 'node:path';
|
|
|
2
2
|
import { pathToFileURL } from 'node:url';
|
|
3
3
|
import { Marked } from 'marked';
|
|
4
4
|
import { parseFragment, serialize, serializeOuter } from 'parse5';
|
|
5
|
+
import { bundledLanguages, createHighlighter } from 'shiki';
|
|
5
6
|
import { parseDocument } from 'yaml';
|
|
6
7
|
import { stylesheet } from './styles.js';
|
|
7
8
|
export function escapeHTML(value) {
|
|
@@ -9,6 +10,79 @@ export function escapeHTML(value) {
|
|
|
9
10
|
}
|
|
10
11
|
// Markdown text is literal author content. Raw HTML tokens retain component expressions.
|
|
11
12
|
export function literal(value) { return value.replace(/\\/g, '\\\\').replace(/{/g, '\\{'); }
|
|
13
|
+
// Token colors are light-dark(light, dark), so they follow the page's color-scheme; --shiki-light and
|
|
14
|
+
// --shiki-dark carry the same colors for sites that switch another way. These themes keep common
|
|
15
|
+
// tokens at 4.5:1 or better on Looma's light and dark page surfaces.
|
|
16
|
+
const themes = { light: 'github-light-default', dark: 'github-dark-default' };
|
|
17
|
+
let highlighter;
|
|
18
|
+
const shikiOutput = {
|
|
19
|
+
// The site's stylesheet owns the code block's surface; Shiki's colors stay on the tokens.
|
|
20
|
+
pre(node) { delete node.properties.style; },
|
|
21
|
+
code(node) { this.addClassToHast(node, `language-${this.options.lang}`); },
|
|
22
|
+
// Code is literal author content: escape it like Markdown text so HTML Next never interpolates it.
|
|
23
|
+
span(node) { for (const child of node.children)
|
|
24
|
+
if (child.type === 'text')
|
|
25
|
+
child.value = literal(child.value); },
|
|
26
|
+
};
|
|
27
|
+
// Plain text needs no grammar, yet takes line highlighting and numbers like any highlighted language.
|
|
28
|
+
const plain = new Set(['text', 'plaintext', 'txt', 'plain']);
|
|
29
|
+
async function highlight(code, lang, lines) {
|
|
30
|
+
// One highlighter serves every page; a grammar loads the first time a fence uses its language.
|
|
31
|
+
const shiki = await (highlighter ??= createHighlighter({ themes: Object.values(themes), langs: [] }));
|
|
32
|
+
if (!plain.has(lang))
|
|
33
|
+
await shiki.loadLanguage(lang);
|
|
34
|
+
return shiki.codeToHtml(code, { lang, themes, defaultColor: 'light-dark()', transformers: [shikiOutput, lines] });
|
|
35
|
+
}
|
|
36
|
+
// Line highlighting and numbers are classes written at build time; the theme's stylesheet draws them.
|
|
37
|
+
const lineClasses = (marked, numbers) => ({
|
|
38
|
+
pre(node) { if (numbers)
|
|
39
|
+
this.addClassToHast(node, 'line-numbers'); },
|
|
40
|
+
line(node, line) { if (marked.has(line))
|
|
41
|
+
this.addClassToHast(node, 'highlighted'); },
|
|
42
|
+
});
|
|
43
|
+
// A fence's first info word names its language unless it is an attribute, as in ```title="notes.txt".
|
|
44
|
+
// It ends at `{` or `:`, so VitePress's ```ts{1} and ```ts:line-numbers work too.
|
|
45
|
+
const fenceLanguage = (info = '') => /^[^\s={:]+(?=[\s{:]|$)/.exec(info)?.[0];
|
|
46
|
+
// Fence meta: `{1,3-5}` highlights lines, and `:line-numbers` or `:no-line-numbers` overrides the default.
|
|
47
|
+
function fenceLines(info = '') {
|
|
48
|
+
const meta = info.replace(/(?:^|\s)title="[^"]*"/, '');
|
|
49
|
+
const marked = new Set();
|
|
50
|
+
for (const range of /\{([\d\s,-]+)\}/.exec(meta)?.[1].split(',') ?? []) {
|
|
51
|
+
const [from = NaN, to = from] = range.split('-').map(part => Number.parseInt(part, 10));
|
|
52
|
+
for (let line = from; line <= to; line++)
|
|
53
|
+
marked.add(line);
|
|
54
|
+
}
|
|
55
|
+
const numbers = /:(no-)?line-numbers(?![\w-])/.exec(meta);
|
|
56
|
+
return { marked, numbers: numbers ? numbers[1] === undefined : undefined };
|
|
57
|
+
}
|
|
58
|
+
// `// [!code highlight]` at the end of a line highlights it and is removed, and `[!code highlight:3]` covers three
|
|
59
|
+
// lines. Alone on a line, the marker is removed with its line and applies to the lines after it.
|
|
60
|
+
// ponytail: matched on source lines rather than on Shiki's comment tokens, so a string ending in the marker counts too.
|
|
61
|
+
const notation = /[ \t]*(?:\/\/|#|--|<!--|\{?\/\*)[ \t]*\[!code highlight(?::(\d+))?\][ \t]*(?:-->|\*\/\}?)?[ \t]*$/;
|
|
62
|
+
function highlightNotation(code, marked) {
|
|
63
|
+
const lines = [];
|
|
64
|
+
for (const line of code.split('\n')) {
|
|
65
|
+
const match = notation.exec(line);
|
|
66
|
+
if (!match) {
|
|
67
|
+
lines.push(line);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const rest = line.slice(0, match.index), own = rest.trim() !== '';
|
|
71
|
+
if (own)
|
|
72
|
+
lines.push(rest);
|
|
73
|
+
for (let n = 0; n < Number(match[1] ?? 1); n++)
|
|
74
|
+
marked.add(lines.length + (own ? 0 : 1) + n);
|
|
75
|
+
}
|
|
76
|
+
return lines.join('\n');
|
|
77
|
+
}
|
|
78
|
+
// Hidden until the page's code controller connects, so without JavaScript a code block is only its code.
|
|
79
|
+
const codeActions = '<div class="code-actions" hidden aria-live="polite"><button type="button" data-code-action="wrap" aria-pressed="false">Wrap</button>' +
|
|
80
|
+
'<button type="button" data-code-action="copy">Copy</button></div>';
|
|
81
|
+
const fenceTitle = (info = '') => /(?:^|\s)title="([^"]*)"/.exec(info)?.[1];
|
|
82
|
+
// Looma's shared block vocabulary (its "Shared blocks" page): a container's name, matched without regard to
|
|
83
|
+
// case, is a callout tone, details or tabs. `caution` and GitHub's [!CAUTION] mean danger.
|
|
84
|
+
const tones = { note: 'note', tip: 'tip', info: 'info', important: 'important', warning: 'warning', danger: 'danger', caution: 'danger' };
|
|
85
|
+
const blocks = new Set([...Object.keys(tones), 'details', 'tabs', 'code-group']);
|
|
12
86
|
function textContent(node) {
|
|
13
87
|
if ('value' in node)
|
|
14
88
|
return node.value;
|
|
@@ -26,31 +100,115 @@ function frontmatter(source, file) {
|
|
|
26
100
|
throw new Error(`${file}: frontmatter must be a mapping.`);
|
|
27
101
|
return { body: source.slice(match[0].length), fields: fields };
|
|
28
102
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
103
|
+
const text = (value) => typeof value === 'string' && value !== '';
|
|
104
|
+
const strings = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) &&
|
|
105
|
+
Object.values(value).every(item => typeof item === 'string' || typeof item === 'number');
|
|
106
|
+
const level = (value) => Number.isInteger(value) && value >= 1 && value <= 6;
|
|
107
|
+
const fieldTypes = {
|
|
108
|
+
title: [text, 'a nonempty string'], description: [text, 'a nonempty string'], sidebarLabel: [text, 'a nonempty string'], id: [text, 'a nonempty string'],
|
|
109
|
+
sidebarHidden: [value => typeof value === 'boolean', 'a boolean'],
|
|
110
|
+
sidebarPosition: [value => Number.isSafeInteger(value) && value >= 0, 'a whole number'],
|
|
111
|
+
aliases: [value => Array.isArray(value) && value.every(item => typeof item === 'string'), 'a list of route paths'],
|
|
112
|
+
layout: [value => value === false || text(value), 'an HTMLKit layout name or false'],
|
|
113
|
+
toc: [value => value === false || (Array.isArray(value) && value.length === 2 && value.every(level) && value[0] <= value[1]), 'false or a heading range such as [2, 3]'],
|
|
114
|
+
head: [value => (value !== null && typeof value === 'object' && !Array.isArray(value) && Object.entries(value).every(([key, item]) => key === 'canonical' ? text(item) : (key === 'meta' || key === 'og') && strings(item))), 'a mapping of meta, og and canonical'],
|
|
115
|
+
editLink: [value => value === false || text(value), 'a URL or false'],
|
|
116
|
+
};
|
|
117
|
+
function validFrontMatter(fields, file) {
|
|
118
|
+
for (const [name, value] of Object.entries(fields)) {
|
|
119
|
+
const type = fieldTypes[name];
|
|
120
|
+
if (type === undefined)
|
|
121
|
+
throw new Error(`${file}: unknown front matter field ${name}. Fields are ${Object.keys(fieldTypes).join(', ')}.`);
|
|
122
|
+
if (!type[0](value))
|
|
123
|
+
throw new Error(`${file}: front matter ${name} must be ${type[1]}.`);
|
|
34
124
|
}
|
|
125
|
+
return fields;
|
|
126
|
+
}
|
|
127
|
+
export async function compileMarkdown(source, options) {
|
|
128
|
+
const { body, fields: raw } = frontmatter(source, options.file);
|
|
129
|
+
const fields = { ...options.frontmatter, ...validFrontMatter(raw, options.file) };
|
|
35
130
|
const aliases = fields.aliases ?? [];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const headings =
|
|
41
|
-
|
|
42
|
-
|
|
131
|
+
// Heading IDs: `used` holds every ID emitted so far, `reserved` every custom ID in the document.
|
|
132
|
+
const used = new Set(), reserved = new Set(), suffixes = new Map();
|
|
133
|
+
const customIds = new Map();
|
|
134
|
+
let firstHeading, hasCode = false;
|
|
135
|
+
const headings = [];
|
|
136
|
+
const highlighted = new Map();
|
|
137
|
+
// Code group panels labelled by their fence title, and the Looma components the page's blocks use. The page
|
|
138
|
+
// links each one by package specifier, as the theme's shell links ui-button, so the site resolves Looma.
|
|
139
|
+
const labelled = new WeakSet(), components = new Set();
|
|
140
|
+
const fail = (message) => { throw new Error(`${options.file}: ${message}`); };
|
|
141
|
+
// Tabs content is "== Label" panels; a code group may instead make each fence a panel labelled by its title.
|
|
142
|
+
const panels = (tokens, code) => {
|
|
143
|
+
const result = [];
|
|
144
|
+
const marked = tokens.some(token => token.type === 'tab-label');
|
|
145
|
+
for (const token of tokens) {
|
|
146
|
+
if (token.type === 'tab-label')
|
|
147
|
+
result.push({ type: 'tab-panel', raw: '', label: token.label, tokens: [] });
|
|
148
|
+
else if (marked && result.length > 0)
|
|
149
|
+
result.at(-1).tokens.push(token);
|
|
150
|
+
else if (!marked && code && token.type === 'code') {
|
|
151
|
+
labelled.add(token);
|
|
152
|
+
result.push({ type: 'tab-panel', raw: '', label: fenceTitle(token.lang) ?? fenceLanguage(token.lang) ?? 'Code', tokens: [token] });
|
|
153
|
+
}
|
|
154
|
+
else if (token.type !== 'space')
|
|
155
|
+
fail(code ? 'a code group holds fences, or "== Label" panels.' : 'tabs content starts with an "== Label" line.');
|
|
156
|
+
}
|
|
157
|
+
return result;
|
|
158
|
+
};
|
|
159
|
+
const markdown = new Marked({ async: true, async walkTokens(token) {
|
|
160
|
+
if (token.type === 'heading') {
|
|
161
|
+
// `## Title {#custom-id}` names the anchor; the marker ends the heading's last text token. Every token is
|
|
162
|
+
// walked before any renders, so a custom ID is reserved before an earlier heading could generate it.
|
|
163
|
+
const last = token.tokens?.at(-1);
|
|
164
|
+
const custom = last?.type === 'text' ? / +\{#([\w-]+)\}$/.exec(last.text) : null;
|
|
165
|
+
if (custom && last?.type === 'text') {
|
|
166
|
+
last.text = last.text.slice(0, custom.index);
|
|
167
|
+
customIds.set(token, custom[1]);
|
|
168
|
+
reserved.add(custom[1]);
|
|
169
|
+
}
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (token.type !== 'code')
|
|
173
|
+
return;
|
|
174
|
+
const language = fenceLanguage(token.lang);
|
|
175
|
+
// Languages Shiki does not bundle stay escaped plain text.
|
|
176
|
+
if (!language || !(Object.hasOwn(bundledLanguages, language) || plain.has(language)))
|
|
177
|
+
return;
|
|
178
|
+
const { marked, numbers = options.lineNumbers ?? false } = fenceLines(token.lang);
|
|
179
|
+
highlighted.set(token, await highlight(highlightNotation(token.text, marked), language, lineClasses(marked, numbers)));
|
|
180
|
+
}, renderer: {
|
|
43
181
|
text(token) { return 'tokens' in token && token.tokens ? this.parser.parseInline(token.tokens) : literal(token.text); },
|
|
44
182
|
codespan({ text }) { return `<code>${literal(escapeHTML(text))}</code>`; },
|
|
45
|
-
code(
|
|
46
|
-
|
|
183
|
+
code(token) {
|
|
184
|
+
const { text, lang = '' } = token;
|
|
185
|
+
const language = fenceLanguage(lang);
|
|
186
|
+
// A code group's tab already shows a panel's fence title.
|
|
187
|
+
const title = labelled.has(token) ? undefined : fenceTitle(lang);
|
|
188
|
+
const pre = highlighted.get(token) ?? `<pre><code${language ? ` class="language-${escapeHTML(language)}"` : ''}>${literal(escapeHTML(text))}</code></pre>`;
|
|
189
|
+
hasCode = true;
|
|
190
|
+
return `<figure class="code">${title ? `<figcaption>${literal(escapeHTML(title))}</figcaption>` : ''}${codeActions}${pre}</figure>\n`;
|
|
191
|
+
},
|
|
192
|
+
heading(token) {
|
|
193
|
+
const { tokens, depth } = token;
|
|
47
194
|
const html = this.parser.parseInline(tokens);
|
|
48
195
|
const label = textContent(parseFragment(html)).replace(/\\([\\{])/g, '$1');
|
|
49
196
|
firstHeading ??= label;
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
197
|
+
const custom = customIds.get(token);
|
|
198
|
+
const stem = custom ?? (label.normalize('NFKD').toLowerCase().replace(/[^\p{L}\p{N}]+/gu, '-').replace(/^-|-$/g, '') || 'heading');
|
|
199
|
+
// A custom ID is kept unless an earlier heading used it. Any other ID takes the first free suffix,
|
|
200
|
+
// skipping IDs already used and custom IDs reserved by later headings, so no two headings share an ID.
|
|
201
|
+
const taken = (id) => used.has(id) || reserved.has(id);
|
|
202
|
+
let id = stem;
|
|
203
|
+
if (custom === undefined ? taken(id) : used.has(id)) {
|
|
204
|
+
let n = suffixes.get(stem) ?? 1;
|
|
205
|
+
while (taken(`${stem}-${n}`))
|
|
206
|
+
n++;
|
|
207
|
+
suffixes.set(stem, n + 1);
|
|
208
|
+
id = `${stem}-${n}`;
|
|
209
|
+
}
|
|
210
|
+
used.add(id);
|
|
211
|
+
headings.push({ id, href: `#${id}`, label, depth });
|
|
54
212
|
return `<h${depth} id="${escapeHTML(id)}"><a href="#${escapeHTML(id)}">${html}</a></h${depth}>\n`;
|
|
55
213
|
},
|
|
56
214
|
link({ href, title, tokens }) {
|
|
@@ -78,8 +236,88 @@ export function compileMarkdown(source, options) {
|
|
|
78
236
|
const raw = text.slice(0, end);
|
|
79
237
|
return { type: 'native-component', raw };
|
|
80
238
|
}, renderer(token) { return token.raw; },
|
|
81
|
-
}
|
|
82
|
-
|
|
239
|
+
}, { name: 'container', level: 'block',
|
|
240
|
+
// `::: name Title` … `:::` is a shared block; any other name stays text. A container closes at the first
|
|
241
|
+
// marker at least as long as its own, so an outer container uses more colons than those it contains.
|
|
242
|
+
start(text) { return /^ {0,3}:{3,}[ \t]*(?:note|tip|info|important|warning|danger|caution|details|tabs|code-group)(?![\w-])/im.exec(text)?.index; },
|
|
243
|
+
tokenizer(text) {
|
|
244
|
+
const open = /^ {0,3}(:{3,})[ \t]*([A-Za-z][\w-]*)(?:[ \t]+([^\n]*?))?[ \t]*(?:\n|$)/.exec(text);
|
|
245
|
+
const name = open?.[2].toLowerCase();
|
|
246
|
+
if (!open || !name || !blocks.has(name))
|
|
247
|
+
return undefined;
|
|
248
|
+
const close = new RegExp(`^ {0,3}:{${open[1].length},}[ \\t]*$`);
|
|
249
|
+
// A marker line inside fenced code is code, so the scan skips fences while looking for the close.
|
|
250
|
+
let fence;
|
|
251
|
+
let offset = open[0].length;
|
|
252
|
+
for (const line of text.slice(offset).split('\n')) {
|
|
253
|
+
if (fence) {
|
|
254
|
+
if (fence.test(line))
|
|
255
|
+
fence = undefined;
|
|
256
|
+
}
|
|
257
|
+
else if (close.test(line)) {
|
|
258
|
+
// Like a blockquote, the content is a document of its own, so its paragraphs stay paragraphs inside a list.
|
|
259
|
+
// `== Label` lines start panels only directly inside tabs.
|
|
260
|
+
const grouped = name === 'tabs' || name === 'code-group';
|
|
261
|
+
const state = this.lexer.state, { top, tabs } = state;
|
|
262
|
+
state.top = true;
|
|
263
|
+
state.tabs = grouped;
|
|
264
|
+
const tokens = this.lexer.blockTokens(text.slice(open[0].length, offset));
|
|
265
|
+
state.top = top;
|
|
266
|
+
state.tabs = tabs;
|
|
267
|
+
return { type: 'container', raw: text.slice(0, offset + line.length + 1), name, title: open[3] ?? '', tokens: grouped ? panels(tokens, name === 'code-group') : tokens };
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
const opener = /^ {0,3}(`{3,}|~{3,})/.exec(line)?.[1];
|
|
271
|
+
if (opener)
|
|
272
|
+
fence = new RegExp(`^ {0,3}${opener[0]}{${opener.length},}[ \\t]*$`);
|
|
273
|
+
}
|
|
274
|
+
offset += line.length + 1;
|
|
275
|
+
}
|
|
276
|
+
return undefined;
|
|
277
|
+
}, renderer(token) {
|
|
278
|
+
const { name, title } = token;
|
|
279
|
+
const content = (tokens = token.tokens ?? []) => this.parser.parse(tokens);
|
|
280
|
+
const tone = tones[name];
|
|
281
|
+
if (tone) {
|
|
282
|
+
components.add('ui-callout');
|
|
283
|
+
return `<ui-callout tone="${tone}"${title ? ` heading="${escapeHTML(title)}"` : ''}>\n${content()}</ui-callout>\n`;
|
|
284
|
+
}
|
|
285
|
+
// Native <details> opens without JavaScript and find-in-page can reveal it; the contract allows it in place of ui-disclosure.
|
|
286
|
+
if (name === 'details') {
|
|
287
|
+
const [, summary, open] = /^(.*?)[ \t]*(\{open\})?$/.exec(title);
|
|
288
|
+
return `<details${open ? ' open' : ''}><summary>${literal(escapeHTML(summary || 'Details'))}</summary>\n${content()}</details>\n`;
|
|
289
|
+
}
|
|
290
|
+
// Tabs of one group keep one selection across the page and remember it; the group defaults to the block name.
|
|
291
|
+
components.add('ui-tabs');
|
|
292
|
+
return `<ui-tabs${name === 'code-group' ? ' class="code-group"' : ''} group="${escapeHTML(title || name)}">\n${token.tokens.map(panel => `<section aria-label="${escapeHTML(panel.label)}">\n${content(panel.tokens)}</section>\n`).join('')}</ui-tabs>\n`;
|
|
293
|
+
},
|
|
294
|
+
}, { name: 'alert', level: 'block',
|
|
295
|
+
// A GitHub alert, `> [!TIP]` alone on a quote's first line, is a callout without a title.
|
|
296
|
+
start(text) { return /^ {0,3}>[ \t]?\[!/m.exec(text)?.index; },
|
|
297
|
+
tokenizer(text) {
|
|
298
|
+
const kind = /^ {0,3}>[ \t]?\[!(note|tip|important|warning|caution)\][ \t]*(?:\n|$)/i.exec(text)?.[1];
|
|
299
|
+
const quote = kind === undefined ? undefined : this.lexer.tokenizer.blockquote(text);
|
|
300
|
+
if (!kind || !quote)
|
|
301
|
+
return undefined;
|
|
302
|
+
const state = this.lexer.state, { top, tabs } = state;
|
|
303
|
+
state.top = true;
|
|
304
|
+
state.tabs = false;
|
|
305
|
+
const tokens = this.lexer.blockTokens(quote.text.replace(/^[^\n]*\n?/, ''));
|
|
306
|
+
state.top = top;
|
|
307
|
+
state.tabs = tabs;
|
|
308
|
+
return { type: 'container', raw: quote.raw, name: kind.toLowerCase(), title: '', tokens };
|
|
309
|
+
},
|
|
310
|
+
}, { name: 'tab-label', level: 'block',
|
|
311
|
+
start(text) { return this.lexer.state.tabs ? /^ {0,3}==[ \t]/m.exec(text)?.index : undefined; },
|
|
312
|
+
tokenizer(text) {
|
|
313
|
+
if (!this.lexer.state.tabs)
|
|
314
|
+
return undefined;
|
|
315
|
+
const label = /^ {0,3}==[ \t]+(\S[^\n]*?)[ \t]*(?:\n|$)/.exec(text);
|
|
316
|
+
return label ? { type: 'tab-label', raw: label[0], label: label[1] } : undefined;
|
|
317
|
+
},
|
|
318
|
+
// Panels consume the labels directly inside tabs; one nested deeper, as in a quote, stays text.
|
|
319
|
+
renderer(token) { return `<p>${literal(escapeHTML(token.raw.trim()))}</p>\n`; }, }] });
|
|
320
|
+
const fragment = parseFragment(await markdown.parse(body));
|
|
83
321
|
const declarations = [];
|
|
84
322
|
const metadata = [];
|
|
85
323
|
const original = pathToFileURL(resolve(options.file)).href;
|
|
@@ -120,10 +358,25 @@ export function compileMarkdown(source, options) {
|
|
|
120
358
|
}
|
|
121
359
|
};
|
|
122
360
|
visit(fragment, false);
|
|
123
|
-
const
|
|
361
|
+
for (const name of components)
|
|
362
|
+
declarations.push(`<link rel="component" href="@threadlabs/looma/components/${name}/${name}.html">`);
|
|
363
|
+
const title = fields.title ?? firstHeading ?? basename(options.file, '.md').replace(/^\d+\./, '');
|
|
124
364
|
const label = fields.sidebarLabel ?? title;
|
|
125
|
-
|
|
365
|
+
// Front matter becomes HTMLKit page metadata: HTMLKit owns navigation labels, order, visibility, alias routes, the
|
|
366
|
+
// layout choice, and the document head, which merges meta and canonical links by identity.
|
|
367
|
+
const { meta = {}, og = {}, canonical } = fields.head ?? {};
|
|
368
|
+
const head = `<title>${literal(escapeHTML(title))}</title>` + (fields.description === undefined ? '' : `<meta name="description" content="${escapeHTML(fields.description)}">`) +
|
|
369
|
+
`<meta name="hk:label" content="${escapeHTML(label)}">` + (fields.sidebarHidden === true ? '<meta name="hk:navigation" content="hidden">' : '') +
|
|
370
|
+
(fields.sidebarPosition === undefined ? '' : `<meta name="hk:order" content="${fields.sidebarPosition}">`) +
|
|
371
|
+
aliases.map(alias => `<meta name="hk:alias" content="${escapeHTML(alias)}">`).join('') +
|
|
372
|
+
(fields.layout === undefined ? '' : `<meta name="hk:layout" content="${fields.layout === false ? 'none' : escapeHTML(fields.layout)}">`) +
|
|
373
|
+
Object.entries(meta).map(([name, content]) => `<meta name="${escapeHTML(name)}" content="${escapeHTML(String(content))}">`).join('') +
|
|
374
|
+
Object.entries(og).map(([name, content]) => `<meta property="og:${escapeHTML(name)}" content="${escapeHTML(String(content))}">`).join('') +
|
|
375
|
+
(canonical === undefined ? '' : `<link rel="canonical" href="${escapeHTML(canonical)}">`);
|
|
376
|
+
const [from, to] = fields.toc === false ? [0, -1] : fields.toc ?? [2, 3];
|
|
377
|
+
const styles = options.styles?.length ? `<style>${options.styles.map(file => `@import "${pathToFileURL(file).href}";`).join('')}</style>` : '';
|
|
126
378
|
return { title, label, aliases, sidebarHidden: fields.sidebarHidden === true, ...(fields.id === undefined ? {} : { id: fields.id }),
|
|
127
|
-
|
|
379
|
+
frontmatter: fields, outline: headings.filter(heading => heading.depth >= from && heading.depth <= to),
|
|
380
|
+
resource: `<meta name="hk:page" content="${escapeHTML(options.pageName)}">\n${declarations.join('\n')}\n<template component="${escapeHTML(options.pageName)}"${hasCode ? ' controller="markupress/controllers/code.js"' : ''}>${head}${metadata.join('')}<article class="markupress-prose">${serialize(fragment)}</article>${styles}</template>\n` };
|
|
128
381
|
}
|
|
129
382
|
//# sourceMappingURL=content.js.map
|
package/dist/content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentHost } from '@nextwebwg/html-next/runtime';
|
|
2
|
+
/**
|
|
3
|
+
* A Markdown page's code block buttons. One delegated listener serves every block; native buttons give
|
|
4
|
+
* keyboard access, and the clipboard API copies the code's text, which excludes CSS line numbers.
|
|
5
|
+
*/
|
|
6
|
+
export default function code(host: ComponentHost): void;
|
|
7
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/controllers/code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAuBtD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Markdown page's code block buttons. One delegated listener serves every block; native buttons give
|
|
3
|
+
* keyboard access, and the clipboard API copies the code's text, which excludes CSS line numbers.
|
|
4
|
+
*/
|
|
5
|
+
export default function code(host) {
|
|
6
|
+
host.on('connect', () => {
|
|
7
|
+
const root = host.root;
|
|
8
|
+
const window = root.ownerDocument.defaultView;
|
|
9
|
+
for (const actions of root.querySelectorAll('.code-actions'))
|
|
10
|
+
actions.hidden = false;
|
|
11
|
+
const click = (event) => {
|
|
12
|
+
const button = event.target instanceof window.Element ? event.target.closest('button[data-code-action]') : null;
|
|
13
|
+
const pre = button?.closest('figure.code')?.querySelector('pre');
|
|
14
|
+
if (!button || !pre || !root.contains(button))
|
|
15
|
+
return;
|
|
16
|
+
if (button.dataset.codeAction === 'wrap') {
|
|
17
|
+
const wrap = button.getAttribute('aria-pressed') !== 'true';
|
|
18
|
+
button.setAttribute('aria-pressed', String(wrap));
|
|
19
|
+
pre.classList.toggle('wrap', wrap);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
void window.navigator.clipboard.writeText(pre.textContent ?? '').then(() => 'Copied', () => 'Copy failed').then(label => {
|
|
23
|
+
button.textContent = label;
|
|
24
|
+
window.setTimeout(() => { button.textContent = 'Copy'; }, 2000);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
root.addEventListener('click', click);
|
|
28
|
+
return () => root.removeEventListener('click', click);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/controllers/code.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,IAAmB;IAC9C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAY,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAc,eAAe,CAAC;YAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAClG,MAAM,KAAK,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAoB,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnI,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO;YACtD,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;gBAC5D,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACtH,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentHost } from '@nextwebwg/html-next/runtime';
|
|
2
|
+
/**
|
|
3
|
+
* Marks the outline link of the heading being read with aria-current="location". An IntersectionObserver
|
|
4
|
+
* watches the page's headings: the current one is the last heading that has reached the top fifth of the
|
|
5
|
+
* viewport, and none is current above the first. The outline is plain fragment links, so without JavaScript only this marking is missing.
|
|
6
|
+
*/
|
|
7
|
+
export default function outline(host: ComponentHost): void;
|
|
8
|
+
//# sourceMappingURL=outline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/controllers/outline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAiCzD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marks the outline link of the heading being read with aria-current="location". An IntersectionObserver
|
|
3
|
+
* watches the page's headings: the current one is the last heading that has reached the top fifth of the
|
|
4
|
+
* viewport, and none is current above the first. The outline is plain fragment links, so without JavaScript only this marking is missing.
|
|
5
|
+
*/
|
|
6
|
+
export default function outline(host) {
|
|
7
|
+
host.on('connect', () => {
|
|
8
|
+
const document = host.root.ownerDocument;
|
|
9
|
+
const window = document.defaultView;
|
|
10
|
+
let observer;
|
|
11
|
+
const observe = () => {
|
|
12
|
+
observer?.disconnect();
|
|
13
|
+
const links = [...host.root.querySelectorAll('a[href^="#"]')];
|
|
14
|
+
const headings = links.map(link => document.getElementById(decodeURIComponent(link.hash.slice(1)))).filter(heading => heading !== null);
|
|
15
|
+
const reached = new Set();
|
|
16
|
+
const mark = () => {
|
|
17
|
+
const current = headings.filter(heading => reached.has(heading)).at(-1);
|
|
18
|
+
for (const link of links) {
|
|
19
|
+
if (link.hash.slice(1) === current?.id)
|
|
20
|
+
link.setAttribute('aria-current', 'location');
|
|
21
|
+
else
|
|
22
|
+
link.removeAttribute('aria-current');
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
observer = new window.IntersectionObserver(entries => {
|
|
26
|
+
for (const entry of entries) {
|
|
27
|
+
// In the band, or gone out through its top edge; a heading below the band is not reached yet.
|
|
28
|
+
if (entry.isIntersecting || entry.boundingClientRect.top < (entry.rootBounds?.top ?? 0))
|
|
29
|
+
reached.add(entry.target);
|
|
30
|
+
else
|
|
31
|
+
reached.delete(entry.target);
|
|
32
|
+
}
|
|
33
|
+
mark();
|
|
34
|
+
}, { rootMargin: '0px 0px -80% 0px' });
|
|
35
|
+
for (const heading of headings)
|
|
36
|
+
observer.observe(heading);
|
|
37
|
+
};
|
|
38
|
+
observe();
|
|
39
|
+
// HTMLKit swaps pages in place through the Navigation API; the outline then lists the new page's headings.
|
|
40
|
+
const navigation = window.navigation;
|
|
41
|
+
navigation?.addEventListener('navigatesuccess', observe);
|
|
42
|
+
return () => { observer?.disconnect(); navigation?.removeEventListener('navigatesuccess', observe); };
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=outline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/controllers/outline.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAmB;IACjD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAY,CAAC;QACrC,IAAI,QAA0C,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAoB,cAAc,CAAC,CAAC,CAAC;YACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;YACxI,MAAM,OAAO,GAAG,IAAI,GAAG,EAAW,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,EAAE;wBAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;;wBACjF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC;YACF,QAAQ,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE;gBACnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,8FAA8F;oBAC9F,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;wBAC9G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,EAAE,CAAC;YACT,CAAC,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACvC,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QACV,2GAA2G;QAC3G,MAAM,UAAU,GAAI,MAAgD,CAAC,UAAU,CAAC;QAChF,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { ComponentHost } from '@nextwebwg/html-next/runtime';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Native controls and storage own interaction; HTML Next owns reactive state and cleanup. The drawer is a
|
|
4
|
+
* native popover and the dropdowns are native details, which open without this controller. HTMLKit keeps
|
|
5
|
+
* the shell across client navigation, so a followed link here closes the drawer and any open dropdown, as a
|
|
6
|
+
* document load would.
|
|
7
|
+
*/
|
|
3
8
|
export default function shell(host: ComponentHost): void;
|
|
4
9
|
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/controllers/shell.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/controllers/shell.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CA0BvD"}
|