ABOUT THE LIBRARY · 2026

关于
这间书房

一间用木头、纸页和光搭起来的私人书房。

没有排行榜,没有“本月必读”。只有三层书架:经典名著、当下热门、我的作品。 有的书收录全文,有的只放导读和书摘,有的只是一枚指向原处的书签。

书架现在有 13 册、49 篇可读内容。 它不追求一次成形,只希望每次添书,都像把一本新书塞进已经住惯了的架子。

THREE SHELVES

三层书架

ADD A BOOK

怎样添一本书

书架是静态的,但添书不需要懂前端。推荐用一条命令完成; 也可以直接编辑 Markdown 和 YAML 文件。

01

用命令上架

在项目根目录运行,按提示填写书名、作者、分类和文件路径。封面会自动生成。

pnpm book:new

支持 PDF、EPUB、TXT、Markdown;也可以直接指定参数,不进入问答。

02

自己的作品:加 Markdown

每本书一个文件夹,book.yaml 存放元数据,chapters/ 下按顺序放 Markdown。

src/content/library/
└── own/
    └── my-book/
        ├── book.yaml
        └── chapters/
            ├── 01.md
            └── 02.md

分类写 own,就会出现在「我的作品」这一层。

03

其他作品:PDF / EPUB / TXT

加 --file 指向本地文件。PDF 会放进站内翻阅页,EPUB 提供下载;TXT 会自动拆成章节。

# 把 PDF / EPUB / TXT / Markdown 文件收进书架
pnpm book:new -- --title "一本书" --author "作者" --category classics --file ./book.pdf

文件会被复制到 public/library/<slug>/,不会改动你的原文件。

book.yaml 的最小写法

slug: my-book
title: 我的新书
author: 木间主人
category: own
description: 一本刚刚放上书架的书。
cover: /covers/my-book.svg
accent: "#6b6a3c"
motif: leaf
order: 4

其余字段都有默认值。封面可以放自己的图片,也可以交给 pnpm covers 生成。

一篇 Markdown 长什么样

---
title: 第一篇
book: my-book
order: 1
summary: 一句话介绍这一篇。
---

正文从这里开始。

标题、顺序和一句话摘要放在 frontmatter 里,正文用普通 Markdown 写。

格式 上架后的样子 适合放什么
markdown 站内全文阅读 自己写的作品、已有的 Markdown 手稿
pdf 站内 PDF 翻阅 + 下载 排版已经固定的电子书、小册子
epub 提供下载,在阅读器中打开 带目录和样式的电子书
txt 导入时自动拆成章节 纯文本旧稿、笔记
link 指到原站的入口 只想收藏、不在本站放全文的书

添完书后运行 pnpm dev 预览,或 pnpm build 生成静态文件。 新增的封面会出现在 public/covers/;想重新设计,改 book.yaml 里的 accent 与 motif,再运行 pnpm covers --force。

COLOPHON

版本与来处

关于内容

《高性价比人生指南》全文来自 eternity4719/HowToLiveBetter, 作者 eternity4719,依 CC BY 4.0 许可收录并署名。书中内容为一般信息,不构成医疗、法律或财务建议。

经典名著为公版作品,本站收录原创导读与短书摘,并链接到可免费阅读全文的站点。

「我的作品」中的三本文集是示例内容,用来演示 Markdown 上架流程,可替换成你自己的文字。

关于实现

使用 Astro 构建静态站点, Tailwind CSS 处理布局与主题; 书架的 3D 厚度、抽出效果和纸张质感主要由 CSS 完成。

木纹与纸纹来自本地程序化生成的纹理,没有远程图片依赖;站点可以整体部署到任意静态托管。

  • Astro 6 · Content Collections
  • Tailwind CSS 4
  • CSS 3D · IntersectionObserver · View Transitions
  • Markdown · YAML · 本地 SVG 封面

搜索书架

CARD CATALOGUE 输入关键词,开始翻卡片
↑↓ 选择 ↵ 打开 esc 关闭 木间书斋 · 目录柜