summaryrefslogtreecommitdiff
path: root/Documentation/source/architecture/distribution.rst
diff options
context:
space:
mode:
authorBertrand Yuan <189593334+bertyuan@users.noreply.github.com>2026-04-27 20:54:16 +0800
committerGitHub <noreply@github.com>2026-04-27 20:54:16 +0800
commit85b6fb59db5fe1112c58eff9d02ae4f9c9b6456d (patch)
tree8c83fc84bd9547630e6733929dec77e102e055a8 /Documentation/source/architecture/distribution.rst
parent658798b3a2378bb6df16cfbb16d707c6fb719e1e (diff)
parentdbb5e791f0c228369605d126dd590962ebe1eddc (diff)
Merge pull request #21 from bertyuan/Documentationv1.2
docs: add comprehensive documentation for operations
Diffstat (limited to 'Documentation/source/architecture/distribution.rst')
-rw-r--r--Documentation/source/architecture/distribution.rst45
1 files changed, 45 insertions, 0 deletions
diff --git a/Documentation/source/architecture/distribution.rst b/Documentation/source/architecture/distribution.rst
new file mode 100644
index 0000000..80b87d0
--- /dev/null
+++ b/Documentation/source/architecture/distribution.rst
@@ -0,0 +1,45 @@
+Search, Feeds, and Metadata
+===========================
+
+The application exposes several distribution surfaces in addition to HTML
+pages. These endpoints help readers, search clients, crawlers, and social
+previews consume the site.
+
+Search
+------
+
+The search index endpoint lives at ``src/app/(main)/api/search/route.ts`` and
+is served from ``/api/search``. It is intended for the Fumadocs search UI and
+should return normalized, public, published content only.
+
+Feeds
+-----
+
+The feed route lives at ``src/app/(main)/rss.xml/route.ts`` and is exposed as
+``/rss.xml``. Keep this canonical path consistent in page metadata, sitemap
+configuration, and external documentation.
+
+Open Graph Images
+-----------------
+
+Dynamic image generation is implemented under:
+
+* ``src/app/(main)/banner.png`` for site-level banner output;
+* ``src/app/(main)/og/[...slug]`` for post-specific Open Graph output.
+
+The font JSON assets in these folders support image rendering. Treat them as
+runtime assets for the route handlers.
+
+Metadata
+--------
+
+Metadata helpers live in ``src/lib/metadata.ts`` and page-level JSON-LD
+rendering is handled by ``src/components/json-ld.tsx``. New public routes
+should define metadata intentionally instead of relying on generic defaults.
+
+Sitemap
+-------
+
+``next-sitemap.config.cjs`` controls sitemap generation after application
+builds. Generated ``public/robots.txt`` and ``public/sitemap*.xml`` are ignored
+by Git and should be regenerated by the build pipeline.