Google Bookmarks for Chrome 0.4

Chromeブラウザの拡張機能Google Bookmarksをアップデートしました。

更新内容

  • ラベル及びブックマークを名前でソートしました。
    これで、FirefoxやIEのGoogleツールバーとほぼ同じ並び順になりました。
  • ラベルをクリックすると、そのラベル内のブックマークが全て開かれるようにしました。

WordPressのリンクをオンラインブックマークにする

前回までの記事で何度かご紹介したが、ようやくWotrdPressのリンクをオンラインブックマークふうに使用するためのプラグインができた。

WordPressのリンクをブックマークとして共有するプラグイン

これを使用すると、いちいち同期作業みたいなことをしなくても、ほぼ全てのブラウザでブックマークの共有が可能になる。

なんとiPhone版のSafariでも!

というわけで、ぜひお試しください。

WordPressでGoogleブックマークみたいなこと(2)

以前の記事で、WordPressのリンクをブックマークのように使用できないか?ということで、ごちゃごちゃ書いた。

で、あの後、致命的に設計不良があることに気がついた。

前回の記事ではXBELをWordPressのプラグインで出力して、それをブックマークレットからごちゃごちゃみたいなことを計画していたのだが、クロスドメイン制約にひっかかることを完全に忘れてた!

というわけで、結局JSONを使用することで解決して、ほぼ出来上がった。

とりあえず、デモンストレーション。

実際のブックマークレット

以下のリンクを、ブックマークバーにドラッグ&ドロップするか右クリックでお気に入りに登録してから使用する。

ブックマーク

とりあえず、現在はテスト中。

まもなく配ります。

ブックマークレットを登録する

今回制作したプラグインにはブックマークレットがついている。
これを使用するには、以下のようにリンクの部分をドラッグ&ドロップする。

ブックマークを使う

ブックマークを実際に使用するには、さきほど登録したブックマークレットをクリックする。

ブックマーク(WordPressのリンク)に追加する

ブックマークの下の方に “Add Bookmark Here…” というリンクがあるのでそれをクリックすると、WordPressのリンクの追加画面に移動する。

リンク先のURLやタイトルは自動的に入力されるので、必要に応じてカテゴリー等を登録すればブックマークレット側に反映される。

ちなみに、リンクの登録を行うためのインターフェースはログインユーザー以外には表示されない。

WordPressでGoogleブックマークみたいなこと(1)

先日から我がMacのFirefox上のGoogleツールバーがまともに動かなくなった。
それで従来から使っていたGoogleブックマークがまともに使えなくて、めっちゃストレスがたまる事態に!

Web開発の仕事は、ほとんどのブラウザを使用するので、これじゃー仕事にならんと思い、ブックマークレットでブックマークみたいなことをすればいいんだという結論に達した。

ブックマークレットならGoogleツールバーみたいなブラウザのアドオンに頼る必要がないので、まさにクラウドではないか!

といわけでWordPressのリンク機能をブックマークレットで出力するプラグインを作ることにした。

XBELって?

ブックマークのデータをどのように出力するかをいろいろ検討した結果、XBELというフォーマットを使用することにした。

“NETSCAPE-Bookmark-file-1″というフォーマットもあるらしいのだが、こいつはValidなXMLではないので、JavaScriptとかPHPでパースするのにいかにもめんどくさそうだぞということでボツ。

WordPressのリンクをXBELで出力する

とりあえず本日はWordPressのリンクをXBELで出力するところまではできた。
この週末辺りにJavaScriptのブックマークレットを作る予定。

<?php
/*
Plugin Name: Online Bookmark
Plugin URI: http://firegoby.theta.ne.jp/wp/obookmark
Description: Online Bookmark like Google Bookmark.
Author: Takayuki Miyauchi
Version: 0.1
Author URI: http://firegoby.theta.ne.jp/
*/

add_filter('query_vars', array('onlineBookmark', 'query_vars'));
add_filter('rewrite_rules_array', array('onlineBookmark', 'rewrite_rules_array'));
add_action('init', array('onlineBookmark', 'init'));
add_action('wp', array('onlineBookmark', 'wp'));

class onlineBookmark{

    function init(){
        global $wp_rewrite;
        $rules = $wp_rewrite->wp_rewrite_rules();
        if (!isset($rules['bookmark.xbel$'])) {
            $wp_rewrite->flush_rules();
        }
    }

    function rewrite_rules_array($rules){
        global $wp_rewrite;
        $new_rules['bookmark.xbel$'] = $wp_rewrite->index . '?bookmark=1';
        $rules = array_merge($new_rules, $rules);
        return $rules;
    }

    function query_vars($vars) {
        $vars[] = 'bookmark';
        return $vars;
    }

    function wp(){
        if (get_query_var('bookmark')) {
            global $user_login;
            $hide = 1;
            if ($user_login) {
                $hide = 0;
            }
            header('Content-type: text/xml; charset=UTF-8');
            print "<xbel>\n";
            $cats = get_terms('link_category');
            foreach ($cats as $cat) {
                print "<folder>\n";
                print "<title>{$cat->name}</title>\n";
                $params = array(
                    'category' => $cat->term_id,
                    'hide_invisible' => $hide,
                );
	    		$bookmarks = get_bookmarks($params);
                foreach ($bookmarks as $b) {
                    print "<bookmark href=\"{$b->link_url}\">";
                    print "<title>{$b->link_name}</title>";
                    print "<desc>{$b->link_description}</desc>";
                    print "</bookmark>";
                }
                print "</folder>\n";
            }
            print "</xbel>";
            exit;
        }
    }
}

?>

以上のソースをプラグインとして使用すると、

http://example.com/bookmark.xbel

にアクセスした際に以下のようなXMLが出力される。

だからといって、今日の時点では何の役にもたたない。。。

<xbel>
  <folder>
    <title>ブログロール</title>
    <bookmark href="http://www.yahoo.co.jp/">
        <title>Yahoo! JAPAN</title>
        <desc>Yahoo! JAPANのウェブサイト</desc></bookmark>
    </folder>
  <folder>
    <title>検索エンジン</title>
    <bookmark href="http://www.google.co.jp/">
        <title>Google</title>
        <desc>グーグルのウェブサイト</desc>
    </bookmark>
  </folder>
</xbel>