From 4ce881dd67ae51a46ed4c1a2c919e18b28ac696b Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 15:40:45 +0900 Subject: [PATCH 01/21] for pr From 7cb6690e668cbcd65b1311b94c6b430b886e3a46 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 16:43:28 +0900 Subject: [PATCH 02/21] remove metadata on posts --- posts/2013-09-19-httpie.md | 8 +------- posts/2013-09-25-nested-mongoose.md | 8 +------- posts/2013-09-27-nginxdesocket-dot-io.md | 8 +------- posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md | 8 +------- posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md | 8 +------- posts/2013-10-06-vimdebu-wan.md | 8 +------- posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md | 8 +------- posts/2013-10-16-nodectl-metutiyabian-li.md | 8 +------- posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md | 8 +------- ...0-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md | 8 +------- posts/2013-10-23-texdepngwotie-ru.md | 8 +------- posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md | 8 +------- ...woonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md | 8 +------- posts/2013-12-11-logwatch-vps-every-day.md | 8 +------- posts/2013-12-12-contribute-taberareloo-tumblr-403.md | 8 +------- ...2013-12-12-tenor-twitter-userstream-suddenly-e-case.md | 8 +------- posts/2013-12-14-vagrant-berkshelf-plugin.md | 8 +------- posts/2014-01-18-went-rails-terakoya-3.md | 8 +------- posts/2014-01-21-sweet-js-brunch.md | 8 +------- posts/2014-01-25-iterm2-append-dotfiles-i.md | 8 +------- posts/2014-01-30-kuriyama-every.md | 8 +------- posts/2014-02-01-gyazo-on-rails-developer-talk.md | 8 +------- posts/2014-02-03-update-coffee-script-with-mocha.md | 8 +------- posts/2014-02-08-git-management-dont-arc.md | 8 +------- posts/2014-02-08-tex-to-gitignore.md | 8 +------- posts/2014-02-12-png-eps-poorer-without-changing.md | 8 +------- posts/2014-02-15-graduate-technology.md | 8 +------- ...2-20-clash-of-clans-reddit-questioned-spoken-answer.md | 8 +------- posts/2014-02-21-google-chrome-portrait-data-url.md | 8 +------- posts/2014-03-03-mountain-lion-tumblr.md | 8 +------- posts/2014-03-10--mounting.md | 8 +------- ...4-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md | 8 +------- posts/2014-03-21-buy-imac-bluetooth.md | 8 +------- posts/2014-05-03-windowflow-hyperswitch-becomes.md | 8 +------- posts/2014-05-04-zsh-becomes.md | 8 +------- .../2014-06-12-phantomjs-on-ubuntu-japan-text-language.md | 8 +------- .../2014-06-15-coffee-script-package-number-reserved-t.md | 8 +------- posts/2014-06-28-ghq.md | 8 +------- posts/2014-06-29-journal-by-go.md | 8 +------- posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md | 8 +------- posts/2014-07-02-alias-upcd.md | 8 +------- posts/2014-07-21-cabinjs.md | 8 +------- posts/2014-07-23-made-twlv.md | 8 +------- posts/2014-07-30-boom-replaced-ab.md | 8 +------- posts/2014-08-04-output-tsv-from-psql.md | 8 +------- posts/2014-08-04-shell-command-tr-split.md | 8 +------- posts/2014-08-11-shields-io.md | 8 +------- posts/2014-08-12-install-imagemagick-on-mac.md | 8 +------- posts/2014-08-20-api-blueprint-indent.md | 8 +------- posts/2014-08-20-workshopper.md | 8 +------- posts/2014-08-22-create-yasuharu-visualize.md | 8 +------- posts/2014-08-22-github-org-is-private-in-default.md | 8 +------- posts/2014-08-25-ngrok-awesome.md | 8 +------- posts/2014-09-04-chatwork-md-0-1-0.md | 8 +------- posts/2014-09-20-created-qls.md | 8 +------- posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md | 8 +------- ...014-09-26-github-timeline-is-analyzable-on-bigquery.md | 8 +------- posts/2014-10-02-clear-up-tmux-keybinds.md | 8 +------- posts/2014-10-03-created-rpt.md | 8 +------- posts/2014-10-04-rpt-updated.md | 8 +------- posts/2014-10-08-dependency-injection-in-node-js.md | 8 +------- posts/2014-10-08-forked-feedback.md | 8 +------- ...10-09-translated-JavascriptBattle-rules-in-japanese.md | 8 +------- posts/2014-10-10-coped-with-rss.md | 8 +------- posts/2014-10-14-created-universal-url-modifier.md | 8 +------- posts/2014-10-27-updated-hyperswitch.md | 8 +------- posts/2014-11-19-facebook-flow-first-impression.md | 8 +------- posts/2014-12-01-the-technology-behind-vj.md | 8 +------- posts/2014-12-15-setup-yosemite-machines.md | 8 +------- posts/2014-12-17-fixed-zsh-5-0-7.md | 8 +------- posts/2014-12-24-created-md2wp.md | 8 +------- 71 files changed, 71 insertions(+), 497 deletions(-) diff --git a/posts/2013-09-19-httpie.md b/posts/2013-09-19-httpie.md index 0f098f9..7d16381 100644 --- a/posts/2013-09-19-httpie.md +++ b/posts/2013-09-19-httpie.md @@ -1,10 +1,4 @@ -{ - title: "httpie", - date: "2013-09-19", - description: "httpie", - url: "httpie" -} - +# httpie http://qiita.com/yuku_t/items/5df06d50c4c349cc0c1b diff --git a/posts/2013-09-25-nested-mongoose.md b/posts/2013-09-25-nested-mongoose.md index c5a3708..c4ddfde 100644 --- a/posts/2013-09-25-nested-mongoose.md +++ b/posts/2013-09-25-nested-mongoose.md @@ -1,10 +1,4 @@ -{ - title: "node.jsのmongooseでnestしたobjectをpopulateする", - date: "2013-09-25", - description: "node.jsのmongooseでnestしたobjectをpopulateする", - url: "mongoose-nest-populate" -} - +# node.jsのmongooseでnestしたobjectをpopulateする `node.js` の `mongoose` でネストしたドキュメントを `populate` したいときの話。 diff --git a/posts/2013-09-27-nginxdesocket-dot-io.md b/posts/2013-09-27-nginxdesocket-dot-io.md index 477b784..fb17ef0 100644 --- a/posts/2013-09-27-nginxdesocket-dot-io.md +++ b/posts/2013-09-27-nginxdesocket-dot-io.md @@ -1,10 +1,4 @@ -{ - title: "nginxでsocket.io", - date: "2013-09-27", - description: "nginxでsocket.io", - url: "nginx-with-socket-io" -} - +# nginxでsocket.io 追い詰められて構築したさくらVPSにsocket.io on nginxを構築した。 http://d.hatena.ne.jp/yoshi-ken/20120205 diff --git a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md index 11134e2..d953a06 100644 --- a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md +++ b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md @@ -1,10 +1,4 @@ -{ - title: "さくらvpsの初期設定", - date: "2013-09-27", - description: "さくらvpsの初期設定", - url: "sakura-vps-init" -} - +# さくらvpsの初期設定 超絶追い詰められて勢いでさくらVPSを構築した。 http://morizyun.github.io/blog/sakura-vps-centos63-ssh-setup/ diff --git a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md index 7627197..ef19a19 100644 --- a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md +++ b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md @@ -1,10 +1,4 @@ -{ - title: "nginxでサブドメインの指定", - date: "2013-10-06", - description: "nginxでサブドメインの指定", - url: "nginx-sub-domain" -} - +# nginxでサブドメインの指定 nginxでサブドメインの指定をするときにはサブドメインの分だけ `server` を書いておけばいいっぽい。 ``` diff --git a/posts/2013-10-06-vimdebu-wan.md b/posts/2013-10-06-vimdebu-wan.md index 74395fe..e06f1f6 100644 --- a/posts/2013-10-06-vimdebu-wan.md +++ b/posts/2013-10-06-vimdebu-wan.md @@ -1,10 +1,4 @@ -{ - title: "vimで補完", - date: "2013-10-06", - description: "vimで補完", - url: "vim-comp" -} - +# vimで補完 vim で補完をしたい。 完成形: diff --git a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md index 0af43c4..d4232f4 100644 --- a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md +++ b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md @@ -1,10 +1,4 @@ -{ - title: "VPSにgitのリモートリポジトリをつくる", - date: "2013-10-06", - description: "VPSにgitのリモートリポジトリをつくる", - url: "vps-git-remote-repo" -} - +# VPSにgitのリモートリポジトリをつくる 初回のみ ``` diff --git a/posts/2013-10-16-nodectl-metutiyabian-li.md b/posts/2013-10-16-nodectl-metutiyabian-li.md index 2d89cc6..20b9524 100644 --- a/posts/2013-10-16-nodectl-metutiyabian-li.md +++ b/posts/2013-10-16-nodectl-metutiyabian-li.md @@ -1,10 +1,4 @@ -{ - title: "nodectl めっちゃ便利", - date: "2013-10-16", - description: "nodectl めっちゃ便利", - url: "nodectl-is-awesome" -} - +# nodectl めっちゃ便利 https://github.com/geta6/nodectl node.js のプロジェクトを走らせるときに、ファイルを監視して再起動だったり、環境やポートの情報も `.nodectl.json` に設定を書いておくだけでいい。便利。サンプルの json は README.md が詳しいので略。 diff --git a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md index 740f04f..af01cad 100644 --- a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md +++ b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md @@ -1,10 +1,4 @@ -{ - title: "socket.io で CORS にハマったメモ", - date: "2013-10-18", - description: "socket.io で CORS にハマったメモ", - url: "socket-io-cors" -} - +# socket.io で CORS にハマったメモ `api.hoge.jp` で `socket.io` を走らせてるときに `hoge.jp` から Websocketで通信しようとしたら案の定 `CORS` エラーが出てハマった。`node.js` の `Express` では適当にミドルウェア書いておけば抜けられるのは知っていたのだけれど、`socket.io` でどうすればいいのかわからなかった。 https://groups.google.com/forum/#!topic/socket_io/Fkq9Pyc8s6E diff --git a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md index 41829ea..58090cc 100644 --- a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md +++ b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md @@ -1,10 +1,4 @@ -{ - title: "hubotとhipchatでウワサのChatOpsの準備", - date: "2013-10-22", - description: "hubotとhipchatでウワサのChatOpsの準備", - url: "chatops-with-hubot" -} - +# hubotとhipchatでウワサのChatOpsの準備 むかし見かけたけど、あまり便利さがわからなかったのでスルーしていた `hubot` が面白そうだったので、ちょっと触ってみることにした。 目標は、サービスのデプロイや、通知なんかを一手に管理できる状態。 diff --git a/posts/2013-10-23-texdepngwotie-ru.md b/posts/2013-10-23-texdepngwotie-ru.md index 8870471..5f1e6c4 100644 --- a/posts/2013-10-23-texdepngwotie-ru.md +++ b/posts/2013-10-23-texdepngwotie-ru.md @@ -1,10 +1,4 @@ -{ - title: "texでpngを貼る", - date: "2013-10-23", - description: "texでpngを貼る", - url: "tex-on-png" -} - +# texでpngを貼る TeXで `.png` ファイルを貼るのがダルかったのでメモ。 画像を貼るときは `\includegraphics` というクソ長いタグを使う。 diff --git a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md index 9a6ea4d..5ef27ea 100644 --- a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md +++ b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md @@ -1,10 +1,4 @@ -{ - title: "gitでpushデプロイを実現する", - date: "2013-10-25", - description: "gitでpushデプロイを実現する", - url: "git-push-deploy" -} - +# gitでpushデプロイを実現する 参考: http://qiita.com/fnobi/items/98bd5d1c83c010842733 `nodectl` がとても便利なのでドンドン使っている(http://tech.jgs.me/2013/10/16/nodectl-metutiyabian-li/)。この `nodectl` 、ディレクトリを監視して自動でリロードする機能も備わっているので、`push` をフックに `pull` してやれば自動的にデプロイされることに気付いた。`forever` にもそんな機能があったはずなので、`forever` でもできるとおもう。 diff --git a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md index 068c21e..87952dd 100644 --- a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md +++ b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md @@ -1,10 +1,4 @@ -{ - title: "tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題", - date: "2013-11-22", - description: "tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題", - url: "tmux-iterm2-with-mouse" -} - +# tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題 http://qiita.com/u1tnk/items/9a680d16065217015e16 の通り、opt(alt)+ドラッグでOKだそう。 diff --git a/posts/2013-12-11-logwatch-vps-every-day.md b/posts/2013-12-11-logwatch-vps-every-day.md index c85459b..16108e6 100644 --- a/posts/2013-12-11-logwatch-vps-every-day.md +++ b/posts/2013-12-11-logwatch-vps-every-day.md @@ -1,10 +1,4 @@ -{ - title: "logwatch で vps のログを毎日チェックする", - date: "2013-12-11", - description: "logwatch で vps のログを毎日チェックする", - url: "logwatch-is-awesome" -} - +# logwatch で vps のログを毎日チェックする http://dogmap.jp/2011/05/12/vps-security/ で logwatch が紹介されていたのでいれてみた。 diff --git a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md index 4632a91..2f50af6 100644 --- a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md +++ b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md @@ -1,10 +1,4 @@ -{ - title: "taberareloo で tumblr への投稿が 403 になるときの対処", - date: "2013-12-12", - description: "taberareloo で tumblr への投稿が 403 になるときの対処", - url: "taberareloo-403" -} - +# taberareloo で tumblr への投稿が 403 になるときの対処 taberareloo から tumblr に投稿しようとすると 403 が出て生きた心地がしなかった。 対処は簡単で、 diff --git a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md index 7b9ca7f..1549762 100644 --- a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md +++ b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md @@ -1,10 +1,4 @@ -{ - title: "twitter の userstream が突然調子悪くなる案件", - date: "2013-12-12", - description: "twitter の userstream が突然調子悪くなる案件", - url: "twitter-userstream-garbage" -} - +# twitter の userstream が突然調子悪くなる案件 `node.js` から twitter の userstream を扱うのには、`ntwitter` は挙動がバギーなので `user-stream` を使っている。 https://github.com/aivis/user-stream diff --git a/posts/2013-12-14-vagrant-berkshelf-plugin.md b/posts/2013-12-14-vagrant-berkshelf-plugin.md index bdb25a5..fa3a2c7 100644 --- a/posts/2013-12-14-vagrant-berkshelf-plugin.md +++ b/posts/2013-12-14-vagrant-berkshelf-plugin.md @@ -1,10 +1,4 @@ -{ - title: "vagrant-berkshelf plugin がインストールできないときの対処", - date: "2013-12-14", - description: "vagrant-berkshelf plugin がインストールできないときの対処", - url: "vagrant-berkshelf-crash" -} -# **Vagrant の最新版をインストールしろ** +# vagrant-berkshelf plugin がインストールできないときの対処 以上。 diff --git a/posts/2014-01-18-went-rails-terakoya-3.md b/posts/2014-01-18-went-rails-terakoya-3.md index 5b05d09..ef64bd9 100644 --- a/posts/2014-01-18-went-rails-terakoya-3.md +++ b/posts/2014-01-18-went-rails-terakoya-3.md @@ -1,10 +1,4 @@ -{ - title: "第3回Rails寺子屋に参加してきた", - date: "2014-01-18", - description: "第3回Rails寺子屋に参加してきた", - url: "went-3rd-rails-terakoya" -} - +# 第3回Rails寺子屋に参加してきた Rails寺子屋 http://rails.terakoya.io/ Railsはメジャーバージョンが上がる度に「そろそろ本格的に体得しておこう...」と意気込んではじめるものの、railstutorialをやってふむう?となって以降あまり触らないという不遜な付き合いを続けてきたのだけれど、たまたま都合がついたのでエイヤッと参加してきた。 diff --git a/posts/2014-01-21-sweet-js-brunch.md b/posts/2014-01-21-sweet-js-brunch.md index 1aed7d4..bc2a064 100644 --- a/posts/2014-01-21-sweet-js-brunch.md +++ b/posts/2014-01-21-sweet-js-brunch.md @@ -1,10 +1,4 @@ -{ - title: "sweet-js-brunch をつくった", - date: "2014-01-21", - description: "sweet-js-brunch をつくった", - url: "made-sweet-js-brunch" -} - +# sweet-js-brunch をつくった https://github.com/e-jigsaw/sweet-js-brunch Chaplin.js (http://chaplinjs.org/) がよさげで、Chaplin のプロダクトのビルドツールとして brunch (http://brunch.io/) というツールが使われていて、便利そうだったのでぼちぼち触っていた。 diff --git a/posts/2014-01-25-iterm2-append-dotfiles-i.md b/posts/2014-01-25-iterm2-append-dotfiles-i.md index b2a44b5..fe7ebce 100644 --- a/posts/2014-01-25-iterm2-append-dotfiles-i.md +++ b/posts/2014-01-25-iterm2-append-dotfiles-i.md @@ -1,10 +1,4 @@ -{ - title: "iTerm2 のカラースキームを dotfiles に追加した", - date: "2014-01-25", - description: "iTerm2 のカラースキームを dotfiles に追加した", - url: "iterm2-color-scheme" -} - +# iTerm2 のカラースキームを dotfiles に追加した iTerm2 のオシャカラースキームリポジトリを見つけたのでさっそく clone して使ってみた。 https://github.com/baskerville/iTerm-2-Color-Themes diff --git a/posts/2014-01-30-kuriyama-every.md b/posts/2014-01-30-kuriyama-every.md index f7d922f..a723d65 100644 --- a/posts/2014-01-30-kuriyama-every.md +++ b/posts/2014-01-30-kuriyama-every.md @@ -1,10 +1,4 @@ -{ - title: "栗山さんを毎日見れるようにした", - date: "2014-01-30", - description: "栗山さんを毎日見れるようにした", - url: "kuriyama-san-saikou" -} - +# 栗山さんを毎日見れるようにした ![](http://25.media.tumblr.com/4597e75f432494136b42f06716e45a09/tumblr_n06zcilVpq1qa749mo1_1280.jpg) 境界の彼方というアニメが去年の暮れまで放送していて、面白かったのでみていた。最終回の余計なパート以外は87点だけど、あの最後の最後の最悪の終わり方のせいでマイナス2億点という画竜点睛を欠くアニメだった。 diff --git a/posts/2014-02-01-gyazo-on-rails-developer-talk.md b/posts/2014-02-01-gyazo-on-rails-developer-talk.md index bff906a..7d72291 100644 --- a/posts/2014-02-01-gyazo-on-rails-developer-talk.md +++ b/posts/2014-02-01-gyazo-on-rails-developer-talk.md @@ -1,10 +1,4 @@ -{ - title: "Gyazo on Rails Developer Talk に行ってきた", - date: "2014-02-01", - description: "Gyazo on Rails Developer Talk に行ってきた", - url: "gyazo-on-rails-developer-talk" -} - +# Gyazo on Rails Developer Talk に行ってきた ![](http://farm4.staticflickr.com/3668/12236808555_9c0741ec96_z.jpg) Gyazo さんがバックエンドを Ruby on Rails に概ね(一部まだPHPだそう)移行されたとのことで、記念イベントが開催されていたので参加してきた。Gyazo は名前は知っていたけど実態は全然知らなくて、京都で開発されてるって知ったのも最近だったようにおもう。 diff --git a/posts/2014-02-03-update-coffee-script-with-mocha.md b/posts/2014-02-03-update-coffee-script-with-mocha.md index b9039b0..aab34e9 100644 --- a/posts/2014-02-03-update-coffee-script-with-mocha.md +++ b/posts/2014-02-03-update-coffee-script-with-mocha.md @@ -1,10 +1,4 @@ -{ - title: "coffee-script を 1.7 にしたら mocha が死ぬときの対応", - date: "2014-02-03", - description: "coffee-script を 1.7 にしたら mocha が死ぬときの対応", - url: "coffee-1-7-mocha-crash" -} - +# coffee-script を 1.7 にしたら mocha が死ぬときの対応 coffee-script のバージョン1.7がリリースされたので、アップデートしたら mocha が ``` diff --git a/posts/2014-02-08-git-management-dont-arc.md b/posts/2014-02-08-git-management-dont-arc.md index 1f671f1..add08f8 100644 --- a/posts/2014-02-08-git-management-dont-arc.md +++ b/posts/2014-02-08-git-management-dont-arc.md @@ -1,10 +1,4 @@ -{ - title: "git で管理しているディレクトリの不要なファイルを消す", - date: "2014-02-08", - description: "git で管理しているディレクトリの不要なファイルを消す", - url: "remove-useless-file-git" -} - +# git で管理しているディレクトリの不要なファイルを消す 章毎にファイルを分けてTeXしていると、ついうっかり子ファイル編集時にビルドしてしまってディレクトリにTeXデブリが散乱してしまう。いちいち消すのはめんどくさいので、gitのコミット時にgitで管理しているファイル以外をまとめて吹き飛ばしたい。 http://transitive.info/article/git/command/clean/ diff --git a/posts/2014-02-08-tex-to-gitignore.md b/posts/2014-02-08-tex-to-gitignore.md index 5cdbb31..e23e276 100644 --- a/posts/2014-02-08-tex-to-gitignore.md +++ b/posts/2014-02-08-tex-to-gitignore.md @@ -1,10 +1,4 @@ -{ - title: "TeX 向けの .gitignore", - date: "2014-02-08", - description: "TeX 向けの .gitignore", - url: "gitignore-for-tex" -} - +# TeX 向けの .gitignore アレがアレで現在進行形でめちゃくちゃTeXしている。転ばぬ先の杖の杖として、何重にもバックアップをしつつバージョン管理もしている。とはいえ、TeXはビルドするときにやたらファイルが生成されてgitで管理する邪魔になるので `.gitignore` に不要な拡張子を列挙して目に入らないようにするのがよいだろう。 完成版 diff --git a/posts/2014-02-12-png-eps-poorer-without-changing.md b/posts/2014-02-12-png-eps-poorer-without-changing.md index 81826dd..f298186 100644 --- a/posts/2014-02-12-png-eps-poorer-without-changing.md +++ b/posts/2014-02-12-png-eps-poorer-without-changing.md @@ -1,10 +1,4 @@ -{ - title: "png を eps に変換", - date: "2014-02-12", - description: "png を eps に変換", - url: "convert-png-to-eps" -} - +# png を eps に変換 TeXしてると、pngで画像を貼れなくてイライラしますね。面倒ですが eps に変換します。`ImageMagick` がインストールしてあれば ``` diff --git a/posts/2014-02-15-graduate-technology.md b/posts/2014-02-15-graduate-technology.md index f309c37..b1b6d93 100644 --- a/posts/2014-02-15-graduate-technology.md +++ b/posts/2014-02-15-graduate-technology.md @@ -1,10 +1,4 @@ -{ - title: "卒業を支える技術", - date: "2014-02-15", - description: "卒業を支える技術", - url: "technology-for-graduation" -} - +# 卒業を支える技術 無事卒論を提出できまして、ゆったりとした週末を送っております、いかがお過ごしでしょうか。 約一週間ほどで実験から卒論執筆までこなして、かなり死ぬ思いでやり抜けたのも、不断の弛まぬ努力の賜物...というよりは、各々のツールが助けてくれたのでせっかくなのでまとめておこうと思います。 diff --git a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md index f222a92..e116dfc 100644 --- a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md +++ b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md @@ -1,10 +1,4 @@ -{ - title: "Clash of Clans のチームが Reddit で質問に答える企画をやっている", - date: "2014-02-20", - description: "Clash of Clans のチームが Reddit で質問に答える企画をやっている", - url: "clash-of-clans-on-reddit" -} - +# Clash of Clans のチームが Reddit で質問に答える企画をやっている Clash of Clans はとても面白いゲームで、かれこれ1年ほど遊んでいる。このゲームはフォーラムでの議論も盛んで、開発チームもしっかり応える姿勢で臨んでいることが垣間見えてとてもいい。そんな Clash of Clans のチームがはてブライクな Reddit で質問に答える企画をやっていて面白かったのでいくつかピックアップしたい。 http://www.reddit.com/r/ClashOfClans/comments/1yf06r/ask_the_clash_development_team_anything/ diff --git a/posts/2014-02-21-google-chrome-portrait-data-url.md b/posts/2014-02-21-google-chrome-portrait-data-url.md index abf8c4a..08a6c1c 100644 --- a/posts/2014-02-21-google-chrome-portrait-data-url.md +++ b/posts/2014-02-21-google-chrome-portrait-data-url.md @@ -1,10 +1,4 @@ -{ - title: "Google Chrome のインスペクタで画像の Data URL がとれるようになった", - date: "2014-02-21", - description: "Google Chrome のインスペクタで画像の Data URL がとれるようになった", - url: "google-chrome-inspector-data-url" -} - +# Google Chrome のインスペクタで画像の Data URL がとれるようになった ![](http://user-image.logdown.io/user/5835/blog/5854/post/180452/Gk1ZRK3DTWajYoX0UdNf_t.png) Google Chrome のインスペクタの Resoces で、画像が Data URL でコピーできるようになっていた。何に使えるかというとすぐにピンとはこないが、おぼえておく。 diff --git a/posts/2014-03-03-mountain-lion-tumblr.md b/posts/2014-03-03-mountain-lion-tumblr.md index 9fafb07..66e4a4a 100644 --- a/posts/2014-03-03-mountain-lion-tumblr.md +++ b/posts/2014-03-03-mountain-lion-tumblr.md @@ -1,10 +1,4 @@ -{ - title: "Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする", - date: "2014-03-03", - description: "Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする", - url: "tumblr-slide-show-on-osx-10-8" -} - +# Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする 普段はホットコーナーでディスプレイのスリープをしているのだけれど、大きいサブディスプレイを使うとホットコーナーが死ぬので対策が必要になった。 むかしは簡単にtumblogのスライドショーがスクリーンセーバーとして使えたものの、Mountain Lionではそのあたりの機能が削られていたようで一工夫が必要だった。 diff --git a/posts/2014-03-10--mounting.md b/posts/2014-03-10--mounting.md index b8dfb99..e769e14 100644 --- a/posts/2014-03-10--mounting.md +++ b/posts/2014-03-10--mounting.md @@ -1,10 +1,4 @@ -{ - title: "これどうやって実装してるんだろう", - date: "2014-03-10", - description: "これどうやって実装してるんだろう", - url: "how-to-implement-this" -} - +# これどうやって実装してるんだろう ![](http://user-image.logdown.io/user/5835/blog/5854/post/184304/k4Jtv3EIQ5K0406vCppR_a.gif) きになる diff --git a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md index ca33bd3..c230344 100644 --- a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md +++ b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md @@ -1,10 +1,4 @@ -{ - title: "Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい", - date: "2014-03-19", - description: "Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい", - url: "popcorn-time-is-awesome" -} - +# Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい ![](http://user-image.logdown.io/user/5835/blog/5854/post/189632/FhMvHmZYQT29o4YVH2bA_%202014-03-19%200.13.16.png) Techcrunch で Popcorn Time がキテる、そして死んだ、そして蘇った、という記事をひと通り読んで、ソースコードが Github で公開されてると知ったのでとりあえず見に行った。 diff --git a/posts/2014-03-21-buy-imac-bluetooth.md b/posts/2014-03-21-buy-imac-bluetooth.md index 7818442..a960cbc 100644 --- a/posts/2014-03-21-buy-imac-bluetooth.md +++ b/posts/2014-03-21-buy-imac-bluetooth.md @@ -1,10 +1,4 @@ -{ - title: "iMac買ったらBluetooth使えなかったけどなんとかなった", - date: "2014-03-21", - description: "iMac買ったらBluetooth使えなかったけどなんとかなった", - url: "imac-bluetooth-is-crash" -} - +# iMac買ったらBluetooth使えなかったけどなんとかなった どうもどうも、うっかりiMacを買ってしまいましたこんばんは。 さっそくセットアップしよう...!と意気揚々と電源を入れて設定画面にいったものの、Wireless KeyboardもMagick Trackpadも認識されず、操作不能な状態に。仕方がないのでしぶしぶ有線のキーボードを接続して事無きを得たものの、起動後にもBluetoothがメニューバーに表示されないし、システム環境設定にも表示されない。困った。 diff --git a/posts/2014-05-03-windowflow-hyperswitch-becomes.md b/posts/2014-05-03-windowflow-hyperswitch-becomes.md index f313022..78783c6 100644 --- a/posts/2014-05-03-windowflow-hyperswitch-becomes.md +++ b/posts/2014-05-03-windowflow-hyperswitch-becomes.md @@ -1,10 +1,4 @@ -{ - title: "WindowFlowからHyperSwitchに変えた", - date: "2014-05-03", - description: "WindowFlowからHyperSwitchに変えた", - url: "hyperswitch-is-awesome" -} - +# WindowFlowからHyperSwitchに変えた 今までWindowFlowでウィンドウの切り替えをやっていたのだけれど、HyperSwitchっていうやつの方が綺麗だし反応もいいので変えた。 http://bahoom.com/hyperswitch/ diff --git a/posts/2014-05-04-zsh-becomes.md b/posts/2014-05-04-zsh-becomes.md index 32dab80..c49a86f 100644 --- a/posts/2014-05-04-zsh-becomes.md +++ b/posts/2014-05-04-zsh-becomes.md @@ -1,10 +1,4 @@ -{ - title: "zsh のキーバインドを変える", - date: "2014-05-04", - description: "zsh のキーバインドを変える", - url: "change-zsh-key-bind" -} - +# zsh のキーバインドを変える 最近3ヶ月に1回ぐらいやってくる「エディタとかシェルを強くしたい」月間に突入していて、継続的にdotfilesの手入れをしている。本日の手入れはキーバインド。 https://github.com/e-jigsaw/dotfiles/commit/428ee60610c88ac61d632e09d5e7239b67a16820 diff --git a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md index 8a9f356..9f2d69c 100644 --- a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md +++ b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md @@ -1,10 +1,4 @@ -{ - title: "phantomjs on ubuntu で日本語が文字化けする件", - date: "2014-06-12", - description: "phantomjs on ubuntu で日本語が文字化けする件", - url: "phantomjs-with-ja" -} - +# phantomjs on ubuntu で日本語が文字化けする件 # TL;DR * 日本語フォントいれろ diff --git a/posts/2014-06-15-coffee-script-package-number-reserved-t.md b/posts/2014-06-15-coffee-script-package-number-reserved-t.md index 9260038..4ed4541 100644 --- a/posts/2014-06-15-coffee-script-package-number-reserved-t.md +++ b/posts/2014-06-15-coffee-script-package-number-reserved-t.md @@ -1,10 +1,4 @@ -{ - title: "coffee-script では package が reserved になってるので変数として使えない", - date: "2014-06-15", - description: "coffee-script では package が reserved になってるので変数として使えない", - url: "package-is-reserved-on-coffee-script" -} - +# coffee-script では package が reserved になってるので変数として使えない http://coffeescript.org/documentation/docs/lexer.html#section-66 * package は coffee-script での予約語らしい diff --git a/posts/2014-06-28-ghq.md b/posts/2014-06-28-ghq.md index 9e7b134..4d21b61 100644 --- a/posts/2014-06-28-ghq.md +++ b/posts/2014-06-28-ghq.md @@ -1,10 +1,4 @@ -{ - title: "ghq がライフチェンジングだった", - date: "2014-06-28", - description: "ghq がライフチェンジングだった", - url: "ghq-is-awesome" -} - +# ghq がライフチェンジングだった 先日から少し話題になっていた `ghq` をついに導入した。話題になっていたときは、なにが便利なのか理解できていなくて `git`, `hg`, `bzr` あたりを統合的に扱えるやつなのかとおもっていた。 時は流れて、今日になって Atom にプロジェクトスイッチャみたいなやつがほしいな、と思い立って調べてみるとあまり目ぼしいものが見つからなかった。そのとき、そういえば `ghq` てのがあったな〜、あれ使ってスイッチャみたいなの作れないかな〜と思いついて導入してみたらめっちゃ便利だった。 diff --git a/posts/2014-06-29-journal-by-go.md b/posts/2014-06-29-journal-by-go.md index 59e88fe..f407f68 100644 --- a/posts/2014-06-29-journal-by-go.md +++ b/posts/2014-06-29-journal-by-go.md @@ -1,10 +1,4 @@ -{ - title: "激ヤバ鬼便利日報ツールを Go でリプレースした", - date: "2014-06-29", - description: "激ヤバ鬼便利日報ツールを Go でリプレースした", - url: "replaced-journal-by-go" -} - +# 激ヤバ鬼便利日報ツールを Go でリプレースした https://github.com/e-jigsaw/journal 弊社には日報をメールで送る文化があって(それの如何についてはともかく)、意外と読まれるようなので力入れて書いた方がいろいろな場面でよさそうとのことなのでここ一週間ぐらい日報をいかに楽して書くかに全力を投じてきた。一旦は git の pre-commit hook を使ってメールを送信する「激ヤバ鬼便利日報システム」で落ち着いていた。pre-commit hook は coffee-script で書いていたので coffee が入ってないと使えない欠点があるので布教しやすい何かにリプレースすることを模索していた。 diff --git a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md index d816000..f9e3d74 100644 --- a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md +++ b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md @@ -1,10 +1,4 @@ -{ - title: "ghq と gopath の兼ね合い", - date: "2014-06-30", - description: "ghq と gopath の兼ね合い", - url: "ghq-and-gopath" -} - +# ghq と gopath の兼ね合い # TL;DR * `$GOPATH` を `~/.ghq` にした diff --git a/posts/2014-07-02-alias-upcd.md b/posts/2014-07-02-alias-upcd.md index 39c2d04..1b3b9d5 100644 --- a/posts/2014-07-02-alias-upcd.md +++ b/posts/2014-07-02-alias-upcd.md @@ -1,10 +1,4 @@ -{ - title: "alias up='cd ../'", - date: "2014-07-02", - description: "alias up='cd ../'", - url: "up-is-awesome-alias" -} - +# alias up='cd ../' https://github.com/e-jigsaw/dotfiles/commit/866a1363b1f29916f285937957b49510a6daa578 もはや説明も不要な感じがするが、便利なエイリアスを閃いたので。 diff --git a/posts/2014-07-21-cabinjs.md b/posts/2014-07-21-cabinjs.md index 137de2f..5beae7b 100644 --- a/posts/2014-07-21-cabinjs.md +++ b/posts/2014-07-21-cabinjs.md @@ -1,10 +1,4 @@ -{ - title: "cabinjs ベースの blog に置き換えた", - date: "2014-07-21", - description: "cabinjs ベースの blog に置き換えた", - url: "replaced-cabinjs-based-on-github-pages" -} - +# cabinjs ベースの blog に置き換えた http://www.cabinjs.com/ logdown でこれまで開発ごとっぽい記事は書いてきたのだけれど、やっぱりローカルで markdown を書いて `hoge deploy` みたいな感じで公開したかったので思い切って `cabinjs` ベースの Github Pages に置き換えてみた。 diff --git a/posts/2014-07-23-made-twlv.md b/posts/2014-07-23-made-twlv.md index 872b77b..1bfdfee 100644 --- a/posts/2014-07-23-made-twlv.md +++ b/posts/2014-07-23-made-twlv.md @@ -1,10 +1,4 @@ -{ - title: "twlv というジョークライブラリをつくった", - date: "2014-07-23", - description: "twlv というジョークライブラリをつくった", - url: "made-twlv" -} - +# twlv というジョークライブラリをつくった https://github.com/jackdcrawford/five というライブラリがあって、ひたすら意味もなく 5 を複雑にするだけのライブラリでアホらしすぎて面白かった。 > This repo is absolutely fucking hilarious. diff --git a/posts/2014-07-30-boom-replaced-ab.md b/posts/2014-07-30-boom-replaced-ab.md index 1223e54..a782eb6 100644 --- a/posts/2014-07-30-boom-replaced-ab.md +++ b/posts/2014-07-30-boom-replaced-ab.md @@ -1,10 +1,4 @@ -{ - title: "boom で ab", - date: "2014-07-30", - description: "boom で ab", - url: "boom-replaced-ab" -} - +# boom で ab https://github.com/rakyll/boom diff --git a/posts/2014-08-04-output-tsv-from-psql.md b/posts/2014-08-04-output-tsv-from-psql.md index b49f644..6496ab0 100644 --- a/posts/2014-08-04-output-tsv-from-psql.md +++ b/posts/2014-08-04-output-tsv-from-psql.md @@ -1,10 +1,4 @@ -{ - title: "psql -> tsv", - date: "2014-08-04", - description: "psql -> tsv", - url: "output-tsv-from-psql" -} - +# psql -> tsv http://d.hatena.ne.jp/choplin/20101222/1292995497 psql で tsv を出したい。 diff --git a/posts/2014-08-04-shell-command-tr-split.md b/posts/2014-08-04-shell-command-tr-split.md index 9f07719..c68fc71 100644 --- a/posts/2014-08-04-shell-command-tr-split.md +++ b/posts/2014-08-04-shell-command-tr-split.md @@ -1,10 +1,4 @@ -{ - title: "今日のシェルコマンド", - date: "2014-08-04", - description: "今日のシェルコマンド", - url: "shell-command-tr-split" -} - +# 今日のシェルコマンド 今日は必要に迫られてシェルのコマンドを調べて使った # tr diff --git a/posts/2014-08-11-shields-io.md b/posts/2014-08-11-shields-io.md index ec68180..45872df 100644 --- a/posts/2014-08-11-shields-io.md +++ b/posts/2014-08-11-shields-io.md @@ -1,10 +1,4 @@ -{ - title: "shields.io でバッジのガタガタが直せるっぽい", - date: "2014-08-11", - description: "shields.io でバッジのガタガタが直せるっぽい", - url: "shields-io" -} - +# shields.io でバッジのガタガタが直せるっぽい https://github.com/badges/shields Github の README にバッジを貼るサービスが増えているけれど、それぞれの画像がまちまちなのでガタガタになってしまう問題がある。それを解決してくれるのがこれらしい。 diff --git a/posts/2014-08-12-install-imagemagick-on-mac.md b/posts/2014-08-12-install-imagemagick-on-mac.md index 0622f9c..d228d71 100644 --- a/posts/2014-08-12-install-imagemagick-on-mac.md +++ b/posts/2014-08-12-install-imagemagick-on-mac.md @@ -1,10 +1,4 @@ -{ - title: "mac に imagemagick をいれる", - date: "2014-08-12", - description: "mac に imagemagick をいれる", - url: "install-imagemagick-on-mac" -} - +# mac に imagemagick をいれる http://stackoverflow.com/questions/7412208/imagemagick-and-os-x-lion-trouble imagemagick をいれたらコケたので調べてみると...的なやつ。 diff --git a/posts/2014-08-20-api-blueprint-indent.md b/posts/2014-08-20-api-blueprint-indent.md index dd78375..41479e8 100644 --- a/posts/2014-08-20-api-blueprint-indent.md +++ b/posts/2014-08-20-api-blueprint-indent.md @@ -1,10 +1,4 @@ -{ - title: "api blueprint のインデントでつまずいた", - date: "2014-08-20", - description: "api blueprint のインデントでつまずいた", - url: "api-blueprint-indent" -} - +# api blueprint のインデントでつまずいた # TL;DR * `API Blueprint` の markdown は 4スペース diff --git a/posts/2014-08-20-workshopper.md b/posts/2014-08-20-workshopper.md index 9f22c68..7bf1f1f 100644 --- a/posts/2014-08-20-workshopper.md +++ b/posts/2014-08-20-workshopper.md @@ -1,10 +1,4 @@ -{ - title: "workshopper でハンズオンを体系化できるっぽい", - date: "2014-08-20", - description: "workshopper でハンズオンを体系化できるっぽい", - url: "workshopper" -} - +# workshopper でハンズオンを体系化できるっぽい https://github.com/rvagg/workshopper nodeconf などで使われていたらしい workshopper というモジュールを教えてもらった。シェル上でインタラクティブに学習をする際にこれを使って作っておけばあとは clone してどうこうすれば気軽にハンズオンできそう。 diff --git a/posts/2014-08-22-create-yasuharu-visualize.md b/posts/2014-08-22-create-yasuharu-visualize.md index 61faf8a..e243ec9 100644 --- a/posts/2014-08-22-create-yasuharu-visualize.md +++ b/posts/2014-08-22-create-yasuharu-visualize.md @@ -1,10 +1,4 @@ -{ - title: "Yasuharu Visualize つくった", - date: "2014-08-22", - description: "Yasuharu Visualize つくった", - url: "create-yasuharu-visualize" -} - +# Yasuharu Visualize つくった http://e-jigsaw.github.io/Weight/ 煽られたのでつくった。いつものテクノロジーでいつも通りつくりました、という感じ。 diff --git a/posts/2014-08-22-github-org-is-private-in-default.md b/posts/2014-08-22-github-org-is-private-in-default.md index eec8496..96061bf 100644 --- a/posts/2014-08-22-github-org-is-private-in-default.md +++ b/posts/2014-08-22-github-org-is-private-in-default.md @@ -1,10 +1,4 @@ -{ - title: "github の org はデフォルトで private になっている", - date: "2014-08-22", - description: "github の org はデフォルトで private になっている", - url: "github-org-is-private-in-default" -} - +# github の org はデフォルトで private になっている ![](https://cloud.githubusercontent.com/assets/557961/4008809/eb51b9f0-29db-11e4-8009-adbe8434f493.png) 今日他のひとに自分の github のユーザページを見られる機会があって、その際に private repo の commit とかが見えないのは知ってたのだけれど org に全然入っていないことになっていて驚いて調べてみるとデフォルトでは private になっているようだ。 diff --git a/posts/2014-08-25-ngrok-awesome.md b/posts/2014-08-25-ngrok-awesome.md index 4402b54..30ef693 100644 --- a/posts/2014-08-25-ngrok-awesome.md +++ b/posts/2014-08-25-ngrok-awesome.md @@ -1,10 +1,4 @@ -{ - title: "ngrok 便利", - date: "2014-08-25", - description: "ngrok 便利", - url: "ngrok-awesome" -} - +# ngrok 便利 https://ngrok.com/ ngrok、なんとなく star つけたのがだいぶ前で触れてすらいなかったのだけれど、今日携帯端末向けにデバッグするために使ったらめっちゃ便利だった。 diff --git a/posts/2014-09-04-chatwork-md-0-1-0.md b/posts/2014-09-04-chatwork-md-0-1-0.md index 91bd979..ddc9eee 100644 --- a/posts/2014-09-04-chatwork-md-0-1-0.md +++ b/posts/2014-09-04-chatwork-md-0-1-0.md @@ -1,10 +1,4 @@ -{ - title: "chatwork.md をアップデートした", - date: "2014-09-04", - description: "chatwork.md をアップデートした", - url: "chatwork-md-0-1-0" -} - +# chatwork.md をアップデートした https://github.com/e-jigsaw/chatwork.md Chatwork 上で Markdown の記法を使ってやりとりができるようになる Chrome 拡張 chatwork.md をアップデートした。 diff --git a/posts/2014-09-20-created-qls.md b/posts/2014-09-20-created-qls.md index 00d3361..c5a60ef 100644 --- a/posts/2014-09-20-created-qls.md +++ b/posts/2014-09-20-created-qls.md @@ -1,10 +1,4 @@ -{ - title: "qls というコマンドをつくった", - date: "2014-09-20", - description: "qls というコマンドをつくった", - url: "created-qls" -} - +# qls というコマンドをつくった https://github.com/e-jigsaw/qls ちょっと入用だったので `qls` というコマンドをささっとつくった。`ls` の結果をクオートで囲ったやつを改行区切りで出すだけのやつ。 diff --git a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md index 0eb8d29..a4656b4 100644 --- a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md +++ b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md @@ -1,10 +1,4 @@ -{ - title: "githubのtimelineをBigQueryで解析する(その2)", - date: "2014-09-26", - description: "githubのtimelineをBigQueryで解析する(その2)", - url: "github-timeline-analyze-by-bigquery-2" -} - +# githubのtimelineをBigQueryで解析する(その2) http://dev.jgs.me/posts/github-timeline-is-analyzable-on-bigquery/ のつづき。 試しに自分のアカウントでフィルタしたクエリを投げてみる。 diff --git a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md index f525fd7..21e9f7d 100644 --- a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md +++ b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md @@ -1,10 +1,4 @@ -{ - title: "githubのtimelineがbigqueryで解析できる", - date: "2014-09-26", - description: "githubのtimelineがbigqueryで解析できる", - url: "github-timeline-is-analyzable-on-bigquery" -} - +# githubのtimelineがbigqueryで解析できる http://www.githubarchive.org/ [Githut](http://githut.info/)という Github の解析サイトがあって、仕掛けを調べていたらGithubはpublicなtimelineをオープンデータとして公開しているらしい。 diff --git a/posts/2014-10-02-clear-up-tmux-keybinds.md b/posts/2014-10-02-clear-up-tmux-keybinds.md index ecf7766..2c24126 100644 --- a/posts/2014-10-02-clear-up-tmux-keybinds.md +++ b/posts/2014-10-02-clear-up-tmux-keybinds.md @@ -1,10 +1,4 @@ -{ - title: "tmuxのkeybindを整理した", - date: "2014-10-02", - description: "tmuxのkeybindを整理した", - url: "clear-up-tmux-keybinds" -} - +# tmuxのkeybindを整理した https://github.com/e-jigsaw/dotfiles/blob/4f93e51a19897ad9019fbb65eea9a184c00f5c45/README.md tmux の keybind ってどれもあまり直感的にピンときにくい bind で、整理したいな〜とずっとおもっていたので期も変わったしエイヤッと整理した。 diff --git a/posts/2014-10-03-created-rpt.md b/posts/2014-10-03-created-rpt.md index 69a2b97..3eca946 100644 --- a/posts/2014-10-03-created-rpt.md +++ b/posts/2014-10-03-created-rpt.md @@ -1,10 +1,4 @@ -{ - title: "tumblrからランダムに写真を表示するサービスをつくった", - date: "2014-10-03", - description: "tumblrからランダムに写真を表示するサービスをつくった", - url: "created-rpt" -} - +# tumblrからランダムに写真を表示するサービスをつくった https://github.com/jgsme/rpt 寿司が宇宙にいる様子がひたすら流れる [spacesushipic](http://spacesushipic.tumblr.com/) っていうアカウントが面白くて、適当な写真をサッと取得できたらいいなー、という着想から。 diff --git a/posts/2014-10-04-rpt-updated.md b/posts/2014-10-04-rpt-updated.md index 3899853..648b230 100644 --- a/posts/2014-10-04-rpt-updated.md +++ b/posts/2014-10-04-rpt-updated.md @@ -1,10 +1,4 @@ -{ - title: "rptをアップデートした", - date: "2014-10-04", - description: "rptをアップデートした", - url: "rpt-updated" -} - +# rptをアップデートした http://rpt.jgs.me [昨日](http://dev.jgs.me/posts/created-rpt/)つくった RPT をアップデートした。リダイレクトすると複数回ランダムしたいときとかに不便なので、結局 Web のインターフェースをつくることにした。 diff --git a/posts/2014-10-08-dependency-injection-in-node-js.md b/posts/2014-10-08-dependency-injection-in-node-js.md index ddd10c6..45800db 100644 --- a/posts/2014-10-08-dependency-injection-in-node-js.md +++ b/posts/2014-10-08-dependency-injection-in-node-js.md @@ -1,10 +1,4 @@ -{ - title: "bottlejsでDIを試す", - date: "2014-10-08", - description: "bottlejsでDIを試す", - url: "dependency-injection-in-node-js" -} - +# bottlejsでDIを試す https://github.com/young-steveo/bottlejs # tl;dr diff --git a/posts/2014-10-08-forked-feedback.md b/posts/2014-10-08-forked-feedback.md index 4ae6362..e029ddf 100644 --- a/posts/2014-10-08-forked-feedback.md +++ b/posts/2014-10-08-forked-feedback.md @@ -1,10 +1,4 @@ -{ - title: "feedbackというリポジトリをforkした", - date: "2014-10-08", - description: "feedbackというリポジトリをforkした", - url: "forked-feedback" -} - +# feedbackというリポジトリをforkした https://github.com/e-jigsaw/feedback Dashboard 見てたら https://github.com/holman/feedback を fork してるひとがいたので見にいってみたら issue を使って質問できるリポジトリだった。 diff --git a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md index 49ebbe8..c179e09 100644 --- a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md +++ b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md @@ -1,10 +1,4 @@ -{ - title: "JavascriptBattleのルールを日本語訳してみた", - date: "2014-10-09", - description: "JavascriptBattleのルールを日本語訳してみた", - url: "translated-JavascriptBattle-rules-in-japanese" -} - +# JavascriptBattleのルールを日本語訳してみた https://github.com/JavascriptBattle/hero-starter JavascriptBattle という AI を作って戦わせる系のゲームを発見して、結構面白そうだったので遊んでみている。 diff --git a/posts/2014-10-10-coped-with-rss.md b/posts/2014-10-10-coped-with-rss.md index c62a82f..635b589 100644 --- a/posts/2014-10-10-coped-with-rss.md +++ b/posts/2014-10-10-coped-with-rss.md @@ -1,10 +1,4 @@ -{ - title: "rss に対応しました", - date: "2014-10-10", - description: "rss に対応しました", - url: "coped-with-rss" -} - +# rss に対応しました http://dev.jgs.me/feed.xml RSS 対応するのめんどくさそう...とおもってしばらくほったらかしていたところ、ジェネレータで RSS を生成するオプションがあることに気付いたので対応した。 diff --git a/posts/2014-10-14-created-universal-url-modifier.md b/posts/2014-10-14-created-universal-url-modifier.md index ebd0e89..f476ce0 100644 --- a/posts/2014-10-14-created-universal-url-modifier.md +++ b/posts/2014-10-14-created-universal-url-modifier.md @@ -1,10 +1,4 @@ -{ - title: "universal-url-modifier をつくった", - date: "2014-10-14", - description: "universal-url-modifier をつくった", - url: "created-universal-url-modifier" -} - +# universal-url-modifier をつくった https://github.com/e-jigsaw/universal-url-modifier `README` にも書いたんだけど、結構前から [r7kamura/amazon-url-modifier](https://github.com/r7kamura/amazon-url-modifier) を使わせてもらっていて、便利だなー、とおもっていた。ちなみに作者の[記事](http://r7kamura.hatenablog.com/entry/2014/08/04/150113)の diff --git a/posts/2014-10-27-updated-hyperswitch.md b/posts/2014-10-27-updated-hyperswitch.md index d9cc792..9080847 100644 --- a/posts/2014-10-27-updated-hyperswitch.md +++ b/posts/2014-10-27-updated-hyperswitch.md @@ -1,10 +1,4 @@ -{ - title: "hyperswitchのアップデート", - date: "2014-10-27", - description: "hyperswitchのアップデート", - url: "updated-hyperswitch" -} - +# hyperswitchのアップデート http://www.macupdate.com/app/mac/41769/hyperswitch 少し前ぐらいから Hyperswitch のバージョンが expire してるよってアラートが出るもののアップデートができない状況が続いていて、さすがにイライラしてきたので調べてみたら別のサイトで最新版が配布されていた。`0.2.420-dev` にアップデートできた。 diff --git a/posts/2014-11-19-facebook-flow-first-impression.md b/posts/2014-11-19-facebook-flow-first-impression.md index 344cc69..dba6925 100644 --- a/posts/2014-11-19-facebook-flow-first-impression.md +++ b/posts/2014-11-19-facebook-flow-first-impression.md @@ -1,10 +1,4 @@ -{ - title: "facebook-flow first impression", - date: "2014-11-19", - description: "facebook-flow first impression", - url: "facebook-flow-first-impression" -} - +# facebook-flow first impression http://flowtype.org/ 既に数人 Facebook Flow の感想を上げていたのでリンクを貼っておく diff --git a/posts/2014-12-01-the-technology-behind-vj.md b/posts/2014-12-01-the-technology-behind-vj.md index 804c91a..8800955 100644 --- a/posts/2014-12-01-the-technology-behind-vj.md +++ b/posts/2014-12-01-the-technology-behind-vj.md @@ -1,10 +1,4 @@ -{ - title: "#kosenvj を支える技術(フロント編)", - date: "2014-12-01", - description: "#kosenvj を支える技術(フロント編)", - url: "the-technology-behind-vj" -} - +# #kosenvj を支える技術(フロント編) https://twitter.com/asonas/status/538995926514167808 顧問が書けって言ってるので書く。 diff --git a/posts/2014-12-15-setup-yosemite-machines.md b/posts/2014-12-15-setup-yosemite-machines.md index b864ee8..0a165f5 100644 --- a/posts/2014-12-15-setup-yosemite-machines.md +++ b/posts/2014-12-15-setup-yosemite-machines.md @@ -1,10 +1,4 @@ -{ - title: "Yosemite マシンゲットしたので環境を整えた", - date: "2014-12-15", - description: "Yosemite マシンゲットしたので環境を整えた", - url: "setup-yosemite-machines" -} - +# Yosemite マシンゲットしたので環境を整えた https://github.com/e-jigsaw/dotfiles # まえがき diff --git a/posts/2014-12-17-fixed-zsh-5-0-7.md b/posts/2014-12-17-fixed-zsh-5-0-7.md index 209d4da..28d6c7c 100644 --- a/posts/2014-12-17-fixed-zsh-5-0-7.md +++ b/posts/2014-12-17-fixed-zsh-5-0-7.md @@ -1,10 +1,4 @@ -{ - title: "zsh まわりを直した", - date: "2014-12-17", - description: "zsh まわりを直した", - url: "fixed-zsh-5-0-7" -} - +# zsh まわりを直した https://github.com/e-jigsaw/dotfiles zsh のバージョンが上がったせいなのかなんなのか分からないけど、だいぶストレス溜まる感じになってたので直した diff --git a/posts/2014-12-24-created-md2wp.md b/posts/2014-12-24-created-md2wp.md index b6ce03e..a0dbf30 100644 --- a/posts/2014-12-24-created-md2wp.md +++ b/posts/2014-12-24-created-md2wp.md @@ -1,10 +1,4 @@ -{ - title: "md2wp をつくった", - date: "2014-12-24", - description: "md2wp をつくった", - url: "created-md2wp" -} - +# md2wp をつくった http://md2wp.jgs.me 生意気な新卒として社会人ライフを送っていたら広報の手伝いをすることになって、会議に出たりしてたら記事を書くことになったのでとりあえず gist に書いたら結構ウケたのでそのまま出すことになった。のだけれど、Wordpress に入ってる Markdown のプラグインが絶妙に使えないヤツだったので泣く泣く WYSIWYG のエディタでブロック毎にコピーする業をせねばならずとても苦痛だった。 From eb4ad61375c47d36af366354379a99c564795fd1 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 16:49:57 +0900 Subject: [PATCH 03/21] remove package.json --- package.json | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 package.json diff --git a/package.json b/package.json deleted file mode 100644 index b84c15e..0000000 --- a/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "cabin-site", - "version": "0.0.0", - "devDependencies": { - "grunt": "^0.4.5", - "load-grunt-tasks": "^1.0.0", - "grunt-pages": "^0.11.2", - "grunt-contrib-copy": "^0.7.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-contrib-connect": "^0.9.0", - "grunt-open": "^0.2.3", - "grunt-contrib-clean": "^0.6.0", - "grunt-gh-pages": "^0.9.1", - "inquirer": "^0.8.0", - "grunt-contrib-stylus": "^0.20.0" - }, - "engines": { - "node": ">=0.10.0" - } -} From a5601ca9653442e18cac88a228082976781dc518 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 16:52:06 +0900 Subject: [PATCH 04/21] bland new package.json --- package.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..77ea01a --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "log", + "version": "0.0.0", + "description": "development log", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/jgsme/log.git" + }, + "author": "jigsaw (http://jgs.me)", + "license": "MIT", + "bugs": { + "url": "https://github.com/jgsme/log/issues" + }, + "homepage": "https://github.com/jgsme/log" +} From 8632c6ad6bdc77c246fe4512c492505fb039d9cf Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 16:55:42 +0900 Subject: [PATCH 05/21] gulp-markdown added --- gulpfile.coffee | 7 +++++++ package.json | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 gulpfile.coffee diff --git a/gulpfile.coffee b/gulpfile.coffee new file mode 100644 index 0000000..a348a65 --- /dev/null +++ b/gulpfile.coffee @@ -0,0 +1,7 @@ +gulp = require 'gulp' +mark = require 'gulp-markdown' + +gulp.task 'article', -> + gulp.src 'posts/*.md' + .pipe mark() + .pipe gulp.dest('build') diff --git a/package.json b/package.json index 77ea01a..83a3036 100644 --- a/package.json +++ b/package.json @@ -14,5 +14,10 @@ "bugs": { "url": "https://github.com/jgsme/log/issues" }, - "homepage": "https://github.com/jgsme/log" + "homepage": "https://github.com/jgsme/log", + "dependencies": { + "coffee-script": "^1.8.0", + "gulp": "^3.8.10", + "gulp-markdown": "^1.0.0" + } } From 5fb0eb0ee35d946e7f78edf4d557dc7e12cc4e35 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 16:59:31 +0900 Subject: [PATCH 06/21] fix posts convert --- posts/2013-09-19-httpie.md | 1 + posts/2013-09-25-nested-mongoose.md | 1 + posts/2013-09-27-nginxdesocket-dot-io.md | 1 + posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md | 1 + posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md | 1 + posts/2013-10-06-vimdebu-wan.md | 1 + posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md | 1 + posts/2013-10-16-nodectl-metutiyabian-li.md | 1 + posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md | 1 + .../2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md | 1 + posts/2013-10-23-texdepngwotie-ru.md | 1 + posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md | 1 + ...usukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md | 1 + posts/2013-12-11-logwatch-vps-every-day.md | 1 + posts/2013-12-12-contribute-taberareloo-tumblr-403.md | 1 + posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md | 1 + posts/2013-12-14-vagrant-berkshelf-plugin.md | 1 + posts/2014-01-18-went-rails-terakoya-3.md | 1 + posts/2014-01-21-sweet-js-brunch.md | 1 + posts/2014-01-25-iterm2-append-dotfiles-i.md | 1 + posts/2014-01-30-kuriyama-every.md | 1 + posts/2014-02-01-gyazo-on-rails-developer-talk.md | 1 + posts/2014-02-03-update-coffee-script-with-mocha.md | 1 + posts/2014-02-08-git-management-dont-arc.md | 1 + posts/2014-02-08-tex-to-gitignore.md | 1 + posts/2014-02-12-png-eps-poorer-without-changing.md | 1 + posts/2014-02-15-graduate-technology.md | 1 + .../2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md | 1 + posts/2014-02-21-google-chrome-portrait-data-url.md | 1 + posts/2014-03-03-mountain-lion-tumblr.md | 1 + posts/2014-03-10--mounting.md | 1 + posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md | 1 + posts/2014-03-21-buy-imac-bluetooth.md | 1 + posts/2014-05-03-windowflow-hyperswitch-becomes.md | 1 + posts/2014-05-04-zsh-becomes.md | 1 + posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md | 1 + posts/2014-06-15-coffee-script-package-number-reserved-t.md | 1 + posts/2014-06-28-ghq.md | 1 + posts/2014-06-29-journal-by-go.md | 1 + posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md | 1 + posts/2014-07-02-alias-upcd.md | 1 + posts/2014-07-21-cabinjs.md | 1 + posts/2014-07-23-made-twlv.md | 1 + posts/2014-07-30-boom-replaced-ab.md | 1 + posts/2014-08-04-output-tsv-from-psql.md | 1 + posts/2014-08-04-shell-command-tr-split.md | 1 + posts/2014-08-11-shields-io.md | 1 + posts/2014-08-12-install-imagemagick-on-mac.md | 1 + posts/2014-08-20-api-blueprint-indent.md | 1 + posts/2014-08-20-workshopper.md | 1 + posts/2014-08-22-create-yasuharu-visualize.md | 1 + posts/2014-08-22-github-org-is-private-in-default.md | 1 + posts/2014-08-25-ngrok-awesome.md | 1 + posts/2014-09-04-chatwork-md-0-1-0.md | 1 + posts/2014-09-20-created-qls.md | 1 + posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md | 1 + posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md | 1 + posts/2014-10-02-clear-up-tmux-keybinds.md | 1 + posts/2014-10-03-created-rpt.md | 1 + posts/2014-10-04-rpt-updated.md | 1 + posts/2014-10-08-dependency-injection-in-node-js.md | 1 + posts/2014-10-08-forked-feedback.md | 1 + .../2014-10-09-translated-JavascriptBattle-rules-in-japanese.md | 1 + posts/2014-10-10-coped-with-rss.md | 1 + posts/2014-10-14-created-universal-url-modifier.md | 1 + posts/2014-10-27-updated-hyperswitch.md | 1 + posts/2014-11-19-facebook-flow-first-impression.md | 1 + posts/2014-12-01-the-technology-behind-vj.md | 1 + posts/2014-12-15-setup-yosemite-machines.md | 1 + posts/2014-12-17-fixed-zsh-5-0-7.md | 1 + posts/2014-12-24-created-md2wp.md | 1 + 71 files changed, 71 insertions(+) diff --git a/posts/2013-09-19-httpie.md b/posts/2013-09-19-httpie.md index 7d16381..9cf6ac1 100644 --- a/posts/2013-09-19-httpie.md +++ b/posts/2013-09-19-httpie.md @@ -1,5 +1,6 @@ # httpie + http://qiita.com/yuku_t/items/5df06d50c4c349cc0c1b をみて、便利そうだったのでインストールした。 diff --git a/posts/2013-09-25-nested-mongoose.md b/posts/2013-09-25-nested-mongoose.md index c4ddfde..097f487 100644 --- a/posts/2013-09-25-nested-mongoose.md +++ b/posts/2013-09-25-nested-mongoose.md @@ -1,5 +1,6 @@ # node.jsのmongooseでnestしたobjectをpopulateする + `node.js` の `mongoose` でネストしたドキュメントを `populate` したいときの話。 `3.6` 系から `populate` の仕様が変わるようで、以前のように diff --git a/posts/2013-09-27-nginxdesocket-dot-io.md b/posts/2013-09-27-nginxdesocket-dot-io.md index fb17ef0..f11217d 100644 --- a/posts/2013-09-27-nginxdesocket-dot-io.md +++ b/posts/2013-09-27-nginxdesocket-dot-io.md @@ -1,4 +1,5 @@ # nginxでsocket.io + 追い詰められて構築したさくらVPSにsocket.io on nginxを構築した。 http://d.hatena.ne.jp/yoshi-ken/20120205 diff --git a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md index d953a06..39fd550 100644 --- a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md +++ b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md @@ -1,4 +1,5 @@ # さくらvpsの初期設定 + 超絶追い詰められて勢いでさくらVPSを構築した。 http://morizyun.github.io/blog/sakura-vps-centos63-ssh-setup/ diff --git a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md index ef19a19..321c56d 100644 --- a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md +++ b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md @@ -1,4 +1,5 @@ # nginxでサブドメインの指定 + nginxでサブドメインの指定をするときにはサブドメインの分だけ `server` を書いておけばいいっぽい。 ``` diff --git a/posts/2013-10-06-vimdebu-wan.md b/posts/2013-10-06-vimdebu-wan.md index e06f1f6..f27f341 100644 --- a/posts/2013-10-06-vimdebu-wan.md +++ b/posts/2013-10-06-vimdebu-wan.md @@ -1,4 +1,5 @@ # vimで補完 + vim で補完をしたい。 完成形: diff --git a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md index d4232f4..b02e068 100644 --- a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md +++ b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md @@ -1,4 +1,5 @@ # VPSにgitのリモートリポジトリをつくる + 初回のみ ``` diff --git a/posts/2013-10-16-nodectl-metutiyabian-li.md b/posts/2013-10-16-nodectl-metutiyabian-li.md index 20b9524..e8e4b1e 100644 --- a/posts/2013-10-16-nodectl-metutiyabian-li.md +++ b/posts/2013-10-16-nodectl-metutiyabian-li.md @@ -1,4 +1,5 @@ # nodectl めっちゃ便利 + https://github.com/geta6/nodectl node.js のプロジェクトを走らせるときに、ファイルを監視して再起動だったり、環境やポートの情報も `.nodectl.json` に設定を書いておくだけでいい。便利。サンプルの json は README.md が詳しいので略。 diff --git a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md index af01cad..7cff792 100644 --- a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md +++ b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md @@ -1,4 +1,5 @@ # socket.io で CORS にハマったメモ + `api.hoge.jp` で `socket.io` を走らせてるときに `hoge.jp` から Websocketで通信しようとしたら案の定 `CORS` エラーが出てハマった。`node.js` の `Express` では適当にミドルウェア書いておけば抜けられるのは知っていたのだけれど、`socket.io` でどうすればいいのかわからなかった。 https://groups.google.com/forum/#!topic/socket_io/Fkq9Pyc8s6E diff --git a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md index 58090cc..fd2103e 100644 --- a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md +++ b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md @@ -1,4 +1,5 @@ # hubotとhipchatでウワサのChatOpsの準備 + むかし見かけたけど、あまり便利さがわからなかったのでスルーしていた `hubot` が面白そうだったので、ちょっと触ってみることにした。 目標は、サービスのデプロイや、通知なんかを一手に管理できる状態。 diff --git a/posts/2013-10-23-texdepngwotie-ru.md b/posts/2013-10-23-texdepngwotie-ru.md index 5f1e6c4..556183e 100644 --- a/posts/2013-10-23-texdepngwotie-ru.md +++ b/posts/2013-10-23-texdepngwotie-ru.md @@ -1,4 +1,5 @@ # texでpngを貼る + TeXで `.png` ファイルを貼るのがダルかったのでメモ。 画像を貼るときは `\includegraphics` というクソ長いタグを使う。 diff --git a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md index 5ef27ea..af513af 100644 --- a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md +++ b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md @@ -1,4 +1,5 @@ # gitでpushデプロイを実現する + 参考: http://qiita.com/fnobi/items/98bd5d1c83c010842733 `nodectl` がとても便利なのでドンドン使っている(http://tech.jgs.me/2013/10/16/nodectl-metutiyabian-li/)。この `nodectl` 、ディレクトリを監視して自動でリロードする機能も備わっているので、`push` をフックに `pull` してやれば自動的にデプロイされることに気付いた。`forever` にもそんな機能があったはずなので、`forever` でもできるとおもう。 diff --git a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md index 87952dd..d7984cf 100644 --- a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md +++ b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md @@ -1,4 +1,5 @@ # tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題 + http://qiita.com/u1tnk/items/9a680d16065217015e16 の通り、opt(alt)+ドラッグでOKだそう。 diff --git a/posts/2013-12-11-logwatch-vps-every-day.md b/posts/2013-12-11-logwatch-vps-every-day.md index 16108e6..fbaf690 100644 --- a/posts/2013-12-11-logwatch-vps-every-day.md +++ b/posts/2013-12-11-logwatch-vps-every-day.md @@ -1,4 +1,5 @@ # logwatch で vps のログを毎日チェックする + http://dogmap.jp/2011/05/12/vps-security/ で logwatch が紹介されていたのでいれてみた。 diff --git a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md index 2f50af6..142ab12 100644 --- a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md +++ b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md @@ -1,4 +1,5 @@ # taberareloo で tumblr への投稿が 403 になるときの対処 + taberareloo から tumblr に投稿しようとすると 403 が出て生きた心地がしなかった。 対処は簡単で、 diff --git a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md index 1549762..3b558d2 100644 --- a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md +++ b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md @@ -1,4 +1,5 @@ # twitter の userstream が突然調子悪くなる案件 + `node.js` から twitter の userstream を扱うのには、`ntwitter` は挙動がバギーなので `user-stream` を使っている。 https://github.com/aivis/user-stream diff --git a/posts/2013-12-14-vagrant-berkshelf-plugin.md b/posts/2013-12-14-vagrant-berkshelf-plugin.md index fa3a2c7..898aed8 100644 --- a/posts/2013-12-14-vagrant-berkshelf-plugin.md +++ b/posts/2013-12-14-vagrant-berkshelf-plugin.md @@ -1,4 +1,5 @@ # vagrant-berkshelf plugin がインストールできないときの対処 + 以上。 diff --git a/posts/2014-01-18-went-rails-terakoya-3.md b/posts/2014-01-18-went-rails-terakoya-3.md index ef64bd9..668f7b8 100644 --- a/posts/2014-01-18-went-rails-terakoya-3.md +++ b/posts/2014-01-18-went-rails-terakoya-3.md @@ -1,4 +1,5 @@ # 第3回Rails寺子屋に参加してきた + Rails寺子屋 http://rails.terakoya.io/ Railsはメジャーバージョンが上がる度に「そろそろ本格的に体得しておこう...」と意気込んではじめるものの、railstutorialをやってふむう?となって以降あまり触らないという不遜な付き合いを続けてきたのだけれど、たまたま都合がついたのでエイヤッと参加してきた。 diff --git a/posts/2014-01-21-sweet-js-brunch.md b/posts/2014-01-21-sweet-js-brunch.md index bc2a064..a57621d 100644 --- a/posts/2014-01-21-sweet-js-brunch.md +++ b/posts/2014-01-21-sweet-js-brunch.md @@ -1,4 +1,5 @@ # sweet-js-brunch をつくった + https://github.com/e-jigsaw/sweet-js-brunch Chaplin.js (http://chaplinjs.org/) がよさげで、Chaplin のプロダクトのビルドツールとして brunch (http://brunch.io/) というツールが使われていて、便利そうだったのでぼちぼち触っていた。 diff --git a/posts/2014-01-25-iterm2-append-dotfiles-i.md b/posts/2014-01-25-iterm2-append-dotfiles-i.md index fe7ebce..ea54545 100644 --- a/posts/2014-01-25-iterm2-append-dotfiles-i.md +++ b/posts/2014-01-25-iterm2-append-dotfiles-i.md @@ -1,4 +1,5 @@ # iTerm2 のカラースキームを dotfiles に追加した + iTerm2 のオシャカラースキームリポジトリを見つけたのでさっそく clone して使ってみた。 https://github.com/baskerville/iTerm-2-Color-Themes diff --git a/posts/2014-01-30-kuriyama-every.md b/posts/2014-01-30-kuriyama-every.md index a723d65..c254081 100644 --- a/posts/2014-01-30-kuriyama-every.md +++ b/posts/2014-01-30-kuriyama-every.md @@ -1,4 +1,5 @@ # 栗山さんを毎日見れるようにした + ![](http://25.media.tumblr.com/4597e75f432494136b42f06716e45a09/tumblr_n06zcilVpq1qa749mo1_1280.jpg) 境界の彼方というアニメが去年の暮れまで放送していて、面白かったのでみていた。最終回の余計なパート以外は87点だけど、あの最後の最後の最悪の終わり方のせいでマイナス2億点という画竜点睛を欠くアニメだった。 diff --git a/posts/2014-02-01-gyazo-on-rails-developer-talk.md b/posts/2014-02-01-gyazo-on-rails-developer-talk.md index 7d72291..dc305cc 100644 --- a/posts/2014-02-01-gyazo-on-rails-developer-talk.md +++ b/posts/2014-02-01-gyazo-on-rails-developer-talk.md @@ -1,4 +1,5 @@ # Gyazo on Rails Developer Talk に行ってきた + ![](http://farm4.staticflickr.com/3668/12236808555_9c0741ec96_z.jpg) Gyazo さんがバックエンドを Ruby on Rails に概ね(一部まだPHPだそう)移行されたとのことで、記念イベントが開催されていたので参加してきた。Gyazo は名前は知っていたけど実態は全然知らなくて、京都で開発されてるって知ったのも最近だったようにおもう。 diff --git a/posts/2014-02-03-update-coffee-script-with-mocha.md b/posts/2014-02-03-update-coffee-script-with-mocha.md index aab34e9..08edd78 100644 --- a/posts/2014-02-03-update-coffee-script-with-mocha.md +++ b/posts/2014-02-03-update-coffee-script-with-mocha.md @@ -1,4 +1,5 @@ # coffee-script を 1.7 にしたら mocha が死ぬときの対応 + coffee-script のバージョン1.7がリリースされたので、アップデートしたら mocha が ``` diff --git a/posts/2014-02-08-git-management-dont-arc.md b/posts/2014-02-08-git-management-dont-arc.md index add08f8..38f0f4e 100644 --- a/posts/2014-02-08-git-management-dont-arc.md +++ b/posts/2014-02-08-git-management-dont-arc.md @@ -1,4 +1,5 @@ # git で管理しているディレクトリの不要なファイルを消す + 章毎にファイルを分けてTeXしていると、ついうっかり子ファイル編集時にビルドしてしまってディレクトリにTeXデブリが散乱してしまう。いちいち消すのはめんどくさいので、gitのコミット時にgitで管理しているファイル以外をまとめて吹き飛ばしたい。 http://transitive.info/article/git/command/clean/ diff --git a/posts/2014-02-08-tex-to-gitignore.md b/posts/2014-02-08-tex-to-gitignore.md index e23e276..dbd6fda 100644 --- a/posts/2014-02-08-tex-to-gitignore.md +++ b/posts/2014-02-08-tex-to-gitignore.md @@ -1,4 +1,5 @@ # TeX 向けの .gitignore + アレがアレで現在進行形でめちゃくちゃTeXしている。転ばぬ先の杖の杖として、何重にもバックアップをしつつバージョン管理もしている。とはいえ、TeXはビルドするときにやたらファイルが生成されてgitで管理する邪魔になるので `.gitignore` に不要な拡張子を列挙して目に入らないようにするのがよいだろう。 完成版 diff --git a/posts/2014-02-12-png-eps-poorer-without-changing.md b/posts/2014-02-12-png-eps-poorer-without-changing.md index f298186..2665be9 100644 --- a/posts/2014-02-12-png-eps-poorer-without-changing.md +++ b/posts/2014-02-12-png-eps-poorer-without-changing.md @@ -1,4 +1,5 @@ # png を eps に変換 + TeXしてると、pngで画像を貼れなくてイライラしますね。面倒ですが eps に変換します。`ImageMagick` がインストールしてあれば ``` diff --git a/posts/2014-02-15-graduate-technology.md b/posts/2014-02-15-graduate-technology.md index b1b6d93..f0dfa6e 100644 --- a/posts/2014-02-15-graduate-technology.md +++ b/posts/2014-02-15-graduate-technology.md @@ -1,4 +1,5 @@ # 卒業を支える技術 + 無事卒論を提出できまして、ゆったりとした週末を送っております、いかがお過ごしでしょうか。 約一週間ほどで実験から卒論執筆までこなして、かなり死ぬ思いでやり抜けたのも、不断の弛まぬ努力の賜物...というよりは、各々のツールが助けてくれたのでせっかくなのでまとめておこうと思います。 diff --git a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md index e116dfc..8026877 100644 --- a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md +++ b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md @@ -1,4 +1,5 @@ # Clash of Clans のチームが Reddit で質問に答える企画をやっている + Clash of Clans はとても面白いゲームで、かれこれ1年ほど遊んでいる。このゲームはフォーラムでの議論も盛んで、開発チームもしっかり応える姿勢で臨んでいることが垣間見えてとてもいい。そんな Clash of Clans のチームがはてブライクな Reddit で質問に答える企画をやっていて面白かったのでいくつかピックアップしたい。 http://www.reddit.com/r/ClashOfClans/comments/1yf06r/ask_the_clash_development_team_anything/ diff --git a/posts/2014-02-21-google-chrome-portrait-data-url.md b/posts/2014-02-21-google-chrome-portrait-data-url.md index 08a6c1c..e7ebfc8 100644 --- a/posts/2014-02-21-google-chrome-portrait-data-url.md +++ b/posts/2014-02-21-google-chrome-portrait-data-url.md @@ -1,4 +1,5 @@ # Google Chrome のインスペクタで画像の Data URL がとれるようになった + ![](http://user-image.logdown.io/user/5835/blog/5854/post/180452/Gk1ZRK3DTWajYoX0UdNf_t.png) Google Chrome のインスペクタの Resoces で、画像が Data URL でコピーできるようになっていた。何に使えるかというとすぐにピンとはこないが、おぼえておく。 diff --git a/posts/2014-03-03-mountain-lion-tumblr.md b/posts/2014-03-03-mountain-lion-tumblr.md index 66e4a4a..ff40b95 100644 --- a/posts/2014-03-03-mountain-lion-tumblr.md +++ b/posts/2014-03-03-mountain-lion-tumblr.md @@ -1,4 +1,5 @@ # Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする + 普段はホットコーナーでディスプレイのスリープをしているのだけれど、大きいサブディスプレイを使うとホットコーナーが死ぬので対策が必要になった。 むかしは簡単にtumblogのスライドショーがスクリーンセーバーとして使えたものの、Mountain Lionではそのあたりの機能が削られていたようで一工夫が必要だった。 diff --git a/posts/2014-03-10--mounting.md b/posts/2014-03-10--mounting.md index e769e14..3c6ee31 100644 --- a/posts/2014-03-10--mounting.md +++ b/posts/2014-03-10--mounting.md @@ -1,4 +1,5 @@ # これどうやって実装してるんだろう + ![](http://user-image.logdown.io/user/5835/blog/5854/post/184304/k4Jtv3EIQ5K0406vCppR_a.gif) きになる diff --git a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md index c230344..89d28e3 100644 --- a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md +++ b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md @@ -1,4 +1,5 @@ # Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい + ![](http://user-image.logdown.io/user/5835/blog/5854/post/189632/FhMvHmZYQT29o4YVH2bA_%202014-03-19%200.13.16.png) Techcrunch で Popcorn Time がキテる、そして死んだ、そして蘇った、という記事をひと通り読んで、ソースコードが Github で公開されてると知ったのでとりあえず見に行った。 diff --git a/posts/2014-03-21-buy-imac-bluetooth.md b/posts/2014-03-21-buy-imac-bluetooth.md index a960cbc..2de9a3d 100644 --- a/posts/2014-03-21-buy-imac-bluetooth.md +++ b/posts/2014-03-21-buy-imac-bluetooth.md @@ -1,4 +1,5 @@ # iMac買ったらBluetooth使えなかったけどなんとかなった + どうもどうも、うっかりiMacを買ってしまいましたこんばんは。 さっそくセットアップしよう...!と意気揚々と電源を入れて設定画面にいったものの、Wireless KeyboardもMagick Trackpadも認識されず、操作不能な状態に。仕方がないのでしぶしぶ有線のキーボードを接続して事無きを得たものの、起動後にもBluetoothがメニューバーに表示されないし、システム環境設定にも表示されない。困った。 diff --git a/posts/2014-05-03-windowflow-hyperswitch-becomes.md b/posts/2014-05-03-windowflow-hyperswitch-becomes.md index 78783c6..f7debcf 100644 --- a/posts/2014-05-03-windowflow-hyperswitch-becomes.md +++ b/posts/2014-05-03-windowflow-hyperswitch-becomes.md @@ -1,4 +1,5 @@ # WindowFlowからHyperSwitchに変えた + 今までWindowFlowでウィンドウの切り替えをやっていたのだけれど、HyperSwitchっていうやつの方が綺麗だし反応もいいので変えた。 http://bahoom.com/hyperswitch/ diff --git a/posts/2014-05-04-zsh-becomes.md b/posts/2014-05-04-zsh-becomes.md index c49a86f..a109a82 100644 --- a/posts/2014-05-04-zsh-becomes.md +++ b/posts/2014-05-04-zsh-becomes.md @@ -1,4 +1,5 @@ # zsh のキーバインドを変える + 最近3ヶ月に1回ぐらいやってくる「エディタとかシェルを強くしたい」月間に突入していて、継続的にdotfilesの手入れをしている。本日の手入れはキーバインド。 https://github.com/e-jigsaw/dotfiles/commit/428ee60610c88ac61d632e09d5e7239b67a16820 diff --git a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md index 9f2d69c..79910b8 100644 --- a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md +++ b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md @@ -1,4 +1,5 @@ # phantomjs on ubuntu で日本語が文字化けする件 + # TL;DR * 日本語フォントいれろ diff --git a/posts/2014-06-15-coffee-script-package-number-reserved-t.md b/posts/2014-06-15-coffee-script-package-number-reserved-t.md index 4ed4541..586aeb5 100644 --- a/posts/2014-06-15-coffee-script-package-number-reserved-t.md +++ b/posts/2014-06-15-coffee-script-package-number-reserved-t.md @@ -1,4 +1,5 @@ # coffee-script では package が reserved になってるので変数として使えない + http://coffeescript.org/documentation/docs/lexer.html#section-66 * package は coffee-script での予約語らしい diff --git a/posts/2014-06-28-ghq.md b/posts/2014-06-28-ghq.md index 4d21b61..81c252c 100644 --- a/posts/2014-06-28-ghq.md +++ b/posts/2014-06-28-ghq.md @@ -1,4 +1,5 @@ # ghq がライフチェンジングだった + 先日から少し話題になっていた `ghq` をついに導入した。話題になっていたときは、なにが便利なのか理解できていなくて `git`, `hg`, `bzr` あたりを統合的に扱えるやつなのかとおもっていた。 時は流れて、今日になって Atom にプロジェクトスイッチャみたいなやつがほしいな、と思い立って調べてみるとあまり目ぼしいものが見つからなかった。そのとき、そういえば `ghq` てのがあったな〜、あれ使ってスイッチャみたいなの作れないかな〜と思いついて導入してみたらめっちゃ便利だった。 diff --git a/posts/2014-06-29-journal-by-go.md b/posts/2014-06-29-journal-by-go.md index f407f68..76db61a 100644 --- a/posts/2014-06-29-journal-by-go.md +++ b/posts/2014-06-29-journal-by-go.md @@ -1,4 +1,5 @@ # 激ヤバ鬼便利日報ツールを Go でリプレースした + https://github.com/e-jigsaw/journal 弊社には日報をメールで送る文化があって(それの如何についてはともかく)、意外と読まれるようなので力入れて書いた方がいろいろな場面でよさそうとのことなのでここ一週間ぐらい日報をいかに楽して書くかに全力を投じてきた。一旦は git の pre-commit hook を使ってメールを送信する「激ヤバ鬼便利日報システム」で落ち着いていた。pre-commit hook は coffee-script で書いていたので coffee が入ってないと使えない欠点があるので布教しやすい何かにリプレースすることを模索していた。 diff --git a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md index f9e3d74..f028096 100644 --- a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md +++ b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md @@ -1,4 +1,5 @@ # ghq と gopath の兼ね合い + # TL;DR * `$GOPATH` を `~/.ghq` にした diff --git a/posts/2014-07-02-alias-upcd.md b/posts/2014-07-02-alias-upcd.md index 1b3b9d5..d46ff31 100644 --- a/posts/2014-07-02-alias-upcd.md +++ b/posts/2014-07-02-alias-upcd.md @@ -1,4 +1,5 @@ # alias up='cd ../' + https://github.com/e-jigsaw/dotfiles/commit/866a1363b1f29916f285937957b49510a6daa578 もはや説明も不要な感じがするが、便利なエイリアスを閃いたので。 diff --git a/posts/2014-07-21-cabinjs.md b/posts/2014-07-21-cabinjs.md index 5beae7b..7d84b9b 100644 --- a/posts/2014-07-21-cabinjs.md +++ b/posts/2014-07-21-cabinjs.md @@ -1,4 +1,5 @@ # cabinjs ベースの blog に置き換えた + http://www.cabinjs.com/ logdown でこれまで開発ごとっぽい記事は書いてきたのだけれど、やっぱりローカルで markdown を書いて `hoge deploy` みたいな感じで公開したかったので思い切って `cabinjs` ベースの Github Pages に置き換えてみた。 diff --git a/posts/2014-07-23-made-twlv.md b/posts/2014-07-23-made-twlv.md index 1bfdfee..858134b 100644 --- a/posts/2014-07-23-made-twlv.md +++ b/posts/2014-07-23-made-twlv.md @@ -1,4 +1,5 @@ # twlv というジョークライブラリをつくった + https://github.com/jackdcrawford/five というライブラリがあって、ひたすら意味もなく 5 を複雑にするだけのライブラリでアホらしすぎて面白かった。 > This repo is absolutely fucking hilarious. diff --git a/posts/2014-07-30-boom-replaced-ab.md b/posts/2014-07-30-boom-replaced-ab.md index a782eb6..9d57e6b 100644 --- a/posts/2014-07-30-boom-replaced-ab.md +++ b/posts/2014-07-30-boom-replaced-ab.md @@ -1,5 +1,6 @@ # boom で ab + https://github.com/rakyll/boom Go 製の ab っぽいツール。 diff --git a/posts/2014-08-04-output-tsv-from-psql.md b/posts/2014-08-04-output-tsv-from-psql.md index 6496ab0..0f8b4db 100644 --- a/posts/2014-08-04-output-tsv-from-psql.md +++ b/posts/2014-08-04-output-tsv-from-psql.md @@ -1,4 +1,5 @@ # psql -> tsv + http://d.hatena.ne.jp/choplin/20101222/1292995497 psql で tsv を出したい。 diff --git a/posts/2014-08-04-shell-command-tr-split.md b/posts/2014-08-04-shell-command-tr-split.md index c68fc71..6d68f3e 100644 --- a/posts/2014-08-04-shell-command-tr-split.md +++ b/posts/2014-08-04-shell-command-tr-split.md @@ -1,4 +1,5 @@ # 今日のシェルコマンド + 今日は必要に迫られてシェルのコマンドを調べて使った # tr diff --git a/posts/2014-08-11-shields-io.md b/posts/2014-08-11-shields-io.md index 45872df..5b5dfb9 100644 --- a/posts/2014-08-11-shields-io.md +++ b/posts/2014-08-11-shields-io.md @@ -1,4 +1,5 @@ # shields.io でバッジのガタガタが直せるっぽい + https://github.com/badges/shields Github の README にバッジを貼るサービスが増えているけれど、それぞれの画像がまちまちなのでガタガタになってしまう問題がある。それを解決してくれるのがこれらしい。 diff --git a/posts/2014-08-12-install-imagemagick-on-mac.md b/posts/2014-08-12-install-imagemagick-on-mac.md index d228d71..83f95d0 100644 --- a/posts/2014-08-12-install-imagemagick-on-mac.md +++ b/posts/2014-08-12-install-imagemagick-on-mac.md @@ -1,4 +1,5 @@ # mac に imagemagick をいれる + http://stackoverflow.com/questions/7412208/imagemagick-and-os-x-lion-trouble imagemagick をいれたらコケたので調べてみると...的なやつ。 diff --git a/posts/2014-08-20-api-blueprint-indent.md b/posts/2014-08-20-api-blueprint-indent.md index 41479e8..4c07f36 100644 --- a/posts/2014-08-20-api-blueprint-indent.md +++ b/posts/2014-08-20-api-blueprint-indent.md @@ -1,4 +1,5 @@ # api blueprint のインデントでつまずいた + # TL;DR * `API Blueprint` の markdown は 4スペース diff --git a/posts/2014-08-20-workshopper.md b/posts/2014-08-20-workshopper.md index 7bf1f1f..6fa2e76 100644 --- a/posts/2014-08-20-workshopper.md +++ b/posts/2014-08-20-workshopper.md @@ -1,4 +1,5 @@ # workshopper でハンズオンを体系化できるっぽい + https://github.com/rvagg/workshopper nodeconf などで使われていたらしい workshopper というモジュールを教えてもらった。シェル上でインタラクティブに学習をする際にこれを使って作っておけばあとは clone してどうこうすれば気軽にハンズオンできそう。 diff --git a/posts/2014-08-22-create-yasuharu-visualize.md b/posts/2014-08-22-create-yasuharu-visualize.md index e243ec9..8f89f7e 100644 --- a/posts/2014-08-22-create-yasuharu-visualize.md +++ b/posts/2014-08-22-create-yasuharu-visualize.md @@ -1,4 +1,5 @@ # Yasuharu Visualize つくった + http://e-jigsaw.github.io/Weight/ 煽られたのでつくった。いつものテクノロジーでいつも通りつくりました、という感じ。 diff --git a/posts/2014-08-22-github-org-is-private-in-default.md b/posts/2014-08-22-github-org-is-private-in-default.md index 96061bf..7e780be 100644 --- a/posts/2014-08-22-github-org-is-private-in-default.md +++ b/posts/2014-08-22-github-org-is-private-in-default.md @@ -1,4 +1,5 @@ # github の org はデフォルトで private になっている + ![](https://cloud.githubusercontent.com/assets/557961/4008809/eb51b9f0-29db-11e4-8009-adbe8434f493.png) 今日他のひとに自分の github のユーザページを見られる機会があって、その際に private repo の commit とかが見えないのは知ってたのだけれど org に全然入っていないことになっていて驚いて調べてみるとデフォルトでは private になっているようだ。 diff --git a/posts/2014-08-25-ngrok-awesome.md b/posts/2014-08-25-ngrok-awesome.md index 30ef693..e5c1e52 100644 --- a/posts/2014-08-25-ngrok-awesome.md +++ b/posts/2014-08-25-ngrok-awesome.md @@ -1,4 +1,5 @@ # ngrok 便利 + https://ngrok.com/ ngrok、なんとなく star つけたのがだいぶ前で触れてすらいなかったのだけれど、今日携帯端末向けにデバッグするために使ったらめっちゃ便利だった。 diff --git a/posts/2014-09-04-chatwork-md-0-1-0.md b/posts/2014-09-04-chatwork-md-0-1-0.md index ddc9eee..897454b 100644 --- a/posts/2014-09-04-chatwork-md-0-1-0.md +++ b/posts/2014-09-04-chatwork-md-0-1-0.md @@ -1,4 +1,5 @@ # chatwork.md をアップデートした + https://github.com/e-jigsaw/chatwork.md Chatwork 上で Markdown の記法を使ってやりとりができるようになる Chrome 拡張 chatwork.md をアップデートした。 diff --git a/posts/2014-09-20-created-qls.md b/posts/2014-09-20-created-qls.md index c5a60ef..d9940c2 100644 --- a/posts/2014-09-20-created-qls.md +++ b/posts/2014-09-20-created-qls.md @@ -1,4 +1,5 @@ # qls というコマンドをつくった + https://github.com/e-jigsaw/qls ちょっと入用だったので `qls` というコマンドをささっとつくった。`ls` の結果をクオートで囲ったやつを改行区切りで出すだけのやつ。 diff --git a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md index a4656b4..415756b 100644 --- a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md +++ b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md @@ -1,4 +1,5 @@ # githubのtimelineをBigQueryで解析する(その2) + http://dev.jgs.me/posts/github-timeline-is-analyzable-on-bigquery/ のつづき。 試しに自分のアカウントでフィルタしたクエリを投げてみる。 diff --git a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md index 21e9f7d..e42edd0 100644 --- a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md +++ b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md @@ -1,4 +1,5 @@ # githubのtimelineがbigqueryで解析できる + http://www.githubarchive.org/ [Githut](http://githut.info/)という Github の解析サイトがあって、仕掛けを調べていたらGithubはpublicなtimelineをオープンデータとして公開しているらしい。 diff --git a/posts/2014-10-02-clear-up-tmux-keybinds.md b/posts/2014-10-02-clear-up-tmux-keybinds.md index 2c24126..23d5e08 100644 --- a/posts/2014-10-02-clear-up-tmux-keybinds.md +++ b/posts/2014-10-02-clear-up-tmux-keybinds.md @@ -1,4 +1,5 @@ # tmuxのkeybindを整理した + https://github.com/e-jigsaw/dotfiles/blob/4f93e51a19897ad9019fbb65eea9a184c00f5c45/README.md tmux の keybind ってどれもあまり直感的にピンときにくい bind で、整理したいな〜とずっとおもっていたので期も変わったしエイヤッと整理した。 diff --git a/posts/2014-10-03-created-rpt.md b/posts/2014-10-03-created-rpt.md index 3eca946..8ab2293 100644 --- a/posts/2014-10-03-created-rpt.md +++ b/posts/2014-10-03-created-rpt.md @@ -1,4 +1,5 @@ # tumblrからランダムに写真を表示するサービスをつくった + https://github.com/jgsme/rpt 寿司が宇宙にいる様子がひたすら流れる [spacesushipic](http://spacesushipic.tumblr.com/) っていうアカウントが面白くて、適当な写真をサッと取得できたらいいなー、という着想から。 diff --git a/posts/2014-10-04-rpt-updated.md b/posts/2014-10-04-rpt-updated.md index 648b230..4777b8f 100644 --- a/posts/2014-10-04-rpt-updated.md +++ b/posts/2014-10-04-rpt-updated.md @@ -1,4 +1,5 @@ # rptをアップデートした + http://rpt.jgs.me [昨日](http://dev.jgs.me/posts/created-rpt/)つくった RPT をアップデートした。リダイレクトすると複数回ランダムしたいときとかに不便なので、結局 Web のインターフェースをつくることにした。 diff --git a/posts/2014-10-08-dependency-injection-in-node-js.md b/posts/2014-10-08-dependency-injection-in-node-js.md index 45800db..4bfa083 100644 --- a/posts/2014-10-08-dependency-injection-in-node-js.md +++ b/posts/2014-10-08-dependency-injection-in-node-js.md @@ -1,4 +1,5 @@ # bottlejsでDIを試す + https://github.com/young-steveo/bottlejs # tl;dr diff --git a/posts/2014-10-08-forked-feedback.md b/posts/2014-10-08-forked-feedback.md index e029ddf..ebdd1be 100644 --- a/posts/2014-10-08-forked-feedback.md +++ b/posts/2014-10-08-forked-feedback.md @@ -1,4 +1,5 @@ # feedbackというリポジトリをforkした + https://github.com/e-jigsaw/feedback Dashboard 見てたら https://github.com/holman/feedback を fork してるひとがいたので見にいってみたら issue を使って質問できるリポジトリだった。 diff --git a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md index c179e09..e2d51f4 100644 --- a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md +++ b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md @@ -1,4 +1,5 @@ # JavascriptBattleのルールを日本語訳してみた + https://github.com/JavascriptBattle/hero-starter JavascriptBattle という AI を作って戦わせる系のゲームを発見して、結構面白そうだったので遊んでみている。 diff --git a/posts/2014-10-10-coped-with-rss.md b/posts/2014-10-10-coped-with-rss.md index 635b589..df88e12 100644 --- a/posts/2014-10-10-coped-with-rss.md +++ b/posts/2014-10-10-coped-with-rss.md @@ -1,4 +1,5 @@ # rss に対応しました + http://dev.jgs.me/feed.xml RSS 対応するのめんどくさそう...とおもってしばらくほったらかしていたところ、ジェネレータで RSS を生成するオプションがあることに気付いたので対応した。 diff --git a/posts/2014-10-14-created-universal-url-modifier.md b/posts/2014-10-14-created-universal-url-modifier.md index f476ce0..0f664fe 100644 --- a/posts/2014-10-14-created-universal-url-modifier.md +++ b/posts/2014-10-14-created-universal-url-modifier.md @@ -1,4 +1,5 @@ # universal-url-modifier をつくった + https://github.com/e-jigsaw/universal-url-modifier `README` にも書いたんだけど、結構前から [r7kamura/amazon-url-modifier](https://github.com/r7kamura/amazon-url-modifier) を使わせてもらっていて、便利だなー、とおもっていた。ちなみに作者の[記事](http://r7kamura.hatenablog.com/entry/2014/08/04/150113)の diff --git a/posts/2014-10-27-updated-hyperswitch.md b/posts/2014-10-27-updated-hyperswitch.md index 9080847..44afbaa 100644 --- a/posts/2014-10-27-updated-hyperswitch.md +++ b/posts/2014-10-27-updated-hyperswitch.md @@ -1,4 +1,5 @@ # hyperswitchのアップデート + http://www.macupdate.com/app/mac/41769/hyperswitch 少し前ぐらいから Hyperswitch のバージョンが expire してるよってアラートが出るもののアップデートができない状況が続いていて、さすがにイライラしてきたので調べてみたら別のサイトで最新版が配布されていた。`0.2.420-dev` にアップデートできた。 diff --git a/posts/2014-11-19-facebook-flow-first-impression.md b/posts/2014-11-19-facebook-flow-first-impression.md index dba6925..1482f3f 100644 --- a/posts/2014-11-19-facebook-flow-first-impression.md +++ b/posts/2014-11-19-facebook-flow-first-impression.md @@ -1,4 +1,5 @@ # facebook-flow first impression + http://flowtype.org/ 既に数人 Facebook Flow の感想を上げていたのでリンクを貼っておく diff --git a/posts/2014-12-01-the-technology-behind-vj.md b/posts/2014-12-01-the-technology-behind-vj.md index 8800955..9d1e285 100644 --- a/posts/2014-12-01-the-technology-behind-vj.md +++ b/posts/2014-12-01-the-technology-behind-vj.md @@ -1,4 +1,5 @@ # #kosenvj を支える技術(フロント編) + https://twitter.com/asonas/status/538995926514167808 顧問が書けって言ってるので書く。 diff --git a/posts/2014-12-15-setup-yosemite-machines.md b/posts/2014-12-15-setup-yosemite-machines.md index 0a165f5..32470af 100644 --- a/posts/2014-12-15-setup-yosemite-machines.md +++ b/posts/2014-12-15-setup-yosemite-machines.md @@ -1,4 +1,5 @@ # Yosemite マシンゲットしたので環境を整えた + https://github.com/e-jigsaw/dotfiles # まえがき diff --git a/posts/2014-12-17-fixed-zsh-5-0-7.md b/posts/2014-12-17-fixed-zsh-5-0-7.md index 28d6c7c..a0a2fe9 100644 --- a/posts/2014-12-17-fixed-zsh-5-0-7.md +++ b/posts/2014-12-17-fixed-zsh-5-0-7.md @@ -1,4 +1,5 @@ # zsh まわりを直した + https://github.com/e-jigsaw/dotfiles zsh のバージョンが上がったせいなのかなんなのか分からないけど、だいぶストレス溜まる感じになってたので直した diff --git a/posts/2014-12-24-created-md2wp.md b/posts/2014-12-24-created-md2wp.md index a0dbf30..5cf755a 100644 --- a/posts/2014-12-24-created-md2wp.md +++ b/posts/2014-12-24-created-md2wp.md @@ -1,4 +1,5 @@ # md2wp をつくった + http://md2wp.jgs.me 生意気な新卒として社会人ライフを送っていたら広報の手伝いをすることになって、会議に出たりしてたら記事を書くことになったのでとりあえず gist に書いたら結構ウケたのでそのまま出すことになった。のだけれど、Wordpress に入ってる Markdown のプラグインが絶妙に使えないヤツだったので泣く泣く WYSIWYG のエディタでブロック毎にコピーする業をせねばならずとても苦痛だった。 From ab99640c7261f0dfddba546780459880e6aa9513 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 22:06:14 +0900 Subject: [PATCH 07/21] remove old files --- Gruntfile.coffee | 132 --------------------------- src/images/cabin.png | Bin 6188 -> 0 bytes src/{styles/main.styl => index.styl} | 0 src/layouts/_social.jade | 32 ------- src/layouts/base.jade | 40 -------- src/layouts/post.jade | 9 -- src/pages/archives.jade | 6 -- src/pages/index.jade | 9 -- 8 files changed, 228 deletions(-) delete mode 100644 Gruntfile.coffee delete mode 100644 src/images/cabin.png rename src/{styles/main.styl => index.styl} (100%) delete mode 100644 src/layouts/_social.jade delete mode 100644 src/layouts/base.jade delete mode 100644 src/layouts/post.jade delete mode 100644 src/pages/archives.jade delete mode 100644 src/pages/index.jade diff --git a/Gruntfile.coffee b/Gruntfile.coffee deleted file mode 100644 index b0b2ac2..0000000 --- a/Gruntfile.coffee +++ /dev/null @@ -1,132 +0,0 @@ -module.exports = (grunt) -> - grunt.initConfig - pages: - posts: - src: 'posts' - dest: 'dist' - layout: 'src/layouts/post.jade' - url: 'posts/:url/' - options: - pageSrc: 'src/pages' - data: - baseUrl: '/' - pagination: - postsPerPage: 1 - listPage: 'src/pages/index.jade' - rss: - title: 'Kaihatsu' - description: 'Development log' - author: 'jigsaw (http://jgs.me)' - url: 'http://dev.jgs.me' - numPosts: 5 - - copy: - dist: - files: [ - expand: true - cwd: 'src' - dest: 'dist' - src: [ - 'images/**' - 'scripts/**' - 'CNAME' - ] - ] - style: - files: - 'dist/styles/github-markdown.css': 'github-markdown-css/github-markdown.css' - - stylus: - compile: - files: - 'dist/styles/main.css': 'src/styles/main.styl' - - watch: - pages: - files: [ - 'posts/**' - 'src/layouts/**' - 'src/pages/**' - ] - tasks: ['pages'] - stylus: - files: ['src/styles/**'] - tasks: ['stylus'] - copy: - files: [ - 'src/images/**' - ] - tasks: ['copy'] - dist: - files: ['dist/**'] - options: - livereload: true - - connect: - dist: - options: - port: 5455 - hostname: '0.0.0.0' - base: 'dist' - livereload: true - - open: - dist: - path: 'http://localhost:5455' - - clean: - dist: [ - 'dist' - '.grunt' - '.sass-cache' - ] - - 'gh-pages': - options: - base: 'dist' - src: ['**'] - - grunt.registerTask 'build', [ - 'clean' - 'pages' - 'stylus' - 'copy' - ] - - grunt.registerTask 'deploy', [ - 'clean' - 'build' - 'gh-pages' - ] - - grunt.registerTask 'server', [ - 'build' - 'connect' - 'open' - 'watch' - ] - - grunt.registerTask 'write', -> - fs = require 'fs' - inquirer = require 'inquirer' - done = @async() - inquirer.prompt - type: 'input' - name: 'title' - message: 'title' - , (titleAnswer)-> - inquirer.prompt - type: 'input' - name: 'url' - message: 'url' - , (urlAnswer)-> - now = new Date() - zerocomp = (num)-> if num.toString().length is 1 then "0#{num}" else num.toString() - strNow = "#{now.getFullYear()}-#{zerocomp(now.getMonth()+1)}-#{zerocomp(now.getDate())}" - fs.writeFile "posts/#{strNow}-#{urlAnswer.url}.md", "{\n title: \"#{titleAnswer.title}\",\n date: \"#{strNow}\",\n description: \"#{titleAnswer.title}\",\n url: \"#{urlAnswer.url}\"\n}\n\n", (err)-> - console.log err if err? - done() - - grunt.registerTask 'default', 'server' - - require('load-grunt-tasks')(grunt) diff --git a/src/images/cabin.png b/src/images/cabin.png deleted file mode 100644 index c11151570a06d59f7211ecd68c40d72345d00734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6188 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 F`acH-kk0@B diff --git a/src/styles/main.styl b/src/index.styl similarity index 100% rename from src/styles/main.styl rename to src/index.styl diff --git a/src/layouts/_social.jade b/src/layouts/_social.jade deleted file mode 100644 index d5d56a7..0000000 --- a/src/layouts/_social.jade +++ /dev/null @@ -1,32 +0,0 @@ -// Social sharing icons -.social - a(href="https://twitter.com/share", class="twitter-share-button") Tweet - .fb-like(data-layout="button_count", data-action="like", data-show-faces="false", data-share="false") - -// Disqus comments, Make sure to replace `colinwren` with your account name in the Disqus helper script below -#comments - #disqus_thread - -// Twitter -script(type="text/javascript"). - !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); - -// Facebook -script(type="text/javascript"). - (function(d, s, id) { - var js, fjs = d.getElementsByTagName(s)[0]; - if (d.getElementById(id)) return; - js = d.createElement(s); js.id = id; - js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1388727331349705&version=v2.0"; - fjs.parentNode.insertBefore(js, fjs); - }(document, 'script', 'facebook-jssdk')); - -// Disqus -script(type="text/javascript"). - var disqus_shortname = 'kaihatsu2'; // Change this to your Disqus account name - - (function() { - var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; - dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; - (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); - })(); diff --git a/src/layouts/base.jade b/src/layouts/base.jade deleted file mode 100644 index 4a3a7bf..0000000 --- a/src/layouts/base.jade +++ /dev/null @@ -1,40 +0,0 @@ -//- Mixin for post, used on homepage and post page -mixin postHead(post) - .post-head.group - a(href="#{data.baseUrl}#{post.url}") - h1.post-title= post.title - span.post-date!= [post.date.getUTCFullYear(), post.date.getUTCMonth() + 1, post.date.getUTCDate()].join(' · ') - -mixin post(post) - mixin postHead(post) - .post-body.markdown!= post.content - -doctype html -html - head - meta(charset="utf-8") - meta(name="viewport", content="width=device-width, initial-scale=1, user-scalable=no") - link(rel="alternate", type="application/rss+xml", title="kaihatsu", href="/feed.xml") - link(rel="icon", type="image/png", href="#{data.baseUrl}images/cabin.png") - link(rel="stylesheet", href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css") - link(rel="stylesheet", href="/styles/github-markdown.css") - link(href="#{data.baseUrl}styles/main.css", rel="stylesheet") - block head - title= "Kaihatsu" - body - #fb-root - header.pure-u-1-1 - a(href="#{data.baseUrl}") - h1 Kaihatsu - - article.markdown-body - block content - - footer.pure-u-1-1 - ul - li - a.button(href="#{data.baseUrl}archives.html") Archives - li - a.button(href="http://jgs.me") Home - li - a.button(href="https://github.com/jgsme/log") Github repository diff --git a/src/layouts/post.jade b/src/layouts/post.jade deleted file mode 100644 index 5bc4740..0000000 --- a/src/layouts/post.jade +++ /dev/null @@ -1,9 +0,0 @@ -extends base - -block head - title= post.title - if post.description - meta(name="description", content="#{post.description}") -block content - mixin post(post) - include _social diff --git a/src/pages/archives.jade b/src/pages/archives.jade deleted file mode 100644 index f4e66e8..0000000 --- a/src/pages/archives.jade +++ /dev/null @@ -1,6 +0,0 @@ -extends ../layouts/base -block head - title Archives -block content - each post in posts - mixin postHead(post) diff --git a/src/pages/index.jade b/src/pages/index.jade deleted file mode 100644 index d984a59..0000000 --- a/src/pages/index.jade +++ /dev/null @@ -1,9 +0,0 @@ -extends ../layouts/base - -block content - each post in posts - mixin post(post) - div.comments - a(href="#{data.baseUrl}#{post.url}#comments") - span.icon-bubbles - | Comments From 281be194c0902a366f4e854ac7010a301c4eb4b7 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sat, 27 Dec 2014 22:37:28 +0900 Subject: [PATCH 08/21] complete markdown convert feature --- gulpfile.coffee | 19 +++++++++++++++++++ package.json | 5 ++++- src/layout.jade | 7 +++++++ src/page.jade | 4 ++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/layout.jade create mode 100644 src/page.jade diff --git a/gulpfile.coffee b/gulpfile.coffee index a348a65..ff77482 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -1,7 +1,26 @@ gulp = require 'gulp' mark = require 'gulp-markdown' +jade = require 'gulp-jade-template' +through = require 'through2' + +parse = -> through.obj (file, encoding, callback)-> + html = file.contents.toString() + filename = /(\d{4})-(\d{2})-(\d{2})-(.*)\.html/.exec file.path + res = + article: html + date: + year: filename[0] + month: filename[1] + day: filename[2] + url: filename[3] + file.contents = new Buffer JSON.stringify res + callback null, file gulp.task 'article', -> gulp.src 'posts/*.md' .pipe mark() + .pipe parse() + .pipe jade('src/page.jade') .pipe gulp.dest('build') + +gulp.task 'default', ['article'] diff --git a/package.json b/package.json index 83a3036..613f499 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,9 @@ "dependencies": { "coffee-script": "^1.8.0", "gulp": "^3.8.10", - "gulp-markdown": "^1.0.0" + "gulp-data": "^1.1.1", + "gulp-jade-template": "0.0.4", + "gulp-markdown": "^1.0.0", + "through2": "^0.6.3" } } diff --git a/src/layout.jade b/src/layout.jade new file mode 100644 index 0000000..5bf2564 --- /dev/null +++ b/src/layout.jade @@ -0,0 +1,7 @@ +doctype html +html + head + title kaihatsu + block links + body + block body diff --git a/src/page.jade b/src/page.jade new file mode 100644 index 0000000..f7c034a --- /dev/null +++ b/src/page.jade @@ -0,0 +1,4 @@ +extends layout + +block body + article!= article From 38d0a3a54fc3ca5b4b81c49301105e107bbb6a6c Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sun, 28 Dec 2014 00:15:47 +0900 Subject: [PATCH 09/21] publish article to date based dir --- gulpfile.coffee | 21 +++++---------------- package.json | 5 +++-- src/page.jade | 2 +- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/gulpfile.coffee b/gulpfile.coffee index ff77482..5c486e4 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -1,26 +1,15 @@ gulp = require 'gulp' mark = require 'gulp-markdown' jade = require 'gulp-jade-template' -through = require 'through2' - -parse = -> through.obj (file, encoding, callback)-> - html = file.contents.toString() - filename = /(\d{4})-(\d{2})-(\d{2})-(.*)\.html/.exec file.path - res = - article: html - date: - year: filename[0] - month: filename[1] - day: filename[2] - url: filename[3] - file.contents = new Buffer JSON.stringify res - callback null, file +article = require 'gulp-article' +publish = require 'gulp-article-publish' gulp.task 'article', -> gulp.src 'posts/*.md' .pipe mark() - .pipe parse() + .pipe article() .pipe jade('src/page.jade') - .pipe gulp.dest('build') + .pipe article() + .pipe publish('build') gulp.task 'default', ['article'] diff --git a/package.json b/package.json index 613f499..60ea810 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,10 @@ "dependencies": { "coffee-script": "^1.8.0", "gulp": "^3.8.10", + "gulp-article": "0.0.4", + "gulp-article-publish": "0.0.2", "gulp-data": "^1.1.1", "gulp-jade-template": "0.0.4", - "gulp-markdown": "^1.0.0", - "through2": "^0.6.3" + "gulp-markdown": "^1.0.0" } } diff --git a/src/page.jade b/src/page.jade index f7c034a..231de78 100644 --- a/src/page.jade +++ b/src/page.jade @@ -1,4 +1,4 @@ extends layout block body - article!= article + article!= body From 7d04fd71e6252ecc9b72abce7aac3b733a5dc93b Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sun, 28 Dec 2014 00:35:57 +0900 Subject: [PATCH 10/21] add index page task --- .gitignore | 21 +-------------------- gulpfile.coffee | 11 +++++++++++ package.json | 4 +++- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 926a1e6..dd87e2d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,2 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log node_modules - -.sass-cache - -# Cabin-specific ignored files -dist -.grunt +build diff --git a/gulpfile.coffee b/gulpfile.coffee index 5c486e4..b3caab6 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -3,6 +3,9 @@ mark = require 'gulp-markdown' jade = require 'gulp-jade-template' article = require 'gulp-article' publish = require 'gulp-article-publish' +fs = require 'fs' +_ = require 'lodash' +rename = require 'gulp-rename' gulp.task 'article', -> gulp.src 'posts/*.md' @@ -12,4 +15,12 @@ gulp.task 'article', -> .pipe article() .pipe publish('build') +gulp.task 'index', -> fs.readdir 'posts', (err, files)-> + gulp.src "posts/#{_.last(files)}" + .pipe mark() + .pipe article() + .pipe jade('src/page.jade') + .pipe rename('index.html') + .pipe gulp.dest('build') + gulp.task 'default', ['article'] diff --git a/package.json b/package.json index 60ea810..7721e6a 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,8 @@ "gulp-article-publish": "0.0.2", "gulp-data": "^1.1.1", "gulp-jade-template": "0.0.4", - "gulp-markdown": "^1.0.0" + "gulp-markdown": "^1.0.0", + "gulp-rename": "^1.2.0", + "lodash": "^2.4.1" } } From bf3fec5df5da7ae8caed1dc9498fa659e1b04c00 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sun, 28 Dec 2014 01:25:40 +0900 Subject: [PATCH 11/21] update titles --- posts/2013-09-19-httpie.md | 2 +- posts/2013-09-25-nested-mongoose.md | 2 +- posts/2013-09-27-nginxdesocket-dot-io.md | 2 +- posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md | 2 +- posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md | 2 +- posts/2013-10-06-vimdebu-wan.md | 2 +- posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md | 2 +- posts/2013-10-16-nodectl-metutiyabian-li.md | 2 +- posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md | 2 +- ...2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md | 2 +- posts/2013-10-23-texdepngwotie-ru.md | 2 +- posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md | 2 +- ...sukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md | 2 +- posts/2013-12-11-logwatch-vps-every-day.md | 2 +- posts/2013-12-12-contribute-taberareloo-tumblr-403.md | 2 +- posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md | 2 +- posts/2013-12-14-vagrant-berkshelf-plugin.md | 2 +- posts/2014-01-18-went-rails-terakoya-3.md | 2 +- posts/2014-01-21-sweet-js-brunch.md | 2 +- posts/2014-01-25-iterm2-append-dotfiles-i.md | 2 +- posts/2014-01-30-kuriyama-every.md | 2 +- posts/2014-02-01-gyazo-on-rails-developer-talk.md | 2 +- posts/2014-02-03-update-coffee-script-with-mocha.md | 2 +- posts/2014-02-08-git-management-dont-arc.md | 2 +- posts/2014-02-08-tex-to-gitignore.md | 2 +- posts/2014-02-12-png-eps-poorer-without-changing.md | 2 +- posts/2014-02-15-graduate-technology.md | 2 +- ...2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md | 2 +- posts/2014-02-21-google-chrome-portrait-data-url.md | 2 +- posts/2014-03-03-mountain-lion-tumblr.md | 2 +- posts/2014-03-10--mounting.md | 2 +- posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md | 2 +- posts/2014-03-21-buy-imac-bluetooth.md | 2 +- posts/2014-05-03-windowflow-hyperswitch-becomes.md | 2 +- posts/2014-05-04-zsh-becomes.md | 2 +- posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md | 2 +- posts/2014-06-15-coffee-script-package-number-reserved-t.md | 2 +- posts/2014-06-28-ghq.md | 2 +- posts/2014-06-29-journal-by-go.md | 2 +- posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md | 2 +- posts/2014-07-02-alias-upcd.md | 2 +- posts/2014-07-21-cabinjs.md | 2 +- posts/2014-07-23-made-twlv.md | 2 +- posts/2014-07-30-boom-replaced-ab.md | 2 +- posts/2014-08-04-output-tsv-from-psql.md | 2 +- posts/2014-08-04-shell-command-tr-split.md | 2 +- posts/2014-08-11-shields-io.md | 2 +- posts/2014-08-12-install-imagemagick-on-mac.md | 2 +- posts/2014-08-20-api-blueprint-indent.md | 2 +- posts/2014-08-20-workshopper.md | 2 +- posts/2014-08-22-create-yasuharu-visualize.md | 2 +- posts/2014-08-22-github-org-is-private-in-default.md | 2 +- posts/2014-08-25-ngrok-awesome.md | 2 +- posts/2014-09-04-chatwork-md-0-1-0.md | 2 +- posts/2014-09-20-created-qls.md | 2 +- posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md | 2 +- posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md | 2 +- posts/2014-10-02-clear-up-tmux-keybinds.md | 2 +- posts/2014-10-03-created-rpt.md | 2 +- posts/2014-10-04-rpt-updated.md | 2 +- posts/2014-10-08-dependency-injection-in-node-js.md | 2 +- posts/2014-10-08-forked-feedback.md | 2 +- .../2014-10-09-translated-JavascriptBattle-rules-in-japanese.md | 2 +- posts/2014-10-10-coped-with-rss.md | 2 +- posts/2014-10-14-created-universal-url-modifier.md | 2 +- posts/2014-10-27-updated-hyperswitch.md | 2 +- posts/2014-11-19-facebook-flow-first-impression.md | 2 +- posts/2014-12-01-the-technology-behind-vj.md | 2 +- posts/2014-12-15-setup-yosemite-machines.md | 2 +- posts/2014-12-17-fixed-zsh-5-0-7.md | 2 +- posts/2014-12-24-created-md2wp.md | 2 +- 71 files changed, 71 insertions(+), 71 deletions(-) diff --git a/posts/2013-09-19-httpie.md b/posts/2013-09-19-httpie.md index 9cf6ac1..1e78735 100644 --- a/posts/2013-09-19-httpie.md +++ b/posts/2013-09-19-httpie.md @@ -1,4 +1,4 @@ -# httpie +# [httpie](/2013/09/19/httpie.html) http://qiita.com/yuku_t/items/5df06d50c4c349cc0c1b diff --git a/posts/2013-09-25-nested-mongoose.md b/posts/2013-09-25-nested-mongoose.md index 097f487..2dce0c2 100644 --- a/posts/2013-09-25-nested-mongoose.md +++ b/posts/2013-09-25-nested-mongoose.md @@ -1,4 +1,4 @@ -# node.jsのmongooseでnestしたobjectをpopulateする +# [node.jsのmongooseでnestしたobjectをpopulateする](/2013/09/25/nested-mongoose.html) `node.js` の `mongoose` でネストしたドキュメントを `populate` したいときの話。 diff --git a/posts/2013-09-27-nginxdesocket-dot-io.md b/posts/2013-09-27-nginxdesocket-dot-io.md index f11217d..835108b 100644 --- a/posts/2013-09-27-nginxdesocket-dot-io.md +++ b/posts/2013-09-27-nginxdesocket-dot-io.md @@ -1,4 +1,4 @@ -# nginxでsocket.io +# [nginxでsocket.io](/2013/09/27/nginxdesocket-dot-io.html) 追い詰められて構築したさくらVPSにsocket.io on nginxを構築した。 diff --git a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md index 39fd550..597c90e 100644 --- a/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md +++ b/posts/2013-09-27-sakuravpsfalsechu-qi-she-ding.md @@ -1,4 +1,4 @@ -# さくらvpsの初期設定 +# [さくらvpsの初期設定](/2013/09/27/sakuravpsfalsechu-qi-she-ding.html) 超絶追い詰められて勢いでさくらVPSを構築した。 diff --git a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md index 321c56d..964cbfc 100644 --- a/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md +++ b/posts/2013-10-06-nginxdesabudomeinfalsezhi-ding.md @@ -1,4 +1,4 @@ -# nginxでサブドメインの指定 +# [nginxでサブドメインの指定](/2013/10/06/nginxdesabudomeinfalsezhi-ding.html) nginxでサブドメインの指定をするときにはサブドメインの分だけ `server` を書いておけばいいっぽい。 diff --git a/posts/2013-10-06-vimdebu-wan.md b/posts/2013-10-06-vimdebu-wan.md index f27f341..cfb80f9 100644 --- a/posts/2013-10-06-vimdebu-wan.md +++ b/posts/2013-10-06-vimdebu-wan.md @@ -1,4 +1,4 @@ -# vimで補完 +# [vimで補完](/2013/10/06/vimdebu-wan.html) vim で補完をしたい。 diff --git a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md index b02e068..5c19e3b 100644 --- a/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md +++ b/posts/2013-10-06-vpsnigitfalserimotoripozitoriwotukuru.md @@ -1,4 +1,4 @@ -# VPSにgitのリモートリポジトリをつくる +# [VPSにgitのリモートリポジトリをつくる](/2013/10/06/vpsnigitfalserimotoripozitoriwotukuru.html) 初回のみ diff --git a/posts/2013-10-16-nodectl-metutiyabian-li.md b/posts/2013-10-16-nodectl-metutiyabian-li.md index e8e4b1e..0cdb0c0 100644 --- a/posts/2013-10-16-nodectl-metutiyabian-li.md +++ b/posts/2013-10-16-nodectl-metutiyabian-li.md @@ -1,4 +1,4 @@ -# nodectl めっちゃ便利 +# [nodectl めっちゃ便利](/2013/10/16/nodectl-metutiyabian-li.html) https://github.com/geta6/nodectl diff --git a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md index 7cff792..02ca23e 100644 --- a/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md +++ b/posts/2013-10-18-socket-dot-io-de-cors-nihamatutamemo.md @@ -1,4 +1,4 @@ -# socket.io で CORS にハマったメモ +# [socket.io で CORS にハマったメモ](/2013/10/18/socket-dot-io-de-cors-nihamatutamemo.html) `api.hoge.jp` で `socket.io` を走らせてるときに `hoge.jp` から Websocketで通信しようとしたら案の定 `CORS` エラーが出てハマった。`node.js` の `Express` では適当にミドルウェア書いておけば抜けられるのは知っていたのだけれど、`socket.io` でどうすればいいのかわからなかった。 diff --git a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md index fd2103e..3b08463 100644 --- a/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md +++ b/posts/2013-10-22-hubottohipchatdeuwasafalsechatopsfalsezhun-bei.md @@ -1,4 +1,4 @@ -# hubotとhipchatでウワサのChatOpsの準備 +# [hubotとhipchatでウワサのChatOpsの準備](/2013/10/22/hubottohipchatdeuwasafalsechatopsfalsezhun-bei.html) むかし見かけたけど、あまり便利さがわからなかったのでスルーしていた `hubot` が面白そうだったので、ちょっと触ってみることにした。 diff --git a/posts/2013-10-23-texdepngwotie-ru.md b/posts/2013-10-23-texdepngwotie-ru.md index 556183e..834d466 100644 --- a/posts/2013-10-23-texdepngwotie-ru.md +++ b/posts/2013-10-23-texdepngwotie-ru.md @@ -1,4 +1,4 @@ -# texでpngを貼る +# [texでpngを貼る](/2013/10/23/texdepngwotie-ru.html) TeXで `.png` ファイルを貼るのがダルかったのでメモ。 diff --git a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md index af513af..8ea763b 100644 --- a/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md +++ b/posts/2013-10-25-gitdepushdepuroiwoshi-xian-suru.md @@ -1,4 +1,4 @@ -# gitでpushデプロイを実現する +# [gitでpushデプロイを実現する](/2013/10/25/gitdepushdepuroiwoshi-xian-suru.html) 参考: http://qiita.com/fnobi/items/98bd5d1c83c010842733 diff --git a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md index d7984cf..d421da9 100644 --- a/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md +++ b/posts/2013-11-22-tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.md @@ -1,4 +1,4 @@ -# tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題 +# [tmux+iterm2 でマウスコピーをONにしてると普通のコピーができなくなる問題](/2013/11/22/tmux-plus-iterm2-demausukopiwoonnisiterutopu-tong-falsekopigadekinakunaruwen-ti.html) http://qiita.com/u1tnk/items/9a680d16065217015e16 diff --git a/posts/2013-12-11-logwatch-vps-every-day.md b/posts/2013-12-11-logwatch-vps-every-day.md index fbaf690..f775c5c 100644 --- a/posts/2013-12-11-logwatch-vps-every-day.md +++ b/posts/2013-12-11-logwatch-vps-every-day.md @@ -1,4 +1,4 @@ -# logwatch で vps のログを毎日チェックする +# [logwatch で vps のログを毎日チェックする](/2013/12/11/logwatch-vps-every-day.html) http://dogmap.jp/2011/05/12/vps-security/ diff --git a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md index 142ab12..9186937 100644 --- a/posts/2013-12-12-contribute-taberareloo-tumblr-403.md +++ b/posts/2013-12-12-contribute-taberareloo-tumblr-403.md @@ -1,4 +1,4 @@ -# taberareloo で tumblr への投稿が 403 になるときの対処 +# [taberareloo で tumblr への投稿が 403 になるときの対処](/2013/12/12/contribute-taberareloo-tumblr-403.html) taberareloo から tumblr に投稿しようとすると 403 が出て生きた心地がしなかった。 diff --git a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md index 3b558d2..ec62200 100644 --- a/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md +++ b/posts/2013-12-12-tenor-twitter-userstream-suddenly-e-case.md @@ -1,4 +1,4 @@ -# twitter の userstream が突然調子悪くなる案件 +# [twitter の userstream が突然調子悪くなる案件](/2013/12/12/tenor-twitter-userstream-suddenly-e-case.html) `node.js` から twitter の userstream を扱うのには、`ntwitter` は挙動がバギーなので `user-stream` を使っている。 diff --git a/posts/2013-12-14-vagrant-berkshelf-plugin.md b/posts/2013-12-14-vagrant-berkshelf-plugin.md index 898aed8..4e19512 100644 --- a/posts/2013-12-14-vagrant-berkshelf-plugin.md +++ b/posts/2013-12-14-vagrant-berkshelf-plugin.md @@ -1,4 +1,4 @@ -# vagrant-berkshelf plugin がインストールできないときの対処 +# [vagrant-berkshelf plugin がインストールできないときの対処](/2013/12/14/vagrant-berkshelf-plugin.html) 以上。 diff --git a/posts/2014-01-18-went-rails-terakoya-3.md b/posts/2014-01-18-went-rails-terakoya-3.md index 668f7b8..d199d54 100644 --- a/posts/2014-01-18-went-rails-terakoya-3.md +++ b/posts/2014-01-18-went-rails-terakoya-3.md @@ -1,4 +1,4 @@ -# 第3回Rails寺子屋に参加してきた +# [第3回Rails寺子屋に参加してきた](/2014/01/18/went-rails-terakoya-3.html) Rails寺子屋 http://rails.terakoya.io/ diff --git a/posts/2014-01-21-sweet-js-brunch.md b/posts/2014-01-21-sweet-js-brunch.md index a57621d..21a44a9 100644 --- a/posts/2014-01-21-sweet-js-brunch.md +++ b/posts/2014-01-21-sweet-js-brunch.md @@ -1,4 +1,4 @@ -# sweet-js-brunch をつくった +# [sweet-js-brunch をつくった](/2014/01/21/sweet-js-brunch.html) https://github.com/e-jigsaw/sweet-js-brunch diff --git a/posts/2014-01-25-iterm2-append-dotfiles-i.md b/posts/2014-01-25-iterm2-append-dotfiles-i.md index ea54545..935a5f2 100644 --- a/posts/2014-01-25-iterm2-append-dotfiles-i.md +++ b/posts/2014-01-25-iterm2-append-dotfiles-i.md @@ -1,4 +1,4 @@ -# iTerm2 のカラースキームを dotfiles に追加した +# [iTerm2 のカラースキームを dotfiles に追加した](/2014/01/25/iterm2-append-dotfiles-i.html) iTerm2 のオシャカラースキームリポジトリを見つけたのでさっそく clone して使ってみた。 diff --git a/posts/2014-01-30-kuriyama-every.md b/posts/2014-01-30-kuriyama-every.md index c254081..f9ef868 100644 --- a/posts/2014-01-30-kuriyama-every.md +++ b/posts/2014-01-30-kuriyama-every.md @@ -1,4 +1,4 @@ -# 栗山さんを毎日見れるようにした +# [栗山さんを毎日見れるようにした](/2014/01/30/kuriyama-every.html) ![](http://25.media.tumblr.com/4597e75f432494136b42f06716e45a09/tumblr_n06zcilVpq1qa749mo1_1280.jpg) diff --git a/posts/2014-02-01-gyazo-on-rails-developer-talk.md b/posts/2014-02-01-gyazo-on-rails-developer-talk.md index dc305cc..ef62dc8 100644 --- a/posts/2014-02-01-gyazo-on-rails-developer-talk.md +++ b/posts/2014-02-01-gyazo-on-rails-developer-talk.md @@ -1,4 +1,4 @@ -# Gyazo on Rails Developer Talk に行ってきた +# [Gyazo on Rails Developer Talk に行ってきた](/2014/02/01/gyazo-on-rails-developer-talk.html) ![](http://farm4.staticflickr.com/3668/12236808555_9c0741ec96_z.jpg) diff --git a/posts/2014-02-03-update-coffee-script-with-mocha.md b/posts/2014-02-03-update-coffee-script-with-mocha.md index 08edd78..6e22f5f 100644 --- a/posts/2014-02-03-update-coffee-script-with-mocha.md +++ b/posts/2014-02-03-update-coffee-script-with-mocha.md @@ -1,4 +1,4 @@ -# coffee-script を 1.7 にしたら mocha が死ぬときの対応 +# [coffee-script を 1.7 にしたら mocha が死ぬときの対応](/2014/02/03/update-coffee-script-with-mocha.html) coffee-script のバージョン1.7がリリースされたので、アップデートしたら mocha が diff --git a/posts/2014-02-08-git-management-dont-arc.md b/posts/2014-02-08-git-management-dont-arc.md index 38f0f4e..c949883 100644 --- a/posts/2014-02-08-git-management-dont-arc.md +++ b/posts/2014-02-08-git-management-dont-arc.md @@ -1,4 +1,4 @@ -# git で管理しているディレクトリの不要なファイルを消す +# [git で管理しているディレクトリの不要なファイルを消す](/2014/02/08/git-management-dont-arc.html) 章毎にファイルを分けてTeXしていると、ついうっかり子ファイル編集時にビルドしてしまってディレクトリにTeXデブリが散乱してしまう。いちいち消すのはめんどくさいので、gitのコミット時にgitで管理しているファイル以外をまとめて吹き飛ばしたい。 diff --git a/posts/2014-02-08-tex-to-gitignore.md b/posts/2014-02-08-tex-to-gitignore.md index dbd6fda..a796aae 100644 --- a/posts/2014-02-08-tex-to-gitignore.md +++ b/posts/2014-02-08-tex-to-gitignore.md @@ -1,4 +1,4 @@ -# TeX 向けの .gitignore +# [TeX 向けの .gitignore](/2014/02/08/tex-to-gitignore.html) アレがアレで現在進行形でめちゃくちゃTeXしている。転ばぬ先の杖の杖として、何重にもバックアップをしつつバージョン管理もしている。とはいえ、TeXはビルドするときにやたらファイルが生成されてgitで管理する邪魔になるので `.gitignore` に不要な拡張子を列挙して目に入らないようにするのがよいだろう。 diff --git a/posts/2014-02-12-png-eps-poorer-without-changing.md b/posts/2014-02-12-png-eps-poorer-without-changing.md index 2665be9..192912e 100644 --- a/posts/2014-02-12-png-eps-poorer-without-changing.md +++ b/posts/2014-02-12-png-eps-poorer-without-changing.md @@ -1,4 +1,4 @@ -# png を eps に変換 +# [png を eps に変換](/2014/02/12/png-eps-poorer-without-changing.html) TeXしてると、pngで画像を貼れなくてイライラしますね。面倒ですが eps に変換します。`ImageMagick` がインストールしてあれば diff --git a/posts/2014-02-15-graduate-technology.md b/posts/2014-02-15-graduate-technology.md index f0dfa6e..fb2cf9d 100644 --- a/posts/2014-02-15-graduate-technology.md +++ b/posts/2014-02-15-graduate-technology.md @@ -1,4 +1,4 @@ -# 卒業を支える技術 +# [卒業を支える技術](/2014/02/15/graduate-technology.html) 無事卒論を提出できまして、ゆったりとした週末を送っております、いかがお過ごしでしょうか。 diff --git a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md index 8026877..d60ac8b 100644 --- a/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md +++ b/posts/2014-02-20-clash-of-clans-reddit-questioned-spoken-answer.md @@ -1,4 +1,4 @@ -# Clash of Clans のチームが Reddit で質問に答える企画をやっている +# [Clash of Clans のチームが Reddit で質問に答える企画をやっている](/2014/02/20/clash-of-clans-reddit-questioned-spoken-answer.html) Clash of Clans はとても面白いゲームで、かれこれ1年ほど遊んでいる。このゲームはフォーラムでの議論も盛んで、開発チームもしっかり応える姿勢で臨んでいることが垣間見えてとてもいい。そんな Clash of Clans のチームがはてブライクな Reddit で質問に答える企画をやっていて面白かったのでいくつかピックアップしたい。 diff --git a/posts/2014-02-21-google-chrome-portrait-data-url.md b/posts/2014-02-21-google-chrome-portrait-data-url.md index e7ebfc8..b4d4691 100644 --- a/posts/2014-02-21-google-chrome-portrait-data-url.md +++ b/posts/2014-02-21-google-chrome-portrait-data-url.md @@ -1,4 +1,4 @@ -# Google Chrome のインスペクタで画像の Data URL がとれるようになった +# [Google Chrome のインスペクタで画像の Data URL がとれるようになった](/2014/02/21/google-chrome-portrait-data-url.html) ![](http://user-image.logdown.io/user/5835/blog/5854/post/180452/Gk1ZRK3DTWajYoX0UdNf_t.png) diff --git a/posts/2014-03-03-mountain-lion-tumblr.md b/posts/2014-03-03-mountain-lion-tumblr.md index ff40b95..a6d2678 100644 --- a/posts/2014-03-03-mountain-lion-tumblr.md +++ b/posts/2014-03-03-mountain-lion-tumblr.md @@ -1,4 +1,4 @@ -# Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする +# [Mountain Lion で tumblr のスライドショーをスクリーンセーバーにする](/2014/03/03/mountain-lion-tumblr.html) 普段はホットコーナーでディスプレイのスリープをしているのだけれど、大きいサブディスプレイを使うとホットコーナーが死ぬので対策が必要になった。 diff --git a/posts/2014-03-10--mounting.md b/posts/2014-03-10--mounting.md index 3c6ee31..c11f190 100644 --- a/posts/2014-03-10--mounting.md +++ b/posts/2014-03-10--mounting.md @@ -1,4 +1,4 @@ -# これどうやって実装してるんだろう +# [これどうやって実装してるんだろう](/2014/03/10/-mounting.html) ![](http://user-image.logdown.io/user/5835/blog/5854/post/184304/k4Jtv3EIQ5K0406vCppR_a.gif) diff --git a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md index 89d28e3..9017884 100644 --- a/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md +++ b/posts/2014-03-19-popcorn-time-this-kickstarter-pill-buy-shou.md @@ -1,4 +1,4 @@ -# Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい +# [Popcorn Timeは今すぐKickstarterあたりに丸ごと買収されてほしい](/2014/03/19/popcorn-time-this-kickstarter-pill-buy-shou.html) ![](http://user-image.logdown.io/user/5835/blog/5854/post/189632/FhMvHmZYQT29o4YVH2bA_%202014-03-19%200.13.16.png) diff --git a/posts/2014-03-21-buy-imac-bluetooth.md b/posts/2014-03-21-buy-imac-bluetooth.md index 2de9a3d..03cda6d 100644 --- a/posts/2014-03-21-buy-imac-bluetooth.md +++ b/posts/2014-03-21-buy-imac-bluetooth.md @@ -1,4 +1,4 @@ -# iMac買ったらBluetooth使えなかったけどなんとかなった +# [iMac買ったらBluetooth使えなかったけどなんとかなった](/2014/03/21/buy-imac-bluetooth.html) どうもどうも、うっかりiMacを買ってしまいましたこんばんは。 diff --git a/posts/2014-05-03-windowflow-hyperswitch-becomes.md b/posts/2014-05-03-windowflow-hyperswitch-becomes.md index f7debcf..9416f34 100644 --- a/posts/2014-05-03-windowflow-hyperswitch-becomes.md +++ b/posts/2014-05-03-windowflow-hyperswitch-becomes.md @@ -1,4 +1,4 @@ -# WindowFlowからHyperSwitchに変えた +# [WindowFlowからHyperSwitchに変えた](/2014/05/03/windowflow-hyperswitch-becomes.html) 今までWindowFlowでウィンドウの切り替えをやっていたのだけれど、HyperSwitchっていうやつの方が綺麗だし反応もいいので変えた。 diff --git a/posts/2014-05-04-zsh-becomes.md b/posts/2014-05-04-zsh-becomes.md index a109a82..3078a6f 100644 --- a/posts/2014-05-04-zsh-becomes.md +++ b/posts/2014-05-04-zsh-becomes.md @@ -1,4 +1,4 @@ -# zsh のキーバインドを変える +# [zsh のキーバインドを変える](/2014/05/04/zsh-becomes.html) 最近3ヶ月に1回ぐらいやってくる「エディタとかシェルを強くしたい」月間に突入していて、継続的にdotfilesの手入れをしている。本日の手入れはキーバインド。 diff --git a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md index 79910b8..5c7b36b 100644 --- a/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md +++ b/posts/2014-06-12-phantomjs-on-ubuntu-japan-text-language.md @@ -1,4 +1,4 @@ -# phantomjs on ubuntu で日本語が文字化けする件 +# [phantomjs on ubuntu で日本語が文字化けする件](/2014/06/12/phantomjs-on-ubuntu-japan-text-language.html) # TL;DR diff --git a/posts/2014-06-15-coffee-script-package-number-reserved-t.md b/posts/2014-06-15-coffee-script-package-number-reserved-t.md index 586aeb5..5f2d698 100644 --- a/posts/2014-06-15-coffee-script-package-number-reserved-t.md +++ b/posts/2014-06-15-coffee-script-package-number-reserved-t.md @@ -1,4 +1,4 @@ -# coffee-script では package が reserved になってるので変数として使えない +# [coffee-script では package が reserved になってるので変数として使えない](/2014/06/15/coffee-script-package-number-reserved-t.html) http://coffeescript.org/documentation/docs/lexer.html#section-66 diff --git a/posts/2014-06-28-ghq.md b/posts/2014-06-28-ghq.md index 81c252c..3661642 100644 --- a/posts/2014-06-28-ghq.md +++ b/posts/2014-06-28-ghq.md @@ -1,4 +1,4 @@ -# ghq がライフチェンジングだった +# [ghq がライフチェンジングだった](/2014/06/28/ghq.html) 先日から少し話題になっていた `ghq` をついに導入した。話題になっていたときは、なにが便利なのか理解できていなくて `git`, `hg`, `bzr` あたりを統合的に扱えるやつなのかとおもっていた。 diff --git a/posts/2014-06-29-journal-by-go.md b/posts/2014-06-29-journal-by-go.md index 76db61a..c1bbd9f 100644 --- a/posts/2014-06-29-journal-by-go.md +++ b/posts/2014-06-29-journal-by-go.md @@ -1,4 +1,4 @@ -# 激ヤバ鬼便利日報ツールを Go でリプレースした +# [激ヤバ鬼便利日報ツールを Go でリプレースした](/2014/06/29/journal-by-go.html) https://github.com/e-jigsaw/journal diff --git a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md index f028096..82282f4 100644 --- a/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md +++ b/posts/2014-06-30-ghq-gopath-and-shin-o-muhammad.md @@ -1,4 +1,4 @@ -# ghq と gopath の兼ね合い +# [ghq と gopath の兼ね合い](/2014/06/30/ghq-gopath-and-shin-o-muhammad.html) # TL;DR diff --git a/posts/2014-07-02-alias-upcd.md b/posts/2014-07-02-alias-upcd.md index d46ff31..a6a328f 100644 --- a/posts/2014-07-02-alias-upcd.md +++ b/posts/2014-07-02-alias-upcd.md @@ -1,4 +1,4 @@ -# alias up='cd ../' +# [alias up='cd ../'](/2014/07/02/alias-upcd.html) https://github.com/e-jigsaw/dotfiles/commit/866a1363b1f29916f285937957b49510a6daa578 diff --git a/posts/2014-07-21-cabinjs.md b/posts/2014-07-21-cabinjs.md index 7d84b9b..54b8f69 100644 --- a/posts/2014-07-21-cabinjs.md +++ b/posts/2014-07-21-cabinjs.md @@ -1,4 +1,4 @@ -# cabinjs ベースの blog に置き換えた +# [cabinjs ベースの blog に置き換えた](/2014/07/21/cabinjs.html) http://www.cabinjs.com/ diff --git a/posts/2014-07-23-made-twlv.md b/posts/2014-07-23-made-twlv.md index 858134b..8867827 100644 --- a/posts/2014-07-23-made-twlv.md +++ b/posts/2014-07-23-made-twlv.md @@ -1,4 +1,4 @@ -# twlv というジョークライブラリをつくった +# [twlv というジョークライブラリをつくった](/2014/07/23/made-twlv.html) https://github.com/jackdcrawford/five というライブラリがあって、ひたすら意味もなく 5 を複雑にするだけのライブラリでアホらしすぎて面白かった。 diff --git a/posts/2014-07-30-boom-replaced-ab.md b/posts/2014-07-30-boom-replaced-ab.md index 9d57e6b..18c8adc 100644 --- a/posts/2014-07-30-boom-replaced-ab.md +++ b/posts/2014-07-30-boom-replaced-ab.md @@ -1,4 +1,4 @@ -# boom で ab +# [boom で ab](/2014/07/30/boom-replaced-ab.html) https://github.com/rakyll/boom diff --git a/posts/2014-08-04-output-tsv-from-psql.md b/posts/2014-08-04-output-tsv-from-psql.md index 0f8b4db..b3466a5 100644 --- a/posts/2014-08-04-output-tsv-from-psql.md +++ b/posts/2014-08-04-output-tsv-from-psql.md @@ -1,4 +1,4 @@ -# psql -> tsv +# [psql -> tsv](/2014/08/04/output-tsv-from-psql.html) http://d.hatena.ne.jp/choplin/20101222/1292995497 diff --git a/posts/2014-08-04-shell-command-tr-split.md b/posts/2014-08-04-shell-command-tr-split.md index 6d68f3e..a92e480 100644 --- a/posts/2014-08-04-shell-command-tr-split.md +++ b/posts/2014-08-04-shell-command-tr-split.md @@ -1,4 +1,4 @@ -# 今日のシェルコマンド +# [今日のシェルコマンド](/2014/08/04/shell-command-tr-split.html) 今日は必要に迫られてシェルのコマンドを調べて使った diff --git a/posts/2014-08-11-shields-io.md b/posts/2014-08-11-shields-io.md index 5b5dfb9..7036676 100644 --- a/posts/2014-08-11-shields-io.md +++ b/posts/2014-08-11-shields-io.md @@ -1,4 +1,4 @@ -# shields.io でバッジのガタガタが直せるっぽい +# [shields.io でバッジのガタガタが直せるっぽい](/2014/08/11/shields-io.html) https://github.com/badges/shields diff --git a/posts/2014-08-12-install-imagemagick-on-mac.md b/posts/2014-08-12-install-imagemagick-on-mac.md index 83f95d0..5c2fa15 100644 --- a/posts/2014-08-12-install-imagemagick-on-mac.md +++ b/posts/2014-08-12-install-imagemagick-on-mac.md @@ -1,4 +1,4 @@ -# mac に imagemagick をいれる +# [mac に imagemagick をいれる](/2014/08/12/install-imagemagick-on-mac.html) http://stackoverflow.com/questions/7412208/imagemagick-and-os-x-lion-trouble diff --git a/posts/2014-08-20-api-blueprint-indent.md b/posts/2014-08-20-api-blueprint-indent.md index 4c07f36..5dd720d 100644 --- a/posts/2014-08-20-api-blueprint-indent.md +++ b/posts/2014-08-20-api-blueprint-indent.md @@ -1,4 +1,4 @@ -# api blueprint のインデントでつまずいた +# [api blueprint のインデントでつまずいた](/2014/08/20/api-blueprint-indent.html) # TL;DR diff --git a/posts/2014-08-20-workshopper.md b/posts/2014-08-20-workshopper.md index 6fa2e76..51d95a0 100644 --- a/posts/2014-08-20-workshopper.md +++ b/posts/2014-08-20-workshopper.md @@ -1,4 +1,4 @@ -# workshopper でハンズオンを体系化できるっぽい +# [workshopper でハンズオンを体系化できるっぽい](/2014/08/20/workshopper.html) https://github.com/rvagg/workshopper diff --git a/posts/2014-08-22-create-yasuharu-visualize.md b/posts/2014-08-22-create-yasuharu-visualize.md index 8f89f7e..9861282 100644 --- a/posts/2014-08-22-create-yasuharu-visualize.md +++ b/posts/2014-08-22-create-yasuharu-visualize.md @@ -1,4 +1,4 @@ -# Yasuharu Visualize つくった +# [Yasuharu Visualize つくった](/2014/08/22/create-yasuharu-visualize.html) http://e-jigsaw.github.io/Weight/ diff --git a/posts/2014-08-22-github-org-is-private-in-default.md b/posts/2014-08-22-github-org-is-private-in-default.md index 7e780be..0489ba3 100644 --- a/posts/2014-08-22-github-org-is-private-in-default.md +++ b/posts/2014-08-22-github-org-is-private-in-default.md @@ -1,4 +1,4 @@ -# github の org はデフォルトで private になっている +# [github の org はデフォルトで private になっている](/2014/08/22/github-org-is-private-in-default.html) ![](https://cloud.githubusercontent.com/assets/557961/4008809/eb51b9f0-29db-11e4-8009-adbe8434f493.png) diff --git a/posts/2014-08-25-ngrok-awesome.md b/posts/2014-08-25-ngrok-awesome.md index e5c1e52..19f11f5 100644 --- a/posts/2014-08-25-ngrok-awesome.md +++ b/posts/2014-08-25-ngrok-awesome.md @@ -1,4 +1,4 @@ -# ngrok 便利 +# [ngrok 便利](/2014/08/25/ngrok-awesome.html) https://ngrok.com/ diff --git a/posts/2014-09-04-chatwork-md-0-1-0.md b/posts/2014-09-04-chatwork-md-0-1-0.md index 897454b..4f93524 100644 --- a/posts/2014-09-04-chatwork-md-0-1-0.md +++ b/posts/2014-09-04-chatwork-md-0-1-0.md @@ -1,4 +1,4 @@ -# chatwork.md をアップデートした +# [chatwork.md をアップデートした](/2014/09/04/chatwork-md-0-1-0.html) https://github.com/e-jigsaw/chatwork.md diff --git a/posts/2014-09-20-created-qls.md b/posts/2014-09-20-created-qls.md index d9940c2..5f36b6a 100644 --- a/posts/2014-09-20-created-qls.md +++ b/posts/2014-09-20-created-qls.md @@ -1,4 +1,4 @@ -# qls というコマンドをつくった +# [qls というコマンドをつくった](/2014/09/20/created-qls.html) https://github.com/e-jigsaw/qls diff --git a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md index 415756b..2a9b16c 100644 --- a/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md +++ b/posts/2014-09-26-github-timeline-analyze-by-bigquery-2.md @@ -1,4 +1,4 @@ -# githubのtimelineをBigQueryで解析する(その2) +# [githubのtimelineをBigQueryで解析する(その2)](/2014/09/26/github-timeline-analyze-by-bigquery-2.html) http://dev.jgs.me/posts/github-timeline-is-analyzable-on-bigquery/ のつづき。 diff --git a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md index e42edd0..087d355 100644 --- a/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md +++ b/posts/2014-09-26-github-timeline-is-analyzable-on-bigquery.md @@ -1,4 +1,4 @@ -# githubのtimelineがbigqueryで解析できる +# [githubのtimelineがbigqueryで解析できる](/2014/09/26/github-timeline-is-analyzable-on-bigquery.html) http://www.githubarchive.org/ diff --git a/posts/2014-10-02-clear-up-tmux-keybinds.md b/posts/2014-10-02-clear-up-tmux-keybinds.md index 23d5e08..20f3cab 100644 --- a/posts/2014-10-02-clear-up-tmux-keybinds.md +++ b/posts/2014-10-02-clear-up-tmux-keybinds.md @@ -1,4 +1,4 @@ -# tmuxのkeybindを整理した +# [tmuxのkeybindを整理した](/2014/10/02/clear-up-tmux-keybinds.html) https://github.com/e-jigsaw/dotfiles/blob/4f93e51a19897ad9019fbb65eea9a184c00f5c45/README.md diff --git a/posts/2014-10-03-created-rpt.md b/posts/2014-10-03-created-rpt.md index 8ab2293..4fb9a53 100644 --- a/posts/2014-10-03-created-rpt.md +++ b/posts/2014-10-03-created-rpt.md @@ -1,4 +1,4 @@ -# tumblrからランダムに写真を表示するサービスをつくった +# [tumblrからランダムに写真を表示するサービスをつくった](/2014/10/03/created-rpt.html) https://github.com/jgsme/rpt diff --git a/posts/2014-10-04-rpt-updated.md b/posts/2014-10-04-rpt-updated.md index 4777b8f..6f29c1e 100644 --- a/posts/2014-10-04-rpt-updated.md +++ b/posts/2014-10-04-rpt-updated.md @@ -1,4 +1,4 @@ -# rptをアップデートした +# [rptをアップデートした](/2014/10/04/rpt-updated.html) http://rpt.jgs.me diff --git a/posts/2014-10-08-dependency-injection-in-node-js.md b/posts/2014-10-08-dependency-injection-in-node-js.md index 4bfa083..8f9c58a 100644 --- a/posts/2014-10-08-dependency-injection-in-node-js.md +++ b/posts/2014-10-08-dependency-injection-in-node-js.md @@ -1,4 +1,4 @@ -# bottlejsでDIを試す +# [bottlejsでDIを試す](/2014/10/08/dependency-injection-in-node-js.html) https://github.com/young-steveo/bottlejs diff --git a/posts/2014-10-08-forked-feedback.md b/posts/2014-10-08-forked-feedback.md index ebdd1be..59ee715 100644 --- a/posts/2014-10-08-forked-feedback.md +++ b/posts/2014-10-08-forked-feedback.md @@ -1,4 +1,4 @@ -# feedbackというリポジトリをforkした +# [feedbackというリポジトリをforkした](/2014/10/08/forked-feedback.html) https://github.com/e-jigsaw/feedback diff --git a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md index e2d51f4..9ed9e6b 100644 --- a/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md +++ b/posts/2014-10-09-translated-JavascriptBattle-rules-in-japanese.md @@ -1,4 +1,4 @@ -# JavascriptBattleのルールを日本語訳してみた +# [JavascriptBattleのルールを日本語訳してみた](/2014/10/09/translated-JavascriptBattle-rules-in-japanese.html) https://github.com/JavascriptBattle/hero-starter diff --git a/posts/2014-10-10-coped-with-rss.md b/posts/2014-10-10-coped-with-rss.md index df88e12..3a437b3 100644 --- a/posts/2014-10-10-coped-with-rss.md +++ b/posts/2014-10-10-coped-with-rss.md @@ -1,4 +1,4 @@ -# rss に対応しました +# [rss に対応しました](/2014/10/10/coped-with-rss.html) http://dev.jgs.me/feed.xml diff --git a/posts/2014-10-14-created-universal-url-modifier.md b/posts/2014-10-14-created-universal-url-modifier.md index 0f664fe..39efd59 100644 --- a/posts/2014-10-14-created-universal-url-modifier.md +++ b/posts/2014-10-14-created-universal-url-modifier.md @@ -1,4 +1,4 @@ -# universal-url-modifier をつくった +# [universal-url-modifier をつくった](/2014/10/14/created-universal-url-modifier.html) https://github.com/e-jigsaw/universal-url-modifier diff --git a/posts/2014-10-27-updated-hyperswitch.md b/posts/2014-10-27-updated-hyperswitch.md index 44afbaa..bad57da 100644 --- a/posts/2014-10-27-updated-hyperswitch.md +++ b/posts/2014-10-27-updated-hyperswitch.md @@ -1,4 +1,4 @@ -# hyperswitchのアップデート +# [hyperswitchのアップデート](/2014/10/27/updated-hyperswitch.html) http://www.macupdate.com/app/mac/41769/hyperswitch diff --git a/posts/2014-11-19-facebook-flow-first-impression.md b/posts/2014-11-19-facebook-flow-first-impression.md index 1482f3f..d647bd1 100644 --- a/posts/2014-11-19-facebook-flow-first-impression.md +++ b/posts/2014-11-19-facebook-flow-first-impression.md @@ -1,4 +1,4 @@ -# facebook-flow first impression +# [facebook-flow first impression](/2014/11/19/facebook-flow-first-impression.html) http://flowtype.org/ diff --git a/posts/2014-12-01-the-technology-behind-vj.md b/posts/2014-12-01-the-technology-behind-vj.md index 9d1e285..d77702a 100644 --- a/posts/2014-12-01-the-technology-behind-vj.md +++ b/posts/2014-12-01-the-technology-behind-vj.md @@ -1,4 +1,4 @@ -# #kosenvj を支える技術(フロント編) +# [#kosenvj を支える技術(フロント編)](/2014/12/01/the-technology-behind-vj.html) https://twitter.com/asonas/status/538995926514167808 diff --git a/posts/2014-12-15-setup-yosemite-machines.md b/posts/2014-12-15-setup-yosemite-machines.md index 32470af..7c608c3 100644 --- a/posts/2014-12-15-setup-yosemite-machines.md +++ b/posts/2014-12-15-setup-yosemite-machines.md @@ -1,4 +1,4 @@ -# Yosemite マシンゲットしたので環境を整えた +# [Yosemite マシンゲットしたので環境を整えた](/2014/12/15/setup-yosemite-machines.html) https://github.com/e-jigsaw/dotfiles diff --git a/posts/2014-12-17-fixed-zsh-5-0-7.md b/posts/2014-12-17-fixed-zsh-5-0-7.md index a0a2fe9..adcd5d9 100644 --- a/posts/2014-12-17-fixed-zsh-5-0-7.md +++ b/posts/2014-12-17-fixed-zsh-5-0-7.md @@ -1,4 +1,4 @@ -# zsh まわりを直した +# [zsh まわりを直した](/2014/12/17/fixed-zsh-5-0-7.html) https://github.com/e-jigsaw/dotfiles diff --git a/posts/2014-12-24-created-md2wp.md b/posts/2014-12-24-created-md2wp.md index 5cf755a..4d2db2f 100644 --- a/posts/2014-12-24-created-md2wp.md +++ b/posts/2014-12-24-created-md2wp.md @@ -1,4 +1,4 @@ -# md2wp をつくった +# [md2wp をつくった](/2014/12/24/created-md2wp.html) http://md2wp.jgs.me From afa5a6ba6c1106527315cebd99aafc3e28dfd141 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sun, 28 Dec 2014 01:29:32 +0900 Subject: [PATCH 12/21] add styles --- gulpfile.coffee | 28 ++++++++++++++++++++++++---- package.json | 2 ++ src/layout.jade | 2 ++ src/{index.styl => layout.styl} | 20 +++++++++++--------- src/page.jade | 19 ++++++++++++++++++- 5 files changed, 57 insertions(+), 14 deletions(-) rename src/{index.styl => layout.styl} (62%) diff --git a/gulpfile.coffee b/gulpfile.coffee index b3caab6..b505cd1 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -6,14 +6,21 @@ publish = require 'gulp-article-publish' fs = require 'fs' _ = require 'lodash' rename = require 'gulp-rename' +styl = require 'gulp-stylus' +connect = require 'gulp-connect' + +paths = + posts: 'posts/*.md' + styl: 'src/*.styl' + dest: 'build' gulp.task 'article', -> - gulp.src 'posts/*.md' + gulp.src paths.posts .pipe mark() .pipe article() .pipe jade('src/page.jade') .pipe article() - .pipe publish('build') + .pipe publish(paths.dest) gulp.task 'index', -> fs.readdir 'posts', (err, files)-> gulp.src "posts/#{_.last(files)}" @@ -21,6 +28,19 @@ gulp.task 'index', -> fs.readdir 'posts', (err, files)-> .pipe article() .pipe jade('src/page.jade') .pipe rename('index.html') - .pipe gulp.dest('build') + .pipe gulp.dest(paths.dest) + +gulp.task 'CNAME', -> gulp.src('src/CNAME').pipe gulp.dest(paths.dest) +gulp.task 'gfm', -> gulp.src('github-markdown-css/github-markdown.css').pipe gulp.dest(paths.dest) +gulp.task 'stylus', -> + gulp.src paths.styl + .pipe styl + compress: true + .pipe gulp.dest(paths.dest) -gulp.task 'default', ['article'] +gulp.task 'default', ['article', 'index', 'CNAME', 'gfm', 'stylus'] +gulp.task 'watch', -> + gulp.watch paths.posts, ['article', 'index'] + gulp.watch paths.styl, ['stylus'] + connect.server + root: paths.dest diff --git a/package.json b/package.json index 7721e6a..aa9d6e3 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,12 @@ "gulp": "^3.8.10", "gulp-article": "0.0.4", "gulp-article-publish": "0.0.2", + "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", "gulp-jade-template": "0.0.4", "gulp-markdown": "^1.0.0", "gulp-rename": "^1.2.0", + "gulp-stylus": "^1.3.4", "lodash": "^2.4.1" } } diff --git a/src/layout.jade b/src/layout.jade index 5bf2564..3fcac1d 100644 --- a/src/layout.jade +++ b/src/layout.jade @@ -2,6 +2,8 @@ doctype html html head title kaihatsu + link(href='http://yui.yahooapis.com/pure/0.5.0/pure-min.css', rel='stylesheet', type='text/css') + link(href='/layout.css', rel='stylesheet', type='text/css') block links body block body diff --git a/src/index.styl b/src/layout.styl similarity index 62% rename from src/index.styl rename to src/layout.styl index 8be6491..d975533 100644 --- a/src/index.styl +++ b/src/layout.styl @@ -1,15 +1,7 @@ body - background-color #FFF - - article - min-width 200px - max-width 790px - margin 0 auto - padding 0 30px 30px 30px + background-color #41413F header, footer - background-color #41413F - a color #FFF text-decoration none @@ -29,3 +21,13 @@ body ul padding-left 30px list-style-type none + + #articleContainer + background-color #f8f8f8 + width 100% + + article + min-width 200px + max-width 790px + margin 0 auto + padding 30px diff --git a/src/page.jade b/src/page.jade index 231de78..afed418 100644 --- a/src/page.jade +++ b/src/page.jade @@ -1,4 +1,21 @@ extends layout +block links + link(href='/github-markdown.css', rel='stylesheet', type='text/css') + block body - article!= body + header.pure-u-1-1 + a(href='/') + h1 Kaihatsu + + #articleContainer + article.markdown-body!= body + + footer.pure-u-1-1 + ul + li + a.button(href="/archives.html") Archives + li + a.button(href="http://jgs.me") Home + li + a.button(href="https://github.com/jgsme/log") Github repository From 06b6c168851e4c67a0debf4c7892225ad92b2ae9 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Sun, 28 Dec 2014 07:43:08 +0900 Subject: [PATCH 13/21] add archive generator --- gulpfile.coffee | 62 ++++++++++++++++++++++++++++++++++++++++++++++-- package.json | 12 ++++++---- src/archive.jade | 8 +++++++ src/layout.jade | 16 ++++++++++++- src/page.jade | 17 ++----------- src/page.styl | 2 ++ 6 files changed, 95 insertions(+), 22 deletions(-) create mode 100644 src/archive.jade create mode 100644 src/page.styl diff --git a/gulpfile.coffee b/gulpfile.coffee index b505cd1..07ad20f 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -8,6 +8,9 @@ _ = require 'lodash' rename = require 'gulp-rename' styl = require 'gulp-stylus' connect = require 'gulp-connect' +mkdir = require 'mkdirp' +async = require 'async' +run = require 'run-sequence' paths = posts: 'posts/*.md' @@ -38,8 +41,63 @@ gulp.task 'stylus', -> compress: true .pipe gulp.dest(paths.dest) -gulp.task 'default', ['article', 'index', 'CNAME', 'gfm', 'stylus'] -gulp.task 'watch', -> +gulp.task 'archive', (callback)-> + run 'archive-json', 'archive-all', 'archive-head', callback + +gulp.task 'archive-json', (done)-> fs.readdir 'posts', (err, posts)-> + posts = posts.reverse() + allArchive = for i in [0..(posts.length / 20)] then posts.slice (i*20), (((i+1)*20)-1) + yearlyArchive = _.groupBy posts, (post)-> /^(\d{4})/.exec(post)[1] + monthlyArchive = _.groupBy posts, (post)-> /^(\d{4}-\d{2})/.exec(post)[1] + allArchive = allArchive.map (data, index)-> {index: index, data: data, isHead: false, isLast: false, type: 'all'} + allArchive[0].isLast = allArchive[allArchive.length-1].isHead = true + + mkdir.sync "#{paths.dest}/archives" + mkdir.sync "#{paths.dest}/archives-yearly" + mkdir.sync "#{paths.dest}/archives-monthly" + + async.parallel [ + (callback)-> + async.each allArchive, + (archive, cb)-> + async.map archive.data, (filename, c)-> + fs.readFile "posts/#{filename}", (err, file)-> + url = /^(\d{4})-(\d{2})-(\d{2})-(.*)\.md/.exec filename + res = + filename: filename + url: "/#{url[1]}/#{url[2]}/#{url[3]}/#{url[4]}.html" + title: /^# \[(.*)\]/.exec(file.toString().split('\n')[0])[1] + c err, res + , (err, data)-> + archive.data = data + fs.writeFile "#{paths.dest}/archives/#{archive.index}.json", JSON.stringify(archive), (err)-> if err? then cb err else cb null + , (err)-> callback err + (callback)-> + async.each _.keys(yearlyArchive), + (key, cb)-> fs.writeFile "#{paths.dest}/archives-yearly/#{key}.json", JSON.stringify(yearlyArchive[key]), (err)-> if err? then cb err else cb null + , (err)-> callback err + (callback)-> + async.each _.keys(monthlyArchive), + (key, cb)-> fs.writeFile "#{paths.dest}/archives-monthly/#{key}.json", JSON.stringify(monthlyArchive[key]), (err)-> if err? then cb err else cb null + , (err)-> callback err + ], (err)-> done err + +gulp.task 'archive-all', -> + gulp.src "#{paths.dest}/archives/*.json" + .pipe jade('src/archive.jade') + .pipe rename + extname: '.html' + .pipe gulp.dest("#{paths.dest}/archives") + +gulp.task 'archive-head', -> + fs.readdir "#{paths.dest}/archives", (err, files)-> + files = _.filter files, (file)-> /^\d*\.html$/.test file + gulp.src "#{paths.dest}/archives/#{_.head(files)}" + .pipe rename('index.html') + .pipe gulp.dest("#{paths.dest}/archives") + +gulp.task 'default', ['article', 'index', 'archive', 'CNAME', 'gfm', 'stylus'] +gulp.task 'watch', ['default'], -> gulp.watch paths.posts, ['article', 'index'] gulp.watch paths.styl, ['stylus'] connect.server diff --git a/package.json b/package.json index aa9d6e3..de7369b 100644 --- a/package.json +++ b/package.json @@ -16,16 +16,20 @@ }, "homepage": "https://github.com/jgsme/log", "dependencies": { + "async": "^0.9.0", "coffee-script": "^1.8.0", "gulp": "^3.8.10", - "gulp-article": "0.0.4", - "gulp-article-publish": "0.0.2", + "gulp-article": "0.0.7", + "gulp-article-publish": "0.0.3", "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", - "gulp-jade-template": "0.0.4", + "gulp-jade-template": "0.0.5", "gulp-markdown": "^1.0.0", "gulp-rename": "^1.2.0", "gulp-stylus": "^1.3.4", - "lodash": "^2.4.1" + "lodash": "^2.4.1", + "mkdirp": "^0.5.0", + "run-sequence": "^1.0.2", + "through2": "^0.6.3" } } diff --git a/src/archive.jade b/src/archive.jade new file mode 100644 index 0000000..003bdf9 --- /dev/null +++ b/src/archive.jade @@ -0,0 +1,8 @@ +extends layout + +block body + article + ul + each article in data + li + a(href="#{article.url}") #{article.title} diff --git a/src/layout.jade b/src/layout.jade index 3fcac1d..af19bcb 100644 --- a/src/layout.jade +++ b/src/layout.jade @@ -6,4 +6,18 @@ html link(href='/layout.css', rel='stylesheet', type='text/css') block links body - block body + header.pure-u-1-1 + a(href='/') + h1 Kaihatsu + + #articleContainer + block body + + footer.pure-u-1-1 + ul + li + a.button(href="/archives") Archives + li + a.button(href="http://jgs.me") Home + li + a.button(href="https://github.com/jgsme/log") Github repository diff --git a/src/page.jade b/src/page.jade index afed418..2d0140f 100644 --- a/src/page.jade +++ b/src/page.jade @@ -2,20 +2,7 @@ extends layout block links link(href='/github-markdown.css', rel='stylesheet', type='text/css') + link(href='/page.css', rel='stylesheet', type='text/css') block body - header.pure-u-1-1 - a(href='/') - h1 Kaihatsu - - #articleContainer - article.markdown-body!= body - - footer.pure-u-1-1 - ul - li - a.button(href="/archives.html") Archives - li - a.button(href="http://jgs.me") Home - li - a.button(href="https://github.com/jgsme/log") Github repository + article.markdown-body!= body diff --git a/src/page.styl b/src/page.styl new file mode 100644 index 0000000..1fe1b52 --- /dev/null +++ b/src/page.styl @@ -0,0 +1,2 @@ +.markdown-body pre + background-color rgba(0, 0, 0, 0.04) From c0eae89ff396b81c0dc614ad59627a9a0a68fcb9 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Mon, 29 Dec 2014 13:32:21 +0900 Subject: [PATCH 14/21] add publish date in page --- gulpfile.coffee | 4 ++-- src/page.jade | 10 +++++++++- src/page.styl | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/gulpfile.coffee b/gulpfile.coffee index 07ad20f..b4f1085 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -70,7 +70,7 @@ gulp.task 'archive-json', (done)-> fs.readdir 'posts', (err, posts)-> c err, res , (err, data)-> archive.data = data - fs.writeFile "#{paths.dest}/archives/#{archive.index}.json", JSON.stringify(archive), (err)-> if err? then cb err else cb null + fs.writeFile "#{paths.dest}/archives/page-#{archive.index}.json", JSON.stringify(archive), (err)-> if err? then cb err else cb null , (err)-> callback err (callback)-> async.each _.keys(yearlyArchive), @@ -91,7 +91,7 @@ gulp.task 'archive-all', -> gulp.task 'archive-head', -> fs.readdir "#{paths.dest}/archives", (err, files)-> - files = _.filter files, (file)-> /^\d*\.html$/.test file + files = _.filter files, (file)-> /^page-\d*\.html$/.test file gulp.src "#{paths.dest}/archives/#{_.head(files)}" .pipe rename('index.html') .pipe gulp.dest("#{paths.dest}/archives") diff --git a/src/page.jade b/src/page.jade index 2d0140f..36c97a2 100644 --- a/src/page.jade +++ b/src/page.jade @@ -5,4 +5,12 @@ block links link(href='/page.css', rel='stylesheet', type='text/css') block body - article.markdown-body!= body + article + .publish-date + time(datetime='#{date.year}-#{date.month}-#{date.day}', pubdate) + span.date-year + a(href='/archives/#{date.year}.html') #{date.year} + span.date-month + a(href='/archives/#{date.year}-#{date.month}.html') #{date.month} + span.date-day #{date.day} + .markdown-body!= body diff --git a/src/page.styl b/src/page.styl index 1fe1b52..0c1a2a9 100644 --- a/src/page.styl +++ b/src/page.styl @@ -1,2 +1,53 @@ .markdown-body pre background-color rgba(0, 0, 0, 0.04) + +.publish-date + color #f0f0f0 + + a + text-decoration none + color #f0f0f0 + + &:hover + text-decoration underline + + .date-year, .date-month, .date-day + position relative + font-size 24px + padding-top 3px + padding-bottom 3px + + &:after + left 100% + top 50% + border solid transparent + content " " + height 0 + width 0 + position absolute + border-color rgba(0, 0, 0, 0) + border-width 15px + margin-top -15px + + .date-year + background-color #4f99d3 + z-index 3 + + &:after + border-left-color #4f99d3 + + .date-month + background-color #50d477 + z-index 2 + padding-left 15px + + &:after + border-left-color #50d477 + + .date-day + background-color #d69d50 + z-index 1 + padding-left 17px + + &:after + border-left-color #d69d50 From d2247681fbe80223e56fcc01e31e842f41d7433e Mon Sep 17 00:00:00 2001 From: jigsaw Date: Mon, 29 Dec 2014 18:10:25 +0900 Subject: [PATCH 15/21] add yearly and monthly archive page --- gulpfile.coffee | 46 +++++++------------------------------------ package.json | 1 + src/archive.jade | 14 +++++++++++-- src/layout.jade | 2 +- src/layout.styl | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ src/page.styl | 51 ------------------------------------------------ 6 files changed, 72 insertions(+), 93 deletions(-) diff --git a/gulpfile.coffee b/gulpfile.coffee index b4f1085..7de3ffb 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -11,6 +11,7 @@ connect = require 'gulp-connect' mkdir = require 'mkdirp' async = require 'async' run = require 'run-sequence' +archive = require 'gulp-article-archive' paths = posts: 'posts/*.md' @@ -42,47 +43,14 @@ gulp.task 'stylus', -> .pipe gulp.dest(paths.dest) gulp.task 'archive', (callback)-> - run 'archive-json', 'archive-all', 'archive-head', callback + run 'archive-json', 'archive-page', 'archive-head', callback -gulp.task 'archive-json', (done)-> fs.readdir 'posts', (err, posts)-> - posts = posts.reverse() - allArchive = for i in [0..(posts.length / 20)] then posts.slice (i*20), (((i+1)*20)-1) - yearlyArchive = _.groupBy posts, (post)-> /^(\d{4})/.exec(post)[1] - monthlyArchive = _.groupBy posts, (post)-> /^(\d{4}-\d{2})/.exec(post)[1] - allArchive = allArchive.map (data, index)-> {index: index, data: data, isHead: false, isLast: false, type: 'all'} - allArchive[0].isLast = allArchive[allArchive.length-1].isHead = true +gulp.task 'archive-json', -> + gulp.src 'posts', + read: false + .pipe archive("#{paths.dest}/archives") - mkdir.sync "#{paths.dest}/archives" - mkdir.sync "#{paths.dest}/archives-yearly" - mkdir.sync "#{paths.dest}/archives-monthly" - - async.parallel [ - (callback)-> - async.each allArchive, - (archive, cb)-> - async.map archive.data, (filename, c)-> - fs.readFile "posts/#{filename}", (err, file)-> - url = /^(\d{4})-(\d{2})-(\d{2})-(.*)\.md/.exec filename - res = - filename: filename - url: "/#{url[1]}/#{url[2]}/#{url[3]}/#{url[4]}.html" - title: /^# \[(.*)\]/.exec(file.toString().split('\n')[0])[1] - c err, res - , (err, data)-> - archive.data = data - fs.writeFile "#{paths.dest}/archives/page-#{archive.index}.json", JSON.stringify(archive), (err)-> if err? then cb err else cb null - , (err)-> callback err - (callback)-> - async.each _.keys(yearlyArchive), - (key, cb)-> fs.writeFile "#{paths.dest}/archives-yearly/#{key}.json", JSON.stringify(yearlyArchive[key]), (err)-> if err? then cb err else cb null - , (err)-> callback err - (callback)-> - async.each _.keys(monthlyArchive), - (key, cb)-> fs.writeFile "#{paths.dest}/archives-monthly/#{key}.json", JSON.stringify(monthlyArchive[key]), (err)-> if err? then cb err else cb null - , (err)-> callback err - ], (err)-> done err - -gulp.task 'archive-all', -> +gulp.task 'archive-page', -> gulp.src "#{paths.dest}/archives/*.json" .pipe jade('src/archive.jade') .pipe rename diff --git a/package.json b/package.json index de7369b..2f55248 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "coffee-script": "^1.8.0", "gulp": "^3.8.10", "gulp-article": "0.0.7", + "gulp-article-archive": "0.0.3", "gulp-article-publish": "0.0.3", "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", diff --git a/src/archive.jade b/src/archive.jade index 003bdf9..f68fb4d 100644 --- a/src/archive.jade +++ b/src/archive.jade @@ -2,7 +2,17 @@ extends layout block body article + if month + .publish-date + span.date-year + a(href='/archives/#{year}.html') #{year} + span.date-month + a(href='/archives/#{year}-#{month}.html') #{month} + else if year + .publish-date + span.date-year + a(href='/archives/#{year}.html') #{year} ul - each article in data + each post in posts li - a(href="#{article.url}") #{article.title} + a(href="#{post.url}") #{post.title} diff --git a/src/layout.jade b/src/layout.jade index af19bcb..1a81c32 100644 --- a/src/layout.jade +++ b/src/layout.jade @@ -18,6 +18,6 @@ html li a.button(href="/archives") Archives li - a.button(href="http://jgs.me") Home + a.button(href="http://jgs.me") About me li a.button(href="https://github.com/jgsme/log") Github repository diff --git a/src/layout.styl b/src/layout.styl index d975533..44fa4c9 100644 --- a/src/layout.styl +++ b/src/layout.styl @@ -31,3 +31,54 @@ body max-width 790px margin 0 auto padding 30px + +.publish-date + color #f0f0f0 + + a + text-decoration none + color #f0f0f0 + + &:hover + text-decoration underline + + .date-year, .date-month, .date-day + position relative + font-size 24px + padding-top 3px + padding-bottom 3px + + &:after + left 100% + top 50% + border solid transparent + content " " + height 0 + width 0 + position absolute + border-color rgba(0, 0, 0, 0) + border-width 15px + margin-top -15px + + .date-year + background-color #4f99d3 + z-index 3 + + &:after + border-left-color #4f99d3 + + .date-month + background-color #50d477 + z-index 2 + padding-left 15px + + &:after + border-left-color #50d477 + + .date-day + background-color #d69d50 + z-index 1 + padding-left 17px + + &:after + border-left-color #d69d50 diff --git a/src/page.styl b/src/page.styl index 0c1a2a9..1fe1b52 100644 --- a/src/page.styl +++ b/src/page.styl @@ -1,53 +1,2 @@ .markdown-body pre background-color rgba(0, 0, 0, 0.04) - -.publish-date - color #f0f0f0 - - a - text-decoration none - color #f0f0f0 - - &:hover - text-decoration underline - - .date-year, .date-month, .date-day - position relative - font-size 24px - padding-top 3px - padding-bottom 3px - - &:after - left 100% - top 50% - border solid transparent - content " " - height 0 - width 0 - position absolute - border-color rgba(0, 0, 0, 0) - border-width 15px - margin-top -15px - - .date-year - background-color #4f99d3 - z-index 3 - - &:after - border-left-color #4f99d3 - - .date-month - background-color #50d477 - z-index 2 - padding-left 15px - - &:after - border-left-color #50d477 - - .date-day - background-color #d69d50 - z-index 1 - padding-left 17px - - &:after - border-left-color #d69d50 From b7c1849cde88d72168e24979f6871e730acc824d Mon Sep 17 00:00:00 2001 From: jigsaw Date: Mon, 29 Dec 2014 21:36:17 +0900 Subject: [PATCH 16/21] add archive paging --- package.json | 2 +- src/archive.jade | 13 +++++++++++++ src/archive.styl | 6 ++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/archive.styl diff --git a/package.json b/package.json index 2f55248..1453b02 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "coffee-script": "^1.8.0", "gulp": "^3.8.10", "gulp-article": "0.0.7", - "gulp-article-archive": "0.0.3", + "gulp-article-archive": "0.0.5", "gulp-article-publish": "0.0.3", "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", diff --git a/src/archive.jade b/src/archive.jade index f68fb4d..1cef425 100644 --- a/src/archive.jade +++ b/src/archive.jade @@ -1,5 +1,8 @@ extends layout +block links + link(href='/archive.css', rel='stylesheet', type='text/css') + block body article if month @@ -16,3 +19,13 @@ block body each post in posts li a(href="#{post.url}") #{post.title} + + .paging + if isLast != undefined && isHead != undefined + if isHead + a(href='/archives/page-#{index+1}.html').paging-prev prev + else if isLast + a(href='/archives/page-#{index-1}.html').paging-next next + else + a(href='/archives/page-#{index+1}.html').paging-prev prev + a(href='/archives/page-#{index-1}.html').paging-next next diff --git a/src/archive.styl b/src/archive.styl new file mode 100644 index 0000000..a00ac2c --- /dev/null +++ b/src/archive.styl @@ -0,0 +1,6 @@ +.paging + position relative + + .paging-next + position absolute + right 0 From 2de0a2eb116ceda3630c2c21e00ed214bf13b5e2 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Mon, 29 Dec 2014 21:41:40 +0900 Subject: [PATCH 17/21] add year padding --- src/layout.styl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layout.styl b/src/layout.styl index 44fa4c9..f330724 100644 --- a/src/layout.styl +++ b/src/layout.styl @@ -63,6 +63,7 @@ body .date-year background-color #4f99d3 z-index 3 + padding-left 5px &:after border-left-color #4f99d3 From e67bd41d1f3eccab2746bac12006b37729766127 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Mon, 29 Dec 2014 22:06:00 +0900 Subject: [PATCH 18/21] add archive stylesheet --- src/archive.styl | 56 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/archive.styl b/src/archive.styl index a00ac2c..7d65560 100644 --- a/src/archive.styl +++ b/src/archive.styl @@ -1,6 +1,60 @@ +article ul + list-style-type none + padding-left 60px + + a + text-decoration none + color #4183c4 + + &:hover + text-decoration underline + + li + font-size 20px + .paging position relative + min-height 70px - .paging-next + a + text-decoration none + color #f0f0f0 + + &:hover + text-decoration underline + + .paging-next, .paging-prev position absolute + font-size 24px + padding 3px + + &:after, &:before + border solid transparent + content " " + height 0 + width 0 + position absolute + border-color rgba(0, 0, 0, 0) + + .paging-next right 0 + background-color #d45050 + padding-left 5px + + &:after + left 100% + top 50% + border-width 21px + margin-top -21px + border-left-color #d45050 + + .paging-prev + background-color #6450d6 + padding-right 5px + + &:before + right 100% + top 50% + border-width 21px + margin-top -21px + border-right-color #6450d6 From bd4de4d5c9d4092c0e3762ad753ef69d1ebbebd2 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Tue, 30 Dec 2014 00:25:55 +0900 Subject: [PATCH 19/21] add rss generator --- gulpfile.coffee | 15 +++++++++++++++ package.json | 1 + src/icon.png | Bin 0 -> 64625 bytes 3 files changed, 16 insertions(+) create mode 100644 src/icon.png diff --git a/gulpfile.coffee b/gulpfile.coffee index 7de3ffb..946f44d 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -12,6 +12,7 @@ mkdir = require 'mkdirp' async = require 'async' run = require 'run-sequence' archive = require 'gulp-article-archive' +rss = require 'gulp-article-rss' paths = posts: 'posts/*.md' @@ -64,6 +65,20 @@ gulp.task 'archive-head', -> .pipe rename('index.html') .pipe gulp.dest("#{paths.dest}/archives") +gulp.task 'rss', -> + gulp.src 'posts/*.md' + .pipe rss + title: 'kaihatsu' + description: 'development log' + link: 'http://dev.jgs.me' + image: 'http://dev.jgs.me/icon.png' + copyright: 'MIT' + updated: new Date() + author: + name: 'jigsaw' + link: 'http://jgs.me' + .pipe gulp.dest("#{paths.dest}/feed.xml") + gulp.task 'default', ['article', 'index', 'archive', 'CNAME', 'gfm', 'stylus'] gulp.task 'watch', ['default'], -> gulp.watch paths.posts, ['article', 'index'] diff --git a/package.json b/package.json index 1453b02..c2fd9d1 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "gulp-article": "0.0.7", "gulp-article-archive": "0.0.5", "gulp-article-publish": "0.0.3", + "gulp-article-rss": "0.0.4", "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", "gulp-jade-template": "0.0.5", diff --git a/src/icon.png b/src/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..29dd7a957a58614aa8bd2e352041569e58f6a674 GIT binary patch literal 64625 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 TFwwsTD98sSsVGq+W*qc?e&PR6 literal 0 HcmV?d00001 From 7413d6d1fe388fc55cb3a02f0043f6d08160ad12 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Tue, 30 Dec 2014 00:48:04 +0900 Subject: [PATCH 20/21] add disqus script --- src/page.jade | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/page.jade b/src/page.jade index 36c97a2..e4ad2c3 100644 --- a/src/page.jade +++ b/src/page.jade @@ -14,3 +14,6 @@ block body a(href='/archives/#{date.year}-#{date.month}.html') #{date.month} span.date-day #{date.day} .markdown-body!= body + #comments + #disqus_thread + script(type="text/javascript") var disqus_shortname = 'kaihatsu2'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); From f1867ea37ea6064656ae7893755fca244c41d492 Mon Sep 17 00:00:00 2001 From: jigsaw Date: Tue, 30 Dec 2014 00:56:55 +0900 Subject: [PATCH 21/21] add deploy task --- .gitignore | 1 + gulpfile.coffee | 8 +++++++- package.json | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd87e2d..12cfb02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules build +tmp diff --git a/gulpfile.coffee b/gulpfile.coffee index 946f44d..08287b0 100644 --- a/gulpfile.coffee +++ b/gulpfile.coffee @@ -13,6 +13,7 @@ async = require 'async' run = require 'run-sequence' archive = require 'gulp-article-archive' rss = require 'gulp-article-rss' +deploy = require 'gulp-gh-pages' paths = posts: 'posts/*.md' @@ -79,9 +80,14 @@ gulp.task 'rss', -> link: 'http://jgs.me' .pipe gulp.dest("#{paths.dest}/feed.xml") -gulp.task 'default', ['article', 'index', 'archive', 'CNAME', 'gfm', 'stylus'] +gulp.task 'default', ['article', 'index', 'archive', 'rss', 'CNAME', 'gfm', 'stylus'] gulp.task 'watch', ['default'], -> gulp.watch paths.posts, ['article', 'index'] gulp.watch paths.styl, ['stylus'] connect.server root: paths.dest + +gulp.task 'deploy', ['default'], -> + gulp.src './build/**/*' + .pipe deploy + cacheDir: 'tmp' diff --git a/package.json b/package.json index c2fd9d1..905c14b 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "gulp-article-rss": "0.0.4", "gulp-connect": "^2.2.0", "gulp-data": "^1.1.1", + "gulp-gh-pages": "^0.4.0", "gulp-jade-template": "0.0.5", "gulp-markdown": "^1.0.0", "gulp-rename": "^1.2.0",