Jekyll文章列表摘要设置

目前使用的主题并没有索引文章摘要,导致某些文章在列表中预览内容量非常大. 看了下Jekyll自身是有提供文章摘要支持的. 索引页面添加摘要显示 绝大部分情况下需要修改的内容处于index.html中. 将摘要显示设置为post.excerpt | strip_html 添加摘要 Jekyll添加摘要的方式有2种, 第一种 通过分隔符的方式. 需要先在_config.yml中配置分隔符 excerpt_separator: '<!-- more -->' 然后就可以在正文中通过插入<!-- more -->来将以上的内容标记为文章摘要. 第二种 直接添加post属性excerpt --- layout: post cover: 'assets/images/cover4.jpg' navigation: True title: I Have a Dream date: 1963-08-28 10:18:00 tags: speeches subclass: 'post tag-speeches' logo: 'assets/images/ghost.png' author: martin categories: martin excerpt: I am happy to join with you today in what will go down in history as the greatest demonstration for freedom in the history of our nation. »

通过travis自动将Jekyll持续部署到服务器上

迁移回Jekyll以后更新博客就成了比较麻烦的事情,Jekyll处于本地每次发布就需要在本地生成静态文件以后上传到服务器上. 在很久以前这一系列的工作只能手动完成,不过travis-ci给了我们提供了更方便高效的持续集成解决方案. 首先 我们到travis-ci使用Github帐号登录,授权完成后进入个人页面开启你需要进行持续集成的项目,就像下图中 添加.travis.yml文件 在项目中新建.travis.yml, language: ruby rvm: - 2.3.3 before_install: script: after_success: 由于Jekyll是ruby环境下的框架所以language项填写的ruby, before_install可以视为正式执行前的准备工作, script则为正式执行阶段, after_success为执行成功后的处理. 执行 在travis启用相应项目并且在添加.travis.yml文件提交推送到Github后travis-ci会很快开始运行. 并且可以看到类似下图中这样的控制台执行过程, 成功后的部署 执行成功后可以通过ssh以及scp将生成好的静态文件部署到服务器上.不过不管是直接在.travis.yml中写服务器密码还是上传私钥都相当危险. travis-ci专门为私钥的加密准备了一套方案. ssh-keygen -t ecdsa -f travis_ssh_key gem install travis travis login cd /path/to/repo travis encrypt-file travis_ssh_key --add 执行完成后会生成一枚travis_ssh_key.enc,这就是加密后的私钥只需要将该文件放入代码库就行,而上一步的travis_ssh_key不能放入代码库. 同时你会发现在.travis.yml文件中自动添加了类似如下内容: before_install: - openssl aes-256-cbc -K $encrypted_b64ef2595e9a_key -iv $encrypted_b64ef2595e9a_iv -in deploy_ecdsa.enc -out ~/.ssh/deploy_ecdsa -d 再将travis_ssh_key.pub内容上传到服务器上. 这样我们就可以在after_success中进行操作了,就像这样 after_success: - ssh -i ~/.ssh/deploy_ecdsa jekyll@107.167.176.182 "mkdir /home/jekyll/_content/" - scp -i ~/.ssh/deploy_ecdsa -r _site/* jekyll@107. »

博客从Ghost切换到Jekyll

快4年前开始用Ghost写博客,当时觉得Ghost最大的优势就是支持Markdown格式.相比Wordpress来说不需要安装mysql和php同时和Hexo以及Jekyll相比也有强大的后台. 然而在发展了几年以后Ghost迭代到了1.0版本, 在1.0版本中出现了以下几个特点: 开始推荐使用mysql数据库,仍然能够指定为sqlite但是支持肯定越来越薄弱. 改进了编辑器,虽然在一定程度上仍然兼容Markdown但是还是给人一种不舒服的感觉. 开始推广自己的CL工具,不能像1.0版本以前那样直接通过npm安装和运行.并且这玩意还没做好,运行和更新非常容易报错. Ghost默认主题是一款杂志主题而非博客,也从侧面反应出他们的着重发展方向.marketplace中也没几个支持1.0的博客主题,并且90%为收费主题. 所以一直坚持使用0.11.12长期支持版, 然而长期支持版其实就是长期没支持慢慢就淘汰版本.. 斟酌再三决定换回Jekyll. 并且很幸运还找到了和Ghost 0.11.12默认主题几乎一致的Jekyll主题jekyll-casper. »