Reader2Twitter が不調なので似たようなものを作ってみた

このエントリーをはてなブックマークに追加 Pocket

最近、Twitter の TL で Reader2Twitter(Google2Tweet)の調子が悪いというツイートをよく見かけます。 私も以前から Reader2Twitter が正常に動作したり、ツイートされずに後で Google リーダーの共有を追加した際にまとめてツイートされたりという状況を確認していました。

そこで、Yahoo! Pipes と FeedBurner で Reader2Twitter に似たものを作ってみました。

導入方法

Google リーダーの共有アイテムの Number ID を確認する

Google リーダーの共有設定の「カスタム URL を選択してください」セクションに表示されている URL 中の番号が Number ID です。

GoogleReaderSharedItemsNumberID

Yahoo! Pipes で加工した RSS フィードの URL を取得する

以下の手順でツイートする内容を設定した RSS フィードの URL を取得してください。

  1. 共有アイテムの RSS を加工する Pipe のページ を開く
  2. [NumberID] 欄にご自身の Number ID を入力する
  3. [Format] 欄の内容をお好みで編集する(後述)
  4. [Run Pipe] ボタンをクリックする
  5. [Get as RSS] のリンクをコピーする
【[Format] 欄で使える予約語】
予約語説明
${source}サイトの名前
${title}記事のタイトル
${comment}Google リーダーで共有する際に入力したコメント

FeedBurner にフィードを登録する

FeedBurner の [新しいフィードを登録!] にフィードの URL を入力して [次へ>>] ボタンをクリックしてください。

FeedBurnerRegisterFeed

[フィードタイトル] と [アドレス] は適当で構いません。

FeedBurnerRegisterFeed2

あとはひたすら [次へ>>] ボタンをクリックしてフィードの登録を完了させてください。

Twitter への投稿を設定する

次は Twitter への投稿設定です。

  1. [集客支援]-[Socialize] を選択する
  2. [Add Twitter account] ボタンをクリックして Twitter アカウントを登録する
  3. その他の設定はデフォルトで OK(goo.gl による短縮 URL が付加されます)
  4. [有効にする] ボタンをクリックする
FeedBurnerSocialize

以上で導入は完了です。 Google リーダーで共有アイテムを追加すると自動的に Twitter に投稿されるようになります。

あとがき

内部の解説もしようかと思ったのですが割愛します。 hiro45jpさんの Yahoo! Pipes 講座 を読めばわかりますよw

Zen Coding v0.7 for MarsEdit - Zen Coding がパワーアップ!

このエントリーをはてなブックマークに追加 Pocket
Happy-Go-Lucky: [MarsEdit] Zen Coding で高速 HTML コーディング!
なお、ZenCodingv0.6 では、m行n列のテーブルを一発で展開することができませんが、現在 developer preview として公開されている v0.7 では "table>(tr>td*n)*m" と書くことができます。 v0.7 の正式版がリリースされたら、 MarsEdit プラグインにも組み込みたいと思っています。

3/13 に Zen Coding v0.7 がリリースされました。

ということで、早速サービスメニューに組み込んでみました。

ダウンロード

今回のバージョンアップで以下の点が変更されています。

  • グループの繰り返し
  • テキストノードの指定
  • 選択テキストに対する置換の強化
  • 省略形のユーザ設定

グループの繰り返し

グループの繰り返しとは、複数の要素を '(' と ')' で括ったグループを指定回数だけ繰り返すものです。

dl>(dt+dd)*4

が以下のように展開されます。

<dl>
	<dt></dt>
	<dd></dd>
	<dt></dt>
	<dd></dd>
	<dt></dt>
	<dd></dd>
	<dt></dt>
	<dd></dd>
</dl>

テキストノードの指定

Zen Coding への入力にテキストノードを指定することができるようになりました。

a[href=/]{Click here}

が以下のように展開されます。

<a href="/">Click here</a>

選択テキストに対する置換の強化

選択テキストの位置指定

選択したテキストの展開後の位置を $# で指定できるようになりました。

一行目
二行目
三行目
というテキストに対して、
ul>li*>span{$#}+{ }+a[title=$#]{$#}
は以下のように展開されます。
<ul>
	<li>
		<span>一行目</span> 
		<a href="" title="一行目">一行目</a>
	</li>
	<li>
		<span>二行目</span> 
		<a href="" title="二行目">二行目</a>
	</li>
	<li>
		<span>三行目</span> 
		<a href="" title="三行目">三行目</a>
	</li>
</ul>

箇条書きのマーカーを削除する trim フィルター

例えば、以下の記述を HTML マークアップする際に、

1. list item one
2. list item two
3. list item three

trim フィルター(|t)を指定すると1. などのマーカーを削除してくれます。

ol>li*|t
と指定すると以下のように展開されます。
<ol>
	<li>list item one</li>
	<li>list item two</li>
	<li>list item three</li>
</ol>

trim フィルターで認識するマーカーは "数字"/"#"/"-"/"*"/"・" です。

前後にスペースがあっても認識されます。

正規表現では

^([\s|\u00a0])?[\d|#|-|*|\u2022]+\.?\s*
です。

u2022(BULLET) はうまく動きませんでした。

省略形のユーザ設定

ホームディレクトリ(~/)に

my_zen_settings.py
というファイル名でユーザ定義の省略形を定義できるようになりました。

my_zen_settings.py の例は以下の通りです。

my_zen_settings = {
    'variables': {
        'myname': 'toshiya240'
    },
    'html': {
        'extends': 'common',
        'filters': 'html',
        'snippets': {
        },
        'abbreviations': {
            'a': '',
            'a:name': ''
        }
    }
}
ここはちょっと難しいですね。variables や snippets について説明しないと(;^ω^)

あとがき

今回のバージョンアップではグループの繰り返しと trim フィルタがブログ執筆の際には役立ちそうだと思います。

Zen Coding には省略形の展開以外にも機能があるのですが、MarsEdit の外部インターフェースが貧弱なので実装が難しいのが現状です。

他のエディタならばもう少し機能を盛り込むことができるかもしれません。 MarsEdit は外部エディタを起動することができるのでそんな方向性もアリかと思っていますが、 現状では Mac でそれほど多くの作業を行うわけではないので、 有償の高機能なエディタを購入する予定もありません。

無償のエディタで何か検討してみようかな...

あとがき2

今日はこの記事を書き始めたときに静岡県東部を震源とした地震が発生しました。

まずはアクションが必要か様子を窺い、緊急の対処が不要であることを確認してからこの記事の執筆を再開しました。

依然として予断を許さない状況ですが、冷静に対処したいと思います。

tweet している余裕は私にはありませんでした(;^ω^)