V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
TankyWoo
V2EX  ›  分享创造

Simiki -- 简单的个人维基框架

  TankyWoo ·
tankywoo · 2014-06-09 21:29:32 +08:00 · 18405 次点击
这是一个创建于 3602 天前的主题,其中的信息可能已经有所发展或是发生改变。
这是前段时间自己写的一个项目。

因为比较喜欢记录技术笔记,一直保持写技术博客有5、6年了。

后来考虑到博客记录的知识太零散,记录多了以后,可以考虑把总结过的知识汇总形成wiki。

之前也调研过现有的一些维基框架。MediaWiki不说了,太臃肿,不适合个人;MoinMoin用了下,搭建比较麻烦,弄了一阵子发现没有使用的欲望;VimWiki也折腾过一阵子,有些地方还是不满意,且它自己也是一套Markup语法,这玩意记多了容易混。其余的大多都是基于PHP的。

因为对Markdown和纯静态输出这两点比较喜欢,所以自己写了一个简单的个人Wiki框架,功能做个人维基足够了。如果要协作,配合Github等也是一个不错的选择。

Simiki主要以目录的形式存放源文件,生成相应目录结构的静态html文件。模板主题用的是Jinja2,所以大家也可以方便的DIY。

没有繁杂的功能,毕竟技术笔记本身就是以内容为导向。

好吧,不太会扯,直接上地址吧。想弄一个个人维基的朋友,不妨试试。有问题直接Github上发Issue就可以了。

项目地址: https://github.com/tankywoo/simiki

网站: http://simiki.org/ 也是用Simiki搭建的,CSS啥的直接Copy Bootstrap的一个Example :)

个人的Wiki: http://wiki.tankywoo.com/

最近一期的Pycoder's Weekly (Issue #118) 也推荐了 http://us4.campaign-archive2.com/?u=9735795484d2e4c204da82a29&id=cb904ae2f0
第 1 条附言  ·  2014-06-10 00:13:28 +08:00
惭愧,作为一个运维人员,刚才不小心把VPS上/var目录给xxx了,正在修复在,期间可能网站无法访问,抱歉。
第 2 条附言  ·  2014-06-10 22:37:03 +08:00
非常感谢大家的支持。

测试这块还没完善,所以还有一些Bug,这两天已经有几个朋友提交bug了,我今晚也都修复了。

感谢大家的帮忙测试,如果有问题,在Github上提交Issue后,我会尽力第一时间修复。

话说今晚给发了三个小Release...
74 条回复    2016-06-01 23:11:24 +08:00
wangfengmadking
    1
wangfengmadking  
   2014-06-09 21:40:30 +08:00   ❤️ 1
lz的wiki内容真心不错,很有料
orzfly
    2
orzfly  
   2014-06-09 22:23:11 +08:00   ❤️ 1
http://wiki.tankywoo.com/other/mac-os-tools.html
> Cyderbuck FTP

应该是 Cyberduck 吧?
yangyang
    3
yangyang  
   2014-06-09 22:31:08 +08:00   ❤️ 1
真赞!明天我也搭一个。
ChiangDi
    4
ChiangDi  
   2014-06-09 22:44:23 +08:00   ❤️ 1
不错不错,已star.
ss098
    5
ss098  
   2014-06-09 22:44:37 +08:00 via Android   ❤️ 1
很好的wiki!准备拿来当个人wiki

要是能早点遇到就好了,有一个项目已经自己根据环境实习了个...
heyf
    6
heyf  
   2014-06-09 22:51:51 +08:00   ❤️ 1
已star!之前就是看楼主的笔记折腾vimwiki的
yxjxx
    7
yxjxx  
   2014-06-09 23:07:40 +08:00   ❤️ 1
cool!
lz博客干货十足,看过算法导论系列,写的很好!
vvtommy
    8
vvtommy  
   2014-06-09 23:08:12 +08:00   ❤️ 1
