一种文库类网站建设思路.md

​### 背景
最近一直想做一个有很多维护者的知识文库(或者是wiki)式的网站,用来支撑我的PyDocs(python文库网)。寒假时虽然利用django写了一个小的博客、CMS类的网站,但是想要做到多维护者下的版本控制却是非常苦难,一直没想到如何实现,所以暂时放弃自研的方案。
然后挑选了一些wiki式的开源网站,像dokuwiki,都比较大、丑,而且逻辑不太符合自己的胃口,浅尝而止。

hello,mkdocs

自己在写Django的rest风格的api时接触到了rest_framework这个库,发现这个网站文档官网就是基于mkdocs的,很符合自己要求,便深入了解了下。

MkDocs 是一个用于创建项目文档的 快速, 简单 , 完美华丽 的静态站点生成器. 文档源码使用 Markdown 来撰写, 用一个 YAML 文件作为配置文档。通过mkdocs build可以构建完全的静态 HTML 站点 , 可以将它托管到你的服务器上。此外默认包含大量美观的主题. 可以从 bootstrap, readthedocs 和 12 款 bootswatch 主题中选择。

关于mkdocs的详细情况见:http://www.mkdocs.org/

我的设计

网站结构图如下:
网站示意图
- 首先新建一个github项目。
每个文档维护者通过github实现文档的管理,包括新增、修改和删除等操作。github的基本操作详见廖雪峰的教程,此处不重复叙述。

  • 本地使用mkdocs进行文档编写和预览
    以我的电脑ubuntu为例,直接
sudo apt pip install makdocs

直接安装本地mkdocs环境,然后

mkdocs new my-project
cd my-project

新建一个项目,修改yml配置文件,再在相关目录下编写markdown文件,mkdocs serve本地预览,mkdocs build构建生成静态文件。
这其中设计到mkdocs的大量操作,详见mkdocs官网信息:mkdocs.org

  • 代码push到github上面
$ echo "site/" >> .gitignore

忽略指定目录 /site,
然后就是git的一系列操作。此处忽略~

  • 服务器端的操作
    git clone XXX
    mkdocs build
    然后就是crontab -e新建一个定时任务,每天定时从github上pull文档和配置文件,再利用mkdocs build生成静态文件。

  • 其他一些补充
    同步邮件通知,可以用python写一个,通知每天的情况。
    写一个php的小页面,点一下,立即重复服务端的一系列操作

这样做的好处

  1. 将版本控制和异常处理转嫁到github上面,不需要做太多逻辑上处理
  2. 生成的全是静态文件,加载速度相对快一点
  3. 更安全

后续整理后将所有脚本发布

效果图(pydocs.cn)
图片

七只熊文库CMS ## 介绍 七只熊是似百度文库,能够实现文档分享、售卖的文库CMS系统。用户上传源文档后,七只熊会自动将文档进行转码成HTML,成功后,将文档HTML返回文库CMS。实现免插件、在线浏览。 ## 快速体验入口 文库前端演示: http://doc.qizhixiong.com 文库管理后台: http://doc.qizhixiong.com/admin.php 七只熊官网:http://www.qizhixiong.com ## 软件架构 七只熊文库系统,由2个部分组成: 七只熊文库CMS: 用于文档内容管理、用户及权限管理、积分系统等。 七只熊转换系统:本系统不开源。用于配合文库CMS实现将office文档转换成HTML,以实现客户端在线浏览。 ## CMS主要功能概述 分管理、文档管理、文档预览、收费文档悦读页数限制。 文档积分系统。 支付宝在线积分充值。 用户积分策略自由设置。 新闻系统。 论坛 + 文档悬赏系统。 企业名录系统。 大批量文档客户端软件。 全站广告系统。 文档专辑系统。 ## 安装教程 第一步: 下载七只熊文库。访问 http://您的域名/ 将会自动执行安装程序。 第二步: 进入后台 – 系统 – 站点设置,修改“网站链接”即您的站点域名, 域名后必须加上斜杠“/”,否则将导致图片显示失败,转换失败等问题。 第三步: 联系七只熊获取站点appid、appsecret ,并进入后台 – 系统 – 转换设置填写appid、appsecret。 第四步: 上传文档测试转换效果。 #### 伪静态 伪静态规则文件在程序根目录“伪静态实现”里,如遇到问题请自行百度或联系七只熊协助解决。 Apache RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] Nginx if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值