Jekyll建站问题
序言
文章的诞生过程
本文描述jekyll建站时遇到的问题,由于对jekyll建站并无专门的学习和研究,所以该文章内容目前还不够系统。
本文中大多内容是这样产生的:
-
在jekyll的建站过程中首先遇到某些问题,然后将改问题放于FAQ中,通过orgmode结合GTD方法来管理
-
FAQ中的问题有些解决,有些没有解决,解决的问题或许会整理到更合适的文章章节中。
-
如上方式会快速形成一个jekyll建站文档的雏形,虽然不够系统,也反映了在建站经历的真实过程,便于有兴趣的朋友参考。
-
随着实践的增多,和文章内容的丰富,在更为熟悉之时会将所有FAQ相应内容归纳到合适的章节,该文章会逐渐形成一篇系统的文章。
WAIT/FORWARD FAQ <code>[13/61]</code>(<code>[21%]</code>)
DONE 在jekyll分类的hover上添加自动切换当前分类的代码
阅读源代码。
LATER 为jekyll添加帮助或者公告或者友情链接等菜单
此项记录最好整理到jekyll中相应的todo post中。
DONE 多说评论添加到 jekyll
多说评论框定制参考:
http://yusi123.com/2689.html
添加方式:
1、注册多说(用qq或者通常社交帐号即可)
2、站点管理生成自己的站点,然后会有地方生成相应的评论框代码。
3、将评论框代码添加到需要添加的地方即可。
可以参考:
http://liberize.me/tech/jekyll-use-duoshuo-comment-system.html
http://www.ituring.com.cn/article/114888
WAIT/FORWARD 如何体现父子目录的层次关系?
目前分类目录的实现方式:
-
categories包含各级分类子目录,文章存放在子目录中的
_posts
目录中。 -
各级子目录有
index.html
做为访问该目录的入口,并且该文件中包含该级目录的信息,
例如:--- layout: categories title: 命令 _name: command _parent: linux _path: [categories, study, linux, command] ---
-
通过
_data/categories.json
来描述层级目录的关系,便于显示。
参考源代码。
文章所述目录层次
描述站点目录信息的文件
LATER json?
MAYBE/FUTURE 如何借助变量而非常量显示一些文字?
如:
目录列表中的链接文字"记事"等,用xxx.title方式来显示。
主目录中文章的分类标题,用分类的title而非常量显示。
LATER 文章全屏显示?
WAIT/FORWARD 显示文章内容大纲?
MAYBE/FUTURE 嵌入flash等脚本特效如网盘
MAYBE/FUTURE 如何实现和规划标签?
网站主要用于阅读而非编辑,所以经常在线更新的东西,不适于用于这类网站。
NEXT 自动化建站编译与添加分类等的脚本
NEXT 本地动态相关脚本与配置:
MAYBE/FUTURE 可以用配置设置好本地ip。
NEXT 然后本地可以通过form提交调用本地脚本,完成文章的添加、删除等。
远程不用支持动态,因为远程的内容一般都是展示给别人的。更新的动作在本地就行,本地有动态即可。
MAYBE/FUTURE 脚本完成的内容实际是修改相应文件,然后commit、push。
通过本地动态,方便在线编辑文章。建议修改文件内容还是通过特定编辑器,比如 vim
, emacs
来进行,在线编辑器,还需另外调查。
CANCEL 但是仅限本地。这样便可对外展示,对本地而言动态,同时又不借助动态插件,达到动态效果。
NEXT 搜索?
参考:
http://holbrook.github.io/
http://readthedocs.org/projects/org-babel/
WAIT/FORWARD 建立菜单
右上角菜单来表示标签等,节省页面空间。
参考:
http://www.fuzihao.org/blog/2015/02/19/org-mode%E6%95%99%E7%A8%8B/
http://blog.binchen.org/categories/index.html
http://z.sdutlinux.org/soft/data/20120610002446/index.html
NEXT 规范一些写作规则
-
文章引用的附件和图片等内容存放到/data目录,名称前面有和posts文章一样的时间前缀,
根据文件类型先分类,分类固定后不应再改动,所以不规定具体分类,只规定文件类型。
例如:
`/data/image/2015-08-19-test_image.jpg`图片就是被`_posts/2015-08-19-xxx`文章引用的。 -
未完成的文章放置/draft目录中。
-
文内引用链接:
配置_config.yml,permalink=none,这样文章的站内链接就是其分类位置,当然排除_post路径段。
NEXT 如何显示未分类的内容?
DONE 链接的相对路径引用如何使用?比如引用一个文件等等?
参见: 测试代码
DONE 如何在_posts文章内部引用其他的_posts文章?
参见: 测试代码
DONE 如何实现子分类?
参见: 测试代码
DONE 如何计算每个分类中的内容数目?
liquid模板代码:
{%raw%}
{{site.categories.note|size}}
{%endraw%}
具体可参见:
http://www.tuicool.com/m/articles/INBnMz
http://higrid.net/c-art-jeklly_template_data.htm
DONE 插入图片的大小无法自动适配显示?
css代码:
img {
max-width:100%;
height:auto;
}
参见:
DONE markdown代码块中换行在主页中无法体现
属于标记语言解析问题。当前解决方式:换行之前上一行结尾追加2个以上空白;代码段凭借缩进来完成,代码段之前保留一空行。
INBOX html滚动条颜色如何定制?
INBOX jekyll置顶文章
INBOX Jekyll置顶文章、搜索功能、以及各类半成品文章片段的存放分类创建(不用每个文章都是属于某个体系)。
INBOX jekyll 评论权限的管理
DONE jekyll 点击顶部分类菜单不是回到页首,而是对当前页面刷新,以便回复默认分类结构
<a href={{page.url}}>分类</a>
INBOX jekyll左上部分top按钮的完善,目录位置的完善
DONE jekyll文章分界线不居中?
#post-list{
/*margin: 0px 0px;*/
padding: 0px 0px;
}
INBOX 代码框大小不自动随窗口而调整?
INBOX Jekyll “关于”与“更多”菜单
MAYBE/FUTURE jekyll 不支持markdown语法高亮
LATER jekyll 提示功能
光标停在某处,会自动提示文字,类似:
http://ergoemacs.org/emacs/elisp_library_system.html
INBOX 目前对orgmode+jekyll管理方式时orgmode中链接引用的路径问题需要解决。
INBOX Jekyll如何处理收藏的网址?
INBOX jekyll 上一页下一页上一篇下一篇
INBOX Jekyll中的附件图片,还是用这样的目录:../post_files/article/data/…
其中 post_files目录不止一个,随着目录层次而定,可能多个,这样迁移文章的时候,好迁移,也不用考虑相对路径的修改。
NEXT Jekyll Cublog迁移
随时间顺序进行,进度如下
- 随笔
例如:
---
layout: posts
title: 努力
tags: [gtd_done, others]
comments: true
---
我正在努力着让自己成为一个真正努力的人……
From:[努力 in cublog](http://blog.chinaunix.net/uid-9525959-id-2001753.html)
INBOX Jekyll 为文章添加额外信息,比如来源、转载等等。
INBOX jekyll设置复制选择文章的隐藏模式,双击可以激活选择复制功能
DONE jekyll 考虑将jekyll源码与站点结果分开,在github上存放站点结果, bitbucket上存放源码
DONE jekyll中评论框的布局调整,应该在page内容外
LATER 添加丰富动作,比如双击可以解开复制文章的功能等等
NEXT Jekyll分类菜单的宽度是否可以不自动改变?
NEXT jekyll 公共板,一个大的随意涂鸦的“留言板”,基于多说评论。
NEXT 搭建一个最基本的jekyll的方式,在另外一篇文章中已有体现,引用?
INBOX 应该考虑将签名信息放在下面,以便能在摘要中显示正文
LATER jekyll如何发布私有文件通过权限来控制访问?
LATER jekyll博客导入导出
LATER jekyll实现私有云与公有云可能需要了解的
-
git的子模块项目功能(私有云和公有云分别用两个库管理,私有云放在本地云库,公有云放在github或者bitbucket)。
-
javascript的cookie功能、公钥加密(密码)对称加密(内容),可以读取私有密码等信息加密存储,解密显示。
-
orgmode中的加密功能,可以撰写加密的org文件。
LATER jekyll搜索的改进
- 搜索方式通过前面的 "Q" 点击进行切换。
- 可以:
-
按标题搜索
使用正则表达式,具体参考代码。
<script> var search = getQuery("s"); {% for post in site.posts %} var article = '{{ post.title }}'; //by title var reg = new RegExp(search, "i"); //var article = '{{ post.content | strip_html| strip |strip_newlines | url_escape}}'; //if (article.indexOf(search) != -1) if (article.match(reg) != null) { document.write('[{{ post.date | date: "%F" }}]<a href="{{post.url}}"> {{ post.title }} </a> <br>'); document.write("<hr class='article_line'>"); } {% endfor %} </script>
-
按分类搜索
-
按内容搜索
-
按全文搜索
-
可搜索中文
js
获取字串时需使用decodeURI
进行转码,具体参考源码。//获取传递给html页面的参数 function getQuery(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); //if (r!=null) return unescape(r[2]); return null; if (r!=null) return decodeURI(r[2]); return null; }
-
MAYBE/FUTURE jekyll 网文分类规整
MAYBE/FUTURE jekyll排序功能
MAYBE/FUTURE jekyll文章导出功能
单篇文章导出,并且导出相关的引用?
LATER jekyll 如何实现相对路径迁移?
目前迁移之后,内部链接还是基于服务器根路径的路径。