@heroiclands/package-build 23.13.0 → 24.0.1
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/CHANGELOG.md +50 -0
- package/README.md +2 -1
- package/assets/preview/gitea.ini +12 -7
- package/assets/styles/content-base.css +150 -1
- package/bin/content-commands.mjs +356 -210
- package/bin/package-build.mjs +3 -2
- package/ci/check-banners.mjs +7 -7
- package/config.mjs +21 -6
- package/content-config.mjs +199 -80
- package/docs/api.md +93 -72
- package/docs/authoring/links-and-markup.md +316 -78
- package/docs/commands.md +248 -80
- package/docs/configuration.md +210 -102
- package/docs/content-format.md +2 -2
- package/docs/diagnostics.md +2 -2
- package/docs/getting-started.md +1 -1
- package/docs/guides/icons.md +1 -1
- package/docs/guides/module-project.md +5 -8
- package/docs/guides/release-and-deploy.md +2 -2
- package/docs/guides/site.md +155 -23
- package/docs/guides/system-project.md +1 -1
- package/docs/guides/writing-in-invented-scripts.md +1247 -0
- package/docs/index.md +1 -0
- package/docs/project-setup.md +28 -30
- package/docs/reference/format-details.md +589 -308
- package/docs/reference/note-types.md +40 -10
- package/docs/reference/theme-pages.md +127 -108
- package/docs/source-preview.md +15 -1
- package/engine/asset-shipping.mjs +22 -10
- package/engine/base-compiler.mjs +62 -104
- package/engine/changelog-lint.mjs +1 -1
- package/engine/content-address.mjs +1 -1
- package/engine/content-alerts.mjs +8 -4
- package/engine/content-blocks.mjs +26 -11
- package/engine/content-embeds.mjs +1 -1
- package/engine/content-expand.mjs +376 -0
- package/engine/content-figures.mjs +13 -6
- package/engine/content-format.yaml +8 -0
- package/engine/content-glyphs.mjs +213 -0
- package/engine/content-images.mjs +6 -7
- package/engine/content-links.mjs +3 -3
- package/engine/content-lint.mjs +1 -1
- package/engine/content-render.mjs +453 -0
- package/engine/content-scripts.mjs +326 -27
- package/engine/content-spans.mjs +4 -1
- package/engine/content-styles.mjs +91 -0
- package/engine/content-symbols.mjs +186 -0
- package/engine/content-verse.mjs +6 -18
- package/engine/core-report.mjs +169 -0
- package/engine/core-vocabulary.mjs +208 -0
- package/engine/dictionary-html.mjs +119 -0
- package/engine/field-reference.mjs +1 -1
- package/engine/frontmatter-lint.mjs +1 -1
- package/engine/heading-attributes.mjs +89 -0
- package/engine/helpers.mjs +61 -101
- package/engine/homepage.mjs +17 -29
- package/engine/html-minify.mjs +70 -0
- package/engine/index.mjs +8 -5
- package/engine/language-rows.mjs +8 -2
- package/engine/language-terms.mjs +115 -14
- package/engine/language-words.mjs +12 -0
- package/engine/logographic.mjs +255 -0
- package/engine/map-lexicon.mjs +221 -25
- package/engine/map-places.mjs +5 -4
- package/engine/markdown-expressions.mjs +0 -2
- package/engine/markdownlint-run.mjs +9 -3
- package/engine/markup-validation.mjs +21 -0
- package/engine/metre-declaration.mjs +134 -0
- package/engine/note-matter.mjs +2 -2
- package/engine/note-vocabulary.mjs +187 -3
- package/engine/pdf-build.mjs +68 -133
- package/engine/pdf-render.mjs +102 -44
- package/engine/post-fields.mjs +157 -0
- package/engine/preview-index.mjs +130 -0
- package/engine/preview-source.mjs +450 -0
- package/engine/project-init.mjs +5 -12
- package/engine/prose-config.mjs +3 -3
- package/engine/run-words.mjs +3 -2
- package/engine/script-emphasis-terms.mjs +38 -0
- package/engine/script-emphasis.mjs +295 -0
- package/engine/script-font-delivery.mjs +4 -4
- package/engine/site-build.mjs +265 -313
- package/engine/site-config.mjs +26 -238
- package/engine/site-files.mjs +175 -0
- package/engine/site-index.mjs +9 -4
- package/engine/site-preview.mjs +50 -523
- package/engine/site-reach.mjs +213 -0
- package/engine/site-render.mjs +668 -0
- package/engine/site-root.mjs +90 -39
- package/engine/site-search.mjs +161 -0
- package/engine/site-serve.mjs +274 -0
- package/engine/site-theme-banner.mjs +154 -0
- package/engine/site-theme-urls.mjs +125 -0
- package/engine/site-theme.mjs +939 -0
- package/engine/sql-tables.mjs +9 -6
- package/engine/text-maps.mjs +57 -10
- package/engine/typographer.mjs +248 -0
- package/engine/verse-metre.mjs +357 -0
- package/engine/wikilink-syntax.mjs +29 -47
- package/engine/wikilinks.mjs +758 -279
- package/engine/word-forms.mjs +39 -24
- package/engine/word-rows.mjs +12 -2
- package/engine/word-terms.mjs +29 -4
- package/manifest.mjs +3 -4
- package/package.json +10 -7
- package/{hugo-theme → site-theme}/data/banners.yaml +6 -10
- package/site-theme/layouts/base.hbs +31 -0
- package/site-theme/layouts/blog-list.hbs +30 -0
- package/site-theme/layouts/blog-post.hbs +40 -0
- package/site-theme/layouts/home.hbs +35 -0
- package/site-theme/layouts/list.hbs +20 -0
- package/site-theme/layouts/not-found.hbs +31 -0
- package/site-theme/layouts/page.hbs +7 -0
- package/site-theme/partials/copy-buttons.hbs +37 -0
- package/site-theme/partials/draft-notice.hbs +5 -0
- package/site-theme/partials/exturl.hbs +2 -0
- package/{hugo-theme/layouts/partials/footer.html → site-theme/partials/footer.hbs} +10 -7
- package/site-theme/partials/header.hbs +44 -0
- package/site-theme/partials/hero-banner.hbs +11 -0
- package/site-theme/partials/infobox-entry.hbs +2 -0
- package/site-theme/partials/infobox-section.hbs +31 -0
- package/site-theme/partials/infobox-value.hbs +2 -0
- package/site-theme/partials/infobox.hbs +18 -0
- package/site-theme/partials/list-members.hbs +9 -0
- package/site-theme/partials/nav-links.hbs +5 -0
- package/site-theme/partials/page-body.hbs +48 -0
- package/site-theme/partials/page-list.hbs +14 -0
- package/site-theme/partials/related.hbs +24 -0
- package/site-theme/partials/search-meta.hbs +6 -0
- package/site-theme/partials/search-names.hbs +2 -0
- package/site-theme/partials/search.hbs +52 -0
- package/site-theme/partials/tags.hbs +4 -0
- package/site-theme/partials/toc.hbs +7 -0
- package/{hugo-theme → site-theme}/static/css/style.css +14 -0
- package/stage.mjs +1 -2
- package/types/config.d.mts +8 -4
- package/types/content-config.d.mts +15 -15
- package/types/engine/asset-shipping.d.mts +5 -2
- package/types/engine/base-compiler.d.mts +20 -2
- package/types/engine/content-address.d.mts +1 -1
- package/types/engine/content-alerts.d.mts +8 -2
- package/types/engine/content-blocks.d.mts +11 -4
- package/types/engine/content-expand.d.mts +288 -0
- package/types/engine/content-figures.d.mts +11 -3
- package/types/engine/content-glyphs.d.mts +85 -0
- package/types/engine/content-images.d.mts +6 -7
- package/types/engine/content-links.d.mts +1 -1
- package/types/engine/content-render.d.mts +199 -0
- package/types/engine/content-scripts.d.mts +62 -0
- package/types/engine/content-spans.d.mts +1 -1
- package/types/engine/content-styles.d.mts +33 -0
- package/types/engine/content-symbols.d.mts +35 -0
- package/types/engine/core-report.d.mts +45 -0
- package/types/engine/core-vocabulary.d.mts +53 -0
- package/types/engine/dictionary-html.d.mts +8 -0
- package/types/engine/field-reference.d.mts +1 -1
- package/types/engine/heading-attributes.d.mts +20 -0
- package/types/engine/helpers.d.mts +3 -10
- package/types/engine/homepage.d.mts +11 -24
- package/types/engine/html-minify.d.mts +9 -0
- package/types/engine/index.d.mts +2 -1
- package/types/engine/language-terms.d.mts +24 -2
- package/types/engine/logographic.d.mts +45 -0
- package/types/engine/map-lexicon.d.mts +48 -8
- package/types/engine/map-places.d.mts +8 -0
- package/types/engine/markdown-expressions.d.mts +0 -2
- package/types/engine/metre-declaration.d.mts +39 -0
- package/types/engine/pdf-render.d.mts +6 -2
- package/types/engine/post-fields.d.mts +44 -0
- package/types/engine/preview-index.d.mts +72 -0
- package/types/engine/preview-source.d.mts +51 -0
- package/types/engine/script-emphasis-terms.d.mts +21 -0
- package/types/engine/script-emphasis.d.mts +84 -0
- package/types/engine/script-font-delivery.d.mts +4 -4
- package/types/engine/site-build.d.mts +71 -113
- package/types/engine/site-config.d.mts +14 -134
- package/types/engine/site-files.d.mts +73 -0
- package/types/engine/site-index.d.mts +11 -3
- package/types/engine/site-preview.d.mts +15 -19
- package/types/engine/site-reach.d.mts +76 -0
- package/types/engine/site-render.d.mts +173 -0
- package/types/engine/site-root.d.mts +14 -4
- package/types/engine/site-search.d.mts +54 -0
- package/types/engine/site-serve.d.mts +44 -0
- package/types/engine/site-theme-banner.d.mts +51 -0
- package/types/engine/site-theme-urls.d.mts +60 -0
- package/types/engine/site-theme.d.mts +127 -0
- package/types/engine/text-maps.d.mts +17 -3
- package/types/engine/typographer.d.mts +11 -0
- package/types/engine/verse-metre.d.mts +131 -0
- package/types/engine/wikilink-syntax.d.mts +30 -48
- package/types/engine/wikilinks.d.mts +330 -14
- package/types/engine/word-forms.d.mts +3 -2
- package/types/manifest.d.mts +3 -4
- package/types/stage.d.mts +1 -2
- package/types/vendor/markdownlint.d.mts +8 -0
- package/vendor/markdownlint.mjs +20388 -0
- package/engine/web-wikilinks.mjs +0 -594
- package/hugo-theme/layouts/404.html +0 -85
- package/hugo-theme/layouts/_default/baseof.html +0 -67
- package/hugo-theme/layouts/_default/list.html +0 -139
- package/hugo-theme/layouts/_default/single.html +0 -4
- package/hugo-theme/layouts/blog/list.html +0 -54
- package/hugo-theme/layouts/blog-post/single.html +0 -36
- package/hugo-theme/layouts/index.html +0 -75
- package/hugo-theme/layouts/partials/banner-url.html +0 -141
- package/hugo-theme/layouts/partials/cdn-url.html +0 -36
- package/hugo-theme/layouts/partials/dictionary-lists.html +0 -58
- package/hugo-theme/layouts/partials/draft-notice.html +0 -41
- package/hugo-theme/layouts/partials/draft-state.html +0 -26
- package/hugo-theme/layouts/partials/header.html +0 -35
- package/hugo-theme/layouts/partials/hero-banner.html +0 -85
- package/hugo-theme/layouts/partials/infobox/entry.html +0 -18
- package/hugo-theme/layouts/partials/infobox/items.html +0 -26
- package/hugo-theme/layouts/partials/infobox/section.html +0 -56
- package/hugo-theme/layouts/partials/infobox/value.html +0 -43
- package/hugo-theme/layouts/partials/infobox.html +0 -57
- package/hugo-theme/layouts/partials/page-body.html +0 -152
- package/hugo-theme/layouts/partials/related.html +0 -138
- package/hugo-theme/layouts/partials/search.html +0 -84
- package/hugo-theme/layouts/partials/site-url.html +0 -32
- package/hugo-theme/layouts/partials/tags.html +0 -30
- package/hugo-theme/layouts/partials/toc.html +0 -28
- package/hugo-theme/layouts/partials/warn-missing-banner.html +0 -3
- package/hugo-theme/layouts/shortcodes/cartouche.html +0 -64
- package/hugo-theme/layouts/shortcodes/exturl.html +0 -12
- package/hugo-theme/layouts/shortcodes/glyph.html +0 -43
- package/hugo-theme/layouts/shortcodes/pagelist.html +0 -63
- package/hugo-theme/theme.toml +0 -11
- package/types/engine/web-wikilinks.d.mts +0 -107
- /package/{hugo-theme → site-theme}/data/banner-kinds.yaml +0 -0
- /package/{hugo-theme → site-theme}/static/css/sohl-icons.css +0 -0
- /package/{hugo-theme → site-theme}/static/fonts/game-icons-kb.woff2 +0 -0
- /package/{hugo-theme → site-theme}/static/img/banners/takheperu-hieroglyphs.svg +0 -0
- /package/{hugo-theme → site-theme}/static/img/cartouches/takheperu.svg +0 -0
- /package/{hugo-theme → site-theme}/static/js/inline-spoilers.js +0 -0
package/docs/guides/site.md
CHANGED
|
@@ -7,10 +7,9 @@ subType: howto
|
|
|
7
7
|
|
|
8
8
|
# Build a content website
|
|
9
9
|
|
|
10
|
-
`package-build site`
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
note it publishes.
|
|
10
|
+
`package-build site build` renders the package's content notes as a website
|
|
11
|
+
with the shared theme. The build reads the same note addresses used by content
|
|
12
|
+
indexes and links, so a page's URL follows the note it publishes.
|
|
14
13
|
|
|
15
14
|
The site has an authored homepage and one page for each other publishable note
|
|
16
15
|
in the content tree. The [configuration reference](../configuration.md)
|
|
@@ -62,15 +61,13 @@ site:
|
|
|
62
61
|
description: A guide to the setting and its people.
|
|
63
62
|
```
|
|
64
63
|
|
|
65
|
-
The site title
|
|
64
|
+
The site title is the title of every page. `site.description`
|
|
66
65
|
is plain text for the page's metadata. `site.assets` is an absolute HTTP or
|
|
67
66
|
HTTPS host for imagery. `package.json` supplies the homepage URL; it must
|
|
68
67
|
agree with the content package's address. The
|
|
69
68
|
[configuration reference](../configuration.md#site) covers the other site
|
|
70
|
-
keys, including `base`, `packages`,
|
|
69
|
+
keys, including `base`, `packages`, and `notfound`.
|
|
71
70
|
|
|
72
|
-
`site.hugo` can add Hugo options the build does not derive. Keys the build
|
|
73
|
-
owns, such as `baseURL`, `title`, and the generated menu, are refused there.
|
|
74
71
|
The menu comes from the navigation fetched by `package-build deps fetch`.
|
|
75
72
|
The site build reads that cached navigation and reports a missing cache.
|
|
76
73
|
|
|
@@ -107,10 +104,54 @@ record available. A SQL fence queries the content index; the
|
|
|
107
104
|
[content format](../content-format.md) defines its result columns and fence
|
|
108
105
|
options.
|
|
109
106
|
|
|
110
|
-
The build writes no automatic
|
|
111
|
-
the
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
The build writes no automatic type or listing pages between the homepage and
|
|
108
|
+
the authored pages: a package's navigation above individual notes is a set of
|
|
109
|
+
authored pages, each choosing its own contents. A site writes tag pages only
|
|
110
|
+
with `site.tags`, and section pages only for the sections `site.sections` and
|
|
111
|
+
`site.feed` name.
|
|
112
|
+
|
|
113
|
+
## Write a blog
|
|
114
|
+
|
|
115
|
+
A blog is a section of posts. A post is a `doc` note of `subType: post`, which
|
|
116
|
+
states the day it was published and may name who wrote it; its `tags` are the
|
|
117
|
+
ones any note carries:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
---
|
|
121
|
+
type: doc
|
|
122
|
+
subType: post
|
|
123
|
+
shortcode: welcome
|
|
124
|
+
name: { full: Welcome to Heroic Lands }
|
|
125
|
+
description: A first post, and a short note on what this blog is for.
|
|
126
|
+
tags: [meta, announcements]
|
|
127
|
+
data:
|
|
128
|
+
date: 2026-04-15
|
|
129
|
+
author: Tom Rodriguez
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
The first post.
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
A post that names no `data.author` carries the site's byline, the first entry
|
|
136
|
+
of `authors`. `site.feed` names the section the posts are published in, and
|
|
137
|
+
`site.sections` can give that section a page of its own, a `doc` note whose
|
|
138
|
+
title and body introduce the list:
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
site:
|
|
142
|
+
sections:
|
|
143
|
+
blog: doc-blog
|
|
144
|
+
feed: blog
|
|
145
|
+
tags: true
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
The section's page at `/blog/` lists every post newest first, and
|
|
149
|
+
`/blog/atom.xml` feeds them. A post publishes at its own address,
|
|
150
|
+
`/doc-welcome/`, like any note, and a link to `doc-blog` reaches `/blog/`. With
|
|
151
|
+
`site.tags`, each tag a page carries links to a page listing every page that
|
|
152
|
+
carries it. See [where a site is served, and what it
|
|
153
|
+
lists](../configuration.md#where-a-site-is-served-and-what-it-lists) for every
|
|
154
|
+
key.
|
|
114
155
|
|
|
115
156
|
## Use links, relations, and maps
|
|
116
157
|
|
|
@@ -142,7 +183,7 @@ format and link behavior in the [content format](../content-format.md).
|
|
|
142
183
|
|
|
143
184
|
## What an emitted page carries
|
|
144
185
|
|
|
145
|
-
A
|
|
186
|
+
A page is drawn from its front matter: the note's own
|
|
146
187
|
front matter, plus the values the build derives. Which is which matters,
|
|
147
188
|
because an authored value under a derived key is discarded.
|
|
148
189
|
|
|
@@ -182,6 +223,49 @@ The build writes these keys; [what the theme draws](../reference/theme-pages.md)
|
|
|
182
223
|
describes the panel each one feeds — the infobox, the hero band, the related
|
|
183
224
|
card, and search — and the generated sections the theme draws as any other.
|
|
184
225
|
|
|
226
|
+
## Decide which pages a reader finds
|
|
227
|
+
|
|
228
|
+
Every note is written as a page, linked or not, and a page is served at its
|
|
229
|
+
address. What a reader can find is what the homepage leads to: the sitemap and
|
|
230
|
+
the site search cover the pages reachable from the homepage, directly or
|
|
231
|
+
through the pages it links, and no others.
|
|
232
|
+
|
|
233
|
+
Reachability is read from the links the rendered pages carry, never from the
|
|
234
|
+
notes' sources. A page is reachable when an authored link leads to it:
|
|
235
|
+
|
|
236
|
+
- a link in the homepage or in the body of a reachable note, including the
|
|
237
|
+
links a `pagelist` or a `sql` table writes into the body;
|
|
238
|
+
- a link in the menu or the rest of the site chrome;
|
|
239
|
+
- a link in a listing: the pages of a section page, a tag page, and the posts
|
|
240
|
+
an Atom feed lists, once a reachable page links the section, the tag or the
|
|
241
|
+
feed. A tag chip on a reachable page links its tag page when `site.tags` is
|
|
242
|
+
on, so every page carrying the tag is then reachable.
|
|
243
|
+
|
|
244
|
+
The links the build generates do not make a page reachable. These are the
|
|
245
|
+
Related card, the previous and next links, the infobox links, and the sections
|
|
246
|
+
generated after a note's text (Within, Governed by, Governed places,
|
|
247
|
+
Chronology, Events, Accounts, What followed, In song and story). Each is drawn
|
|
248
|
+
without a link to a page outside the reachable set, and a section left with
|
|
249
|
+
nothing under it is not drawn. An infobox value that names an unreachable page
|
|
250
|
+
is set as plain text. A link written in prose or produced by a query is kept
|
|
251
|
+
wherever it points, and it is what makes its target reachable.
|
|
252
|
+
|
|
253
|
+
A page that is not reachable is the way to preview a page in place. Write the
|
|
254
|
+
note, build the site, and read the page at its address on the live site; link
|
|
255
|
+
it from the homepage or from a linked page when it is ready to publish. For a
|
|
256
|
+
note `doc-charlie` in the package `setting`:
|
|
257
|
+
|
|
258
|
+
1. Add `doc-charlie` to the content tree. It is written at
|
|
259
|
+
`/setting/doc-charlie/` and appears in neither the sitemap nor the search.
|
|
260
|
+
2. Read it at `/setting/doc-charlie/`.
|
|
261
|
+
3. Link it, for example `[[doc-charlie|Charlie]]` in a linked note, to publish
|
|
262
|
+
it. The next build lists it in the sitemap and the search.
|
|
263
|
+
|
|
264
|
+
An address is a short code and the site serves no directory listing, so an
|
|
265
|
+
unlinked page is found only by someone who knows its address. The content
|
|
266
|
+
index that `package-build content-index` writes is a release asset and is not
|
|
267
|
+
part of the site.
|
|
268
|
+
|
|
185
269
|
## Show marked text in its font
|
|
186
270
|
|
|
187
271
|
A site shows text marked with `font=` and one of the faces of
|
|
@@ -191,7 +275,7 @@ in `devDependencies`, as the
|
|
|
191
275
|
describes. Nothing else is configured: the build reads which faces the notes use
|
|
192
276
|
from their `font=` keys.
|
|
193
277
|
|
|
194
|
-
`package-build site` copies the font stylesheet, the WOFF2 files and the
|
|
278
|
+
`package-build site build` copies the font stylesheet, the WOFF2 files and the
|
|
195
279
|
licence to a path that names the fonts package's version,
|
|
196
280
|
`fonts/heroiclands/<version>/` beside the pages, and the theme links the
|
|
197
281
|
stylesheet from every page. The copied stylesheet lists only the WOFF2
|
|
@@ -206,16 +290,64 @@ package.
|
|
|
206
290
|
```bash
|
|
207
291
|
package-build deps fetch
|
|
208
292
|
package-build content-index
|
|
209
|
-
package-build site
|
|
210
|
-
|
|
293
|
+
package-build site build
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
`package-build site build` renders every page and writes the site under
|
|
297
|
+
`build/site/<contentPackage>/`: the pages, `404.html`, `sitemap.xml`, the
|
|
298
|
+
theme's files and the script fonts, then `_headers` beside it and the search
|
|
299
|
+
index inside it. Nothing else renders the pages: the body of each is the same
|
|
300
|
+
HTML the Foundry journals and the editor preview read, drawn into the site
|
|
301
|
+
theme's layouts and minified.
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
package-build site serve
|
|
211
305
|
```
|
|
212
306
|
|
|
213
|
-
`package-build site`
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
307
|
+
`package-build site serve` builds the site the same way and serves it at
|
|
308
|
+
`http://127.0.0.1:1313/<contentPackage>/`. Edit a note and its page is written
|
|
309
|
+
again and the browser reloads; edit the theme and every page is drawn again.
|
|
310
|
+
A change that moves, renames or adds a note builds the whole site again. See
|
|
311
|
+
[`site serve`](../commands.md#package-build-site-serve) for the whole table.
|
|
218
312
|
|
|
219
313
|
A package created by `package-build init` includes `npm run build:site` for
|
|
220
|
-
|
|
221
|
-
|
|
314
|
+
`site build` and `npm run serve:site` for `site serve`, each preceded by the
|
|
315
|
+
dependency and content-index steps. Neither needs anything installed beyond
|
|
316
|
+
the project's dependencies.
|
|
317
|
+
|
|
318
|
+
## Search
|
|
319
|
+
|
|
320
|
+
A site whose `site.search` is left on carries a search box in its header and a
|
|
321
|
+
[Pagefind](https://pagefind.app) index beside its pages. A search can be
|
|
322
|
+
narrowed by what each page tells it:
|
|
323
|
+
|
|
324
|
+
| Filter | Values |
|
|
325
|
+
| ----------- | -------------------------------------------- |
|
|
326
|
+
| `package` | the package that publishes the note |
|
|
327
|
+
| `type` | the note's `type` |
|
|
328
|
+
| `subtype` | the note's `subType` |
|
|
329
|
+
| `culture` | the name of the culture `data.culture` names |
|
|
330
|
+
| `continent` | the continent the note lies in |
|
|
331
|
+
| `region` | the outermost region beneath that continent |
|
|
332
|
+
|
|
333
|
+
A place lies where its `parents` lead, a being where its `data.homes` are, and
|
|
334
|
+
a scenario where its `data.locations` are. A continent is a `place/region`
|
|
335
|
+
whose parent is the world, and the region a note is found under is the region
|
|
336
|
+
directly beneath its continent, however deep the note sits: a settlement in a
|
|
337
|
+
valley in a march is found under the march. A note that lies in more than one
|
|
338
|
+
place carries every continent and region it reaches, so a being with a home in
|
|
339
|
+
each of two regions is found under both.
|
|
340
|
+
|
|
341
|
+
A note's name and its aliases count ten times a word of its body, so a search
|
|
342
|
+
for a name opens that note first and a search for an alias finds it. A result
|
|
343
|
+
shows the note's `data.icon`, or its hero banner where it has none. A note's
|
|
344
|
+
tags and its draft state are not filters. Secret blocks, inline secrets and
|
|
345
|
+
`.secret` sections are kept out of the index.
|
|
346
|
+
|
|
347
|
+
A post carries `author` and `tags` filters and sorts by its `date`. A site's
|
|
348
|
+
search can read other sites' indexes beside its own: given each package site in
|
|
349
|
+
[`site.mergeIndexes`](../configuration.md#where-a-site-is-served-and-what-it-lists),
|
|
350
|
+
the search box finds every site's pages from one box. Each index is read from
|
|
351
|
+
`/<package>/pagefind/` on the site's own origin, so the merged search works
|
|
352
|
+
where the sites share an origin and finds only the site's own pages under
|
|
353
|
+
`package-build site serve`.
|
|
@@ -40,6 +40,6 @@ npm run build:book
|
|
|
40
40
|
npm run build:noci
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
`build:db` writes the content index, stages assets, and compiles configured packs. `build:site`
|
|
43
|
+
`build:db` writes the content index, stages assets, and compiles configured packs. `build:site` renders the site; `serve:site` serves it locally. `build:book` uses Typst. `build:noci` runs lint, database, and manifest steps without reinstalling dependencies. Inspect `build/packs-json/` for compiled document data and `build/stage/` for what Foundry receives. Everything under `build/` is generated and can be deleted.
|
|
44
44
|
|
|
45
45
|
The [testing guide](e2e.md) covers a disposable Foundry world. The [release guide](release-and-deploy.md) covers packaging and deployment. Site deployment needs its own hosting configuration; local builds do not.
|