楼主棒呆。已经star,待后面尝试后再考虑fork
wogong
    9
wogong  
   2014-06-09 23:26:20 +08:00   ❤️ 1
来回顾下个人的wiki选择历史:
1. vimwiki
折腾了不短的一段时间,因为生成html文件缓慢,不能在线编辑,语法不支持markdown,等等,最终放弃。

2. moinmoin
python的项目,可以在线编辑。适合团队。试用了很短的一段时间,因为需要搭建环境,本地查找编辑不太方便放弃。

3. gollum
Github的wiki引擎,非常不错,支持markdwon,git历史版本记录,在线编辑方便。目前的搜索不支持中文,可惜不能直接生成html文件,依赖环境。但是还是推荐,和Github协同不错,不需要分享的话直接在Github中新建一个项目,利用项目wiki就可以了。

4. Jekyll 目前正在使用的。你一定会惊讶Jekyll不是博客么,其实前段时间 Jekyll 2.0 发布之后,多了一个很赞的功能,collection。我将Gollum的markdown格式的wiki文件放进Jekyll目录,直接利用Jekyll生成html文件。最终促使我全面转移到Jekyll的原因是想将blog和wiki天然的整合在一起,之前使用Gollum时,还得利用Pandoc转成html文件放到blog中。不如现在的自然。

Jekyll目前的collection功能尚处于开发阶段,很多功能还不全面,但是基本需求都能通过自己定义来满足。非常适合Jekyll用户,将blog和wiki统一管理。最后,欢迎参观(献丑了):
http://www.wogong.net
XXOO
    10
XXOO  
   2014-06-09 23:49:29 +08:00   ❤️ 1
请问楼主Bootstrap 下载的哪个 演示 啊.
Phariel
    11
Phariel  
   2014-06-09 23:52:36 +08:00   ❤️ 1
楼主是干货专家,已star。
TankyWoo
    12
TankyWoo  
OP
   2014-06-09 23:52:59 +08:00
@wangfengmadking 呵呵,谢谢支持。
TF
    13
TF  
   2014-06-10 00:12:59 +08:00   ❤️ 1
拿來寫 blog 都不錯的感覺
TankyWoo
    14
TankyWoo  
OP
   2014-06-10 00:29:30 +08:00
@orzfly 你的眼睛太毒了,这也能发现,已经改正,非常感谢 :)
TankyWoo
    15
TankyWoo  
OP
   2014-06-10 00:31:10 +08:00
@yxjxx 我的老博客上写的?估计现在看不到了,刚进行了误操作,现在mysql data不小心被我删掉了,自从换了Linode忘了把备份脚本跑起来,正在悲催的恢复中。
Geeker
    16
Geeker  
   2014-06-10 00:33:42 +08:00   ❤️ 1
看 LZ Blog 长大的
TankyWoo
    17
TankyWoo  
OP
   2014-06-10 00:34:43 +08:00
TankyWoo
    18
TankyWoo  
OP
   2014-06-10 00:42:16 +08:00
@yangyang
@ChiangDi
@ss098
@heyf
@vvtommy
@Phariel

感谢支持 :)

希望能对大家有帮助
TankyWoo
    19
TankyWoo  
OP
   2014-06-10 00:42:37 +08:00
@TF 呵呵,你可以试试,不过我觉得Jekyll是个更好的选择
TankyWoo
    20
TankyWoo  
OP
   2014-06-10 00:43:02 +08:00
@Geeker 看算法方面的吗?
TankyWoo
    21
TankyWoo  
OP
   2014-06-10 00:43:45 +08:00
@wogong 很棒,Jekyll 2.0出来后,看到一些新特性,还没有去尝试
sutar
    22
sutar  
   2014-06-10 00:45:24 +08:00   ❤️ 1
提过一个 pull request 的来支持下
TankyWoo
    23
