使用simiki搭建个人wiki
其实有些内容不是很适合放在blog上发,比如说一两句话就能解决的问题,所以大D一直在寻找一个合适的系统来搭建。
用过Mediawiki,也用过各类笔记软件,都不怎么尽如人意,相反还是最简单的纯静态页面符合要求。
经过一段时间的寻找,找到了simiki,试用了一下,感觉还是很不错,于是写一篇文儿出来,记录一下搭建和使用中遇到的一些问题和解决办法。
P.S 这篇文涉及的内容比较多,所以还是放在blog上了,wiki更多的是完成一些很简单的笔记工作,比如某个Linux命令的用法等等。
大D的wiki欢迎访问:wiki.dadclab.com
simiki是由Tanky Woo开发的,从作者的博客得知,该程序开发自2014年,采用Python开发,可将本地使用Markdown编辑的文件转换成html,同时还带有一个http服务,可以进行预览。部署十分方便,无论是使用Github还是用自己的服务器或者虚拟主机,都可以轻松办到。
在此对程序开发者表示感谢~:)
不过只是对Windows的支持不太友好,不过大D有在Windows上安装Babun,所以使用起来也是很方便的~
安装
十分方便,只需要你的电脑上安装了python和pip,直接就可以通过pip进行安装了。
1 |
pip install simiki |
安装完成之后,使用
1 |
simiki init |
来进行初始化
安装中可能遇到的问题
1.提示 pkg_resources.DistributionNotFound: pytz==2015.7
的错误
大D在安装有CentOS 6的虚拟机内安装测试存在这一问题。
粗一看是pytz这个模块的问题,在simiki的安装中,各类需要的模块都会直接安装好,可以通过 pip list
来查看是否安装好了,如果pytz模块已经安装好,那么可能是distribution版本过低的问题,升一下级就可以解决。
1 |
pip install -U distribution |
2. address space needed by '_speedups.dll' (0x6D0000) is already occupied
问题
在Windows上透过babun安装并完成初始化后,使用 simiki g
生成页面时偶尔会遇到这个问题
搜索了一番之后在Github上找到了解决方案:https://github.com/babun/babun/issues/315
1 2 3 4 |
pip uninstall markupsafe git clone https://github.com/gtback/markupsafe.git cd markupsafe python setup.py --without-speedups install |
使用中遇到的问题
1.图片缩放
simiki输出的html不带有图片缩放的功能,但是这个功能还是比较有用的,想起blog上用的缩放插件比较好用,记得插件作者提供了js代码,可以直接调用。
phZoom,Github:https://github.com/phoetry/phZoom
将jQuery.js
和phZoom.js
以及phZoom.css
文件放在simiki模板目录的/static/js
目录下,将phZoom的图片文件放在simiki模板目录的/static/js/css
目录下。
例:/theme/simple2/static/js/jquery-3.1.1.min.js
打开base.html
,在<head>
标签内增加以下代码:
1 2 3 |
<script type="text/javascript" src="/static/js/jquery-3.1.1.min.js"></script> <link rel="Stylesheet" type="text/css" href="/static/js/phzoom.css"> <script type="text/javascript" src="/static/js/phzoom.js"></script> |
打开base.html
,在<div id=footer-left>
标签内添加以下代码:
1 |
<script type="text/javascript">jQuery(document).ready(function($) {$("#content a").filter(function(){return/\.(?:jpe?g|png|gif)/i.test(this.href)}).phzoom({returnOrigin:false});});</script> |
这样就可以绑定在正文页面中带a标记
的图片,用Markdown写笔记时,使用<a><img></a>
来添加图片就可以了。
具体效果,可以参考:
https://wiki.dadclab.com/Windows/fat32%E6%97%A0%E6%8D%9F%E8%BD%AC%E6%8D%A2ntfs.html
2.将页面文件部署到到服务器
simiki支持通过Fabric进行部署,参见:http://simiki.org/zh-docs/deploy.html
首先安装Fabric
1 |
pip install fabric |
配置_config.yml
1 2 3 4 5 |
deploy: - type: rsync user: <login username> host: <remote host ip or domain> dir: <path to store files/dirs under output> |
执行部署
1 |
fab deploy |
3.常用元数据字段
updated
一篇wiki的最后更改时间,格式:YYYY-mm-dd HH:MM
collection
页面的集合,使用该字段,在首页生成一个集合。
tag
页面的标签,使用逗号分隔的字符串或者列表,会在wiki页面最后生成相关文章的地址。
4.基本命令
1 2 3 4 5 6 7 8 9 10 |
#生成静态页面到output目录,simiki部署根目录下执行 simiki g #本地预览 simiki p #指定IP地址预览 simiki p --host 192.168.100.1 --port 8888 #本地预览监控content目录,有变动后自动更新相应静态页面 simiki p -w #生成一篇新wiki simiki n -t "标题" -c 分类 |
参考
http://simiki.org/zh-docs/usage.html
http://wowubuntu.com/markdown/
http://microjo.github.io/2012/markdown_ext.html
https://github.com/tankywoo/simiki
已有 9 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
有演示什么的话就最好了-
@大雄 Demo站?导航栏里有 wiki,直接访问 wiki.dadclab.com 也行。
233 太棒了想解决这种贴碎片文字又需要一定功能的富文本的需求纠结好久了,之前还用的 Ghost …… 现在邮件了 (
@Dimpurr 哈哈,markdown还是很好用的。
sorry,叨饶一下博主。
我不是这个行业的,所以比较蒙,这个wiki我已经搭建起来了,但是本地发文章很多文字时候怎么办。
使用markdown是怎么用的。。。另外其实我本地生成缓存然后上传覆盖github的源码,跟你后面自动发布其实是一样的效果对吧?
@k markdown是一个标记语言,语法具体你可以参照这里Markdown入门参考。
github的话,我是搭建在我自己的VPS上的,具体操作不是很清楚,你可以看一下官方的wiki,我记得里面有写github怎么搞。
@k 另外,markdown的编辑器可以用Haroopad,我自己使用觉得还是不错,虽然预览样式与发布后不一样,但是看个大概是问题不太大的。
@大D 非常感谢,已经搞明白了,markdown不是问题。原来的simiki new | n 原来这个|是分割符号,,,不是命令,我一开始这点没搞懂。。。
@k 嗯嗯