simiki 是 Jigsaw of CxumoL 使用的 wiki 框架,属国产个人作品。
样式
- 换成原作者做的另一配色;
- 字体照例添上"Microsoft YaHei";
#container从原先的 style.css 复制出三个 shadow,粘过来,显出酷酷的阴影;【这种背景色下,一点也不明显- 其余不变。
简单粗暴·杂交两种首页
两种首页:
- %source%/index.md
- 根据文件结构,自动生成 wiki 目录
1.3 以后的 simiki,如果 site_config 的 index 为 true,按照第一种方式渲染,否则按第二种方式
这个处理办法,不太灵活。如果既能自编首页内容,又能保留自动生成的目录:目录或是放在首页之下,或是新开一页,是为目录页,岂不妙哉。
若想改成像现在这般,上面为自定内容,下面放置脚本生成的目录,须从两处着手。
本应更有妙招,奈何技术不精,下述方案,无不体现了简单粗暴的霸蛮风格。
改首页模板
/themes/simple/index.html
{% if site.index %} {{ page.content }} ooo {% else %} xxx {% endif %}
把 xxx , 复制到 ooo 的位置,结果没有用。应该是还有哪里缺了东西。
目录生成~移花接木
到底是拿我py编出来的,这时候赶紧趁机得意洋洋地炫耀其优越性:想改神马,直接改源码,改完马上就能运行。顺着报错提示,摸到了这里:
%python-env%/Lib/site-packages/simiki/generators.py
分析调试不表。
我不懂面向对象,若有大神看到以下胡闹,别打我。若能不嫌弃指点一二,更是感激。
把CatalogGenerator类的(除了__init__,get_template_vars,generate_catalog_html)各种函数,统统复制到CustomCatalogGenerator麾下。
传参进来
CustomCatalogGenerator(以下简称CCG) 比 CatalogGenerator(以下简称CG) 少进来一个参数pages。
__init__()里面,不知道为什么, CG 的 super() 第一个是self, 可是 CCG 的,第一个就不能是self。
反正我 CCG 的 __init__() 是这么写的:
def __init__(self, site_config, base_path, pages): super(CustomCatalogGenerator, self).__init__(site_config,base_path,pages) self.pages = pages
至于是哪一句起了作用,还是共同起作用……不管他,反正能用。
另外,cli.py 里 Generator.generate_catalog 相应的,不忘加上pages
百尺竿头
CCG的get_template_vars中生成自定内容的部分,到 page = {"content": idx_content} 为止,趁着还没有和 site_config 一起,打包到 tpl_vars 里面,赶紧夹带点私货。
self.site_config["structure"] = \ self.sort_structure(self.get_content_structure_and_meta())
好吧,所谓私货,其实也是从 CG 里搬运过来的
功成
生成目录
维基页面嘛,不都得摆个目录,装装b吗
其实它本来就支持 TOC,但是,文档里面并没有提到这个功能。说一下发现过程。
simiki 开源,托管在 github,先用 repo内搜索,发现是有 TOC 功能的。然并卵,不知道怎么用
抱着试一试的心态,又在issue搜了一遍,哈哈哈,居然找到了用法。
在需要 TOC 的地方写上
[TOC],即可。
想自动给每篇新page加目录。然而 simiki 耦合度并不象 hexo 那么低,又得到 site-packages/simiki/cli.py 里
找到函数 create_new_wiki,加一行 "[TOC]"
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。