summaryrefslogtreecommitdiff
path: root/Documentation/source/architecture/distribution.rst
diff options
context:
space:
mode:
authorBertrand Yuan <me@bertyuan.com>2026-04-27 20:52:54 +0800
committerBertrand Yuan <me@bertyuan.com>2026-04-27 20:53:14 +0800
commitdbb5e791f0c228369605d126dd590962ebe1eddc (patch)
tree8c83fc84bd9547630e6733929dec77e102e055a8 /Documentation/source/architecture/distribution.rst
parent658798b3a2378bb6df16cfbb16d707c6fb719e1e (diff)
docs: add comprehensive documentation for operations
This commit introduces a complete set of documentation files covering various aspects of the project, including environment setup, quality checks, command references, and architecture. The documentation is structured to assist developers and contributors in understanding the project's configuration, workflow, and best practices. Additionally, translations for Simplified and Traditional Chinese have been added to ensure accessibility for a wider audience. This enhances the overall usability and maintainability of the project. Signed-off-by: Bertrand Yuan <github@bertyuan.com>
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.