blume 2.2.2 → 2.2.4
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 +18 -0
- package/THIRD-PARTY-NOTICES.md +51 -0
- package/dist/cli/{chunk-kmswjxj9.js → chunk-0b1a8xqz.js} +3 -3
- package/dist/cli/{chunk-rtvgmg2j.js → chunk-0qx6vwwf.js} +2 -2
- package/dist/cli/{chunk-qcyxkj44.js → chunk-3ps63r91.js} +43 -17
- package/dist/cli/chunk-3ps63r91.js.map +15 -0
- package/dist/cli/{chunk-b680sv30.js → chunk-402xaaxn.js} +10 -8
- package/dist/cli/chunk-402xaaxn.js.map +13 -0
- package/dist/cli/{chunk-k45sq16q.js → chunk-49xa4yf2.js} +39 -23
- package/dist/cli/{chunk-k45sq16q.js.map → chunk-49xa4yf2.js.map} +3 -3
- package/dist/cli/{chunk-j4nfgn2j.js → chunk-51wr1wre.js} +1 -1
- package/dist/cli/{chunk-9jqmq5hv.js → chunk-531qbwn1.js} +6 -6
- package/dist/cli/{chunk-r5nm9w0c.js → chunk-5bp65pv4.js} +107 -37
- package/dist/cli/{chunk-r5nm9w0c.js.map → chunk-5bp65pv4.js.map} +11 -10
- package/dist/cli/{chunk-yg8ckc3g.js → chunk-6nvcjzts.js} +2 -2
- package/dist/cli/{chunk-x7bh6d9j.js → chunk-6v5w8vzd.js} +4 -4
- package/dist/cli/{chunk-f260jdrn.js → chunk-8cshtem6.js} +5 -5
- package/dist/cli/{chunk-ydqzkhjn.js → chunk-8h5ceyk0.js} +6 -6
- package/dist/cli/{chunk-e1n41w9m.js → chunk-8v90n67z.js} +3 -3
- package/dist/cli/{chunk-etckvbrh.js → chunk-98me5yas.js} +14 -14
- package/dist/cli/{chunk-hktq4j5r.js → chunk-9k7gg4ga.js} +16 -10
- package/dist/cli/{chunk-hktq4j5r.js.map → chunk-9k7gg4ga.js.map} +5 -5
- package/dist/cli/{chunk-34wap3ed.js → chunk-9qmc57zw.js} +3 -3
- package/dist/cli/{chunk-beb0z983.js → chunk-a1xmzxk2.js} +16 -16
- package/dist/cli/{chunk-gwy55cx3.js → chunk-ajw85dgf.js} +2 -2
- package/dist/cli/{chunk-69rjf786.js → chunk-ansqj08e.js} +5 -5
- package/dist/cli/{chunk-q1wwrxzw.js → chunk-b0vwhmdf.js} +3 -3
- package/dist/cli/chunk-b0vwhmdf.js.map +10 -0
- package/dist/cli/{chunk-nqna8dzp.js → chunk-b5gztt4j.js} +17 -17
- package/dist/cli/{chunk-fnxgtjeq.js → chunk-bc4jz2m4.js} +1 -1
- package/dist/cli/{chunk-aafhwx74.js → chunk-d4h1y312.js} +1 -1
- package/dist/cli/{chunk-080mfch6.js → chunk-et7zwqkg.js} +15 -15
- package/dist/cli/{chunk-487b95qy.js → chunk-f29q3j13.js} +41 -25
- package/dist/cli/{chunk-487b95qy.js.map → chunk-f29q3j13.js.map} +3 -3
- package/dist/cli/{chunk-c5bjxq8v.js → chunk-f72388jn.js} +2 -2
- package/dist/cli/{chunk-t2h8pwy1.js → chunk-g0hpwbyx.js} +4 -4
- package/dist/cli/{chunk-40vk8kgf.js → chunk-j102xmnk.js} +7 -7
- package/dist/cli/{chunk-ppa6mg4d.js → chunk-m54bz9ng.js} +6 -6
- package/dist/cli/{chunk-h0qwdbem.js → chunk-mt6njy68.js} +2 -2
- package/dist/cli/{chunk-2ssh60qh.js → chunk-n091sgam.js} +6 -6
- package/dist/cli/{chunk-1ch3ct3r.js → chunk-p33bf2nb.js} +14 -14
- package/dist/cli/{chunk-4zxh25hc.js → chunk-saxq5jjr.js} +2 -2
- package/dist/cli/{chunk-x60e15st.js → chunk-sbt1s5j2.js} +17 -17
- package/dist/cli/{chunk-gxhcf2hs.js → chunk-tckd6qwv.js} +2 -2
- package/dist/cli/{chunk-p834rkcn.js → chunk-tf4134kk.js} +5 -5
- package/dist/cli/{chunk-zxd5jrgx.js → chunk-vxdjss7f.js} +76 -34
- package/dist/cli/{chunk-zxd5jrgx.js.map → chunk-vxdjss7f.js.map} +4 -4
- package/dist/cli/{chunk-9h8mh2tk.js → chunk-x2pgg22t.js} +1 -1
- package/dist/cli/{chunk-hn3g2b89.js → chunk-xhrwrzrh.js} +9 -9
- package/dist/cli/index.js +18 -18
- package/dist/types/ai/ask-context.d.ts +8 -0
- package/dist/types/ai/link-text.d.ts +5 -0
- package/dist/types/ai/relative-links.d.ts +26 -6
- package/dist/types/core/config-input.d.ts +41 -1
- package/dist/types/core/data.d.ts +14 -0
- package/dist/types/core/last-modified.d.ts +33 -18
- package/dist/types/core/links.d.ts +16 -0
- package/dist/types/core/schema.d.ts +17 -1
- package/dist/types/core/types.d.ts +10 -0
- package/dist/types/deploy/sitemap.d.ts +9 -0
- package/dist/types/search/documents.d.ts +3 -1
- package/dist/types/search/fold.d.ts +33 -0
- package/dist/types/search/orama-index.d.ts +4 -4
- package/dist/types/seo/jsonld.d.ts +33 -0
- package/docs/configuration/search.mdx +2 -2
- package/docs/configuration/theming.mdx +13 -1
- package/docs/content/frontmatter.mdx +1 -1
- package/docs/content/i18n.mdx +1 -1
- package/docs/content/sources/remote-mdx.mdx +1 -1
- package/docs/discoverability/open-graph.mdx +16 -1
- package/docs/discoverability/sitemap-and-robots.mdx +12 -0
- package/docs/discoverability/structured-data.mdx +44 -0
- package/package.json +4 -3
- package/skills/blume-migrate/references/docus.md +1 -2
- package/skills/blume-migrate/references/docusaurus.md +1 -1
- package/skills/blume-migrate/references/vitepress.md +2 -2
- package/skills/blume-migrate/references/vuepress.md +1 -1
- package/src/ai/ask-context.ts +52 -14
- package/src/ai/ask-data.ts +4 -1
- package/src/ai/ask-tools.ts +17 -5
- package/src/ai/link-text.ts +6 -0
- package/src/ai/llms.ts +1 -7
- package/src/ai/markdown.ts +8 -4
- package/src/ai/relative-links.ts +155 -48
- package/src/ai/site-skill.ts +1 -4
- package/src/astro/generate.ts +7 -0
- package/src/astro/templates.ts +36 -20
- package/src/components/layout/Header.astro +18 -10
- package/src/components/layout/PageActions.astro +1 -0
- package/src/components/layout/PageLayout.astro +31 -13
- package/src/components/layout/ReferenceLayout.astro +6 -1
- package/src/components/layout/RootLayout.astro +13 -1
- package/src/components/layout/head-scripts.ts +5 -1
- package/src/components/layout/locale-redirect.ts +38 -19
- package/src/components/layout/search/types.ts +12 -4
- package/src/core/config-input.ts +40 -1
- package/src/core/config.ts +5 -2
- package/src/core/data.ts +14 -0
- package/src/core/last-modified.ts +80 -34
- package/src/core/links.ts +43 -2
- package/src/core/manifest.ts +2 -0
- package/src/core/project-graph.ts +83 -43
- package/src/core/schema.ts +48 -9
- package/src/core/types.ts +10 -0
- package/src/deploy/sitemap.ts +127 -49
- package/src/search/documents.ts +34 -11
- package/src/search/fold.ts +175 -0
- package/src/search/orama-index.ts +40 -49
- package/src/seo/jsonld.ts +100 -23
- package/src/theme/chrome-icons.ts +2 -1
- package/src/theme/entry.ts +4 -1
- package/dist/cli/chunk-b680sv30.js.map +0 -13
- package/dist/cli/chunk-q1wwrxzw.js.map +0 -10
- package/dist/cli/chunk-qcyxkj44.js.map +0 -14
- /package/dist/cli/{chunk-kmswjxj9.js.map → chunk-0b1a8xqz.js.map} +0 -0
- /package/dist/cli/{chunk-rtvgmg2j.js.map → chunk-0qx6vwwf.js.map} +0 -0
- /package/dist/cli/{chunk-j4nfgn2j.js.map → chunk-51wr1wre.js.map} +0 -0
- /package/dist/cli/{chunk-9jqmq5hv.js.map → chunk-531qbwn1.js.map} +0 -0
- /package/dist/cli/{chunk-yg8ckc3g.js.map → chunk-6nvcjzts.js.map} +0 -0
- /package/dist/cli/{chunk-x7bh6d9j.js.map → chunk-6v5w8vzd.js.map} +0 -0
- /package/dist/cli/{chunk-f260jdrn.js.map → chunk-8cshtem6.js.map} +0 -0
- /package/dist/cli/{chunk-ydqzkhjn.js.map → chunk-8h5ceyk0.js.map} +0 -0
- /package/dist/cli/{chunk-e1n41w9m.js.map → chunk-8v90n67z.js.map} +0 -0
- /package/dist/cli/{chunk-etckvbrh.js.map → chunk-98me5yas.js.map} +0 -0
- /package/dist/cli/{chunk-34wap3ed.js.map → chunk-9qmc57zw.js.map} +0 -0
- /package/dist/cli/{chunk-beb0z983.js.map → chunk-a1xmzxk2.js.map} +0 -0
- /package/dist/cli/{chunk-gwy55cx3.js.map → chunk-ajw85dgf.js.map} +0 -0
- /package/dist/cli/{chunk-69rjf786.js.map → chunk-ansqj08e.js.map} +0 -0
- /package/dist/cli/{chunk-nqna8dzp.js.map → chunk-b5gztt4j.js.map} +0 -0
- /package/dist/cli/{chunk-fnxgtjeq.js.map → chunk-bc4jz2m4.js.map} +0 -0
- /package/dist/cli/{chunk-aafhwx74.js.map → chunk-d4h1y312.js.map} +0 -0
- /package/dist/cli/{chunk-080mfch6.js.map → chunk-et7zwqkg.js.map} +0 -0
- /package/dist/cli/{chunk-c5bjxq8v.js.map → chunk-f72388jn.js.map} +0 -0
- /package/dist/cli/{chunk-t2h8pwy1.js.map → chunk-g0hpwbyx.js.map} +0 -0
- /package/dist/cli/{chunk-40vk8kgf.js.map → chunk-j102xmnk.js.map} +0 -0
- /package/dist/cli/{chunk-ppa6mg4d.js.map → chunk-m54bz9ng.js.map} +0 -0
- /package/dist/cli/{chunk-h0qwdbem.js.map → chunk-mt6njy68.js.map} +0 -0
- /package/dist/cli/{chunk-2ssh60qh.js.map → chunk-n091sgam.js.map} +0 -0
- /package/dist/cli/{chunk-1ch3ct3r.js.map → chunk-p33bf2nb.js.map} +0 -0
- /package/dist/cli/{chunk-4zxh25hc.js.map → chunk-saxq5jjr.js.map} +0 -0
- /package/dist/cli/{chunk-x60e15st.js.map → chunk-sbt1s5j2.js.map} +0 -0
- /package/dist/cli/{chunk-gxhcf2hs.js.map → chunk-tckd6qwv.js.map} +0 -0
- /package/dist/cli/{chunk-p834rkcn.js.map → chunk-tf4134kk.js.map} +0 -0
- /package/dist/cli/{chunk-9h8mh2tk.js.map → chunk-x2pgg22t.js.map} +0 -0
- /package/dist/cli/{chunk-hn3g2b89.js.map → chunk-xhrwrzrh.js.map} +0 -0
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
distDir,
|
|
19
19
|
adapterRoot,
|
|
20
20
|
deployPlatform
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5bp65pv4.js";
|
|
22
22
|
import {
|
|
23
23
|
trimChar,
|
|
24
24
|
normalizeBasePath
|
|
@@ -1704,6 +1704,7 @@ import RootLayout from "blume/components/layout/RootLayout.astro";
|
|
|
1704
1704
|
import { withBase, withMountedBase } from "blume/components/islands/base-path.ts";
|
|
1705
1705
|
import { mountBasePath, stripBasePath } from "blume/core/base-path.ts";
|
|
1706
1706
|
import { routeSetFor, servesRoute } from "blume/core/locale-links.ts";
|
|
1707
|
+
import { resolveLocalizable } from "blume/core/localizable.ts";
|
|
1707
1708
|
import { resolveSlot } from "blume/components/layout/overrides.ts";
|
|
1708
1709
|
${componentImports}
|
|
1709
1710
|
import data from "blume:data";
|
|
@@ -1728,8 +1729,10 @@ export function getStaticPaths() {
|
|
|
1728
1729
|
editUrl: route.editUrl,
|
|
1729
1730
|
entryId: route.entryId,
|
|
1730
1731
|
fallback: route.fallback,
|
|
1732
|
+
hreflang: route.hreflang,
|
|
1731
1733
|
indexable: route.indexable,
|
|
1732
1734
|
lastModified: route.lastModified,
|
|
1735
|
+
published: route.published,
|
|
1733
1736
|
locale: route.locale,
|
|
1734
1737
|
monolingual: route.monolingual,
|
|
1735
1738
|
route: route.path,
|
|
@@ -1740,7 +1743,7 @@ export function getStaticPaths() {
|
|
|
1740
1743
|
}));
|
|
1741
1744
|
}
|
|
1742
1745
|
|
|
1743
|
-
const { entryId, collection, route, title, indexable, editUrl, lastModified, locale, alternates, fallback, monolingual, version, versionAlternates } = Astro.props;
|
|
1746
|
+
const { entryId, collection, route, title, indexable, editUrl, lastModified, published, locale, alternates, hreflang, fallback, monolingual, version, versionAlternates } = Astro.props;
|
|
1744
1747
|
const entry = await getEntry(collection as CollectionKey, entryId);
|
|
1745
1748
|
if (!entry) {
|
|
1746
1749
|
return new Response(null, { status: 404 });
|
|
@@ -1790,19 +1793,23 @@ const base = data.config.site ? data.config.site.replace(/\\/$/, "") : null;
|
|
|
1790
1793
|
const ogPath = data.config.og.enabled
|
|
1791
1794
|
? encodeURI(\`/og/\${route === "/" ? "index" : route.slice(1)}.png\`)
|
|
1792
1795
|
: null;
|
|
1793
|
-
//
|
|
1794
|
-
// \`site + base + path\`.
|
|
1796
|
+
// Root-relative paths carry the deployment base (the page is served under it),
|
|
1797
|
+
// and the site too once it's known: \`site + base + path\`. \`seo.image\` may be
|
|
1795
1798
|
// an external URL, which passes through verbatim (mirrors PageLayout). An
|
|
1796
|
-
// authored
|
|
1797
|
-
//
|
|
1799
|
+
// authored image keeps a base written by hand; the generated card is always
|
|
1800
|
+
// mounted under it.
|
|
1798
1801
|
const absoluteOg = (path: string, based: (path: string) => string) =>
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
+
path.startsWith("/") ? \`\${base ?? ""}\${based(path)}\` : path;
|
|
1803
|
+
// The page's own image, else the site's default for its locale.
|
|
1804
|
+
const selectedOgImage =
|
|
1805
|
+
seo.image ??
|
|
1806
|
+
(data.config.og.image && resolveLocalizable(data.config.og.image, locale, data.config.i18n?.defaultLocale));
|
|
1807
|
+
const ogImage = selectedOgImage
|
|
1808
|
+
? absoluteOg(selectedOgImage, withBase)
|
|
1802
1809
|
: ogPath && absoluteOg(ogPath, withMountedBase);
|
|
1803
|
-
// Blume's generated card has known dimensions the layout can declare;
|
|
1804
|
-
//
|
|
1805
|
-
const ogGenerated = !
|
|
1810
|
+
// Blume's generated card has known dimensions the layout can declare; an
|
|
1811
|
+
// authored image could be any size or format, so it gets none.
|
|
1812
|
+
const ogGenerated = !selectedOgImage && Boolean(ogPath);
|
|
1806
1813
|
|
|
1807
1814
|
// X attribution: the site's account, plus a creator the page can claim for
|
|
1808
1815
|
// itself (a guest post crediting its own author) over the configured default.
|
|
@@ -1898,11 +1905,12 @@ const canonical =
|
|
|
1898
1905
|
: null);
|
|
1899
1906
|
const effectiveNoindex = Boolean(seo.noindex) || (archived?.noindex ?? false);
|
|
1900
1907
|
|
|
1908
|
+
// hreflang names only indexable translations (see \`hreflangAlternates\`).
|
|
1901
1909
|
const localeAlternates =
|
|
1902
1910
|
i18n && base
|
|
1903
|
-
? (
|
|
1911
|
+
? (hreflang ?? []).map((alt) => ({ hreflang: alt.locale, href: absolute(alt.path) }))
|
|
1904
1912
|
: [];
|
|
1905
|
-
const defaultAlt = i18n ? (
|
|
1913
|
+
const defaultAlt = i18n ? (hreflang ?? []).find((alt) => alt.locale === i18n.defaultLocale) : null;
|
|
1906
1914
|
const xDefault = defaultAlt && base ? absolute(defaultAlt.path) : null;
|
|
1907
1915
|
|
|
1908
1916
|
// \`route\` arrives with \`basePath\` already applied, so the locale segment it
|
|
@@ -2062,7 +2070,8 @@ const LayoutComponent = resolveSlot(layoutOverrides.Layout, RootLayout);
|
|
|
2062
2070
|
pageType={frontmatter.type}
|
|
2063
2071
|
apiRail={remarkPluginFrontmatter?.${API_RAIL_KEY} === true}
|
|
2064
2072
|
pageMode={frontmatter.mode}
|
|
2065
|
-
published={frontmatter.date ?? frontmatter.changelog?.date ??
|
|
2073
|
+
published={frontmatter.date ?? frontmatter.changelog?.date ?? published}
|
|
2074
|
+
authors={frontmatter.authors}
|
|
2066
2075
|
lastModified={lastModified}
|
|
2067
2076
|
noindex={effectiveNoindex}
|
|
2068
2077
|
structuredDataEnabled={data.config.structuredData}
|
|
@@ -2092,8 +2101,9 @@ var changelogIndexTemplate = (options) => {
|
|
|
2092
2101
|
// Generated by Blume. Do not edit.
|
|
2093
2102
|
import RootLayout from "blume/components/layout/RootLayout.astro";
|
|
2094
2103
|
import Changelog from "blume/components/content/Changelog.astro";
|
|
2095
|
-
import { withMountedBase } from "blume/components/islands/base-path.ts";
|
|
2104
|
+
import { withBase, withMountedBase } from "blume/components/islands/base-path.ts";
|
|
2096
2105
|
import { resolveSlot } from "blume/components/layout/overrides.ts";
|
|
2106
|
+
import { resolveLocalizable } from "blume/core/localizable.ts";
|
|
2097
2107
|
import { layoutOverrides } from "../generated/components.ts";
|
|
2098
2108
|
import data from "blume:data";
|
|
2099
2109
|
|
|
@@ -2115,11 +2125,17 @@ const base = data.config.site ? data.config.site.replace(/\\/$/, "") : null;
|
|
|
2115
2125
|
const basedRoute = withMountedBase("/changelog");
|
|
2116
2126
|
const canonical = base ? base + basedRoute : null;
|
|
2117
2127
|
|
|
2118
|
-
// The generated OG card for this route (the /og
|
|
2119
|
-
// the content-route cards), absolutized like the
|
|
2120
|
-
// a full URL when the site is known.
|
|
2128
|
+
// The site's default image, else the generated OG card for this route (the /og
|
|
2129
|
+
// endpoint emits it alongside the content-route cards), absolutized like the
|
|
2130
|
+
// catch-all's so crawlers get a full URL when the site is known.
|
|
2131
|
+
const defaultOgImage =
|
|
2132
|
+
data.config.og.image && resolveLocalizable(data.config.og.image, htmlLang, i18n?.defaultLocale);
|
|
2121
2133
|
const ogPath = data.config.og.enabled ? withMountedBase("/og/changelog.png") : null;
|
|
2122
|
-
const ogImage =
|
|
2134
|
+
const ogImage = defaultOgImage
|
|
2135
|
+
? defaultOgImage.startsWith("/")
|
|
2136
|
+
? (base ?? "") + withBase(defaultOgImage)
|
|
2137
|
+
: defaultOgImage
|
|
2138
|
+
: ogPath && base ? base + ogPath : ogPath;
|
|
2123
2139
|
|
|
2124
2140
|
// The page chrome (h1, title, description) comes from the translatable
|
|
2125
2141
|
// \`changelog\` group, which carries the \`changelog\` config's title and
|
|
@@ -2167,7 +2183,7 @@ const LayoutComponent = resolveSlot(layoutOverrides.Layout, RootLayout);
|
|
|
2167
2183
|
searchEnabled={data.config.search.enabled}
|
|
2168
2184
|
indexable={true}
|
|
2169
2185
|
ogImage={ogImage}
|
|
2170
|
-
ogGenerated={Boolean(ogImage)}
|
|
2186
|
+
ogGenerated={!defaultOgImage && Boolean(ogImage)}
|
|
2171
2187
|
x={data.config.x}
|
|
2172
2188
|
canonical={canonical}
|
|
2173
2189
|
exportPdf={${options.exportPdf}}
|
|
@@ -2692,5 +2708,5 @@ var runtimeTsconfigTemplate = () => `${JSON.stringify({
|
|
|
2692
2708
|
|
|
2693
2709
|
export { deployOutputDir, deployStaticDir, surfaceAdapterOutput, planComponentSlots, publishRuntimeModules, runtimeDependencies, EJECTED_CONFIG_HEADER, astroConfigTemplate, stagedContentDir, contentConfigTemplate, askEndpointTemplate, askComponentTemplate, searchEndpointTemplate, featuresTemplate, consentClientTemplate, searchClientTemplate, mixedbreadSearchEndpointTemplate, rawMarkdownEndpointTemplate, contentAssetsEndpointTemplate, mcpPageFile, mcpEndpointTemplate, playgroundProxyTemplate, staticJsonEndpointTemplate, rssEndpointTemplate, navFragmentTemplate, ogEndpointTemplate, scalarReferenceTemplate, catchAllPageTemplate, changelogIndexTemplate, notFoundPageTemplate, notFoundMarkdownTemplate, notFoundJsonTemplate, apiPagesIndexTemplate, apiPageTemplate, apiNavigationTemplate, apiSearchTemplate, apiNotFoundTemplate, exampleSlug, exampleWrapperTemplate, examplesRouteBase, exampleMapTemplate, examplesPageTemplate, runtimePackageTemplate, runtimeTsconfigTemplate };
|
|
2694
2710
|
|
|
2695
|
-
//# debugId=
|
|
2696
|
-
//# sourceMappingURL=chunk-
|
|
2711
|
+
//# debugId=56680ACE26D883A964756E2164756E21
|
|
2712
|
+
//# sourceMappingURL=chunk-49xa4yf2.js.map
|