詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

Qiita 記事中のコード片をダウンロードするツール

Qiita に書かれた記事、とくにシェルスクリプトに関するものはローカルに保存して実行できる便利な「おみやげ」が含まれているものも少なくない。そして多くの場合そのソースは当該記事そのものであって、Gist にアップロードしています、というようなものはあまり見ないように思う。そういったものをじゃあ利用しようか、と思ったときにコピペしてエディタを開いて保存して……などとするのは癪なので、そのためのツールを書いた。

https://github.com/motemen/qiita-dl

インストール

% go get github.com/motemen/qiita-dl

使い方

たとえば git commit --fixup で fixup する対象を peco/fzf で選べるスクリプト書いた - Qiita 中の "git-fixup" を保存したい場合、

% qiita-dl -x -d ~/bin http://qiita.com/uasi/items/57da2e4268d348b371fb

とする。 -x は保存されたファイルに実行ビットを付与するオプションで、これを使えばダウンロードしたコード片が即座に利用可能となる。-d <dir> は保存先のディレクトリ。指定しなければカレントディレクトリになる。保存されるファイル名はウェブページ上ではコード片のタイトル的な表示である何か(クラス名的には言語を指していそうにも見えるけど)。これは -o <filename> で上書きもできる。

記事中にタイトルのついたコード片が複数存在する場合、以上のような使い方だと失敗する。そのときは -n <pos> に 1 からはじまるインデックスを指定して対象を絞り込む。以下のようにコード片がインデックスつきでリストされるはず。

ちなみにこのオプションを指定すると、ファイル名のないコード片もダウンロードできる(-o と組みあわせて使う)。

% qiita-dl http://qiita.com/uasi/items/c4288dd835a65eb9d709                                                             
Title: Zsh 入門者のための超速設定ガイド - Qiita
error: Too many snippets are there:
[1] ".zshrc"    # Emacs ライクな操作を有効にする(文字入力\xe4...
[2] ".zshenv"   # PATH の設定(お好みで)\nexport PATH=\"/usr/local/b...
[3] ""  % bindkey -L\nbindkey \"^@\" set-mark-command\nbindkey \"^A\" begi...
Specify one with -n

はてなで一緒に働きませんか?