TankyWoo  
OP
   2014-06-10 00:58:33 +08:00
@sutar 非常感谢,我在博客 http://blog.tankywoo.com/project/2014/05/27/simiki-v1-0.html 里提到过,感谢每一个支持我的朋友 :)
arc5ch
    24
arc5ch  
   2014-06-10 07:03:16 +08:00   ❤️ 1
很棒,已赞
hanchengluo
    25
hanchengluo  
   2014-06-10 07:18:53 +08:00
木有PYTHON服务器。有木有PHP版呢?
http://www.smartweb.cn
oott123
    26
oott123  
   2014-06-10 08:13:12 +08:00 via Android
请教一下,这样的个人 wiki 和类似 Evernote 这样的笔记软件相比,优势在哪里?
或者说,我觉得笔记软件就够用了啊。
humiaozuzu
    27
humiaozuzu  
   2014-06-10 08:27:43 +08:00   ❤️ 1
点个赞,但是从个人知识管理的角度来说,没有树级目录都不方便。。。
推荐用 VoodooPad or DEVONthink Pro,不推荐 Evernote
MaiCong
    28
MaiCong  
   2014-06-10 09:16:48 +08:00   ❤️ 1
赞一个! 简单实用!
hustlzp
    29
hustlzp  
   2014-06-10 10:58:21 +08:00   ❤️ 1
爱死LZ了!马上用起!
zichen0422
    30
zichen0422  
   2014-06-10 11:06:32 +08:00   ❤️ 1
赞!非常赞!
scola
    31
scola  
   2014-06-10 11:14:21 +08:00   ❤️ 1
赞,已star
hustlzp
    32
hustlzp  
   2014-06-10 11:17:29 +08:00
发现 @FarBox 也可以弄成类似的效果,需要自定义一个主题。
messense
    33
messense  
   2014-06-10 12:22:26 +08:00   ❤️ 1
关于 Markdown README long_description 发布到 PyPi 上,可以试试在发布到 PyPi 的时候自动用 pandoc 转成 reST 格式。可以参考下我这个项目里的 release.pysetup.py

https://github.com/messense/extender
immjun
    34
immjun  
   2014-06-10 12:52:44 +08:00
能支持全文搜索就更好了,有时候可能只记得了内容里面零碎的一点
RangerWolf
    35
RangerWolf  
   2014-06-10 13:09:11 +08:00
希望能添加一个搜索功能呢~
目前自己使用云笔记软件记录只是,最大的方便就是搜索。
只需要记得某个关键字就能搜到之前记录的东西,太爽了~
TankyWoo
    36
TankyWoo  
OP
   2014-06-10 13:32:49 +08:00
@immjun
@RangerWolf

现在我考虑到的搜索功能是直接源文件grep搜索

后期我考虑下搜索这块,感谢建议 :)
JoyNeop
    37
JoyNeop  
   2014-06-10 13:53:51 +08:00
@oott123 Evernote 的 notes 间不能方便地互相添加链接
oott123
    38
oott123  
   2014-06-10 14:04:04 +08:00 via Android
@JoyNeop Wiz 用户表示毫无压力,难道 Evernote 这种功能都没有?
jakwings
    39
jakwings  
   2014-06-10 14:06:33 +08:00
看来又是缺少交叉引用。
JoyNeop
    40
JoyNeop  
   2014-06-10 14:07:18 +08:00
@oott123 yes...
FarBox
    41
FarBox  
   2014-06-10 15:06:00 +08:00
@hustlzp FarBox是可以做到的。如果不自己写主题,用默认的doc.farbox.com/template克隆一个模板过去,按照约定规则组织文档就可以了。

如果更加复杂一些的,就需要自己再定义模板了。全文搜索支持英文和中文两种语言。

http://help.farbox.com/read/doc-generator


@TankyWoo 如果是作为静态生成器,又想加入搜索的功能,最简单粗暴的是用Google…… :)
TankyWoo
    42
