Programming 板


LINE

原文 http://bit.ly/1PqYEJT JS 很有吸引力、Hexo 是台湾人写的、速度比 Octopress 快、default 支援 GitHub Flavored Markdown,所以选 Hexo。 Hexo 是一个 static site generator,static site 是指 website 由 static web page 所组成。获取 static web page 的 client 端得到的 web page,和储存於 server 端的 web page 一模一样。与 dynamic website 的 server 端即时产生 web page 传送给 client 端不同,static site 的 server 端不需要具备即时生成不同 web page 的能力。 Travis-CI 提供了 hook GitHub repository event 的功能。开启 hook 後,便会依照 repository 里 .travis.yml 内的设定来执行。 GitHub repository 特定的 branch 会被 GitHub 当作 static web site 的内容来 render,render 的引擎是 Jekyll,因此可以放纯 HTML 档案也可以放 Jekyll 会 parse 的档案。 本来 Hexo 的运作流程是,在 local 用 markup 撰写文章,完成後执行 Hexo 的命令来 parse 并 render 原始档案,生成由 HTML 构成的 static web site,再将生成出来的内容 push 到 GitHub repository 的特定 branch。 但是依赖 local Hexo 指令有个缺点:在没有装 Hexo 环境的装置就没办法更新 web site 了。Hexo 环境虽然也不是很难安装,但是要装东西就是麻烦,尤其是突然有点灵感想要用手机或平板来写点东西时特别困扰。 所以我们应该妥善运用网路上佛心来着的服务,像是 Travis CI。我们可以把透过 Hexo 产生 HTML 并 push 到 GitHub 这个流程,丢到 Travis CI 上,让它来代理。Hook Travis CI 很简单,其他地方也有专门针对 Hexo 的教学了。这篇文章的重点是在於,介绍一个 tricky 的方法来 push。 GitHub 支援 token 认证,token 就像是另一把随时可以被回收钥匙,透过 token 就可以有 write repository 的权限。可是很可惜的,目前 GitHub 没有提供为个别的 repository 产生 token 的服务,每一个 token 都能 write GitHub 帐号下的所有 repository。这实在有点恐怖。还好 GitHub 支援每一个 repository 单独设定 SSH public key 认证。所以重点来了,我们该怎麽让 Travis CI 拥有 SSH key pair 呢?总不能大剌剌的把 key pair 放在 repository 里吧?免费的 repository 都是公开的,这样做也太搞笑了。另一种方法是,先把 SSH key 加密再放上 Travis CI,把密码写在 Travis CI 的环境变数里,让 Travis CI runtime 再把 key 解出来。目前网路上只看到这二种做法。 不过上面这二种方法都有用到 Travis CI 的环境变数,我实在很纳闷,何不直接把 SSH key pair 当成变数就好了?也许是因为 public key 的内容含有空白和换行及其他特殊字元,这些字元在 runtime 直接 assign 给 shell 的 variable 会发生与期待不符的结果吧。这边要说的 tricky 方法就是,把那二把 key 先用 Base64 encode,这样就可以正确 assign 给 shell 的 variable,runtime 再把 variable decode 回 key file。这样这个流程就能顺利走完了! 以後我们就可以直接在 GitHub 网页上编辑 Markdown 档案,让 GitHub 网页来帮我们 push、Travis CI 帮我们 render 和 push。也可以搭配其他线上的所见即所得编辑器,有些编辑器还可以连结 GitHub 帐号。总之这样以後就可以只管专心写文章,不必做 routine 的事。 接着,因为刚好有闲置的树莓派,我索性把 static site 放在树莓派上。所以上面这个自动化流程还必须涵盖到更新树莓派上面的内容。刚好 GitHub 有提供 webhook 服务,当 repository 更新时,GitHub webhook 会发 http request 出来。GitHub 上有网友写好现成的 webhook handler,抓下来设定一下,放在树莓派上面跑,这样就可以透过 GitHub 的 request 来 trigger 自动更新 website 了。 -- Sent by PTTNOW from my Nexus 5 -- 号称自由开放的 PTT,其实不过是帐号站长 disFabulous 和 Makotoyen 的一言堂罢了。 http://bit.ly/1XDkSKr --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.178.56
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1446963617.A.7BC.html ※ 编辑: changyuheng (36.224.178.56), 11/08/2015 14:21:47
1F:推 chungyih: 推!但网址不对 49.216.167.42 05/10 07:47







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP