@refrakt-md/eleventy 0.14.3 → 0.15.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/dist/data.d.ts +10 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +9 -4
- package/dist/data.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +9 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +20 -3
- package/dist/plugin.js.map +1 -1
- package/dist/tokens.d.ts +56 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +111 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/data.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SeoToHtmlOptions } from '@refrakt-md/transform';
|
|
2
|
+
import type { Plugin, SecurityPolicy } from '@refrakt-md/types';
|
|
2
3
|
import type { EleventyTheme } from './types.js';
|
|
3
4
|
export interface EleventyPageData {
|
|
4
5
|
url: string;
|
|
@@ -35,5 +36,13 @@ export declare function createDataFile(config: {
|
|
|
35
36
|
basePath?: string;
|
|
36
37
|
/** Plugins to include in the content pipeline */
|
|
37
38
|
plugins?: Plugin[];
|
|
39
|
+
/** Site-level SEO fields surfaced into every page's emitted meta tags.
|
|
40
|
+
* Source these from `SiteConfig` (`siteName`, `baseUrl`, `defaultImage`,
|
|
41
|
+
* `logo`) so the Eleventy output matches the SvelteKit reference. */
|
|
42
|
+
seo?: SeoToHtmlOptions;
|
|
43
|
+
/** Security policy for untrusted author content. Defaults to `'trusted'`. */
|
|
44
|
+
security?: SecurityPolicy;
|
|
45
|
+
/** Markdoc variables available in content via `{% $name %}` syntax. */
|
|
46
|
+
variables?: Record<string, unknown>;
|
|
38
47
|
}): () => Promise<EleventyPageData[]>;
|
|
39
48
|
//# sourceMappingURL=data.d.ts.map
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACtC,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;0EAEsE;IACtE,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA8FpC"}
|
package/dist/data.js
CHANGED
|
@@ -15,13 +15,18 @@ import { hasInteractiveRunes } from './behaviors.js';
|
|
|
15
15
|
* and produces an array of page objects with pre-rendered HTML.
|
|
16
16
|
*/
|
|
17
17
|
export function createDataFile(config) {
|
|
18
|
-
const { theme, contentDir = './content', basePath = '/', } = config;
|
|
18
|
+
const { theme, contentDir = './content', basePath = '/', seo: seoOptions, security, variables, } = config;
|
|
19
19
|
return async function loadRefrakt() {
|
|
20
|
-
const { loadContent } = await import('@refrakt-md/content');
|
|
20
|
+
const { loadContent, formatPipelineSummary } = await import('@refrakt-md/content');
|
|
21
21
|
const absContentDir = resolve(contentDir);
|
|
22
22
|
const site = await loadContent(absContentDir, basePath, undefined, // icons
|
|
23
23
|
undefined, // additionalTags
|
|
24
|
-
config.plugins
|
|
24
|
+
config.plugins, undefined, // sandboxExamplesDir
|
|
25
|
+
variables, security, process.cwd());
|
|
26
|
+
// Print the standard Phase 1/2/3/4 + warnings summary so Eleventy
|
|
27
|
+
// builds get the same visibility into the cross-page pipeline that
|
|
28
|
+
// the SvelteKit reference adapter prints.
|
|
29
|
+
process.stderr.write(formatPipelineSummary(site.pipelineStats, site.pipelineWarnings));
|
|
25
30
|
// Build the pages list for LayoutPageData and RfContext
|
|
26
31
|
const pagesList = site.pages.map((p) => ({
|
|
27
32
|
url: p.route.url,
|
|
@@ -61,7 +66,7 @@ export function createDataFile(config) {
|
|
|
61
66
|
frontmatter: page.frontmatter ?? {},
|
|
62
67
|
seo: page.seo,
|
|
63
68
|
});
|
|
64
|
-
const seoHtml = seoToHtml(seoData);
|
|
69
|
+
const seoHtml = seoToHtml(seoData, seoOptions);
|
|
65
70
|
const seo = { ...seoHtml, description: seoData.description };
|
|
66
71
|
const contextJson = JSON.stringify({
|
|
67
72
|
pages: pagesList,
|
package/dist/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAmBrD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export { refraktPlugin } from './plugin.js';
|
|
|
2
2
|
export { createDataFile } from './data.js';
|
|
3
3
|
export type { EleventyPageData } from './data.js';
|
|
4
4
|
export { hasInteractiveRunes } from './behaviors.js';
|
|
5
|
+
export { writeSiteTokensCss, getUsedCssCopyMap, getUsedCssImports } from './tokens.js';
|
|
5
6
|
export type { EleventyTheme, RefraktEleventyOptions } from './types.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGvF,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,4 +4,8 @@ export { refraktPlugin } from './plugin.js';
|
|
|
4
4
|
export { createDataFile } from './data.js';
|
|
5
5
|
// Behaviors
|
|
6
6
|
export { hasInteractiveRunes } from './behaviors.js';
|
|
7
|
+
// Site-level token-overrides CSS (SPEC-048 + SPEC-056). Build-time helper:
|
|
8
|
+
// composes the CSS and writes it to a file the consumer's eleventy.config.js
|
|
9
|
+
// can passthrough-copy.
|
|
10
|
+
export { writeSiteTokensCss, getUsedCssCopyMap, getUsedCssImports } from './tokens.js';
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,2EAA2E;AAC3E,6EAA6E;AAC7E,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -2,8 +2,15 @@ import type { RefraktEleventyOptions } from './types.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Eleventy plugin for refrakt.
|
|
4
4
|
*
|
|
5
|
-
* Configures passthrough file copy for theme CSS and optionally
|
|
6
|
-
* behaviors JS from node_modules
|
|
5
|
+
* Configures passthrough file copy for theme CSS and (optionally) the
|
|
6
|
+
* behaviors JS bundle from `node_modules`, and registers Eleventy watch
|
|
7
|
+
* targets for the content + sandbox-examples directories so `--serve`
|
|
8
|
+
* triggers a rebuild on every `.md` (and example-source) edit.
|
|
9
|
+
*
|
|
10
|
+
* Eleventy's rebuild latency is higher than Vite HMR — the full cross-page
|
|
11
|
+
* pipeline runs each time. That's by design (Eleventy re-imports the data
|
|
12
|
+
* file and discards prior state); content edits are visible after the
|
|
13
|
+
* rebuild completes (~1–2s on a typical site).
|
|
7
14
|
*/
|
|
8
15
|
export declare function refraktPlugin(eleventyConfig: any, options?: RefraktEleventyOptions): void;
|
|
9
16
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,GAAE,sBAA2B,GAAG,IAAI,CAkC7F"}
|
package/dist/plugin.js
CHANGED
|
@@ -2,11 +2,18 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
/**
|
|
3
3
|
* Eleventy plugin for refrakt.
|
|
4
4
|
*
|
|
5
|
-
* Configures passthrough file copy for theme CSS and optionally
|
|
6
|
-
* behaviors JS from node_modules
|
|
5
|
+
* Configures passthrough file copy for theme CSS and (optionally) the
|
|
6
|
+
* behaviors JS bundle from `node_modules`, and registers Eleventy watch
|
|
7
|
+
* targets for the content + sandbox-examples directories so `--serve`
|
|
8
|
+
* triggers a rebuild on every `.md` (and example-source) edit.
|
|
9
|
+
*
|
|
10
|
+
* Eleventy's rebuild latency is higher than Vite HMR — the full cross-page
|
|
11
|
+
* pipeline runs each time. That's by design (Eleventy re-imports the data
|
|
12
|
+
* file and discards prior state); content edits are visible after the
|
|
13
|
+
* rebuild completes (~1–2s on a typical site).
|
|
7
14
|
*/
|
|
8
15
|
export function refraktPlugin(eleventyConfig, options = {}) {
|
|
9
|
-
const { cssPrefix = '/css', jsPrefix = '/js', } = options;
|
|
16
|
+
const { cssPrefix = '/css', jsPrefix = '/js', contentDir, examplesDir, } = options;
|
|
10
17
|
// Passthrough copy theme CSS from node_modules
|
|
11
18
|
if (options.cssFiles) {
|
|
12
19
|
for (const cssFile of options.cssFiles) {
|
|
@@ -21,5 +28,15 @@ export function refraktPlugin(eleventyConfig, options = {}) {
|
|
|
21
28
|
eleventyConfig.addPassthroughCopy({ [options.behaviorFile]: jsPrefix });
|
|
22
29
|
}
|
|
23
30
|
}
|
|
31
|
+
// Register watch targets for `eleventy --serve`. Eleventy already
|
|
32
|
+
// invalidates the data layer on every rebuild, so the data file's
|
|
33
|
+
// `createRefraktLoader` is re-instantiated from scratch — no manual
|
|
34
|
+
// cache-invalidation hook needed.
|
|
35
|
+
if (contentDir) {
|
|
36
|
+
eleventyConfig.addWatchTarget(contentDir);
|
|
37
|
+
}
|
|
38
|
+
if (examplesDir) {
|
|
39
|
+
eleventyConfig.addWatchTarget(examplesDir);
|
|
40
|
+
}
|
|
24
41
|
}
|
|
25
42
|
//# sourceMappingURL=plugin.js.map
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,cAAmB,EAAE,UAAkC,EAAE;IACtF,MAAM,EACL,SAAS,GAAG,MAAM,EAClB,QAAQ,GAAG,KAAK,EAChB,UAAU,EACV,WAAW,GACX,GAAG,OAAO,CAAC;IAEZ,+CAA+C;IAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;IACF,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,oEAAoE;IACpE,kCAAkC;IAClC,IAAI,UAAU,EAAE,CAAC;QAChB,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACjB,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose the site-level token overrides CSS (SPEC-048 + SPEC-056) and write
|
|
3
|
+
* it to disk at `outputPath`. Designed for Eleventy's build flow — call from
|
|
4
|
+
* `eleventy.config.js` before the build pass starts so the file is on disk in
|
|
5
|
+
* time for `addPassthroughCopy` to ship it into `_site/`.
|
|
6
|
+
*
|
|
7
|
+
* Returns the CSS string (useful if the caller also wants to inline it
|
|
8
|
+
* somewhere). When the site has no overrides the function still creates an
|
|
9
|
+
* empty file at `outputPath`; that way the `<link rel="stylesheet">` in the
|
|
10
|
+
* base template never 404s.
|
|
11
|
+
*
|
|
12
|
+
* @param configPath Path to `refrakt.config.json`.
|
|
13
|
+
* @param outputPath Absolute filesystem path where the CSS file should be
|
|
14
|
+
* written.
|
|
15
|
+
* @param siteName Which site to use from a multi-site config. Required when
|
|
16
|
+
* the config declares multiple `sites.*`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function writeSiteTokensCss(configPath: string, outputPath: string, siteName?: string): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Compute the per-rune CSS files actually used by the site, returning a
|
|
21
|
+
* `Record<string, string>` shaped for Eleventy's `addPassthroughCopy` —
|
|
22
|
+
* keys are source paths (relative to the project root) and values are the
|
|
23
|
+
* `/css/styles/runes/<block>.css` target paths.
|
|
24
|
+
*
|
|
25
|
+
* Use in `eleventy.config.js` to ship only the rune blocks the corpus uses,
|
|
26
|
+
* instead of the theme's entire `styles/` directory:
|
|
27
|
+
*
|
|
28
|
+
* ```js
|
|
29
|
+
* import { getUsedCssCopyMap } from '@refrakt-md/eleventy';
|
|
30
|
+
* import { resolve } from 'node:path';
|
|
31
|
+
*
|
|
32
|
+
* const usedCss = await getUsedCssCopyMap(resolve('refrakt.config.json'));
|
|
33
|
+
*
|
|
34
|
+
* export default function (eleventyConfig) {
|
|
35
|
+
* eleventyConfig.addPlugin(refraktPlugin, { ... });
|
|
36
|
+
* eleventyConfig.addPassthroughCopy(usedCss);
|
|
37
|
+
* // ...
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* Pair with `<link>` tags in your base template — one per used block —
|
|
42
|
+
* generated from `getUsedCssImports` (also exported from this module).
|
|
43
|
+
*
|
|
44
|
+
* @param configPath Path to `refrakt.config.json`.
|
|
45
|
+
* @param siteName Which site to use from a multi-site config.
|
|
46
|
+
* @param projectRoot Directory the source paths should be relative to.
|
|
47
|
+
* Default: directory of `configPath`.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getUsedCssCopyMap(configPath: string, siteName?: string, projectRoot?: string): Promise<Record<string, string>>;
|
|
50
|
+
/**
|
|
51
|
+
* Return the ordered list of href values to emit as `<link rel="stylesheet">`
|
|
52
|
+
* in the base template — `/css/base.css` first, then one entry per used
|
|
53
|
+
* rune block. Pairs with {@link getUsedCssCopyMap}.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getUsedCssImports(configPath: string, siteName?: string): Promise<string[]>;
|
|
56
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAajC;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnB"}
|
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { writeFileSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname, join, relative, resolve } from 'node:path';
|
|
4
|
+
import { composeSiteTokensCss, computeUsedCssBlocks, loadRefraktConfig, resolveSite, } from '@refrakt-md/transform/node';
|
|
5
|
+
import { getThemePackage } from '@refrakt-md/types';
|
|
6
|
+
/**
|
|
7
|
+
* Compose the site-level token overrides CSS (SPEC-048 + SPEC-056) and write
|
|
8
|
+
* it to disk at `outputPath`. Designed for Eleventy's build flow — call from
|
|
9
|
+
* `eleventy.config.js` before the build pass starts so the file is on disk in
|
|
10
|
+
* time for `addPassthroughCopy` to ship it into `_site/`.
|
|
11
|
+
*
|
|
12
|
+
* Returns the CSS string (useful if the caller also wants to inline it
|
|
13
|
+
* somewhere). When the site has no overrides the function still creates an
|
|
14
|
+
* empty file at `outputPath`; that way the `<link rel="stylesheet">` in the
|
|
15
|
+
* base template never 404s.
|
|
16
|
+
*
|
|
17
|
+
* @param configPath Path to `refrakt.config.json`.
|
|
18
|
+
* @param outputPath Absolute filesystem path where the CSS file should be
|
|
19
|
+
* written.
|
|
20
|
+
* @param siteName Which site to use from a multi-site config. Required when
|
|
21
|
+
* the config declares multiple `sites.*`.
|
|
22
|
+
*/
|
|
23
|
+
export async function writeSiteTokensCss(configPath, outputPath, siteName) {
|
|
24
|
+
const config = loadRefraktConfig(configPath);
|
|
25
|
+
const { site } = resolveSite(config, siteName);
|
|
26
|
+
const css = await composeSiteTokensCss(site, dirname(configPath));
|
|
27
|
+
mkdirSync(dirname(outputPath), { recursive: true });
|
|
28
|
+
writeFileSync(outputPath, css);
|
|
29
|
+
return css;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Compute the per-rune CSS files actually used by the site, returning a
|
|
33
|
+
* `Record<string, string>` shaped for Eleventy's `addPassthroughCopy` —
|
|
34
|
+
* keys are source paths (relative to the project root) and values are the
|
|
35
|
+
* `/css/styles/runes/<block>.css` target paths.
|
|
36
|
+
*
|
|
37
|
+
* Use in `eleventy.config.js` to ship only the rune blocks the corpus uses,
|
|
38
|
+
* instead of the theme's entire `styles/` directory:
|
|
39
|
+
*
|
|
40
|
+
* ```js
|
|
41
|
+
* import { getUsedCssCopyMap } from '@refrakt-md/eleventy';
|
|
42
|
+
* import { resolve } from 'node:path';
|
|
43
|
+
*
|
|
44
|
+
* const usedCss = await getUsedCssCopyMap(resolve('refrakt.config.json'));
|
|
45
|
+
*
|
|
46
|
+
* export default function (eleventyConfig) {
|
|
47
|
+
* eleventyConfig.addPlugin(refraktPlugin, { ... });
|
|
48
|
+
* eleventyConfig.addPassthroughCopy(usedCss);
|
|
49
|
+
* // ...
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* Pair with `<link>` tags in your base template — one per used block —
|
|
54
|
+
* generated from `getUsedCssImports` (also exported from this module).
|
|
55
|
+
*
|
|
56
|
+
* @param configPath Path to `refrakt.config.json`.
|
|
57
|
+
* @param siteName Which site to use from a multi-site config.
|
|
58
|
+
* @param projectRoot Directory the source paths should be relative to.
|
|
59
|
+
* Default: directory of `configPath`.
|
|
60
|
+
*/
|
|
61
|
+
export async function getUsedCssCopyMap(configPath, siteName, projectRoot) {
|
|
62
|
+
const blocks = await getUsedCssBlocksInternal(configPath, siteName);
|
|
63
|
+
if (!blocks)
|
|
64
|
+
return {};
|
|
65
|
+
const root = projectRoot ?? dirname(configPath);
|
|
66
|
+
const map = {};
|
|
67
|
+
for (const block of blocks.usedBlocks) {
|
|
68
|
+
const src = join(blocks.stylesDir, `${block}.css`);
|
|
69
|
+
map[relative(root, src) || src] = `/css/styles/runes/${block}.css`;
|
|
70
|
+
}
|
|
71
|
+
// Also copy the theme's base.css — every page needs it.
|
|
72
|
+
const baseCss = resolve(blocks.themeDir, 'base.css');
|
|
73
|
+
map[relative(root, baseCss) || baseCss] = `/css/base.css`;
|
|
74
|
+
return map;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Return the ordered list of href values to emit as `<link rel="stylesheet">`
|
|
78
|
+
* in the base template — `/css/base.css` first, then one entry per used
|
|
79
|
+
* rune block. Pairs with {@link getUsedCssCopyMap}.
|
|
80
|
+
*/
|
|
81
|
+
export async function getUsedCssImports(configPath, siteName) {
|
|
82
|
+
const blocks = await getUsedCssBlocksInternal(configPath, siteName);
|
|
83
|
+
if (!blocks)
|
|
84
|
+
return ['/css/index.css'];
|
|
85
|
+
const hrefs = ['/css/base.css'];
|
|
86
|
+
for (const block of [...blocks.usedBlocks].sort()) {
|
|
87
|
+
hrefs.push(`/css/styles/runes/${block}.css`);
|
|
88
|
+
}
|
|
89
|
+
return hrefs;
|
|
90
|
+
}
|
|
91
|
+
async function getUsedCssBlocksInternal(configPath, siteName) {
|
|
92
|
+
try {
|
|
93
|
+
const config = loadRefraktConfig(configPath);
|
|
94
|
+
const { site } = resolveSite(config, siteName);
|
|
95
|
+
const themePackage = getThemePackage(site.theme);
|
|
96
|
+
const { createRefraktLoader, analyzeRuneUsage } = await import('@refrakt-md/content');
|
|
97
|
+
const themeModule = await import(themePackage + '/transform');
|
|
98
|
+
const themeConfig = themeModule.themeConfig ?? themeModule.luminaConfig ?? themeModule.default;
|
|
99
|
+
const loader = createRefraktLoader({ configPath, site: siteName });
|
|
100
|
+
const loadedSite = await loader.getSite();
|
|
101
|
+
const report = analyzeRuneUsage(loadedSite.pages);
|
|
102
|
+
const { usedBlocks, stylesDir } = await computeUsedCssBlocks(report.allTypes, themeConfig, themePackage);
|
|
103
|
+
const themeEntryUrl = import.meta.resolve(themePackage);
|
|
104
|
+
const themeDir = dirname(fileURLToPath(themeEntryUrl));
|
|
105
|
+
return { usedBlocks, stylesDir, themeDir };
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,5 +23,10 @@ export interface RefraktEleventyOptions {
|
|
|
23
23
|
behaviorFile?: string;
|
|
24
24
|
/** Path prefix for copied JS (default: '/js') */
|
|
25
25
|
jsPrefix?: string;
|
|
26
|
+
/** Content directory to register as an Eleventy watch target so
|
|
27
|
+
* `--serve` triggers a rebuild on `.md` edits. */
|
|
28
|
+
contentDir?: string;
|
|
29
|
+
/** Sandbox examples directory to register as an Eleventy watch target. */
|
|
30
|
+
examplesDir?: string;
|
|
26
31
|
}
|
|
27
32
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACtC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;yCAGqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAEzC,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACtC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;yCAGqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;uDACmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/eleventy",
|
|
3
3
|
"description": "Eleventy plugin for refrakt.md — render Markdoc runes in 11ty v3 projects",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.15.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"build": "tsc"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@refrakt-md/behaviors": "0.
|
|
34
|
-
"@refrakt-md/content": "0.
|
|
35
|
-
"@refrakt-md/transform": "0.
|
|
36
|
-
"@refrakt-md/types": "0.
|
|
33
|
+
"@refrakt-md/behaviors": "0.15.0",
|
|
34
|
+
"@refrakt-md/content": "0.15.0",
|
|
35
|
+
"@refrakt-md/transform": "0.15.0",
|
|
36
|
+
"@refrakt-md/types": "0.15.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@11ty/eleventy": "^3.0.0"
|