A customizable manuscript paper plugin for Obsidian — give your notes the warmth and beauty of traditional manuscript paper.
PaperCraft brings the warmth of traditional manuscript paper into Obsidian with an intuitive visual panel — what you see is what you get. No CSS knowledge required. Customize paper textures, line patterns, colors, typography, and drawing annotations through a beautiful, interactive UI.
PaperCraft is an Obsidian plugin that customizes your note appearance with traditional manuscript paper styles. It provides:
.css file into visual parameters让笔记拥有传统稿纸的质感与美感。可视化操作,所见即所得,不需要 CSS 知识。
PaperCraft 把传统稿纸的温润质感搬进 Obsidian,用直观的可视化面板替代 CSS 代码——所见即所得,一目了然。
Writing for a long time? Tired of staring at white editors? CSS snippets feel too technical? PaperCraft brings the warmth of traditional manuscript paper into Obsidian with an intuitive visual panel — what you see is what you get.
| Feature | Traditional CSS Snippets | PaperCraft |
|---|---|---|
| Usage | Write/copy CSS code | Visual panel, click to use |
| Live preview | Save & refresh repeatedly | Instant visual feedback |
| Template switching | Manual file replacement | One-click sidebar switch |
| Custom save | Manual file management | Save as template in panel |
| CSS import | Not supported | Auto-parse CSS to visual params |
| Learning curve | Requires CSS knowledge | Zero barrier, for everyone |
Simply put: Professional manuscript effects without writing a single line of CSS.
写过文章的人都知道:白色的编辑器看久了眼睛累,纯 CSS 代码又太劝退。 PaperCraft 把传统稿纸的温润质感搬进 Obsidian,用直观的可视化面板替代 CSS 代码——所见即所得,一目了然。
| 特性 | 传统 CSS Snippets | PaperCraft |
|---|---|---|
| 使用方式 | 手写/复制 CSS 代码 | 可视化面板,点击即用 |
| 实时预览 | 需要反复保存刷新 | 调整即见,所见即所得 |
| 模板切换 | 手动替换 CSS 文件 | 侧边栏一键切换 |
| 自定义保存 | 手动管理文件 | 面板内保存为新模板 |
| CSS 导入 | 不支持 | 自动解析 CSS 文件为可视化参数 |
| 上手门槛 | 需要 CSS 知识 | 零门槛,人人可用 |
简单来说:不需要写一行 CSS 代码,就能得到专业级的稿纸效果。
内置 16 套精心设计的模板,涵盖横线、竖线、点阵等多种风格,每套都配有专属配色和字体方案:
PaperCraft 从第一天就为中文写作而设计:
告别 CSS 代码,用标签导航管理所有参数:
设置面板顶部有独立的实时预览区。调整任何参数,预览区立刻同步变化。满意后再点击「应用到笔记」,不影响正在编辑的内容。
已有 CSS Snippet?PaperCraft 支持导入 .css 文件,自动解析其中的背景色、字体、行高、间距等属性,转换为可视化参数继续调整。从代码到可视化,无缝衔接。
main.js、manifest.json、styles.css 三个文件.obsidian/plugins/papercraft/ 目录git clone https://github.com/gibsonchan-5/PaperCraft.git
cd PaperCraft
npm install
npm run build
构建产物 main.js 会生成在项目根目录。
设置面板分为四个区域:
.css 文件导入样式,自动解析为可视化参数papercraft/
├── main.js # 编译产物(直接安装用)
├── main.ts # 插件主入口
├── manifest.json # Obsidian 插件清单
├── styles.css # 插件 UI 样式
├── esbuild.config.mjs # 构建脚本
├── tsconfig.json # TypeScript 配置
├── package.json # 项目配置
└── src/
├── data/
│ ├── PaperData.ts # 数据类型定义
│ └── Defaults.ts # 默认值与防御性加载
├── engine/
│ ├── CSSGenerator.ts # CSS 生成引擎(BackgroundLayer 层管理)
│ └── ThemeApplier.ts # 样式注入与移除
├── settings/
│ └── SettingsTab.ts # 可视化设置面板(标签导航 + 实时预览)
├── sidebar/
│ └── PaperCraftView.ts # 侧边栏模板选择视图
├── templates/
│ └── TemplateManager.ts # 模板管理器(16 套内置模板)
├── drawing/
│ └── DrawingCanvas.ts # SVG 绘图图层
└── i18n/
└── i18n.ts # 国际化(中文/英文/日文)
background-image 声明,避免多层叠加导致的渲染模糊ensureCompleteSettings() 确保 data.json 损坏或字段缺失时自动补全applyTemplate() 使用展开运算符深合并,避免浅合并导致字段丢失