使用Sphinx/GitHub/Distribute的自动化文档构建器,适用于私人使用
项目描述
欧吉欧迪基是一个使用Sphinx、GitHub和Distribute(即setuptools)的自动化文档构建器。它使您的封闭Python项目能够持续构建文档,以下假设
使用Sphinx进行文档编写。
项目通过setuptools(而非pip或其他)打包。
源代码在GitHub上管理。
简而言之,它就是一个为私人使用而设计的ReadTheDocs.org。
工作原理
它按照以下步骤工作
当有新的提交推送时,GitHub触发Okydoky post-receive钩子。
Okydoky从GitHub下载推送的提交的tarball存档。
将tarball存档提取到临时目录中。
Sphinx构建文档。
当用户通过他们的网络浏览器请求文档时,Okydoky要求用户使用GitHub OAuth进行身份验证。
如果他们有授权,Okydoky将提供构建的文档。
如何使用
它是一个普通的Python包。您可以使用easy_install安装它。
$ easy_install Okydoky
本包提供了一个名为 okydoky 的命令行脚本。它是一个网络应用程序,也是一个自用的轻量级网络服务器。它需要一个 配置文件 <config>。
配置文件必须包含一些必需的值,如 GitHub 应用密钥和密钥。
您必须 创建一个 GitHub 应用 才能使用 Okydoky。其 回调 URL 非常重要。用以下内容填充它
http://<host>/auth/finalize
并用 <host> 替换您将使用的域名。然后,在您的 GitHub 仓库中 添加一个 post-receive 钩子
http://<host>/
如果您创建了配置文件,则可以使用 okydoky 脚本运行 Okydoky 服务器
$ okydoky -H 0.0.0.0 -p 8080 yourconfig.py
最后,您必须进行一次初始认证以完成安装。在您的网络浏览器中打开 http://<host> 并使用 GitHub 登录。
配置
配置文件是一个普通的 Python 脚本。它使用 Flask 的配置系统。阅读 Flask 关于配置文件的文档。
- 仓库
用户和仓库名,例如 'crosspop/okydoky'。
- CLIENT_ID
GitHub 应用的客户端密钥。
- CLIENT_SECRET
GitHub 应用的密钥。
- SAVE_DIRECTORY
存储数据的目录路径。此目录将存储一些配置数据、tarball 和构建文档。
- SECRET_KEY
用于签名会话的密钥。也可以参考 Flask 关于会话的文档。
- RECREATE_VIRTUALENV
为每个构建创建新的虚拟环境。这比不使用它慢得多,但可以避免与 site-packages 相关的副作用。
设置任何非零值,例如 1,True,如果希望在每次构建时都重新创建虚拟环境。
- COMPLETE_HOOK
在构建完成后调用的回调函数(任何可调用对象)。即使构建失败也会为每个提交调用它。
它接受三个位置参数
(basestring) 提交哈希
(basestring) 文档的永久链接。如果构建失败,它可能是 404。
(tuple) 如果构建失败,则返回 sys.exc_info() 函数的三个值。如果构建成功,则为 None。
您可以使用最后一个参数来打印错误跟踪信息,例如。
import traceback def COMPLETE_HOOK(commit_id, permalink, exc_info): if exc_info is not None: traceback.print_exception(*exc_info)
特殊环境变量:OKYDOKY
Okydoky 在其构建过程中设置名为 OKYDOKY 的特殊环境变量。您可以使用它来确定是否是由 Okydoky 构建的。
例如,您可以在 setup.py 脚本中添加仅针对 Okydoky 构建的一些额外需求
import os
from setuptools import setup
install_requires = ['Flask', 'SQLAlchemy']
if os.environ.get('OKYDOKY'):
install_requires.extend(['Sphinx', 'sphinxcontrib-httpdomain'])
setup(
name='YourProject',
install_requires=install_requires
)
或者 conf.py 用于 Sphinx
import os
if os.environ.get('OKYDOKY'):
html_theme = 'nature'
else:
html_theme = 'default'
开源
Okydoky 由 Hong Minhee 为 Crosspop 编写。它遵循 MIT 许可证,源代码可以在 GitHub 仓库 中找到。查看
$ git clone git://github.com/crosspop/okydoky.git
变更日志
版本 0.9.6
发布于 2013 年 2 月 12 日。
添加了 RECREATE_VIRTUALENV 选项,使其为每个构建创建虚拟环境。
添加了 COMPLETE_HOOK 选项。
如果构建失败,首先尝试重新创建虚拟环境。
添加了 --proxy-fix 选项用于 HTTP 反向代理。
添加了 --force-https 选项。
不再使用 github-distutils,以防止与打包和分发相关的许多问题。
版本 0.9.5
发布于 2012 年 9 月 16 日。
GitHub 强制执行 OAuth 的 state。遵循它。
版本 0.9.4
发布于 2012 年 9 月 3 日。
使用--upgrade选项执行setup.py develop命令。这可以防止依赖项的版本冲突。
构建日志保存在build.txt文件中。
版本0.9.3
发布于2012年7月18日。
现在索引页面显示refs列表。
现在Okydoky在其构建过程中设置环境变量OKYDOKY=1。[#5]
添加特殊ref URL /head。
修复了一个问题:head没有被设置为最新的提交。
版本0.9.2
发布于2012年7月17日。0.9.1的快速修复。
修复了一个安全漏洞:现在用户必须对仓库有授权。[#4]
版本0.9.1
发布于2012年7月17日。0.9.0的快速修复。
将okydoky包清空,并将内容移动到okydoky.app模块。
版本0.9.0
发布于2012年7月17日。
初始版本。
项目详情
Okydoky-0.9.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 373d0c40773697214b4b973b3cb72410683341e7147d26be5b27864b58324650 |
|
MD5 | d9db7775ea6593194bde20e54a165c08 |
|
BLAKE2b-256 | 72e424690d831a8d944d7a54ebe79c89c4a5346c245b05e42bcad16a37f46b4b |