TankyWoo  
OP
   2014-06-10 15:08:53 +08:00
@jakwings 你是指内部文章的快捷引用吗?类似Jekyll的post_url?
loryyang
    43
loryyang  
   2014-06-10 15:27:10 +08:00
发现一只大牛,感觉好遥远。。。
jakwings
    44
jakwings  
   2014-06-10 19:10:13 +08:00   ❤️ 1
@TankyWoo 不止是那样,还要能够知道有哪些文章引用过当前的文章。
TankyWoo
    45
TankyWoo  
OP
   2014-06-10 19:41:02 +08:00
@jakwings 赞!这个挺不错的,我加到todo里后期考虑下这个功能,目前先把快捷引用其它文章的功能实现。
TankyWoo
    46
TankyWoo  
OP
   2014-06-10 19:46:44 +08:00
@oott123 Evernote的一些功能我还没去了解,仅谈下我用过的。

我记得Evernote搜索好像是付费版的,这个不确定是不是。

另外,Evernote原生不支持Markdown,配合马克印象可以,我也用过,感觉不是很便捷,且容易造成多份copy

另外我当时写这个的原因就是因为我是终端控,对于开一些富文本的软件来编写,我更喜欢一个窗口分屏、一遍解决问题、一遍记录问题。

而且样式什么的也可以DIY,虽然我追求简洁,不过Evernote用来记录技术,实在不敢恭维,代码高亮等也没有。
TankyWoo
    47
TankyWoo  
OP
   2014-06-10 19:47:35 +08:00
@humiaozuzu 树级目录结构是指?
TankyWoo
    48
TankyWoo  
OP
   2014-06-10 19:48:29 +08:00
@hustlzp 呵呵,用了后可以把你的链接发出来学习一下
TankyWoo
    49
TankyWoo  
OP
   2014-06-10 19:49:25 +08:00
@messense 非常感谢,并且看到你的Pull Request了,我这几天把这块处理下。
TankyWoo
    50
TankyWoo  
OP
   2014-06-10 19:52:17 +08:00
@FarBox 非常感谢建议,我想到的也是添加Google站内搜索,在模板那块处理下应该就行。

其实我更喜欢的还是直接grep在源文件中搜索 :)
hustlzp
    51
hustlzp  
   2014-06-10 19:56:15 +08:00
@TankyWoo 呵呵,学习谈不上啦~以前都记在Evernote中,相当之乱,有待整理。
messense
    52
messense  
   2014-06-10 19:57:06 +08:00
@TankyWoo 考虑考虑把 Python-Markdown 换成 misaka 或者 mistune 吧,Python-Markdown 性能有点渣。 Benchmark:

https://github.com/lepture/mistune/issues/1
humiaozuzu
    53
humiaozuzu  
   2014-06-10 20:08:02 +08:00
@TankyWoo 就是可以有无限层级的意思,Evernote 就只有2层,Wiki 可以无限层,但是浏览起来不方便
yxjxx
    54
yxjxx  
   2014-06-10 21:26:46 +08:00   ❤️ 1
@TankyWoo
@hustlzp
无意冒犯,为什么会这么频繁的使用'呵呵'呢?

借用 @clowwindy 今天在github上说的话 "你说“呵呵”的时候可能没有恶意,对方可能不会这样认为,会觉得你轻蔑和没有诚意,从而误解你的意思。" https://github.com/clowwindy/shadowsocks-nodejs/issues/101
TankyWoo
    55
TankyWoo  
OP
   2014-06-10 21:33:02 +08:00
@yxjxx

对于“呵呵”,在正常谈话中,我的见解是:

“对于刚认识的**朋友**,交谈过程**开始**时的一种客气的语气词“
wogong
    56
wogong  
   2014-06-10 21:40:10 +08:00
@TankyWoo 已笑死。。。错过了围观 issue 的机会!

