Drafts からテキストを HTML に整形して PressSync に渡す URL スキーム

2013-06-17-001

最近、ブログの記事の下書き用には、専ら iPhone のメモアプリ Drafts を使っています。Drafts である程度文章をまとめ、PressSync Pro に引き継いで修正や画像の貼り付けをするのがいつもの流れです。このたび PressSync に新規投稿用の URL スキームが追加されたので、Drafts のテキストを HTML に整形して PressSync に渡す方法を考えました。

目次

  1. PressSync の新規投稿用 URL スキーム
  2. Drafts のテキストをそのまま渡す
  3. HTML に整形する
  4. 整形済みのテキストを PressSync に渡す
  5. ワンアクションで済ませる方法

1. PressSync の新規投稿用 URL スキーム

Drafts から PressSync にテキストを渡す URL スキームについては、以前に PressSync Pro の便利な使い方いろいろ(主に設定回り) でも紹介したのですが、その後 PressSync 側で新たな URL スキームが用意されました。開発者の aroooyさん (@aroooy) のブログで紹介されています。

新たに追加されたのは次の URL スキーム。

presssync:///newPost?content=

content= に続けてテキストを渡すと、1行目がタイトル、2行目以降が本文として挿入された状態で PressSync の新規投稿画面に切り替わります。

2. Drafts のテキストをそのまま渡す

最も簡単な方法で、Drafts のテキストをそのまま PressSync に渡すだけなら次の URL スキームが使えます。

presssync:///newPost?content=[[draft]]

これを Drafts に登録するには、「設定」→「Custom Actions」の「URL Actions」を選択。

続いて自分が追加した URL アクションの一覧画面が表示されるので、右上の「+」ボタンをタップし、登録画面に移ります。「Name」の欄には任意の名前を入力し、「URL」の欄にこの URL スキームを入力しておきます。

実際に、1行目に「タイトル」、2行目に「本文」と入力した状態でこの URL アクションを実行してみます。

すると PressSync に切り替わり、タイトル欄に「タイトル」、本文欄に「本文」と入力されます。

3. HTML に整形する

これだけだとあまり面白くないので、先に Drafts 上でテキストを HTML に整形してみます。そのための URL スキームはこちらですので、2と同じように Drafts の URL アクションとして登録してください。1行目には特に手を加えず、2行目以降を HTML にコンバートしてクリップボードにコピーする、というスキームです。

drafts://x-callback-url/create?text=[[body]]&action={{Markdown: Copy to Clipboard}}&afterSuccess=Delete&x-success={{drafts://x-callback-url/create?text=[[title]]}}

たとえば次のように入力しておき、この URL アクションを実行します。

すると、1行目だけが残っている次のテキストが生成されます。

この時点で、クリップボードには次の文字列がコピーされています。

<p>1段落目</p>

<p>2段落目</p>

この URL スキームでは、Drafts にデフォルトで搭載されている、Markdown 記法で書かれたテキストを HTML にコンバートするアクションを利用しています。私自身は HTML タグを直接入力しているので Markdown は使っていないのですが、それでもこのアクションを経由することで1つ1つの段落が自動的に <p> タグで囲われるので便利です。

4. 整形済みのテキストを PressSync に渡す

ここから、整形済みのテキストを含めて PressSync に渡します。そのためには、次の URL スキームを Drafts の URL アクションに登録しておき、実行します。

presssync:///newPost?content=[[draft]]%0d%0a[[clipboard]]

実際にやってみます。2の時と同じ「Send to PressSync」という名前ですが、URL スキームは今紹介したものに変えてあります。

実行すると、タイトルが入っている1行目の後で改行し、クリップボードの中身を2行目以降に挿入した状態で PressSync にテキストを渡すので、次のようになります。

5. ワンアクションで済ませる方法

以上の2つの URL スキームを Drafts に登録したら、後はテキストを PressSync に渡したい時に「Convert to HTML」→「Send to PressSync」の順にアクションを実行すれば OK です。でも、ワンアクションで済ませることもできます。そのためには3で紹介した URL スキームを次のように変更します。

drafts://x-callback-url/create?text=[[body]]&action={{Markdown: Copy to Clipboard}}&afterSuccess=Delete&x-success={{drafts://x-callback-url/create?text=[[title]]&action=Send%20to%20PressSync&afterSuccess=Delete}}

途中までは3の URL スキーム と一緒ですが、最後に「この URL スキーム を実行したら、続けて 『Send to PressSync』のアクションを実行する」という内容を追加してあります。これだと1回のアクションで、PressSync にテキストを渡すところまでやってくれます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です