@stati/core 1.27.2 → 1.29.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 +6 -1
- package/dist/config/errors.d.ts +10 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +10 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +15 -2
- package/dist/constants.d.ts +26 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +23 -0
- package/dist/core/build.d.ts.map +1 -1
- package/dist/core/build.js +201 -41
- package/dist/core/collections.d.ts +139 -0
- package/dist/core/collections.d.ts.map +1 -0
- package/dist/core/collections.js +342 -0
- package/dist/core/content.d.ts.map +1 -1
- package/dist/core/content.js +2 -1
- package/dist/core/dev.d.ts.map +1 -1
- package/dist/core/dev.js +11 -62
- package/dist/core/expand.d.ts +86 -0
- package/dist/core/expand.d.ts.map +1 -0
- package/dist/core/expand.js +484 -0
- package/dist/core/isg/builder.d.ts +27 -2
- package/dist/core/isg/builder.d.ts.map +1 -1
- package/dist/core/isg/builder.js +83 -11
- package/dist/core/isg/deps.d.ts +9 -0
- package/dist/core/isg/deps.d.ts.map +1 -1
- package/dist/core/isg/deps.js +30 -1
- package/dist/core/isg/hash.d.ts +14 -2
- package/dist/core/isg/hash.d.ts.map +1 -1
- package/dist/core/isg/hash.js +30 -2
- package/dist/core/isg/index.d.ts +4 -2
- package/dist/core/isg/index.d.ts.map +1 -1
- package/dist/core/isg/index.js +4 -2
- package/dist/core/isg/manifest.js +14 -0
- package/dist/core/isg/prune.d.ts +32 -0
- package/dist/core/isg/prune.d.ts.map +1 -0
- package/dist/core/isg/prune.js +113 -0
- package/dist/core/markdown.d.ts +10 -1
- package/dist/core/markdown.d.ts.map +1 -1
- package/dist/core/markdown.js +13 -3
- package/dist/core/navigation.d.ts +4 -2
- package/dist/core/navigation.d.ts.map +1 -1
- package/dist/core/navigation.js +17 -2
- package/dist/core/templates.d.ts +15 -1
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +121 -126
- package/dist/core/utils/fs.utils.d.ts +29 -1
- package/dist/core/utils/fs.utils.d.ts.map +1 -1
- package/dist/core/utils/fs.utils.js +74 -1
- package/dist/core/utils/index.d.ts +3 -3
- package/dist/core/utils/index.d.ts.map +1 -1
- package/dist/core/utils/index.js +3 -3
- package/dist/core/utils/paths.utils.d.ts +15 -0
- package/dist/core/utils/paths.utils.d.ts.map +1 -1
- package/dist/core/utils/paths.utils.js +20 -0
- package/dist/core/utils/template-discovery.utils.d.ts +25 -1
- package/dist/core/utils/template-discovery.utils.d.ts.map +1 -1
- package/dist/core/utils/template-discovery.utils.js +61 -11
- package/dist/images/config.d.ts +52 -0
- package/dist/images/config.d.ts.map +1 -0
- package/dist/images/config.js +200 -0
- package/dist/images/index.d.ts +15 -0
- package/dist/images/index.d.ts.map +1 -0
- package/dist/images/index.js +11 -0
- package/dist/images/manifest.d.ts +36 -0
- package/dist/images/manifest.d.ts.map +1 -0
- package/dist/images/manifest.js +69 -0
- package/dist/images/markdown-rule.d.ts +26 -0
- package/dist/images/markdown-rule.d.ts.map +1 -0
- package/dist/images/markdown-rule.js +60 -0
- package/dist/images/markup.d.ts +39 -0
- package/dist/images/markup.d.ts.map +1 -0
- package/dist/images/markup.js +72 -0
- package/dist/images/og.d.ts +52 -0
- package/dist/images/og.d.ts.map +1 -0
- package/dist/images/og.js +165 -0
- package/dist/images/plan.d.ts +101 -0
- package/dist/images/plan.d.ts.map +1 -0
- package/dist/images/plan.js +128 -0
- package/dist/images/provider.d.ts +35 -0
- package/dist/images/provider.d.ts.map +1 -0
- package/dist/images/provider.js +70 -0
- package/dist/images/resolve.d.ts +45 -0
- package/dist/images/resolve.d.ts.map +1 -0
- package/dist/images/resolve.js +51 -0
- package/dist/images/runtime.d.ts +258 -0
- package/dist/images/runtime.d.ts.map +1 -0
- package/dist/images/runtime.js +659 -0
- package/dist/images/sources.d.ts +47 -0
- package/dist/images/sources.d.ts.map +1 -0
- package/dist/images/sources.js +97 -0
- package/dist/images/utils/image-probe.utils.d.ts +30 -0
- package/dist/images/utils/image-probe.utils.d.ts.map +1 -0
- package/dist/images/utils/image-probe.utils.js +307 -0
- package/dist/images/utils/index.d.ts +7 -0
- package/dist/images/utils/index.d.ts.map +1 -0
- package/dist/images/utils/index.js +5 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/metrics/noop.d.ts.map +1 -1
- package/dist/metrics/noop.js +3 -0
- package/dist/metrics/recorder.d.ts.map +1 -1
- package/dist/metrics/recorder.js +3 -0
- package/dist/metrics/types.d.ts +8 -0
- package/dist/metrics/types.d.ts.map +1 -1
- package/dist/rss/generator.d.ts.map +1 -1
- package/dist/rss/generator.js +5 -2
- package/dist/search/generator.d.ts +9 -0
- package/dist/search/generator.d.ts.map +1 -1
- package/dist/search/generator.js +20 -0
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +1 -1
- package/dist/seo/auto-inject.d.ts +3 -0
- package/dist/seo/auto-inject.d.ts.map +1 -1
- package/dist/seo/auto-inject.js +1 -0
- package/dist/seo/generator.d.ts +24 -0
- package/dist/seo/generator.d.ts.map +1 -1
- package/dist/seo/generator.js +65 -1
- package/dist/seo/index.d.ts +1 -1
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +1 -1
- package/dist/types/config.d.ts +60 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/content.d.ts +150 -3
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/images.d.ts +185 -0
- package/dist/types/images.d.ts.map +1 -0
- package/dist/types/images.js +8 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/isg.d.ts +19 -0
- package/dist/types/isg.d.ts.map +1 -1
- package/dist/types/seo.d.ts +9 -0
- package/dist/types/seo.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/search/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/search/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA2BtE;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8DtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,EAAE,EACf,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACnC,MAAM,EAAE,YAAY,GACnB,cAAc,EAAE,CAiGlB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CA2BhF;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAM1E;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,oEAAoE;IACpE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,kDAAkD;IAClD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,cAAc,EAAE,EACjC,MAAM,EAAE,YAAY,GACnB,WAAW,CA6Bb;AAiBD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,eAAe,UAAQ,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAqC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAczF"}
|
package/dist/search/generator.js
CHANGED
|
@@ -6,6 +6,7 @@ import { createHash } from 'node:crypto';
|
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { writeFile, ensureDir } from '../core/utils/fs.utils.js';
|
|
8
8
|
import { matchesGlob } from '../core/utils/glob-patterns.utils.js';
|
|
9
|
+
import { isVirtualPage } from '../core/utils/template-discovery.utils.js';
|
|
9
10
|
import { SEARCH_INDEX_VERSION, SEARCH_DEFAULTS } from './constants.js';
|
|
10
11
|
/**
|
|
11
12
|
* Generates a short content hash for cache busting.
|
|
@@ -218,6 +219,10 @@ export function shouldExcludePage(page, config) {
|
|
|
218
219
|
if (page.frontMatter.draft) {
|
|
219
220
|
return true;
|
|
220
221
|
}
|
|
222
|
+
// Exclude generated and pagination pages unless their template opts in
|
|
223
|
+
if (isGeneratedPageExcludedFromSearch(page)) {
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
221
226
|
// Check home page exclusion
|
|
222
227
|
const isHomePage = page.url === '/' || page.url === '';
|
|
223
228
|
const includeHomePage = config.includeHomePage ?? SEARCH_DEFAULTS.includeHomePage;
|
|
@@ -233,6 +238,21 @@ export function shouldExcludePage(page, config) {
|
|
|
233
238
|
}
|
|
234
239
|
return false;
|
|
235
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Whether a page created by Stati stays out of the search index. Pages generated from a
|
|
243
|
+
* `[param].md` template are left out unless the template sets `search: true`; later pages
|
|
244
|
+
* of a paginated listing are always left out, since they repeat the first page's content.
|
|
245
|
+
*
|
|
246
|
+
* @param page - Page model to check
|
|
247
|
+
* @returns true for generated and pagination pages that are not indexed
|
|
248
|
+
*/
|
|
249
|
+
export function isGeneratedPageExcludedFromSearch(page) {
|
|
250
|
+
if (!isVirtualPage(page)) {
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
const firstPage = (page.pagination?.pageNumber ?? 1) === 1;
|
|
254
|
+
return !(page.generated && firstPage && page.frontMatter.search === true);
|
|
255
|
+
}
|
|
236
256
|
/**
|
|
237
257
|
* Generates a search index from searchable pages using markdown and TOC data.
|
|
238
258
|
*
|
package/dist/search/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* console.log(`Generated search index at ${metadata.indexPath}`);
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
export { generateSearchIndex, writeSearchIndex, extractSectionsFromMarkdown, stripMarkdown, shouldExcludePage, generateContentHash, buildBreadcrumb, computeSearchIndexFilename, } from './generator.js';
|
|
19
|
+
export { generateSearchIndex, writeSearchIndex, extractSectionsFromMarkdown, stripMarkdown, shouldExcludePage, isGeneratedPageExcludedFromSearch, generateContentHash, buildBreadcrumb, computeSearchIndexFilename, } from './generator.js';
|
|
20
20
|
export type { SearchablePage } from './generator.js';
|
|
21
21
|
export { autoInjectSearchMeta } from './auto-inject.js';
|
|
22
22
|
export { SEARCH_INDEX_META_NAME, SEARCH_INDEX_VERSION, SEARCH_DEFAULTS } from './constants.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/F,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,iCAAiC,EACjC,mBAAmB,EACnB,eAAe,EACf,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/F,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
package/dist/search/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* console.log(`Generated search index at ${metadata.indexPath}`);
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
export { generateSearchIndex, writeSearchIndex, extractSectionsFromMarkdown, stripMarkdown, shouldExcludePage, generateContentHash, buildBreadcrumb, computeSearchIndexFilename, } from './generator.js';
|
|
19
|
+
export { generateSearchIndex, writeSearchIndex, extractSectionsFromMarkdown, stripMarkdown, shouldExcludePage, isGeneratedPageExcludedFromSearch, generateContentHash, buildBreadcrumb, computeSearchIndexFilename, } from './generator.js';
|
|
20
20
|
// Auto-injection
|
|
21
21
|
export { autoInjectSearchMeta } from './auto-inject.js';
|
|
22
22
|
export { SEARCH_INDEX_META_NAME, SEARCH_INDEX_VERSION, SEARCH_DEFAULTS } from './constants.js';
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { PageModel } from '../types/content.js';
|
|
6
6
|
import type { StatiConfig } from '../types/config.js';
|
|
7
7
|
import type { Logger } from '../types/logging.js';
|
|
8
|
+
import type { GeneratedOgImage } from '../types/images.js';
|
|
8
9
|
/**
|
|
9
10
|
* Options for auto-injection
|
|
10
11
|
*/
|
|
@@ -19,6 +20,8 @@ export interface AutoInjectOptions {
|
|
|
19
20
|
logger: Logger;
|
|
20
21
|
/** Enable debug logging */
|
|
21
22
|
debug?: boolean;
|
|
23
|
+
/** Open Graph image generated for the page */
|
|
24
|
+
generatedImage?: GeneratedOgImage | undefined;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* Automatically injects SEO metadata into HTML if not already present
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-inject.d.ts","sourceRoot":"","sources":["../../src/seo/auto-inject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-inject.d.ts","sourceRoot":"","sources":["../../src/seo/auto-inject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,IAAI,EAAE,SAAS,CAAC;IAChB,yBAAyB;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC/C;AAmBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA2D9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAK/E"}
|
package/dist/seo/auto-inject.js
CHANGED
package/dist/seo/generator.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { SEOContext } from '../types/seo.js';
|
|
6
6
|
import type { PageModel } from '../types/content.js';
|
|
7
7
|
import type { StatiConfig, SiteConfig } from '../types/config.js';
|
|
8
|
+
import type { GeneratedOgImage } from '../types/images.js';
|
|
8
9
|
import { SEOTagType } from '../types/seo.js';
|
|
9
10
|
/**
|
|
10
11
|
* Generate complete SEO metadata for a page.
|
|
@@ -55,6 +56,27 @@ export declare function generateOpenGraphTags(ctx: SEOContext): string[];
|
|
|
55
56
|
* ```
|
|
56
57
|
*/
|
|
57
58
|
export declare function generateTwitterCardTags(ctx: SEOContext): string[];
|
|
59
|
+
/**
|
|
60
|
+
* Replaces the placeholders that {@link SEOContext.deferGeneratedImage} produced with the
|
|
61
|
+
* generated image's tags, or removes them when the page ended up without an image.
|
|
62
|
+
*
|
|
63
|
+
* @param html - Rendered HTML
|
|
64
|
+
* @param image - The generated image, if any
|
|
65
|
+
* @returns HTML without placeholders
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveGeneratedImagePlaceholders(html: string, image: GeneratedOgImage | undefined): string;
|
|
68
|
+
/**
|
|
69
|
+
* Open Graph and Twitter tags for a generated image.
|
|
70
|
+
* Shared by tag generation and by the image pipeline, which removes exactly these tags
|
|
71
|
+
* from a page when its image fails to generate.
|
|
72
|
+
*
|
|
73
|
+
* @param image - The generated image
|
|
74
|
+
* @returns The `og:image*` and `twitter:image*` tags
|
|
75
|
+
*/
|
|
76
|
+
export declare function generatedOgImageTags(image: GeneratedOgImage): {
|
|
77
|
+
openGraph: string[];
|
|
78
|
+
twitter: string[];
|
|
79
|
+
};
|
|
58
80
|
/**
|
|
59
81
|
* Template helper function for generating SEO tags in Eta templates.
|
|
60
82
|
* Provides a convenient API for selective SEO tag generation.
|
|
@@ -73,5 +95,7 @@ export declare function generateSEO(context: {
|
|
|
73
95
|
page: PageModel;
|
|
74
96
|
config: StatiConfig;
|
|
75
97
|
site?: SiteConfig;
|
|
98
|
+
generatedImage?: GeneratedOgImage | undefined;
|
|
99
|
+
deferGeneratedImage?: boolean | undefined;
|
|
76
100
|
}, tags?: Array<SEOTagType | string>): string;
|
|
77
101
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/seo/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAsH3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/seo/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAsH3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAiF/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CA+DjE;AAQD;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,MAAM,CAUR;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAYA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3C,EACD,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,GAChC,MAAM,CAmDR"}
|
package/dist/seo/generator.js
CHANGED
|
@@ -158,7 +158,15 @@ export function generateOpenGraphTags(ctx) {
|
|
|
158
158
|
tags.push(`<meta property="og:url" content="${escapeHtml(ogUrl)}">`);
|
|
159
159
|
tags.push(`<meta property="og:type" content="${escapeHtml(ogType)}">`);
|
|
160
160
|
tags.push(`<meta property="og:site_name" content="${escapeHtml(ogSiteName)}">`);
|
|
161
|
-
// OG Image
|
|
161
|
+
// OG Image: front matter wins, then a generated image unless front matter sets `false`
|
|
162
|
+
if (!og.image && og.image !== false) {
|
|
163
|
+
if (ctx.generatedImage) {
|
|
164
|
+
tags.push(...generatedOgImageTags(ctx.generatedImage).openGraph);
|
|
165
|
+
}
|
|
166
|
+
else if (ctx.deferGeneratedImage) {
|
|
167
|
+
tags.push(OG_IMAGE_PLACEHOLDER);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
162
170
|
if (og.image) {
|
|
163
171
|
const image = typeof og.image === 'string' ? { url: og.image } : og.image;
|
|
164
172
|
const imageUrl = image.url.startsWith('/') ? `${siteUrl}${image.url}` : image.url;
|
|
@@ -263,8 +271,58 @@ export function generateTwitterCardTags(ctx) {
|
|
|
263
271
|
tags.push(`<meta name="twitter:image:alt" content="${escapeHtml(twitter.imageAlt)}">`);
|
|
264
272
|
}
|
|
265
273
|
}
|
|
274
|
+
else if (seo.openGraph?.image !== false && ctx.generatedImage) {
|
|
275
|
+
tags.push(...generatedOgImageTags(ctx.generatedImage).twitter);
|
|
276
|
+
}
|
|
277
|
+
else if (seo.openGraph?.image !== false && ctx.deferGeneratedImage) {
|
|
278
|
+
tags.push(TWITTER_IMAGE_PLACEHOLDER);
|
|
279
|
+
}
|
|
266
280
|
return tags;
|
|
267
281
|
}
|
|
282
|
+
/** Stands in for generated `og:image` tags until the image is known. */
|
|
283
|
+
const OG_IMAGE_PLACEHOLDER = '<!--stati:og-image-->';
|
|
284
|
+
/** Stands in for generated `twitter:image` tags until the image is known. */
|
|
285
|
+
const TWITTER_IMAGE_PLACEHOLDER = '<!--stati:twitter-image-->';
|
|
286
|
+
/**
|
|
287
|
+
* Replaces the placeholders that {@link SEOContext.deferGeneratedImage} produced with the
|
|
288
|
+
* generated image's tags, or removes them when the page ended up without an image.
|
|
289
|
+
*
|
|
290
|
+
* @param html - Rendered HTML
|
|
291
|
+
* @param image - The generated image, if any
|
|
292
|
+
* @returns HTML without placeholders
|
|
293
|
+
*/
|
|
294
|
+
export function resolveGeneratedImagePlaceholders(html, image) {
|
|
295
|
+
if (!html.includes('<!--stati:')) {
|
|
296
|
+
return html;
|
|
297
|
+
}
|
|
298
|
+
const tags = image ? generatedOgImageTags(image) : { openGraph: [], twitter: [] };
|
|
299
|
+
return html
|
|
300
|
+
.split(OG_IMAGE_PLACEHOLDER)
|
|
301
|
+
.join(tags.openGraph.join('\n '))
|
|
302
|
+
.split(TWITTER_IMAGE_PLACEHOLDER)
|
|
303
|
+
.join(tags.twitter.join('\n '));
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Open Graph and Twitter tags for a generated image.
|
|
307
|
+
* Shared by tag generation and by the image pipeline, which removes exactly these tags
|
|
308
|
+
* from a page when its image fails to generate.
|
|
309
|
+
*
|
|
310
|
+
* @param image - The generated image
|
|
311
|
+
* @returns The `og:image*` and `twitter:image*` tags
|
|
312
|
+
*/
|
|
313
|
+
export function generatedOgImageTags(image) {
|
|
314
|
+
const openGraph = [
|
|
315
|
+
`<meta property="og:image" content="${escapeHtml(image.url)}">`,
|
|
316
|
+
`<meta property="og:image:width" content="${image.width}">`,
|
|
317
|
+
`<meta property="og:image:height" content="${image.height}">`,
|
|
318
|
+
];
|
|
319
|
+
const twitter = [`<meta name="twitter:image" content="${escapeHtml(image.url)}">`];
|
|
320
|
+
if (image.alt) {
|
|
321
|
+
openGraph.push(`<meta property="og:image:alt" content="${escapeHtml(image.alt)}">`);
|
|
322
|
+
twitter.push(`<meta name="twitter:image:alt" content="${escapeHtml(image.alt)}">`);
|
|
323
|
+
}
|
|
324
|
+
return { openGraph, twitter };
|
|
325
|
+
}
|
|
268
326
|
/**
|
|
269
327
|
* Template helper function for generating SEO tags in Eta templates.
|
|
270
328
|
* Provides a convenient API for selective SEO tag generation.
|
|
@@ -320,5 +378,11 @@ export function generateSEO(context, tags) {
|
|
|
320
378
|
if (include) {
|
|
321
379
|
seoContext.include = include;
|
|
322
380
|
}
|
|
381
|
+
if (context.generatedImage) {
|
|
382
|
+
seoContext.generatedImage = context.generatedImage;
|
|
383
|
+
}
|
|
384
|
+
else if (context.deferGeneratedImage) {
|
|
385
|
+
seoContext.deferGeneratedImage = true;
|
|
386
|
+
}
|
|
323
387
|
return generateSEOMetadata(seoContext);
|
|
324
388
|
}
|
package/dist/seo/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Barrel file for all Stati SEO functionality including metadata generation,
|
|
4
4
|
* sitemaps, robots.txt, and auto-injection.
|
|
5
5
|
*/
|
|
6
|
-
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, } from './generator.js';
|
|
6
|
+
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, generatedOgImageTags, resolveGeneratedImagePlaceholders, } from './generator.js';
|
|
7
7
|
export { generateSitemap, generateSitemapEntry, generateSitemapXml, generateSitemapIndexXml, } from './sitemap.js';
|
|
8
8
|
export { generateRobotsTxt, generateRobotsTxtFromConfig } from './robots.js';
|
|
9
9
|
export { autoInjectSEO, shouldAutoInject } from './auto-inject.js';
|
package/dist/seo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,iCAAiC,GAClC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,kBAAkB,CAAC"}
|
package/dist/seo/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* sitemaps, robots.txt, and auto-injection.
|
|
5
5
|
*/
|
|
6
6
|
// SEO metadata generation
|
|
7
|
-
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, } from './generator.js';
|
|
7
|
+
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, generatedOgImageTags, resolveGeneratedImagePlaceholders, } from './generator.js';
|
|
8
8
|
// Sitemap generation
|
|
9
9
|
export { generateSitemap, generateSitemapEntry, generateSitemapXml, generateSitemapIndexXml, } from './sitemap.js';
|
|
10
10
|
// Robots.txt generation
|
package/dist/types/config.d.ts
CHANGED
|
@@ -73,6 +73,8 @@ export interface StatiConfig {
|
|
|
73
73
|
};
|
|
74
74
|
/** Incremental Static Generation configuration */
|
|
75
75
|
isg?: import('./isg.js').ISGConfig;
|
|
76
|
+
/** Collection listings: which fields rebuild them, and pages generated from data */
|
|
77
|
+
collections?: CollectionsConfig;
|
|
76
78
|
/** SEO configuration */
|
|
77
79
|
seo?: SEOConfig;
|
|
78
80
|
/** Sitemap generation configuration */
|
|
@@ -85,6 +87,11 @@ export interface StatiConfig {
|
|
|
85
87
|
search?: SearchConfig;
|
|
86
88
|
/** TypeScript compilation settings */
|
|
87
89
|
typescript?: TypeScriptConfig;
|
|
90
|
+
/**
|
|
91
|
+
* Image handling. Intrinsic sizes, lazy loading and co-located images work without
|
|
92
|
+
* configuration; `false` turns them off. `responsive` and `og` need `@stati/images`.
|
|
93
|
+
*/
|
|
94
|
+
images?: false | import('./images.js').ImagesConfig;
|
|
88
95
|
/** Development server configuration */
|
|
89
96
|
dev?: {
|
|
90
97
|
/** Port for development server (default: 3000) */
|
|
@@ -106,6 +113,59 @@ export interface StatiConfig {
|
|
|
106
113
|
/** Build lifecycle hooks */
|
|
107
114
|
hooks?: BuildHooks;
|
|
108
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Collection settings.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const collections: CollectionsConfig = {
|
|
122
|
+
* // Listings also show each post's image, so changing it rebuilds them
|
|
123
|
+
* summaryFields: ['title', 'description', 'tags', 'draft', 'image'],
|
|
124
|
+
* // One page per author, rendered with site/authors/[author].md
|
|
125
|
+
* generate: ({ pages }) => [
|
|
126
|
+
* {
|
|
127
|
+
* url: '/authors/ada',
|
|
128
|
+
* template: 'authors/[author].md',
|
|
129
|
+
* label: 'Ada Lovelace',
|
|
130
|
+
* items: pages.filter((page) => page.frontMatter.author === 'ada'),
|
|
131
|
+
* },
|
|
132
|
+
* ],
|
|
133
|
+
* };
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
export interface CollectionsConfig {
|
|
137
|
+
/**
|
|
138
|
+
* Front matter fields of collection pages that listings show. A page that reads
|
|
139
|
+
* `stati.collection` rebuilds when one of these fields changes on a page in the collection,
|
|
140
|
+
* and so do paginated and generated pages that list it. Each page's URL and publish date
|
|
141
|
+
* always count. `content` stands for the Markdown body, for listings that show excerpts.
|
|
142
|
+
*
|
|
143
|
+
* @default ['title', 'description', 'tags', 'draft']
|
|
144
|
+
*/
|
|
145
|
+
summaryFields?: string[];
|
|
146
|
+
/**
|
|
147
|
+
* Pages to create from data, each rendered with a `[param].md` template. Runs once per build,
|
|
148
|
+
* after content is loaded and before navigation is built.
|
|
149
|
+
*/
|
|
150
|
+
generate?: (ctx: BuildContext) => GeneratedPageEntry[] | Promise<GeneratedPageEntry[]>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* A page returned by `collections.generate`.
|
|
154
|
+
*/
|
|
155
|
+
export interface GeneratedPageEntry {
|
|
156
|
+
/** URL of the page, such as `/authors/ada` */
|
|
157
|
+
url: string;
|
|
158
|
+
/** The `[param].md` template that renders it, relative to the source directory */
|
|
159
|
+
template: string;
|
|
160
|
+
/** `stati.generated.key`; defaults to the last segment of `url` */
|
|
161
|
+
key?: string;
|
|
162
|
+
/** `stati.generated.label` and the value of `{param}` placeholders; defaults to `key` */
|
|
163
|
+
label?: string;
|
|
164
|
+
/** Pages the page lists (`stati.generated.items`), split up by the template's `generate.paginate` */
|
|
165
|
+
items?: import('./content.js').PageModel[];
|
|
166
|
+
/** Any JSON-serializable data, as `stati.generated.data`; changing it rebuilds the page */
|
|
167
|
+
data?: Record<string, unknown>;
|
|
168
|
+
}
|
|
109
169
|
/**
|
|
110
170
|
* SEO configuration for the site.
|
|
111
171
|
* Controls automatic SEO metadata injection and site-wide defaults.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/content.d.ts
CHANGED
|
@@ -98,9 +98,62 @@ export interface FrontMatter {
|
|
|
98
98
|
seo?: SEOMetadata;
|
|
99
99
|
/** Sitemap configuration for the page */
|
|
100
100
|
sitemap?: SitemapMetadata;
|
|
101
|
+
/**
|
|
102
|
+
* URL of the collection index page this page reads as `stati.collection`, such as `/posts`.
|
|
103
|
+
* Without it, an index page reads its own collection and other pages the nearest collection
|
|
104
|
+
* they belong to.
|
|
105
|
+
*/
|
|
106
|
+
collection?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Splits the page's collection (`stati.collection.recentPages`) into pages of this size.
|
|
109
|
+
* Page 1 keeps the page's URL; later pages get `<url>/page/2` and so on.
|
|
110
|
+
*/
|
|
111
|
+
paginate?: number | PaginateOptions;
|
|
112
|
+
/** Expansion of a `[param].md` template into one page per key */
|
|
113
|
+
generate?: GenerateOptions;
|
|
114
|
+
/** Includes the pages a `[param].md` template generates in the navigation tree */
|
|
115
|
+
nav?: boolean;
|
|
116
|
+
/** Includes the pages a `[param].md` template generates in the search index */
|
|
117
|
+
search?: boolean;
|
|
101
118
|
/** Additional custom properties */
|
|
102
119
|
[key: string]: unknown;
|
|
103
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Pagination settings from front matter (`paginate`).
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```yaml
|
|
126
|
+
* paginate:
|
|
127
|
+
* size: 10 # items per page
|
|
128
|
+
* path: page # optional, default 'page' → /blog/page/2
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export interface PaginateOptions {
|
|
132
|
+
/** Items per page */
|
|
133
|
+
size: number;
|
|
134
|
+
/** URL segment before the page number (default `'page'`) */
|
|
135
|
+
path?: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Settings of a `[param].md` template (`generate` in its front matter).
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```yaml
|
|
142
|
+
* # site/blog/tags/[tag].md
|
|
143
|
+
* generate:
|
|
144
|
+
* from: tags # one page per tag in the collection
|
|
145
|
+
* paginate: { size: 10 } # optional
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export interface GenerateOptions {
|
|
149
|
+
/**
|
|
150
|
+
* Front matter field whose values become the keys, read from the pages of the template's
|
|
151
|
+
* collection. Works with string fields (`author`) and lists of strings (`tags`).
|
|
152
|
+
*/
|
|
153
|
+
from?: string;
|
|
154
|
+
/** Splits each generated page's items into pages of this size */
|
|
155
|
+
paginate?: number | PaginateOptions;
|
|
156
|
+
}
|
|
104
157
|
/**
|
|
105
158
|
* SEO metadata configuration for a page.
|
|
106
159
|
* Provides comprehensive control over meta tags, Open Graph, Twitter Cards, and structured data.
|
|
@@ -196,8 +249,8 @@ export interface OpenGraphConfig {
|
|
|
196
249
|
type?: string;
|
|
197
250
|
/** Open Graph description */
|
|
198
251
|
description?: string;
|
|
199
|
-
/** Open Graph image (URL string or full image object) */
|
|
200
|
-
image?: string | OpenGraphImage;
|
|
252
|
+
/** Open Graph image (URL string or full image object), or `false` for none, not even a generated one */
|
|
253
|
+
image?: string | OpenGraphImage | false;
|
|
201
254
|
/** Open Graph URL */
|
|
202
255
|
url?: string;
|
|
203
256
|
/** Site name */
|
|
@@ -302,6 +355,72 @@ export interface PageModel {
|
|
|
302
355
|
content: string;
|
|
303
356
|
/** Publication date, from the first valid of `publishedAt`, `published`, `date`, `createdAt` */
|
|
304
357
|
publishedAt?: Date;
|
|
358
|
+
/**
|
|
359
|
+
* Position of the page in a paginated listing. Set on every page of a listing with
|
|
360
|
+
* `paginate`, including the first one. Templates read it as `stati.pagination`.
|
|
361
|
+
*/
|
|
362
|
+
pagination?: PaginationData;
|
|
363
|
+
/**
|
|
364
|
+
* Set on pages expanded from a `[param].md` template or a `collections.generate` entry.
|
|
365
|
+
* Templates read it as `stati.generated`.
|
|
366
|
+
*/
|
|
367
|
+
generated?: GeneratedPageData;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* One page of a paginated listing, available to templates as `stati.pagination`.
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* ```typescript
|
|
374
|
+
* const pagination: PaginationData = {
|
|
375
|
+
* pageNumber: 2,
|
|
376
|
+
* totalPages: 7,
|
|
377
|
+
* items: [], // this page's slice of the listing
|
|
378
|
+
* prevUrl: '/blog',
|
|
379
|
+
* nextUrl: '/blog/page/3',
|
|
380
|
+
* urls: ['/blog', '/blog/page/2', '/blog/page/3'],
|
|
381
|
+
* };
|
|
382
|
+
* ```
|
|
383
|
+
*/
|
|
384
|
+
export interface PaginationData {
|
|
385
|
+
/** Number of this page, starting at 1 */
|
|
386
|
+
pageNumber: number;
|
|
387
|
+
/** Number of pages in the listing; at least 1, even when there are no items */
|
|
388
|
+
totalPages: number;
|
|
389
|
+
/** The pages listed on this page: a slice of `recentPages`, or of `stati.generated.items` */
|
|
390
|
+
items: PageModel[];
|
|
391
|
+
/** URL of the previous page; absent on the first page */
|
|
392
|
+
prevUrl?: string;
|
|
393
|
+
/** URL of the next page; absent on the last page */
|
|
394
|
+
nextUrl?: string;
|
|
395
|
+
/** URL of every page of the listing, in order; `urls[0]` is the first page */
|
|
396
|
+
urls: string[];
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Data of a page expanded from a `[param].md` template, available to templates as
|
|
400
|
+
* `stati.generated`.
|
|
401
|
+
*
|
|
402
|
+
* @example
|
|
403
|
+
* ```typescript
|
|
404
|
+
* // site/blog/tags/[tag].md, for the tag "CSS"
|
|
405
|
+
* const generated: GeneratedPageData = {
|
|
406
|
+
* key: 'css',
|
|
407
|
+
* label: 'CSS',
|
|
408
|
+
* items: [], // pages tagged "CSS", newest first
|
|
409
|
+
* template: 'blog/tags/[tag].md',
|
|
410
|
+
* };
|
|
411
|
+
* ```
|
|
412
|
+
*/
|
|
413
|
+
export interface GeneratedPageData {
|
|
414
|
+
/** The key in the page URL, slugified for keys taken from front matter */
|
|
415
|
+
key: string;
|
|
416
|
+
/** The original value, used for `{param}` placeholders in front matter */
|
|
417
|
+
label: string;
|
|
418
|
+
/** The pages for this key, newest first */
|
|
419
|
+
items: PageModel[];
|
|
420
|
+
/** The template, relative to the source directory, such as `blog/tags/[tag].md` */
|
|
421
|
+
template: string;
|
|
422
|
+
/** Data from the `collections.generate` entry that created the page */
|
|
423
|
+
data?: Record<string, unknown>;
|
|
305
424
|
}
|
|
306
425
|
/**
|
|
307
426
|
* Collection aggregation data available to index page templates.
|
|
@@ -368,10 +487,38 @@ export interface TemplateContext {
|
|
|
368
487
|
};
|
|
369
488
|
/** Discovered partials from underscore folders in hierarchy */
|
|
370
489
|
partials: Record<string, string>;
|
|
371
|
-
/**
|
|
490
|
+
/**
|
|
491
|
+
* Collection data: the page's own collection on index pages, the collection the page belongs
|
|
492
|
+
* to on other pages, or the one named by the `collection` front matter field
|
|
493
|
+
*/
|
|
372
494
|
collection?: CollectionData;
|
|
495
|
+
/** This page's position in a paginated listing (pages with `paginate`) */
|
|
496
|
+
pagination?: PaginationData;
|
|
497
|
+
/** Key, label and items of a page expanded from a `[param].md` template */
|
|
498
|
+
generated?: GeneratedPageData;
|
|
499
|
+
/** Converts text to the URL slug Stati uses for generated page keys and heading anchors */
|
|
500
|
+
slugify?: (text: string) => string;
|
|
373
501
|
/** TypeScript bundle assets (available when typescript.enabled is true) */
|
|
374
502
|
assets?: StatiAssets;
|
|
503
|
+
/**
|
|
504
|
+
* Renders an image with intrinsic dimensions and lazy loading, plus `srcset` variants when
|
|
505
|
+
* `images.responsive` is on. Synchronous; print it with `<%~ %>`. Relative paths resolve
|
|
506
|
+
* next to the page's Markdown file, root-relative ones from the static directory.
|
|
507
|
+
*/
|
|
508
|
+
image?: (src: string, options?: {
|
|
509
|
+
alt?: string;
|
|
510
|
+
sizes?: string;
|
|
511
|
+
priority?: boolean;
|
|
512
|
+
class?: string;
|
|
513
|
+
title?: string;
|
|
514
|
+
}) => string;
|
|
515
|
+
/** Size of the Open Graph image, set only while an Open Graph template renders */
|
|
516
|
+
og?: {
|
|
517
|
+
width: number;
|
|
518
|
+
height: number;
|
|
519
|
+
};
|
|
520
|
+
/** The page's generated Open Graph image, when `images.og` produced one */
|
|
521
|
+
ogImage?: import('./images.js').GeneratedOgImage;
|
|
375
522
|
/** Additional properties that may be added dynamically (e.g., custom filters, helpers) */
|
|
376
523
|
[key: string]: unknown;
|
|
377
524
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,yCAAyC;IACzC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,kFAAkF;IAClF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iCAAiC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;CACxF;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvF,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC;IACxC,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,CAAC,EAAE,SAAS,GAAG,qBAAqB,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC5D,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,6DAA6D;IAC7D,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxC,0BAA0B;IAC1B,QAAQ,EAAE;QACR,0CAA0C;QAC1C,UAAU,EAAE,MAAM,CAAC;QACnB,yCAAyC;QACzC,WAAW,EAAE,OAAO,CAAC;QACrB,6BAA6B;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,iDAAiD;QACjD,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,IAAI,EAAE,OAAO,aAAa,EAAE,UAAU,CAAC;IACvC,0DAA0D;IAC1D,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAC;QAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,GAAG,EAAE;QACH,+BAA+B;QAC/B,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC1C,oCAAoC;QACpC,OAAO,EAAE,MAAM,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QACnD,6CAA6C;QAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;QAC1E,6CAA6C;QAC7C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QACnE,2CAA2C;QAC3C,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;QAC5E,6CAA6C;QAC7C,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC3F,mDAAmD;QACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClE,2CAA2C;QAC3C,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,iBAAiB,EAAE,OAAO,EAAE,CAAC;QACvE,8CAA8C;QAC9C,cAAc,EAAE,MAAM,OAAO,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;KACrE,CAAC;IACF,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CACN,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3F,MAAM,CAAC;IACZ,kFAAkF;IAClF,EAAE,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACjD,0FAA0F;IAC1F,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|