Static blog theme based on Astro, providing desktop and mobile pages
astro-jing-theme — Astro Blog Template
By ziteh
Astro Jing is a static blog theme built on Astro with a calm, restrained interface, featuring built-in full-text search, table of contents, math formulas, comments, and internationalization.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Post descriptions can be generated automatically based on character count or a <!-- more --> marker
Table of contents automatically expands and collapses, with support for full-text search and code syntax highlighting
Supports math formulas, internationalization, Giscus/Disqus comments, sitemap, and RSS
Can generate Open Graph images with hashed filenames, and supports viewing posts as Markdown
Can create a new repository from the template, or merge it into an existing blog repository as a git subtree
Template Details
Astro Jing is a static blog theme built with Astro. The repository uses the MIT license, and a demo site is available. The theme provides several built-in capabilities for writing and reading: post descriptions can be generated automatically based on character count or a <!-- more --> marker; the table of contents supports automatic expansion and collapse; Open Graph images with hashed filenames can be generated; it offers full-text search, code syntax highlighting, math formula rendering, internationalization, Giscus or Disqus comments, sitemap and RSS feeds, and supports viewing posts as Markdown.
For usage, you can either create a new repository directly from this template or pull it into an existing blog repository as a git subtree, allowing theme files and content to coexist in the same repository, and obtain subsequent theme updates via git subtree pull. The project structure includes site, language, and social link configurations under src/config, blog posts and an about page under src/content, and configuration files such as astro.config.ts.
For development and validation, the README lists dependencies such as Radix Colors, Tabler, Tocbot, KaTeX, Satori, astro-pagefind, and Expressive Code, and provides pnpm test, Lighthouse, URL and accessibility test scripts, as well as a local check method for SEOnaut. Deployment can refer to Astro's official deployment guide and Cloudflare Pages build system documentation.
Limitations: This theme is a static site solution; capabilities such as comments and search depend on corresponding external services or build-time processing; third-party assets such as demo images, fonts, and icons need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
Is it right for your project?
Use Cases
- Building a personal technical blog or article site written in Markdown
- A documentation-style blog that needs full-text search, table of contents, math formulas, and code highlighting
- Wanting to merge the theme into an existing blog repository as a git subtree and continuously receive theme updates
- Blog projects that need a multilingual site, RSS subscription, and Open Graph share images
Suitable For
- Developers using Astro who want to quickly obtain a complete blog structure
- Writers who prefer static sites and manage content in Markdown
- Site maintainers who need common blog features such as comments, search, and internationalization
- Projects that want freely modifiable theme code while retaining the MIT license notice
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, use pnpm i to install dependencies, pnpm dev to start the development server, pnpm build to build the production version, and pnpm preview to preview the build result.
- 2
You can create a new repository directly from this template, or use git subtree add to merge the theme into an existing blog repository with the theme prefix.
- 3
When used as a git subtree, you need to create a .env in the theme directory and set CONTENT_DIR to point to the content directory.
- 4
Site information, language, and social links are configured in src/config/site.ts, lang.ts, and socials.ts respectively.
- 5
Third-party assets such as demo images, fonts, and icons need to be checked against their respective licenses; external services may charge separately.
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The comment feature depends on third-party services such as Giscus or Disqus, requiring you to register and configure the corresponding account, and may be subject to their terms of service.
- The SEOnaut local check requires starting an additional container service and accessing a local port; it is an optional development tool and not required for the theme to run.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may charge separately.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Comment systems (Giscus / Disqus)
Original README
https://github.com/ziteh/astro-jing-theme/blob/main/LICENSEhttps://github.com/ziteh/astro-jing-theme/blob/main/README.mdOpen <http://localhost:9000/signin> and enter <http://host.containers.internal:4321> as the target URL.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 80 / 100
- Technologies
- Astro
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-28
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: c2fa48f45afa905a457e2f3d62921bb4382dcf652e66af58e64183fb1965a047
2026-10-01T14:41:52.966Z
Source file / repository# Astro Jing

