Astro博客

astro-theme-shinbun — Astro 博客模板

作者 kamimen

一款以日本报纸版面为视觉语言的 Astro 博客主题,默认横排,可按文章切换竖排,并支持昼夜两种版面。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-08查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

报纸版面式博客结构:题字、头条、按标签划分的“面”与列表页

02

默认横排,可按文章选择竖排,读者也能在文章页切换横排与竖排

03

昼夜两种纸面可切换,并记住上次的选择

04

Markdown 与 MDX 写作,frontmatter 由 Astro 内容集合做类型检查,支持草稿与定时发布

05

输出 RSS、站点地图、robots.txt、canonical、Open Graph 与 JSON-LD,并支持 site.base 基准路径

06

图片使用 Astro 图像优化,可用于头条照片、列表缩略图、带说明的正文图片与 OG 图像

模板详细介绍

astro-theme-shinbun 是一个面向日文博客的 Astro 主题,版式参考报纸纸面:博客名作为题字,最新文章成为头条,标签对应报纸的“面”,每个面有独立页面与列表。默认横排,单篇文章可设为竖排,读者也能在文章页自行切换横排与竖排;昼夜两种纸面同样可切换,选择会在下次打开时保留。

写作方面,文章使用 Markdown 与 MDX,frontmatter 通过 Astro 内容集合做类型检查;draft: true 与发布时间未到的文章不会公开,长文会自动生成见出目录,代码块在昼夜纸面下切换配色(Shiki),并可用 npm run new-post 生成文章模板。图片走 Astro 图像优化(WebP、srcset、延迟加载),可用于头条照片、列表缩略图、带说明的正文图片与 OG 图像。

输出方面包含 RSS、站点地图、robots.txt、canonical、Open Graph 与 JSON-LD 结构化数据,并带页面过渡(ClientRouter)与链接预取;支持 site.base 基准路径,因此可用于 GitHub Pages 项目页。配置集中在 shinbun.config.ts 一个文件。

需要注意:README 标注仅在 Chrome 测试,未测试 Firefox 与 Safari;示例中的人物、团体、事件与照片均为虚构;运行需要 Node.js 22.12 以上。

Astro博客

适合你的项目吗?

适用场景

  • 用日文撰写以报纸版面为风格的博客或专栏
  • 希望部分文章竖排、部分文章横排,并让读者自行切换的站点
  • 需要 RSS、站点地图、结构化数据与 OG 图像等基础输出能力的静态博客
  • 部署在 GitHub Pages 项目页等带基准路径的环境

适合人群

  • 使用 Astro 并熟悉 Markdown 或 MDX 写作的个人博主
  • 想要报纸式排版而非通用卡片式博客外观的日文内容站点
  • 需要草稿、定时发布、目录与代码高亮等写作功能的作者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 22.12 或更高版本

  2. 2

    可通过 GitHub 模板、fork 或 npm create astro@latest -- --template kamimen/astro-theme-shinbun 创建项目

  3. 3

    安装后执行 npm install 与 npm run dev,再修改 shinbun.config.ts 中的题字、说明、作者、URL 与菜单

  4. 4

    用 npm run new-post <文件名> 生成文章模板,默认带 draft: true,写完需移除

  5. 5

    README 标注仅在 Chrome 测试,未测试 Firefox 与 Safari;示例图片、字体等第三方素材需按各自许可核对

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 运行环境要求:必须使用 Node.js 22.12 或更高版本,低于该版本无法构建或运行。
  • 浏览器兼容性限制:README 标注仅在 Chrome 测试,Firefox 与 Safari 未测试,使用前需自行验证。
  • 示例内容限制:仓库内示例的人物、团体、事件与照片均为虚构,不可直接作为真实内容使用。
  • 外部依赖限制:版面组件依赖外部项目 shinbun.css,其许可与维护状况需另行确认。
  • 外部图片限制:使用外部图片时必须在 images.domains 中显式允许域名,否则不会被优化。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Node.js 22.12 以上が必要です。

README 原文

