byggleaf 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- byggleaf-0.1.0/CHANGELOG.md +29 -0
- byggleaf-0.1.0/CONTRIBUTING.md +85 -0
- byggleaf-0.1.0/LICENSE +674 -0
- byggleaf-0.1.0/MANIFEST.in +10 -0
- byggleaf-0.1.0/PKG-INFO +548 -0
- byggleaf-0.1.0/README.md +521 -0
- byggleaf-0.1.0/byggleaf/__init__.py +18 -0
- byggleaf-0.1.0/byggleaf/app.py +226 -0
- byggleaf-0.1.0/byggleaf/assets/css/style.css +654 -0
- byggleaf-0.1.0/byggleaf/assets/img/favicon.ico +0 -0
- byggleaf-0.1.0/byggleaf/cli.py +284 -0
- byggleaf-0.1.0/byggleaf/core/__init__.py +8 -0
- byggleaf-0.1.0/byggleaf/core/builder.py +540 -0
- byggleaf-0.1.0/byggleaf/core/clean.py +61 -0
- byggleaf-0.1.0/byggleaf/core/config.py +177 -0
- byggleaf-0.1.0/byggleaf/core/jinja.py +89 -0
- byggleaf-0.1.0/byggleaf/core/locales.py +145 -0
- byggleaf-0.1.0/byggleaf/core/markdown.py +525 -0
- byggleaf-0.1.0/byggleaf/core/new.py +85 -0
- byggleaf-0.1.0/byggleaf/core/scaffold.py +192 -0
- byggleaf-0.1.0/byggleaf/core/seo.py +113 -0
- byggleaf-0.1.0/byggleaf/core/server.py +86 -0
- byggleaf-0.1.0/byggleaf/core/version.py +63 -0
- byggleaf-0.1.0/byggleaf/locales/en.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/ja.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/ko.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/yue.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/zh-CN.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/zh-HK.toml +17 -0
- byggleaf-0.1.0/byggleaf/locales/zh.toml +17 -0
- byggleaf-0.1.0/byggleaf/resources/article.example.md +8 -0
- byggleaf-0.1.0/byggleaf/resources/config.example.toml +14 -0
- byggleaf-0.1.0/byggleaf/templates/base.html +56 -0
- byggleaf-0.1.0/byggleaf/templates/home.html +59 -0
- byggleaf-0.1.0/byggleaf/templates/page.html +16 -0
- byggleaf-0.1.0/byggleaf/templates/post.html +56 -0
- byggleaf-0.1.0/byggleaf/templates/postlist.html +20 -0
- byggleaf-0.1.0/byggleaf.egg-info/PKG-INFO +548 -0
- byggleaf-0.1.0/byggleaf.egg-info/SOURCES.txt +56 -0
- byggleaf-0.1.0/byggleaf.egg-info/dependency_links.txt +1 -0
- byggleaf-0.1.0/byggleaf.egg-info/entry_points.txt +2 -0
- byggleaf-0.1.0/byggleaf.egg-info/requires.txt +9 -0
- byggleaf-0.1.0/byggleaf.egg-info/top_level.txt +1 -0
- byggleaf-0.1.0/pyproject.toml +81 -0
- byggleaf-0.1.0/setup.cfg +4 -0
- byggleaf-0.1.0/tests/__init__.py +1 -0
- byggleaf-0.1.0/tests/test_app.py +71 -0
- byggleaf-0.1.0/tests/test_architecture.py +281 -0
- byggleaf-0.1.0/tests/test_build.py +572 -0
- byggleaf-0.1.0/tests/test_clean.py +65 -0
- byggleaf-0.1.0/tests/test_cli.py +146 -0
- byggleaf-0.1.0/tests/test_config.py +152 -0
- byggleaf-0.1.0/tests/test_html.py +115 -0
- byggleaf-0.1.0/tests/test_http.py +88 -0
- byggleaf-0.1.0/tests/test_locales.py +84 -0
- byggleaf-0.1.0/tests/test_markdown.py +224 -0
- byggleaf-0.1.0/tests/test_new.py +65 -0
- byggleaf-0.1.0/tests/test_version.py +29 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 变更日志
|
|
2
|
+
|
|
3
|
+
本文件记录 ByggLeaf 的重要变更。版本号的唯一来源是 `pyproject.toml`。
|
|
4
|
+
|
|
5
|
+
## 未发布
|
|
6
|
+
|
|
7
|
+
### 新增
|
|
8
|
+
|
|
9
|
+
- 首页、分页页和独立页面输出 canonical、description 与 Open Graph 元数据。
|
|
10
|
+
- 自动生成 `sitemap.xml` 与 `rss.xml`。
|
|
11
|
+
- 所有页面 `<head>` 增加 RSS 与站点地图发现链接。
|
|
12
|
+
- 构建开始时自动恢复中断的发布,并清理遗留 staging 目录。
|
|
13
|
+
- 预检阶段增加输出路径冲突检测。
|
|
14
|
+
- 增加 HTML/无障碍结构测试和 HTTP 预览冒烟测试。
|
|
15
|
+
- CI 增加 Ruff、mypy、覆盖率、wheel 构建和安装冒烟。
|
|
16
|
+
- tag push 后由 `publish.yml` 自动校验、构建、发布 PyPI 并创建 GitHub Release。
|
|
17
|
+
- README 增加本地化状态表,CONTRIBUTING 增加本地化指南。
|
|
18
|
+
- 使用 GPL-3.0-or-later 许可证。
|
|
19
|
+
|
|
20
|
+
### 变更
|
|
21
|
+
|
|
22
|
+
- 语言文件按规范 BCP 47 标签精确匹配,不再提供地区回退。
|
|
23
|
+
- 缺少或为空的翻译 key 会显示 key 名,不再中断构建。
|
|
24
|
+
- 发布失败时恢复旧 `public/`;下一次构建修复崩溃残留。
|
|
25
|
+
|
|
26
|
+
## 0.1.0
|
|
27
|
+
|
|
28
|
+
- 初始版本:Markdown 文章与独立页面、分页、固定模板、原生 CSS、
|
|
29
|
+
零 JavaScript、构建/预览/清理命令、文章 SEO 与内置界面翻译。
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# 为 ByggLeaf 贡献
|
|
2
|
+
|
|
3
|
+
ByggLeaf 是一个刻意保持狭窄、有主见的个人数字花园静态网站生成器。它**不是**
|
|
4
|
+
通用 SSG,也没有主题、插件、自定义模板、自定义 CSS/JS 或任意输出管线的路线图。
|
|
5
|
+
把它推向通用平台的方向会被拒绝。
|
|
6
|
+
|
|
7
|
+
欢迎的贡献包括:
|
|
8
|
+
|
|
9
|
+
- 正确性和安全性修复;
|
|
10
|
+
- 无障碍和 HTML 质量修复;
|
|
11
|
+
- 构建与发布可靠性改进;
|
|
12
|
+
- 翻译;
|
|
13
|
+
- 让固定模型更容易理解的文档。
|
|
14
|
+
|
|
15
|
+
## 开发
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
python3.11 -m venv .venv
|
|
19
|
+
source .venv/bin/activate
|
|
20
|
+
pip install -e ".[dev]"
|
|
21
|
+
|
|
22
|
+
ruff check .
|
|
23
|
+
mypy byggleaf
|
|
24
|
+
coverage run -m unittest discover -s tests -v
|
|
25
|
+
coverage report
|
|
26
|
+
python -m build
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
测试使用标准库 `unittest`。不要增加运行时依赖:安装后的包只能依赖 `markdown`
|
|
30
|
+
和 `jinja2`。开发工具放在 `dev` 可选依赖组中。
|
|
31
|
+
|
|
32
|
+
## 本地化
|
|
33
|
+
|
|
34
|
+
语言标签必须是规范的 BCP 47 标签,文件名必须正好是该标签加 `.toml`,例如:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
locales/zh-CN.toml
|
|
38
|
+
locales/zh-HK.toml
|
|
39
|
+
locales/yue.toml
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
没有回退机制。`zh-SG` 不会使用 `zh-CN`,必须有自己的 `zh-SG.toml`。缺少文件时
|
|
43
|
+
会报错并列出所有可用语言文件。
|
|
44
|
+
|
|
45
|
+
### 新增语言
|
|
46
|
+
|
|
47
|
+
1. 复制最接近的现有语言文件,例如:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
cp byggleaf/locales/zh-CN.toml byggleaf/locales/zh-SG.toml
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
2. 翻译 `[ui]` 下的每个值。缺失或为空的 key 会在运行时显示 key 名,因此部分翻译
|
|
54
|
+
的文件可以安全加载;但合并进包的内置语言文件仍应保持完整。
|
|
55
|
+
|
|
56
|
+
3. 保持标签规范:
|
|
57
|
+
|
|
58
|
+
- 语言小写;
|
|
59
|
+
- 文字系统首字母大写,例如 `Hans`、`Hant`;
|
|
60
|
+
- 地区大写,例如 `CN`、`HK`、`TW`。
|
|
61
|
+
|
|
62
|
+
4. 在 README 状态表中用准确代码和 ✅/❌ 标出支持情况。
|
|
63
|
+
|
|
64
|
+
5. 运行数据驱动的本地化测试:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
python -m unittest tests.test_locales tests.test_architecture -v
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
测试会扫描 `locales/*.toml`,故意不维护硬编码的支持语言列表。新增语言文件不应
|
|
71
|
+
需要修改测试预期列表。
|
|
72
|
+
|
|
73
|
+
6. 如果语言文件仍不完整,README 中保持 ❌。不要把半成品文件作为内置语言合并。
|
|
74
|
+
|
|
75
|
+
## 提交请求
|
|
76
|
+
|
|
77
|
+
- 保持架构单向:`app` 负责装配,`cli` 不导入 `core`,`core` 不导入入口层。
|
|
78
|
+
- 不要向模板或 Markdown 输出加入 JavaScript。
|
|
79
|
+
- 不要增加用户可覆盖的模板或主题钩子。
|
|
80
|
+
- 每个行为变更都要有测试。
|
|
81
|
+
- 用户可见输出保持克制、明确;错误要说明失败原因和下一步。
|
|
82
|
+
|
|
83
|
+
## 许可证
|
|
84
|
+
|
|
85
|
+
提交贡献即表示你同意该贡献按 GPL-3.0-or-later 授权,与本项目许可证一致。
|