diff --git a/README.md b/README.md index f497770..9483f72 100644 --- a/README.md +++ b/README.md @@ -70,48 +70,11 @@ 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 -- [x] Improve documentation +- [ ] 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. 💜 @@ -125,6 +88,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 diff --git a/astro.config.mjs b/astro.config.mjs index 7ffed49..d9390d4 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -37,11 +37,6 @@ export default defineConfig({ rehypePlugins: [rehypeKatex] }, - image: { - responsiveStyles: true, - layouts: 'constrained', - }, - i18n: { locales: ["en", "zh_hans"], defaultLocale: "en", diff --git a/src/components/helper/authors/Info.astro b/src/components/helper/authors/Info.astro index f660050..4155f11 100644 --- a/src/components/helper/authors/Info.astro +++ b/src/components/helper/authors/Info.astro @@ -5,7 +5,7 @@ import {siteConfig} from "../../../config"; const { data } = Astro.props; // Get author data -const authorAvatar = data.mcplayerid ? `/images/avatars/${data.mcplayerid}.png` : (data.avatar ? data.avatar : null); +const authorAvatar = data.mcplayerid ? `/images/avatars/${data.mcplayerid}.png` : null; const authorName = data.name ? data.name : null; --- {(siteConfig.displayAvatar && data) && diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index e1b69fd..f47600a 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -11,8 +11,8 @@ import Statistics from "../components/Statistics.astro"; import Navbar from "../components/Navbar.astro"; interface Props { - title?: string; - description?: string; + title: string; + description: string; author?: string; path?: string; ogImage?: string; diff --git a/src/pages/images/avatars/[author].png.js b/src/pages/images/avatars/[author].png.js index b449d56..df69c22 100644 --- a/src/pages/images/avatars/[author].png.js +++ b/src/pages/images/avatars/[author].png.js @@ -66,7 +66,7 @@ async function cacheAvatar(cacheKey, data) { } function addToMemoryCache(key, data) { - // If cache is full, remove the oldest entry + // If cache is full, remove oldest entry if (AVATAR_CACHE.size >= CACHE_MAX_SIZE) { const oldestKey = AVATAR_CACHE.keys().next().value; AVATAR_CACHE.delete(oldestKey); @@ -80,12 +80,10 @@ function addToMemoryCache(key, data) { export async function getStaticPaths() { const authorsData = await getCollection('authors'); - return authorsData - .filter(author => author.data.mcplayerid) // Only include authors with mcplayerid - .map(author => ({ - params: { author: author.data.mcplayerid }, - props: { author } - })); + return authorsData.map(author => ({ + params: { author: author.id }, + props: { author } + })); } export async function GET({ props }) { diff --git a/src/pages/index.astro b/src/pages/index.astro index c04253a..5cf2089 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -12,7 +12,7 @@ try { } --- - +

~/

{HomePageContent ? : diff --git a/src/styles/global.css b/src/styles/global.css index 9b0cc3f..7202d96 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -103,7 +103,6 @@ body { .nav { display: flex; - flex-wrap: wrap; gap: 2rem; margin: 1.5rem 0; }