![not tested: Firefox, Safari](https://img.shields.io/badge/not%20tested-Firefox%20%C2%B7%20Safari-red)

README 原文

見本の内容(人物・団体・出来事・写真)は、すべて架空です。

README 原文

紙面の部品は [shinbun.css](https://github.com/kamimen/shinbun-css) を使っています。

README 原文

`images.domains` | 最適化を許可する外部の画像のドメイン

README 原文
https://github.com/kamimen/astro-theme-shinbun/blob/main/LICENSEhttps://github.com/kamimen/astro-theme-shinbun/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-08。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 80 / 100
技术栈
Astro
网站类型
博客
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-10-08
截图检查日期
2026-10-08

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-09

查看当时使用的来源资料

SHA-256: f327816d0db26c32a3eec9c534ec6c20f7dc6c06c4596dbb5005f3b3a243b3bc

2026-10-08T22:10:15.371Z

来源文件 / 仓库
![astro-theme-shinbun のアイコン](assets/icon.svg)

# astro-theme-shinbun

新聞の紙面のように書ける、日本語のブログの Astro テーマです。紙面の部品は [shinbun.css](https://github.com/kamimen/shinbun-css) を使っています。

![license: MIT](https://img.shields.io/badge/license-MIT-blue) ![Astro 7](https://img.shields.io/badge/Astro-7-ff5d01) ![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6) ![tested: Chrome](https://img.shields.io/badge/tested-Chrome-brightgreen) ![not tested: Firefox, Safari](https://img.shields.io/badge/not%20tested-Firefox%20%C2%B7%20Safari-red)

日本語 | [English](README_en.md)

![トップページ(横組み)](assets/preview-home.png)

![記事ページ(縦組み)](assets/preview-vertical.png)

見本の内容(人物・団体・出来事・写真)は、すべて架空です。

## 特徴

### 紙面

ブログの名前が題字になり、最新の記事がトップ記事になります。タグは新聞の「面」にあたり、面ごとのページと一覧があります。既定は横組みで、記事ごとに縦組みを選べます。読む人は、記事ページで横組みと縦組みを切り替えられます。昼と夜の紙面も切り替えられ、選んだ紙面は次に開いたときも保たれます。

### 書く

記事は Markdown と MDX で書きます。frontmatter は、Astro のコンテンツコレクションで型を検査します。下書き(`draft: true`)と、公開日時が先の記事は公開しません。長い記事には、見出しの一覧(目次)が自動で付きます。コードのブロックは、昼と夜の紙面で色が切り替わります(Shiki)。記事の雛形は `npm run new-post` で作れます。

### 画像

Astro の画像最適化(WebP、`srcset`、遅延読み込み)に対応しています。トップ記事の写真、一覧のサムネイル、本文の画像(キャプションつき)、OG 画像に使えます。

### 公開

RSS、サイトマップ、robots.txt、canonical、Open Graph、構造化データ(JSON-LD)を出力します。ページ遷移(`ClientRouter`)とリンクの先読みもあります。公開する場所の基準パス(`site.base`)に対応するので、GitHub Pages のプロジェクトページでも使えます。設定は `shinbun.config.ts` の 1 ファイルです。

## プロジェクトの構成

```
/
├── public/
│   └── favicon.svg
├── scripts/
│   ├── new-post.ts             記事の雛形を作る
│   ├── update-theme.ts         このテーマの更新を取り込む
│   └── make-sample-images.ts   見本のダミー画像を作る
├── src/
│   ├── assets/photos/          見本の写真
│   ├── components/             題字、欄外、記事、ページ送りなど
│   ├── content/
│   │   ├── pages/about.md
│   │   └── posts/              記事(.md と .mdx)
│   ├── i18n/ja.ts              画面の文字列
│   ├── layouts/                Layout.astro
│   ├── pages/                  トップ、記事、タグ、アーカイブ、about、404、RSS
│   ├── plugins/rehype-figure.ts  本文の画像を写真(figure)にする
│   ├── scripts/                昼夜の切り替え、縦組み・横組みの切り替え
│   ├── styles/blog.css         shinbun.css の上に重ねるブログ向けの調整
│   ├── utils/                  記事の絞り込み、並べ替え、日付など
│   ├── config.ts               既定値を補った設定
│   └── content.config.ts       記事の frontmatter の型
├── test/                       単体テスト
├── vendor/                     shinbun.css(CSS と JavaScript)
├── astro.config.ts
└── shinbun.config.ts           利用者が直す設定
```

記事は、`src/content/posts/` に置きます。

## はじめ方

1. このリポジトリを、GitHub のテンプレートとして使うか、fork します。次のコマンドでも作れます

   ```sh
   npm create astro@latest -- --template kamimen/astro-theme-shinbun
   ```
2. 次を実行します

   ```sh
   npm install
   npm run dev
   ```

3. `shinbun.config.ts` を直します(題字、説明、著者、URL、メニュー)
4. `npm run new-post <ファイル名>` で、記事の雛形を作ります(`src/content/posts/` に作られます。`draft: true` が付いているので、書き終えたら外します)
5. `npm run build` で、`dist/` に静的なサイトを作ります

Node.js 22.12 以上が必要です。

## 設定(`shinbun.config.ts`)

| 項目 | 内容 |
|---|---|
| `site.url`、`site.title`、`site.subtitle`、`site.description`、`site.author` | サイトの情報。`url` は、公開する URL |
| `site.base` | 公開する場所の基準パス。GitHub Pages のプロジェクトページなら、`"/リポジトリ名/"` |
| `site.timezone` | 日付を表示するタイムゾーン(既定は `Asia/Tokyo`) |
| `writing` | サイトの組方向。`"horizontal"`(横組み)または `"vertical"`(縦組み) |
| `paper.dan`、`paper.verticalDan`、`paper.fontSize` | 横組み・縦組みの段数と、文字の大きさ |
| `masthead.left`、`masthead.right` | 題字の左右に出す文 |
| `images.domains` | 最適化を許可する外部の画像のドメイン |
| `nav`、`socials` | メニューと、フッターのリンク |
| `posts.perPage`、`posts.columns`、`posts.scheduledMargin` | 1 ページの記事数、記事の段数(既定は 1)、予約投稿を早く出す余裕(ミリ秒) |
| `features.darkMode`、`features.archives`、`features.transitions` | 夜の紙面の切り替え、アーカイブ、ページ遷移 |

## 記事の frontmatter

```yaml
---
title: 見出し
description: 記事の要点を、一文で。リードとして表示されます
pubDatetime: 2026-10-07T09:00:00+09:00
tags: [まちの話, 建築]
kicker: みどり市        # 見出しの上の肩見出し。省略するとタグの先頭
dateline: みどり市      # 発信地
byline: 架空太郎        # 署名。省略するとサイトの著者
writing: vertical       # この記事だけ縦組みにする
image: ../../assets/photos/library.jpg   # 記事の写真
imageAlt: 写真の説明
draft: false
---
```

## 画像

- 記事の写真: frontmatter の `image` に、記事の Markdown から見た相対パスで書きます。トップ記事と記事ページに大きく、一覧にはサムネイルで出ます。OG 画像にも使います
- 本文の画像: Markdown の `![説明](../../assets/x.jpg "キャプション")` で書きます。`src/` の画像は、自動で最適化されます。`"キャプション"` を付けると、写真の説明(`figcaption`)になります
- MDX: `.mdx` の記事では、`Image` の部品も使えます(見本: `src/content/posts/code-sample.mdx`)
- 外部の画像: `images.domains` に、許可するドメインを書きます。許可しない画像は、最適化されません
- `public/` に置いた画像は、最適化されません

## 縦組みの記事の書き方

- 日付は、縦組みでは漢数字(二〇二六年十月五日)で表示されます
- 本文の数字は、書いたとおりに表示されます。縦組みの記事では、二桁の数字は縦中横になります。三桁以上や年は、漢数字で書くと読みやすくなります
- 写真は、縦組みでは高さを抑えて表示します

## 色を変える

紙面の色は、shinbun.css のトークンで決まっています。`src/styles/blog.css` で上書きします。

```css
.sb-paper {
  --sb-paper: light-dark(#f4eedd, #17140f);   /* 紙の色(昼、夜) */
  --sb-ink: light-dark(#1b1812, #eee6d2);     /* 文字の色 */
  --sb-accent: light-dark(#a02a1f, #e5786b);  /* 肩見出しなどの差し色 */
}
```

トークンの一覧は、[shinbun.css の API](https://github.com/kamimen/shinbun-css/blob/main/docs/API.md) にあります。

## ライセンス

[MIT License](LICENSE)
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。