From ee714021e6b0210aa7a9d53c5c13adbb1b913af6 Mon Sep 17 00:00:00 2001 From: grassblock Date: Fri, 15 Aug 2025 18:39:39 +0800 Subject: [PATCH] chore(docs): update README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9483f72..f497770 100644 --- a/README.md +++ b/README.md @@ -70,11 +70,48 @@ All commands are run from the root of the project, from a terminal: - [x] Better support for printing version - [ ] Add support for more comment engines - [x] Add support for umami statics -- [ ] Improve documentation +- [x] Improve documentation - [ ] Release v1.0 - [ ] ~~Integrate with Fediverse w/ activityPub~~ - [ ] ~~Plain text version when visiting the site via `curl`~~ (can't be done with SSG mode) +## ⚙️ Advanced Usage +### i18n +I have implemented i18n support for UI text, but not for content translations yet. + +To further implement i18n, you can: +1. Create a new folder under `src/content/posts/` with the language code as the name (e.g., `en`, `zh-CN`, etc.). +2. Copy your translated markdown files into the new folder. +3. Copy the `src/pages/blog/` folder to `src/pages/[langcode]/blog`. +4. Update the i18n config in `astro.config.mjs` to include the new language code. +5. Rebuild the site. +### plain text version when visiting the site via `curl` +The text version of the site is generated by `src/pages/blog/[slug].txt.js`, which outputs a plain text version of the blog post. +To access it, you can visit `https://your-site.com/blog/your-post-slug.txt`. + +To automatically output the text version when visiting the site via `curl`, you can: +1. If you are using caddy, add the following to your `Caddyfile`: + ```caddyfile + @curl { + header_regexp User-Agent (?i)curl + } + @text { + path_regexp text /blog/(.*) + } + handle @curl { + rewrite @text /blog/{http.regexp.text.1}.txt + } + ``` +2. If you are using cloudflare to proxy your site, you can add a page rule to redirect requests with the `curl` user agent to the `.txt` version of the blog post: + If incoming requests match (Custom filter expression): + ``` + (http.request.full_uri wildcard r"https://yourblog/blog/*" and http.user_agent contains "curl") + ``` + Then (Rewrite to,static): + ``` + /blog/${1}.txt + ``` +3. If you are using other web servers, you can use functions like `rewrite` or `redirect` by user agent (HTTP header) to achieve the same effect. ## 👀 Want to learn more? See the post [🕊](). I hope you like it. 💜 @@ -88,6 +125,6 @@ Other tools like GitHub Copilot helps too. (I know the LLMs sometimes sucks, but it really helps most of the time) -Also [delucis/astro-blog-full-text-rss](https://github.com/delucis/astro-blog-full-text-rss) for implementing full text RSS in pretty easy way +Also, [delucis/astro-blog-full-text-rss](https://github.com/delucis/astro-blog-full-text-rss) for implementing full text RSS in pretty easy way. ## ⚖️ License GNU Affero Public License 3.0 \ No newline at end of file