summaryrefslogtreecommitdiff
path: root/Documentation/source/architecture/distribution.rst
blob: 80b87d0d8e622e542af0386cdbedf649e01b60d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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.