A calm blog theme powered by [Astro](https://astro.build/). [Demo site](https://astro-jing-theme.ziteh.dev/).
Features:
- Auto-generate post descriptions based on character count or up to the `<!-- more -->` tag
- Auto-expanding & collapsing table of contents
- Generate Open Graph images with hashed filenames
- Full-text search
- Syntax highlighting
- Math equations
- Internationalization (i18n)
- Comment systems (Giscus / Disqus)
- Sitemap & RSS feed
- Static site
- View the post as Markdown
## Usage
You can directly [create a new repo from this template](https://github.com/new?template_name=astro-jing-theme&template_owner=ziteh), or use this repo as a [git subtree](#using-as-a-git-subtree).
```bash
# After cloning...
pnpm i # Install dependencies
pnpm dev # Start dev server
pnpm build # Production build
pnpm preview # Preview built site
```
### Using as a Git Subtree
This theme can be pulled into your own blog repo as a git subtree, so your content lives alongside it in one repo, and you can still pull in future theme updates.
Unlike a git submodule, the theme files (`src/config/*.ts`, `astro.config.ts`, etc.) become regular files in your repo, so you're free to edit them directly. Theme updates are then just a normal `git subtree pull`; if you've edited a file the update also touches, git will ask you to resolve the conflict like any other merge.
project structure:
```text
my-blog/ # Your blog repo
├── theme/ # astro-jing-theme (subtree)
│ ├── astro.config.ts
│ ├── package.json
│ ├── src/
│ │ └── content.config.ts
│ ├── .env # CONTENT_DIR=../content
│ └── ...
└── content/ # Your blog content
├── blog/
│ └── post.md
└── about.md
```
```bash
cd my-blog
mkdir -p content/blog
touch content/about.md && touch content/blog/post.md
# Then edit the content files and commit
git subtree add --prefix theme https://github.com/ziteh/astro-jing-theme main --squash
cd theme
echo "CONTENT_DIR=../content" > .env
# Now edit src/config/site.ts, socials.ts, lang.ts, astro.config.ts, etc. directly
pnpm i && pnpm build
```
To pull in later theme updates:
```bash
git subtree pull --prefix theme https://github.com/ziteh/astro-jing-theme main --squash
```
## Development
Tech stack:
- Colors: [Radix Colors](https://www.radix-ui.com/colors)
- Icons: [Tabler](https://tabler.io/icons)
- TOC: [Tocbot](https://tscanlin.github.io/tocbot/)
- Math: [KaTeX](https://katex.org/)
- OG image: [Satori](https://github.com/vercel/satori)
- Search: [astro-pagefind](https://github.com/shishkin/astro-pagefind)
- Syntax highlighting: [Expressive Code](https://expressive-code.com/)
- A11y testing: [axe-core](https://github.com/dequelabs/axe-core)
- Linter: [Biome](https://biomejs.dev/)
- Formatter: [Prettier](https://prettier.io/)
### Project Structure
Refer to [Astro project structure](https://docs.astro.build/en/basics/project-structure/).
```text
├── public/ # Unprocessed assets
│ └── _headers # Custom headers, such as CSP and Cache-Control
├── tests/
├── src/
│ ├── config/
│ │ ├── site.ts # Site config
│ │ ├── lang.ts # I18n and locale config
│ │ └── socials.ts # Social media links
│ ├── assets/
│ ├── content/
│ │ ├── blog/ # Markdown posts
│ │ └── about.md # About page
│ ├── components/
│ ├── layouts/
│ ├── pages/ # Routes
│ ├── utils/
│ ├── styles/ # CSS
│ └── content.config.ts # Content collection
├── astro.config.ts # Astro config
├── package.json
└── README.md
```
## Testing
```bash
pnpm test # All tests
pnpm test:lh # Lighthouse
pnpm test:urls # URLs
pnpm test:a11y # Accessibility
```
### SEOnaut
```bash
pnpm seonaut:up
pnpm dev --host
```
Open <http://localhost:9000/signin> and enter <http://host.containers.internal:4321> as the target URL.
## Deploy
- [Deploy your Astro Site](https://docs.astro.build/en/guides/deploy/)
- [Cloudflare Pages build system](https://developers.cloudflare.com/pages/configuration/build-image/#languages-and-runtime)
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