不过我觉得 @hustlzp 应该真的不知道吧。。还是我太天真了
hustlzp
    57
hustlzp  
   2014-06-10 21:51:12 +08:00
@yxjxx
@TankyWoo
@wogong 好吧...我真的用习惯了,至于第一声的呵呵我知道什么意思,但蛮少用...
TankyWoo
    58
TankyWoo  
OP
   2014-06-10 22:48:02 +08:00
@hustlzp
@wogong
@yxjxx

看来我以后得少用“呵呵”了,貌似以前和女友QQ聊天时,我经常“呵呵”就被批评过,不过那时确实是敷衍,因为正在写代码在。。。
TankyWoo
    59
TankyWoo  
OP
   2014-06-10 22:49:29 +08:00
@messense 赞!我最早是用的Python-Markdown,后来换了markdown2,发现问题颇多,就又换回前者了,你推荐的这两个我先调研下看看。

:)
TankyWoo
    60
TankyWoo  
OP
   2014-06-10 22:52:57 +08:00
@humiaozuzu 树形结构是一个很麻烦的结构,我现在的源文件就是树形目录存储/生成,不过在模板展现这块想了很久,也没想到一个好的办法去支持,所以现在默认主题还是选择对二级目录作展示
hustlzp
    61
hustlzp  
   2014-06-10 23:04:21 +08:00
问一下HTML页面上的条目顺序是怎么排的?好像不是按日期,也貌似不是按字母表。
TankyWoo
    62
TankyWoo  
OP
   2014-06-10 23:21:53 +08:00
@hustlzp 恩,按目录下的存放顺序获取结构字典,然后模板遍历字典,所以也无序了。这几天我会把结构调整为unicode后的字母顺序。

这块有点坑,之前实现的代码是字母序的,前阵子改动太多,把排序那块给移除了。 :(
hustlzp
    63
hustlzp  
   2014-06-10 23:24:32 +08:00
@TankyWoo 恩,慢慢来。
spoonwep
    64
spoonwep  
   2014-06-11 11:16:44 +08:00   ❤️ 1
看了一下好像很简洁的样子,非常喜欢,已star
southwolf
    65
southwolf  
   2014-06-11 16:54:20 +08:00
能问一下http://simiki.org/是linode么? 加了CDN之类的咩? 访问速度好快……
TankyWoo
    66
TankyWoo  
OP
   2014-06-11 17:49:24 +08:00
@southwolf 是Linode Fremont机房,这个机房比较稳定;没有用CDN,因为是纯静态html输出,所以速度较快。
TankyWoo
    67
TankyWoo  
OP
   2014-06-11 17:49:54 +08:00
@spoonwep 感谢支持!
ferock
    68
ferock  
   2014-06-12 19:06:53 +08:00
这货支持搜索么
TankyWoo
    69
TankyWoo  
OP
   2014-06-13 16:56:06 +08:00
@ferock grep -r 'keyword' content
iijjll
    70
iijjll  
   2016-01-16 15:19:21 +08:00 via iPad
一直用的单机版的 eDiary 电子日记本来记录工作的事情和问题总结,简单方便。
Jaycee
    71
Jaycee  
   2016-05-31 16:07:43 +08:00
楼主大牛,能求一个 yasimple_x2 的主题么?
TankyWoo
    72
TankyWoo  
OP
   2016-05-31 16:55:05 +08:00
@Jaycee 你好,这个主题等过几天新版本发布后放出来。因为新增一些功能,现在放出新主题也无法使用 :)
Jaycee
    73
Jaycee  
   2016-06-01 11:25:06 +08:00   ❤️ 1
期待大大的新版本哈✨✨
TankyWoo
    74
TankyWoo  
OP
   2016-06-01 23:11:24 +08:00
@Jaycee 谢谢支持 :)
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2709 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 02:03 · PVG 10:03 · LAX 19:03 · JFK 22:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.