从标记文件到用作博客后端的数据库条目的转换
aberdeen的Python项目详细描述
用于获取标记文件目录和 生成/存储博客的后端。
目标是实现简单文本文件的快速编辑并将其发布到 通过推送到git分支的数据库(默认为“publish”)。
运行时,将从找到的每个文件创建一个python json对象。有一个 从文件中提取的标记头,指示文章标题、发布日期, 作者、标签等。文章的内容自动转换为html 并添加到路径中的最终对象。
结果对象(当前)被发送到MongoDB会话并保存到 指定的集合。
这个过程严格来说是一个“模型”管理系统,任何视图和控制器 必须由您建立/管理。
(名字来自“阿伯丁”鱼钩)
要求
- Python 3.4
- Markdown
- 支持的数据库
- MongoDB-asyncio_mongo
安装
将post-update、aberdeen.py和配置文件复制到目录 hooks在服务器上的git存储库中。将配置文件编辑为 规格。上传到pypi时会更新。
服务器设置
在服务器上,创建一个裸git存储库,类似于“blog\u data”。这个 只需保存所有标记(或者其他类型)文件。创建 “publish”分支除了另一个“working”分支(可能是“master”)之外。添加 更新后的webhook和配置如安装中所述。克隆 你工作电脑的回购协议。
用法
此程序要求在每个标记文件中都有一个键值对头 具有写博客所需的典型元素
--- title : Post Title date : Mar 15, 2015 tags : Example Feeling Happy XYZ author: Me --- # My New Post This is a great post! *All* my markdown works
本例中的“tags”属性将生成字符串列表;有关更多信息 元数据头如何工作的信息,read this。
Aberdeen从“date”属性创建一个python“time”对象它会尝试的 对约会的风格要有头脑,有几种方法可以解释 字符串中的日期时间,但必须以某种形式接受 通过strptime python“time”库的函数第一种工作方式会被拯救,所以 奖励一致性如果你关心的话,建议你把时间字段 否则,它将默认为确定日期的午夜。
也许这可以在配置文件中指定?(尚未实现。)
这种信息非常适合存储在nosql数据库中,因此mongodb是 当前支持的唯一数据库降价的内容被转换 添加到HTML并作为“HTML内容”字段添加到结果中。对象被排序 就日期而言并写入数据库上一个表或集合 将删除并添加新项。(*不保证项目将 以同样的顺序)
其他事项
请记住,这没有任何HTML结构或博客的视图支持这个 将模型的一种形式(标记文件)严格转换为另一种形式(数据库 条目)。视图/控制器完全取决于您的检索和 显示帖子。
始终假设数据库集合/表将在 推动。其思想是数据库反映文件,因此更改文件将 替换数据库中的该条目。建议不要使用固定链接 帖子。建议使用日期+标题作为唯一标识符。或者, 如果需要,可以在元数据字段中存储唯一的post id 保证事情会被解决(但这取决于你跟踪和 它们的独特性)。
许可证
阿帕奇2.0