@riebeckite/honox 0.0.9 → 0.0.11
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/index.js +423 -23
- package/dist/src/scaffold/version.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -132,7 +132,10 @@ async function loadRiebeckiteConfig(options) {
|
|
|
132
132
|
banner: {
|
|
133
133
|
js: 'import { createRequire as __riebeckiteCreateRequire } from "node:module"; const require = __riebeckiteCreateRequire(import.meta.url);'
|
|
134
134
|
},
|
|
135
|
-
plugins:
|
|
135
|
+
plugins: [
|
|
136
|
+
externalizeBareModuleImports(),
|
|
137
|
+
...options.workspaceRoot ? [workspacePackageResolver(options.workspaceRoot)] : []
|
|
138
|
+
]
|
|
136
139
|
});
|
|
137
140
|
const module = await import(`${pathToFileUrl(outputFile)}?t=${Date.now()}`);
|
|
138
141
|
return module.default;
|
|
@@ -150,6 +153,17 @@ function resolveHonoxConfig(config, appRoot) {
|
|
|
150
153
|
}
|
|
151
154
|
};
|
|
152
155
|
}
|
|
156
|
+
function externalizeBareModuleImports() {
|
|
157
|
+
return {
|
|
158
|
+
name: "externalize-bare-module-imports",
|
|
159
|
+
setup(buildApi) {
|
|
160
|
+
buildApi.onResolve({ filter: /^[^./]|^\.[^./]|^\.\.$/ }, (args) => {
|
|
161
|
+
if (path2.isAbsolute(args.path)) return null;
|
|
162
|
+
return { path: args.path, external: true };
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}
|
|
153
167
|
function pathToFileUrl(filePath) {
|
|
154
168
|
return `file:///${filePath.replace(/\\/g, "/").replace(/^([A-Za-z]):/, "$1:")}`;
|
|
155
169
|
}
|
|
@@ -1729,6 +1743,311 @@ var HELPERS = {
|
|
|
1729
1743
|
};
|
|
1730
1744
|
var PLUGIN_INDEX_URL = "https://github.com/Rerurate514/riebeckite/tree/main/packages/plugins";
|
|
1731
1745
|
var THEMES_INDEX_URL = "https://github.com/Rerurate514/riebeckite/tree/main/packages/themes";
|
|
1746
|
+
var GALLERY_PACKAGE = "@riebeckite/plugin-gallery";
|
|
1747
|
+
var PLUGIN_MARKDOWN_GUIDES = {
|
|
1748
|
+
"@riebeckite/plugin-color-mode": {
|
|
1749
|
+
summary: "Adds the light/dark/system color-mode control to the app shell. Markdown does not need special syntax; every page inherits the toggle.",
|
|
1750
|
+
markdown: "Write any page normally. Use the color-mode control in the header to see the same Markdown under light and dark tokens."
|
|
1751
|
+
},
|
|
1752
|
+
"@riebeckite/plugin-l10n": {
|
|
1753
|
+
summary: "Routes translated Markdown files by language suffix and keeps the default-language file unsuffixed.",
|
|
1754
|
+
markdown: fence(
|
|
1755
|
+
"text",
|
|
1756
|
+
[
|
|
1757
|
+
"content/about.md # default language",
|
|
1758
|
+
"content/about.ja.md # Japanese version served under /ja/about/",
|
|
1759
|
+
"content/about.fr.md # French version served under /fr/about/"
|
|
1760
|
+
].join("\n")
|
|
1761
|
+
)
|
|
1762
|
+
},
|
|
1763
|
+
"@riebeckite/plugin-seo": {
|
|
1764
|
+
summary: "Turns Markdown frontmatter and site config into metadata, feeds, sitemap, and robots output.",
|
|
1765
|
+
markdown: [
|
|
1766
|
+
"---",
|
|
1767
|
+
"title: Search-friendly title",
|
|
1768
|
+
"description: Page-specific summary used for meta tags and cards.",
|
|
1769
|
+
"image: /ogp/page.png",
|
|
1770
|
+
"date: 2026-09-30",
|
|
1771
|
+
"publish: true",
|
|
1772
|
+
"---",
|
|
1773
|
+
"",
|
|
1774
|
+
"# Search-friendly title"
|
|
1775
|
+
].join("\n")
|
|
1776
|
+
},
|
|
1777
|
+
"@riebeckite/plugin-toc": {
|
|
1778
|
+
summary: "Builds a table of contents from Markdown headings.",
|
|
1779
|
+
markdown: [
|
|
1780
|
+
"# Page",
|
|
1781
|
+
"",
|
|
1782
|
+
"## First section",
|
|
1783
|
+
"",
|
|
1784
|
+
"### Nested section",
|
|
1785
|
+
"",
|
|
1786
|
+
"## Second section"
|
|
1787
|
+
].join("\n")
|
|
1788
|
+
},
|
|
1789
|
+
"@riebeckite/plugin-properties": {
|
|
1790
|
+
summary: 'Renders selected frontmatter properties near the article when configured with `render: "slot"`.',
|
|
1791
|
+
markdown: [
|
|
1792
|
+
"---",
|
|
1793
|
+
"created: 2026-09-30",
|
|
1794
|
+
"modified: 2026-09-30",
|
|
1795
|
+
"tags: [riebeckite, demo]",
|
|
1796
|
+
"status: active",
|
|
1797
|
+
"---"
|
|
1798
|
+
].join("\n")
|
|
1799
|
+
},
|
|
1800
|
+
"@riebeckite/plugin-alias": {
|
|
1801
|
+
summary: "Creates redirects from old Markdown paths declared in frontmatter.",
|
|
1802
|
+
markdown: [
|
|
1803
|
+
"---",
|
|
1804
|
+
"aliases:",
|
|
1805
|
+
" - /old-page/",
|
|
1806
|
+
" - /notes/previous-name/",
|
|
1807
|
+
"---"
|
|
1808
|
+
].join("\n")
|
|
1809
|
+
},
|
|
1810
|
+
"@riebeckite/plugin-search": {
|
|
1811
|
+
summary: "Indexes published Markdown pages for client-side search. No special syntax is required; searchable text comes from each page body and metadata.",
|
|
1812
|
+
markdown: "# Indexed page\n\nThis body text becomes searchable after the site is built."
|
|
1813
|
+
},
|
|
1814
|
+
"@riebeckite/plugin-backlinks": {
|
|
1815
|
+
summary: "Shows pages that link to the current page. Use normal Markdown links or Obsidian wikilinks.",
|
|
1816
|
+
markdown: "Mention another page with [[guide]] or [the guide](/guide/). The target page can show this page as a backlink."
|
|
1817
|
+
},
|
|
1818
|
+
"@riebeckite/plugin-related-posts": {
|
|
1819
|
+
summary: "Finds related pages from tags and backlink relationships.",
|
|
1820
|
+
markdown: [
|
|
1821
|
+
"---",
|
|
1822
|
+
"tags: [typescript, static-site]",
|
|
1823
|
+
"---",
|
|
1824
|
+
"",
|
|
1825
|
+
"Link to [[another-note]] to strengthen the relationship."
|
|
1826
|
+
].join("\n")
|
|
1827
|
+
},
|
|
1828
|
+
"@riebeckite/plugin-share": {
|
|
1829
|
+
summary: "Adds share links to rendered pages. Markdown does not need special syntax; page title and URL are used automatically.",
|
|
1830
|
+
markdown: [
|
|
1831
|
+
"---",
|
|
1832
|
+
"title: Shareable article",
|
|
1833
|
+
"---",
|
|
1834
|
+
"",
|
|
1835
|
+
"# Shareable article"
|
|
1836
|
+
].join("\n")
|
|
1837
|
+
},
|
|
1838
|
+
"@riebeckite/plugin-changelog": {
|
|
1839
|
+
summary: "Surfaces recent or per-note update information from Markdown metadata.",
|
|
1840
|
+
markdown: [
|
|
1841
|
+
"---",
|
|
1842
|
+
"title: Updated article",
|
|
1843
|
+
"modified: 2026-09-30",
|
|
1844
|
+
"---"
|
|
1845
|
+
].join("\n")
|
|
1846
|
+
},
|
|
1847
|
+
"@riebeckite/plugin-webmention": {
|
|
1848
|
+
summary: "Displays webmentions for the page URL when data is available. Markdown controls the canonical page metadata.",
|
|
1849
|
+
markdown: [
|
|
1850
|
+
"---",
|
|
1851
|
+
"title: Mentionable page",
|
|
1852
|
+
"canonical: https://example.com/mentionable-page/",
|
|
1853
|
+
"---"
|
|
1854
|
+
].join("\n")
|
|
1855
|
+
},
|
|
1856
|
+
"@riebeckite/plugin-recent-posts": {
|
|
1857
|
+
summary: "Builds recent-post lists from dated Markdown entries.",
|
|
1858
|
+
markdown: [
|
|
1859
|
+
"---",
|
|
1860
|
+
"title: New post",
|
|
1861
|
+
"date: 2026-09-30",
|
|
1862
|
+
"publish: true",
|
|
1863
|
+
"---"
|
|
1864
|
+
].join("\n")
|
|
1865
|
+
},
|
|
1866
|
+
"@riebeckite/plugin-attachment": {
|
|
1867
|
+
summary: "Enhances links to downloadable assets, including size display when enabled.",
|
|
1868
|
+
markdown: "Download the handout: [slides.pdf](/attachments/slides.pdf)"
|
|
1869
|
+
},
|
|
1870
|
+
"@riebeckite/plugin-pdf": {
|
|
1871
|
+
summary: "Embeds linked PDFs with a viewer/fallback UI.",
|
|
1872
|
+
markdown: ""
|
|
1873
|
+
},
|
|
1874
|
+
"@riebeckite/plugin-media": {
|
|
1875
|
+
summary: "Enhances Markdown audio/video embeds with lazy loading and captions.",
|
|
1876
|
+
markdown: "\n\n"
|
|
1877
|
+
},
|
|
1878
|
+
"@riebeckite/plugin-responsive-image": {
|
|
1879
|
+
summary: "Rewrites Markdown image embeds into responsive images with configured widths and formats.",
|
|
1880
|
+
markdown: ""
|
|
1881
|
+
},
|
|
1882
|
+
"@riebeckite/plugin-lightbox": {
|
|
1883
|
+
summary: "Makes image links open in a lightbox when the configured trigger class is present.",
|
|
1884
|
+
markdown: "[](./images/photo.jpg){.rr-lightbox-trigger}"
|
|
1885
|
+
},
|
|
1886
|
+
"@riebeckite/plugin-highlight": {
|
|
1887
|
+
summary: "Highlights marked inline text.",
|
|
1888
|
+
markdown: "This sentence contains ==highlighted text== inside normal Markdown."
|
|
1889
|
+
},
|
|
1890
|
+
"@riebeckite/plugin-code-annotations": {
|
|
1891
|
+
summary: "Adds callouts/annotations to code fences.",
|
|
1892
|
+
markdown: [
|
|
1893
|
+
"```ts",
|
|
1894
|
+
"const answer = 42 // [!code focus]",
|
|
1895
|
+
"console.log(answer)",
|
|
1896
|
+
"```"
|
|
1897
|
+
].join("\n")
|
|
1898
|
+
},
|
|
1899
|
+
"@riebeckite/plugin-shortcodes": {
|
|
1900
|
+
summary: "Expands built-in shortcode syntax inside Markdown.",
|
|
1901
|
+
markdown: '{{< youtube dQw4w9WgXcQ >}}\n\n{{< figure src="/images/demo.png" caption="Demo image" >}}'
|
|
1902
|
+
},
|
|
1903
|
+
"@riebeckite/plugin-series": {
|
|
1904
|
+
summary: "Groups Markdown pages into a reading series using frontmatter.",
|
|
1905
|
+
markdown: [
|
|
1906
|
+
"---",
|
|
1907
|
+
"series: riebeckite-guide",
|
|
1908
|
+
"series_title: Riebeckite Guide",
|
|
1909
|
+
"series_order: 2",
|
|
1910
|
+
"---"
|
|
1911
|
+
].join("\n")
|
|
1912
|
+
},
|
|
1913
|
+
"@riebeckite/plugin-taxonomy": {
|
|
1914
|
+
summary: "Builds tag/folder taxonomy pages from Markdown metadata and content location.",
|
|
1915
|
+
markdown: ["---", "tags: [design, notes]", "---", "", "# Tagged note"].join(
|
|
1916
|
+
"\n"
|
|
1917
|
+
)
|
|
1918
|
+
},
|
|
1919
|
+
"@riebeckite/plugin-autocardlink": {
|
|
1920
|
+
summary: "Turns suitable standalone links into rich card links.",
|
|
1921
|
+
markdown: "https://example.com/articles/riebeckite-introduction"
|
|
1922
|
+
},
|
|
1923
|
+
"@riebeckite/plugin-plantuml": {
|
|
1924
|
+
summary: "A `plantuml` fence is rendered to SVG through the configured PlantUML server.",
|
|
1925
|
+
markdown: fence(
|
|
1926
|
+
"plantuml",
|
|
1927
|
+
["@startuml", "Alice -> Bob: Hello", "Bob --> Alice: Hi", "@enduml"].join(
|
|
1928
|
+
"\n"
|
|
1929
|
+
)
|
|
1930
|
+
)
|
|
1931
|
+
},
|
|
1932
|
+
"@riebeckite/plugin-discord-embed": {
|
|
1933
|
+
summary: "Renders Discord-style rich embed metadata from frontmatter or embed blocks.",
|
|
1934
|
+
markdown: [
|
|
1935
|
+
"---",
|
|
1936
|
+
"title: Discord preview",
|
|
1937
|
+
"description: A page with rich metadata for card rendering.",
|
|
1938
|
+
"image: /images/card.png",
|
|
1939
|
+
"---"
|
|
1940
|
+
].join("\n")
|
|
1941
|
+
},
|
|
1942
|
+
"@riebeckite/plugin-excalidraw": {
|
|
1943
|
+
summary: "Embeds Excalidraw drawings referenced from Markdown.",
|
|
1944
|
+
markdown: "![[Architecture.excalidraw]]\n\n"
|
|
1945
|
+
},
|
|
1946
|
+
"@riebeckite/plugin-excalibrain": {
|
|
1947
|
+
summary: "Builds an Excalibrain-style local graph from links, tags, headings, and inferred relationships.",
|
|
1948
|
+
markdown: "# Concept\n\nLinks to [[Parent idea]], [[Sibling idea]], and [[Related idea]] become graph relationships."
|
|
1949
|
+
},
|
|
1950
|
+
"@riebeckite/plugin-canvas": {
|
|
1951
|
+
summary: "Embeds Obsidian Canvas JSON as a rendered canvas/fallback.",
|
|
1952
|
+
markdown: '```canvas\n{ "nodes": [], "edges": [] }\n```'
|
|
1953
|
+
},
|
|
1954
|
+
"@riebeckite/plugin-flashcards": {
|
|
1955
|
+
summary: "Turns Q/A style Markdown into flashcards.",
|
|
1956
|
+
markdown: [
|
|
1957
|
+
"# Flashcards",
|
|
1958
|
+
"",
|
|
1959
|
+
"Q: What is Riebeckite?",
|
|
1960
|
+
"A: A content-first static site framework.",
|
|
1961
|
+
"",
|
|
1962
|
+
"---",
|
|
1963
|
+
"",
|
|
1964
|
+
"What does SSG mean?::Static Site Generation"
|
|
1965
|
+
].join("\n")
|
|
1966
|
+
},
|
|
1967
|
+
"@riebeckite/plugin-local-graph": {
|
|
1968
|
+
summary: "Shows nearby notes based on Markdown links and wikilinks.",
|
|
1969
|
+
markdown: "# Local graph source\n\nConnect this page to [[guide]], [[examples]], and [[reference/plugins]]."
|
|
1970
|
+
},
|
|
1971
|
+
"@riebeckite/plugin-hover-preview": {
|
|
1972
|
+
summary: "Shows previews when hovering internal links generated from Markdown.",
|
|
1973
|
+
markdown: "Hover this internal link: [Guide](/guide/) or this wikilink: [[guide]]."
|
|
1974
|
+
},
|
|
1975
|
+
"@riebeckite/plugin-garden-explorer": {
|
|
1976
|
+
summary: "Adds garden navigation/explorer UI from the content tree. Markdown files and folders become the source data.",
|
|
1977
|
+
markdown: fence(
|
|
1978
|
+
"text",
|
|
1979
|
+
[
|
|
1980
|
+
"content/",
|
|
1981
|
+
" notes/",
|
|
1982
|
+
" ideas.md",
|
|
1983
|
+
" projects.md",
|
|
1984
|
+
" reference/",
|
|
1985
|
+
" plugins.md"
|
|
1986
|
+
].join("\n")
|
|
1987
|
+
)
|
|
1988
|
+
},
|
|
1989
|
+
"@riebeckite/plugin-ux": {
|
|
1990
|
+
summary: "Adds reading UX such as progress, back-to-top, scroll spy, and copy buttons. Markdown headings and code blocks provide the anchors.",
|
|
1991
|
+
markdown: [
|
|
1992
|
+
"## Long section",
|
|
1993
|
+
"",
|
|
1994
|
+
"```ts",
|
|
1995
|
+
"console.log('copy me')",
|
|
1996
|
+
"```"
|
|
1997
|
+
].join("\n")
|
|
1998
|
+
},
|
|
1999
|
+
"@riebeckite/plugin-daily-notes": {
|
|
2000
|
+
summary: "Extracts daily-note summaries/snippets from dated Markdown files.",
|
|
2001
|
+
markdown: [
|
|
2002
|
+
"---",
|
|
2003
|
+
"daily-summary: Shipped the plugin reference page.",
|
|
2004
|
+
"---",
|
|
2005
|
+
"",
|
|
2006
|
+
"```daily-snippet",
|
|
2007
|
+
"Fixed the ultra preset examples.",
|
|
2008
|
+
"```"
|
|
2009
|
+
].join("\n")
|
|
2010
|
+
},
|
|
2011
|
+
"@riebeckite/plugin-rename": {
|
|
2012
|
+
summary: "Creates redirects when Markdown entries declare previous paths or when rename data is available.",
|
|
2013
|
+
markdown: [
|
|
2014
|
+
"---",
|
|
2015
|
+
"previousPaths:",
|
|
2016
|
+
" - /old-slug/",
|
|
2017
|
+
" - /notes/old-title/",
|
|
2018
|
+
"---"
|
|
2019
|
+
].join("\n")
|
|
2020
|
+
},
|
|
2021
|
+
"@riebeckite/plugin-text-fragment": {
|
|
2022
|
+
summary: "Adds text-fragment friendly copy/open behavior for selected Markdown text.",
|
|
2023
|
+
markdown: "Select this sentence in the rendered page and copy a text-fragment link to it."
|
|
2024
|
+
},
|
|
2025
|
+
"@riebeckite/plugin-quality": {
|
|
2026
|
+
summary: "Reports accessibility/content quality diagnostics from rendered Markdown output.",
|
|
2027
|
+
markdown: "\n\nUse headings in order: #, then ##, then ###."
|
|
2028
|
+
},
|
|
2029
|
+
"@riebeckite/plugin-deploy": {
|
|
2030
|
+
summary: "Adds deployment integration for the generated site. Markdown does not need syntax; published pages become deployable output.",
|
|
2031
|
+
markdown: [
|
|
2032
|
+
"---",
|
|
2033
|
+
"publish: true",
|
|
2034
|
+
"---",
|
|
2035
|
+
"",
|
|
2036
|
+
"# This page is included in the deployed site"
|
|
2037
|
+
].join("\n")
|
|
2038
|
+
},
|
|
2039
|
+
"@riebeckite/plugin-diagnostics": {
|
|
2040
|
+
summary: "Reports diagnostics such as missing required frontmatter, orphan pages, and unused assets.",
|
|
2041
|
+
markdown: [
|
|
2042
|
+
"---",
|
|
2043
|
+
"title: Required title",
|
|
2044
|
+
"publish: true",
|
|
2045
|
+
"---",
|
|
2046
|
+
"",
|
|
2047
|
+
"Link orphan pages from another note to clear orphan diagnostics."
|
|
2048
|
+
].join("\n")
|
|
2049
|
+
}
|
|
2050
|
+
};
|
|
1732
2051
|
function pluginReadmeUrl(slug) {
|
|
1733
2052
|
return `https://github.com/Rerurate514/riebeckite/blob/main/packages/plugins/${slug}/README.md`;
|
|
1734
2053
|
}
|
|
@@ -1771,7 +2090,10 @@ function localizedContentFiles(variables, preset) {
|
|
|
1771
2090
|
(language) => pluginsContent(language)
|
|
1772
2091
|
);
|
|
1773
2092
|
} else if (page === "framework/themes") {
|
|
1774
|
-
pushLocalized(
|
|
2093
|
+
pushLocalized(
|
|
2094
|
+
"framework/themes",
|
|
2095
|
+
(language) => themesContent(language, preset)
|
|
2096
|
+
);
|
|
1775
2097
|
} else if (page === "guide") {
|
|
1776
2098
|
pushEnglishOnly("guide", guideContent);
|
|
1777
2099
|
} else if (page === "examples") {
|
|
@@ -1785,7 +2107,7 @@ function localizedContentFiles(variables, preset) {
|
|
|
1785
2107
|
() => referencePluginsContent(preset, variables)
|
|
1786
2108
|
);
|
|
1787
2109
|
} else if (page === "reference/themes") {
|
|
1788
|
-
pushEnglishOnly("reference/themes", referenceThemesContent);
|
|
2110
|
+
pushEnglishOnly("reference/themes", () => referenceThemesContent(preset));
|
|
1789
2111
|
}
|
|
1790
2112
|
}
|
|
1791
2113
|
return files;
|
|
@@ -1934,6 +2256,15 @@ var THEMES_COPY = {
|
|
|
1934
2256
|
fr: "Un thème change tout l'aspect d'un site — couleurs, typographie, mise en page — sans toucher au contenu ni aux routes. Riebeckite fournit six thèmes ; installez un paquet et changez une ligne.",
|
|
1935
2257
|
ko: "테마를 바꾸면 색상·타이포그래피·레이아웃 등 사이트 전체 분위기가 달라집니다. 콘텐츠나 라우트는 건드릴 필요가 없습니다. Riebeckite는 6개 테마를 제공하며 패키지 설치 후 한 줄만 바꾸면 전환됩니다."
|
|
1936
2258
|
},
|
|
2259
|
+
galleryHeading: {
|
|
2260
|
+
en: "Theme gallery",
|
|
2261
|
+
ja: "テーマギャラリー",
|
|
2262
|
+
"zh-CN": "主题画廊",
|
|
2263
|
+
es: "Galería de temas",
|
|
2264
|
+
de: "Theme-Galerie",
|
|
2265
|
+
fr: "Galerie des thèmes",
|
|
2266
|
+
ko: "테마 갤러리"
|
|
2267
|
+
},
|
|
1937
2268
|
switchHeading: {
|
|
1938
2269
|
en: "Switching themes",
|
|
1939
2270
|
ja: "テーマの切り替え",
|
|
@@ -2087,11 +2418,37 @@ var THEMES = [
|
|
|
2087
2418
|
}
|
|
2088
2419
|
}
|
|
2089
2420
|
];
|
|
2090
|
-
|
|
2421
|
+
var THEME_LABELS = {
|
|
2422
|
+
default: "Default",
|
|
2423
|
+
minimal: "Minimal",
|
|
2424
|
+
sakura: "Sakura",
|
|
2425
|
+
gruvbox: "Gruvbox",
|
|
2426
|
+
tokyonight: "Tokyo Night",
|
|
2427
|
+
rerurate: "Rerurate"
|
|
2428
|
+
};
|
|
2429
|
+
function themeGalleryFence(description) {
|
|
2430
|
+
const items = ["columns: 3", "items:"];
|
|
2431
|
+
for (const theme of THEMES) {
|
|
2432
|
+
const label = THEME_LABELS[theme.slug] ?? theme.slug;
|
|
2433
|
+
items.push(` - title: ${JSON.stringify(label)}`);
|
|
2434
|
+
items.push(` description: ${JSON.stringify(description(theme))}`);
|
|
2435
|
+
items.push(` meta: ${JSON.stringify(theme.factory)}`);
|
|
2436
|
+
items.push(` href: ${JSON.stringify(themeReadmeUrl(theme.slug))}`);
|
|
2437
|
+
}
|
|
2438
|
+
return fence("gallery", items.join("\n"));
|
|
2439
|
+
}
|
|
2440
|
+
function themesContent(language, preset) {
|
|
2091
2441
|
const copy = THEMES_COPY;
|
|
2092
2442
|
const lines = [frontmatter()];
|
|
2093
2443
|
lines.push(heading(1, read(copy.title, language)), "");
|
|
2094
2444
|
lines.push(read(copy.intro, language), "");
|
|
2445
|
+
if (hasPlugin(preset, GALLERY_PACKAGE)) {
|
|
2446
|
+
lines.push(heading(2, read(copy.galleryHeading, language)), "");
|
|
2447
|
+
lines.push(
|
|
2448
|
+
themeGalleryFence((theme) => read(theme.desc, language)),
|
|
2449
|
+
""
|
|
2450
|
+
);
|
|
2451
|
+
}
|
|
2095
2452
|
lines.push(heading(2, read(copy.switchHeading, language)), "");
|
|
2096
2453
|
lines.push(read(copy.switchCurrent, language), "");
|
|
2097
2454
|
lines.push(read(copy.switchStep1, language), "");
|
|
@@ -2711,9 +3068,9 @@ function guideContent() {
|
|
|
2711
3068
|
codeBlock(
|
|
2712
3069
|
"sh",
|
|
2713
3070
|
[
|
|
2714
|
-
"
|
|
2715
|
-
"
|
|
2716
|
-
"
|
|
3071
|
+
"pnpm install",
|
|
3072
|
+
"pnpm exec riebeckite dev",
|
|
3073
|
+
"pnpm exec riebeckite build"
|
|
2717
3074
|
].join("\n")
|
|
2718
3075
|
),
|
|
2719
3076
|
"",
|
|
@@ -2782,11 +3139,47 @@ function referencePluginsContent(preset, variables) {
|
|
|
2782
3139
|
);
|
|
2783
3140
|
}
|
|
2784
3141
|
lines.push("");
|
|
3142
|
+
lines.push(heading(2, "Markdown behavior"), "");
|
|
3143
|
+
lines.push(
|
|
3144
|
+
"Every registered plugin is listed below with the Markdown that triggers it,",
|
|
3145
|
+
"or with the Markdown/frontmatter/content shape it reads when the plugin is",
|
|
3146
|
+
"site-wide rather than block-based. Paste the examples into files under",
|
|
3147
|
+
"`content/` and run `pnpm exec riebeckite dev` to inspect the rendered result.",
|
|
3148
|
+
""
|
|
3149
|
+
);
|
|
3150
|
+
for (const plugin of preset.plugins) {
|
|
3151
|
+
const demoKeys = README_DEMO_ORDER.filter(
|
|
3152
|
+
(key) => demoPackage(key) === plugin.package
|
|
3153
|
+
);
|
|
3154
|
+
const guide = PLUGIN_MARKDOWN_GUIDES[plugin.package];
|
|
3155
|
+
const slug = plugin.package.replace(/^@riebeckite\/plugin-/, "");
|
|
3156
|
+
lines.push(heading(3, plugin.package), "");
|
|
3157
|
+
lines.push(
|
|
3158
|
+
`Factory: \`${plugin.factory}\` · [README](${pluginReadmeUrl(slug)})`,
|
|
3159
|
+
""
|
|
3160
|
+
);
|
|
3161
|
+
if (guide) {
|
|
3162
|
+
lines.push(guide.summary, "");
|
|
3163
|
+
lines.push(guide.markdown, "");
|
|
3164
|
+
}
|
|
3165
|
+
for (const key of demoKeys) {
|
|
3166
|
+
const demo = README_DEMOS[key];
|
|
3167
|
+
lines.push(heading(4, demo.title.en), "");
|
|
3168
|
+
lines.push(demo.intro.en, "");
|
|
3169
|
+
lines.push(demo.markdown, "");
|
|
3170
|
+
}
|
|
3171
|
+
if (!guide && demoKeys.length === 0) {
|
|
3172
|
+
lines.push(
|
|
3173
|
+
"This plugin has no Markdown-specific demo in the scaffold yet. See its package README for the exact behavior and options.",
|
|
3174
|
+
""
|
|
3175
|
+
);
|
|
3176
|
+
}
|
|
3177
|
+
}
|
|
2785
3178
|
lines.push(`[Riebeckite plugins on GitHub](${PLUGIN_INDEX_URL})`, "");
|
|
2786
3179
|
lines.push("");
|
|
2787
3180
|
return lines.join("\n");
|
|
2788
3181
|
}
|
|
2789
|
-
function referenceThemesContent() {
|
|
3182
|
+
function referenceThemesContent(preset) {
|
|
2790
3183
|
const lines = [frontmatter()];
|
|
2791
3184
|
lines.push(heading(1, "Theme reference"), "");
|
|
2792
3185
|
lines.push(
|
|
@@ -2794,6 +3187,13 @@ function referenceThemesContent() {
|
|
|
2794
3187
|
"`theme` factory in `riebeckite.config.ts`.",
|
|
2795
3188
|
""
|
|
2796
3189
|
);
|
|
3190
|
+
if (hasPlugin(preset, GALLERY_PACKAGE)) {
|
|
3191
|
+
lines.push(heading(2, "Theme gallery"), "");
|
|
3192
|
+
lines.push(
|
|
3193
|
+
themeGalleryFence((theme) => theme.desc.en),
|
|
3194
|
+
""
|
|
3195
|
+
);
|
|
3196
|
+
}
|
|
2797
3197
|
lines.push("| Theme | Factory | Description |");
|
|
2798
3198
|
lines.push("| --- | --- | --- |");
|
|
2799
3199
|
for (const theme of THEMES) {
|
|
@@ -2809,7 +3209,7 @@ function referenceThemesContent() {
|
|
|
2809
3209
|
}
|
|
2810
3210
|
|
|
2811
3211
|
// src/scaffold/version.ts
|
|
2812
|
-
var RIEBECKITE_VERSION = "^0.0.
|
|
3212
|
+
var RIEBECKITE_VERSION = "^0.0.11";
|
|
2813
3213
|
|
|
2814
3214
|
// src/scaffold/templates.ts
|
|
2815
3215
|
function siteTemplateFiles(preset, variables) {
|
|
@@ -3123,7 +3523,7 @@ var README_WORDS = {
|
|
|
3123
3523
|
demoPages: "Try the demos",
|
|
3124
3524
|
demoPagesBody: "The generated site ships content pages that exercise these features:",
|
|
3125
3525
|
copyDemos: "Copy-paste demos",
|
|
3126
|
-
copyDemosBody: "Paste any of these snippets into a Markdown file under `content/` and run `
|
|
3526
|
+
copyDemosBody: "Paste any of these snippets into a Markdown file under `content/` and run `pnpm exec riebeckite dev`. Each one renders through a plugin this preset registers."
|
|
3127
3527
|
},
|
|
3128
3528
|
ja: {
|
|
3129
3529
|
included: "含まれているもの",
|
|
@@ -3147,7 +3547,7 @@ var README_WORDS = {
|
|
|
3147
3547
|
demoPages: "デモを試す",
|
|
3148
3548
|
demoPagesBody: "生成されたサイトには、各機能を体験できるコンテンツページが含まれています:",
|
|
3149
3549
|
copyDemos: "コピーして使えるデモ",
|
|
3150
|
-
copyDemosBody: "以下のスニペットを `content/` 配下の Markdown ファイルに貼り付けて `
|
|
3550
|
+
copyDemosBody: "以下のスニペットを `content/` 配下の Markdown ファイルに貼り付けて `pnpm exec riebeckite dev` を実行してください。それぞれ、このプリセットが登録しているプラグインでレンダリングされます。"
|
|
3151
3551
|
}
|
|
3152
3552
|
};
|
|
3153
3553
|
function readme(preset, variables) {
|
|
@@ -3180,10 +3580,10 @@ function readmeEn(preset, variables) {
|
|
|
3180
3580
|
lines.push(`## ${words.commands}`, "");
|
|
3181
3581
|
lines.push(
|
|
3182
3582
|
"```sh",
|
|
3183
|
-
"
|
|
3184
|
-
"
|
|
3185
|
-
"
|
|
3186
|
-
"
|
|
3583
|
+
"pnpm install",
|
|
3584
|
+
"pnpm exec riebeckite check",
|
|
3585
|
+
"pnpm exec riebeckite dev",
|
|
3586
|
+
"pnpm exec riebeckite build",
|
|
3187
3587
|
"```",
|
|
3188
3588
|
""
|
|
3189
3589
|
);
|
|
@@ -3228,10 +3628,10 @@ function readmeJa(preset, variables) {
|
|
|
3228
3628
|
lines.push(`## ${words.commands}`, "");
|
|
3229
3629
|
lines.push(
|
|
3230
3630
|
"```sh",
|
|
3231
|
-
"
|
|
3232
|
-
"
|
|
3233
|
-
"
|
|
3234
|
-
"
|
|
3631
|
+
"pnpm install",
|
|
3632
|
+
"pnpm exec riebeckite check",
|
|
3633
|
+
"pnpm exec riebeckite dev",
|
|
3634
|
+
"pnpm exec riebeckite build",
|
|
3235
3635
|
"```",
|
|
3236
3636
|
""
|
|
3237
3637
|
);
|
|
@@ -3761,10 +4161,10 @@ function formatScaffoldNextSteps(relativeDirectory) {
|
|
|
3761
4161
|
if (relativeDirectory !== ".") {
|
|
3762
4162
|
lines.push(` cd ${relativeDirectory}`);
|
|
3763
4163
|
}
|
|
3764
|
-
lines.push("
|
|
3765
|
-
lines.push("
|
|
3766
|
-
lines.push("
|
|
3767
|
-
lines.push("
|
|
4164
|
+
lines.push(" pnpm install");
|
|
4165
|
+
lines.push(" pnpm exec riebeckite check");
|
|
4166
|
+
lines.push(" pnpm exec riebeckite dev");
|
|
4167
|
+
lines.push(" pnpm exec riebeckite build");
|
|
3768
4168
|
return lines.join("\n");
|
|
3769
4169
|
}
|
|
3770
4170
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const RIEBECKITE_VERSION = "^0.0.
|
|
1
|
+
export declare const RIEBECKITE_VERSION = "^0.0.11";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riebeckite/honox",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"esbuild": "^0.28.2",
|
|
37
37
|
"hono": "^4.12.25",
|
|
38
38
|
"vite": "^8.0.9",
|
|
39
|
-
"@riebeckite/core": "0.0.
|
|
39
|
+
"@riebeckite/core": "0.0.11"
|
|
40
40
|
},
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public"
|