Jekyllで編集履歴リンクをつけてGitHubに飛ばす

世の中にはWeb上に公開した文書を”無断”で直すことを絶対に許さない人たちがいます。
そのせいで「削除」「[追記ここから]〜[追記ここまで]」みたいな変な文化もできています。

まるでバージョン管理がなかった時代のソースコードのような見づらさです。

そこで、有効なのが編集履歴の公開です。
履歴を公開していれば文句を言われる筋合いはないので、気軽に編集できるようになります。

で、本題。

Jekyll & GitHub Pagesでサイトを公開している場合、編集履歴はすでにWeb上で公開されています。
あとはそこにリンクを貼ればいいわけです。

例えば、
http://spritekit.jp/matome/2013/10/11/japanese-sites/
から
https://github.com/tnantoka/spritekit.jp/commits/gh-pages/_posts/2013-10-11-japanese-sites.md
に飛ばしたいときどうすればいいか。

Jekyllのドキュメントを見ると、page.pathというまさしくその用途の変数がありました。

page.path

The path to the raw post or page. Example usage: Linking back to the page or post’s source on GitHub. This can be overridden in the YAML Front Matter.

 

早速、

_config.ymlに

を追加して、

_layouts/post.htmlに、

と書いたらうまく動きました。

Jekyllをご利用中の方は是非。

Chromeでフォームにscriptタグ等を入力して送信すると”data:;”にリダイレクトされる

Rails 4.0.1、Chrome 31.0.1650.57 での開発中に遭遇した。

The XSS Auditor blocked access to ‘URL’ because the source code of a script was found within the request. The server sent an ‘X-XSS-Protection’ header requesting this behavior.

というエラーがコンソールに出て、画面は真っ白に。

エラーログにもある通り、理由はレスポンスヘッダに、

X-XSS-Protection: 1; mode=block

が含まれるようになったから。
参考:Ruby on Rails Security Guide — Ruby on Rails Guides

scriptタグだけじゃなく、iframeなどXSSを発生させそうな内容があるとChromeがはじく。
これらのタグの入力を許可したい場合は、

すればこの機能は無効になる。
CMSでHTML入力機能があるなどやむを得ない場合に。

そうじゃなければ、そもそもhtml_safeしなければいい。(エスケープされていればこの挙動にならないはず)

ChromeのデベロッパーツールでFirebugの持続

Firefoxの半分はFirebugでできていると思っています。
いや、ほんとにFirebugがなければ僕のメインブラウザはとっくにSafariがChromeになっていたことでしょう。

そんなFIrebugの機能の中でわりとお世話になるのが「持続」。
画面遷移した後もJSのエラーログなどをクリアせずに残してくれます。

例えば、”イベントハンドラ内でreturn falseする”ことでクリックイベントをキャンセルしているような、行儀の悪い(※)ライブラリの内部でエラーが起きて、予期せぬページ遷移が発生した時。この機能が犯人探しに役立ちます。
※ preventDefault()を使いましょう。return falseだとそこに辿り着くまでにJSエラー起きたらイベントキャンセルされないですよ!

というわけで、普段はFirefoxで開発しているんですが、今回Chromeだけで発生するややこしめのエラーに遭遇したので、デベロッパーツールでデバッグするはめになった。
で、よく考えると持続の仕方がわからなかったのでメモ。

1. 右下の設定(ギア)アイコンをクリック

chrome_devtool_keep_1

2. Preserve log upon navigation をチェック。

chrome_devtool_keep_2

 

たったこれだけ。知っていれば簡単。
ただ、Firebugと比べると切り替えるのが面倒だ…。

GitHub風のIdenticonを作るやつ

8月から、GitHubでGravatarを設定していない人は、Identiconが表示されるようになったんですね。
今更知りました。

で、さっそく僕も使おうと思ったら…

identicon

だ、ださい!

しかも

that are generated using a hash of the user’s ID.

とか書いてあるからたとえusernameを変えても一生背負っていかなければいけないっぽい。

これは嫌だということで、自分好みのGitHub風Identiconを作れるサービス(という程でもないけど)を作ってみた。

identiconshttp://identicons.herokuapp.com/

まぁ結局今のGravatarのままにすることにしたので、使ってないんですけどねw
久々に思いつきで手を動かしたらとても楽しくてストレス発散になりました。

Sinatra×Herokuはこういう用途に最適ですね。HTTPSでもアクセスできるし。とはいえどちらも全然わかってないので、もっと触んなきゃなぁ。

実用性0ですが、興味のある方は触ってみてください。

ソースはこちらです。

JsanyがMacPeopleで紹介されてた!

昨日、友達に「載ってたよ」と教えてもらって知った。
オススメアプリ一覧的なものに並んでる程度かなぁと思って、今日本屋に行ったついでに見てみたら、なんと1ページ使って紹介してくれてた!

記念にまんまと買っちゃいましたよ。
2013年9月号の62ページです。
こんな感じ。

jsany_macpeople

ちょっと開発のモチベーション下がり気味だったけど、いい刺激になりました。
さっさとDropboxインポート/エクスポートのバグ直そうと思います。


Mac People (マックピープル) 2013年 09月号 [雑誌]

※ ちなみに、アプリ名の正しい読み方は「じぇいえすえにー」です^^

 

Jsany – JavaScript Anywhere 2.1.0(無料)App
カテゴリ: ユーティリティ, 仕事効率化
販売元: Tatsuya Tobioka – Tatsuya Tobioka(サイズ: 6.1 MB)
全てのバージョンの評価: (170件の評価)
+ iPhone/iPadの両方に対応

1 3 4 5 6 7 27  Scroll to top