2010/01/30 追記
このブックマークレットを公開したあと、CSRFではないかと指摘を頂きました。
仕様と考えていたのですが、確かにセキュリティホールにも見えたため、一旦記事を削除し、GitHub社に問い合わせました。
回答は、「コマンドラインやサードパーティ製のアプリケーションからもGistを作成できるようにするための仕様」との事なので再掲載します。
ちなみにこのAPIは将来的に削除する可能性もあるとの事です。
追記ここまで
仕様と考えていたのですが、確かにセキュリティホールにも見えたため、一旦記事を削除し、GitHub社に問い合わせました。
回答は、「コマンドラインやサードパーティ製のアプリケーションからもGistを作成できるようにするための仕様」との事なので再掲載します。
ちなみにこのAPIは将来的に削除する可能性もあるとの事です。
追記ここまで
以前こんなブックマークレットを書きました。
これの応用とGist APIを使ってこんなものを作りました。
/*
================================================================================
Name : 選択範囲をGistに保存するBookmarklet Ver1.0.0
In : [none]
Out : [none]
Note : 選択範囲の文字列(utf-8のみ)をGistに保存します。
--------------------------------------------------------------------------------
Version : Ver1.0.0 | 2010/01/28 | 新規作成
--------------------------------------------------------------------------------
License : MIT license
URL : www.kanasansoft.com
================================================================================
*/
(
function(w,d,s,c,a,g,p,n){
var
t=d[c]("textarea")
,f=d[c]("form")
,i=d[c]("iframe")
;
if(d[p]){
s=d[p].createRange().text
}else if(d[g]){
s=d[g]()
}else if(w[g]){
s=w[g]()
}
i.name=n;
t.value=s;
t.name="files["+n+".txt]";
f.method="post";
f.action="http://gist.github.com/api/v1/plaintext/new";
f.target=n;
f.style.displey="none";
f[a](i);
f[a](t);
d.body[a](f);
f.submit();
}
)
(window,document,"","createElement","appendChild","getSelection","selection",(location+"_gist_"+Math.random()).replace(/[^\d\w]+/g,"_"))
================================================================================
Name : 選択範囲をGistに保存するBookmarklet Ver1.0.0
In : [none]
Out : [none]
Note : 選択範囲の文字列(utf-8のみ)をGistに保存します。
--------------------------------------------------------------------------------
Version : Ver1.0.0 | 2010/01/28 | 新規作成
--------------------------------------------------------------------------------
License : MIT license
URL : www.kanasansoft.com
================================================================================
*/
(
function(w,d,s,c,a,g,p,n){
var
t=d[c]("textarea")
,f=d[c]("form")
,i=d[c]("iframe")
;
if(d[p]){
s=d[p].createRange().text
}else if(d[g]){
s=d[g]()
}else if(w[g]){
s=w[g]()
}
i.name=n;
t.value=s;
t.name="files["+n+".txt]";
f.method="post";
f.action="http://gist.github.com/api/v1/plaintext/new";
f.target=n;
f.style.displey="none";
f[a](i);
f[a](t);
d.body[a](f);
f.submit();
}
)
(window,document,"","createElement","appendChild","getSelection","selection",(location+"_gist_"+Math.random()).replace(/[^\d\w]+/g,"_"))
GitHubへログイン中でないと使えません。
残念な点は日本語だとUTF-8しか動作しなさそうな点。
少なくともShift JISは文字化けしました。
確認はしていないのですが文字数的にはIEでも使えるはずです。
残念な点は日本語だとUTF-8しか動作しなさそうな点。
少なくともShift JISは文字化けしました。
確認はしていないのですが文字数的にはIEでも使えるはずです。
2010/01/28 追記
Gist API+JavaScriptを使うと他人のGistのレポジトリに勝手にソースを突っ込めるって事だよなぁ。
色々試してみたところ、Gist APIはCreateはできてもUpdateは不可能みたいだけど...。
色々試してみたところ、Gist APIはCreateはできてもUpdateは不可能みたいだけど...。