Documentation Index
Fetch the complete documentation index at: https://mintlify.com/syhily/yufan.me/llms.txt
Use this file to discover all available pages before exploring further.
yufan.me stores all site configuration in database-backed settings sections — each section saves independently, so changes you make on one settings tab never overwrite values saved from another. Navigate to /admin/settings to access all settings pages described below.
General (blog.general)
Path: /admin/settings/general
The General section controls your site’s identity. These values are collected during the two-stage install flow and can be edited at any time afterwards.
| Field | Description |
|---|
| Site name | The title displayed in the browser tab, OG cards, and the RSS feed |
| Description | Short tagline shown in the site header and as the default meta description |
| Website | Canonical URL of your blog (used in feeds and SEO tags) |
| Keywords | Up to 20 keywords for site-level meta tags |
| Author name / email / URL | Displayed in the feed and used for author meta |
| Locale | BCP 47 language tag (e.g. zh-CN, en-US) |
| Time zone | IANA time zone name (e.g. Asia/Shanghai, UTC) |
| Time format | Token string consumed by formatLocalDate |
| Initial year | Copyright range start year |
| ICP number | Optional — displayed in the footer for Chinese hosting compliance |
| MOE ICP number | Optional — supplementary filing number |
Assets (blog.assets)
Path: /admin/settings/assets
The Assets section configures your CDN base URL, S3-compatible storage credentials, and upload limits. Images and music both resolve their public URLs from the asset.host set here.
CDN and scheme
Set the asset host (hostname only, no scheme) and select http or https. Every public image and music URL is built as <scheme>://<host>/<storagePath>.
S3 object storage
S3 is disabled by default on a fresh install. Enable it after entering valid credentials.
| Field | Default | Description |
|---|
| Enable S3 uploads | Off | Master toggle — uploads return 503 when off |
| Endpoint | — | S3-compatible endpoint URL (e.g. https://s3.us-east-1.amazonaws.com) |
| Region | — | Bucket region (e.g. us-east-1) |
| Bucket | — | Bucket name |
| Access key ID | — | S3 access key ID |
| Secret access key | — | S3 secret access key (send empty to keep the existing value) |
| Force path style | Off | Enable for MinIO and other path-style S3 providers |
| URL template | — | Optional custom URL template for public object URLs |
All storage fields (endpoint, region, bucket, access key ID) become required the moment you enable the S3 toggle. The form validates these constraints client-side, but the API enforces them server-side as well. Flipping the toggle off does not erase your credentials — you can re-enable storage without re-entering them.
Upload limits
| Field | Default | Description |
|---|
| Max upload size | 8 MiB | Maximum bytes per uploaded file (1 KB – 50 MiB) |
| JPEG quality | 82 | Compression quality applied by Sharp on upload (40 – 100) |
Content (blog.content)
Path: /admin/settings/content
The Content section controls pagination page sizes, feed behaviour, post sorting, the featured-posts widget, and the footnote section heading.
Each listing page type has its own per-page count (1 – 100). Defaults are 10 for all four surfaces.
| Field | Default |
|---|
| Posts per page | 10 |
| Category pages per page | 10 |
| Tag pages per page | 10 |
| Search results per page | 10 |
Feed
| Field | Default | Description |
|---|
| Full content | Off | Include full post HTML in the feed; off means excerpt only |
| Max feed items | 20 | Number of posts in the RSS/Atom output (1 – 100) |
Post ordering
| Field | Default | Options |
|---|
| Sort by | publishedAt | publishedAt, updatedAt |
| Sort order | Descending | Ascending, Descending |
Featured posts
Toggle Feature enabled to show a featured-posts section on the home page. When disabled, the section is hidden regardless of which posts are marked as featured.
Section title — the heading rendered above the footnotes list at the bottom of a post. Defaults to 尾声礼记.
Path: /admin/settings/sidebar
The Sidebar section controls which widgets appear in the site sidebar and in what order. Each of the five widget slots has an enabled toggle; count-based widgets also have a configurable item count.
| Widget | Count configurable | Default count |
|---|
| Search | No | — |
| Recent Posts | Yes | 5 |
| Recent Comments | Yes | 5 |
| Random Tags | Yes | 20 |
| Today’s Calendar | No | — |
All widgets are disabled by default on a fresh install.
Fonts (blog.fonts)
Path: /admin/settings/fonts
The Fonts section controls the typefaces used in server-rendered outputs (Open Graph images and calendar SVGs) and the CSS font declarations injected into the public site.
| Field | Description |
|---|
| OG image font URL | Absolute URL of the font file loaded by the OG image renderer |
| Calendar SVG font URL | Absolute URL of the font file loaded by the calendar SVG renderer |
| Global CSS font declarations | Array of stylesheet URLs injected as <link> tags site-wide (max 8) |
| Post body CSS font declarations | Array of stylesheet URLs injected only on post pages (max 8) |
Leave all fields empty to fall back to system fonts. The site renders correctly on a fresh install without any font configuration — OG images and calendar SVGs will use the server’s default sans-serif until you supply URLs.