WorkFlowy PR

WorkFlowyアプリ「HandyFlowy」でブログを書くなら使ってほしい自動でHTMLに変換するスクリプト〜「PressSync用」「SLPRO X用」「クリップボード出力」〜

記事内に商品プロモーションを含む場合があります

このブログ「いつもていねいに」を書いている 小田やかた です。
プロフィールはこちら、Xのアカウントはこちらです。

当ブログでは、以下のとおり、WorkFlowy アプリ「HandyFlowy」でブログの下書きを書く記事を何度も公開してきました。

その記事の中で、HandyFlowyで書いた下書きを、ブログ用のHTMLに変換するHandyFlowyのスクリプトの便利さを取り上げてきました。

HandyFlowyでスクリプトを起動させると、HandyFlowyの下書きの内容に自動でブログ用のHTMLが付加された状態でiOSアプリ「PressSync」が起動しするものです。

ただ、このスクリプトですが、専門的なことはわかりませんが、2017年9月にWorkFlowyの仕様が一部変更になったことにより使えなくなっていました。

ところが、HandyFlowyの開発者@marumi_appさんのご好意により、同趣旨のスクリプトを作っていただきました。

詳しくは、@marumi_appさんの以下の記事参照いただくとして、本記事では概要を紹介したいと思います。

WorkFlowy→ブログエディタ転送スクリプト(デラックス版)

HandyFlowy

無料
(2018.06.10時点)
posted with ポチレバ
PressSync Pro for WordPress

360円
(2018.06.09時点)
posted with ポチレバ

1. スクリプトの内容

前述したとおり、HandyFlowyでスクリプトを発動させるとPressSyncが起動します。

PressSyncの下書き画面のタイトル欄と本文欄には、HandyFlowyで書いた内容にブログ用のHTMLが自動で付加されたデータが入力された状態になっています。

あとは、投稿ボタンを押すだけですので、HandyFlowyでブログを書くには、大変便利なスクリプトです。

このスクリプトは、PressSync用だけではなく、「SLPROX」用もあります。

また、クリップボードに出力するだけのものもありますので、「PressSync」と「SLPRO X」以外のブログアプリを使っている場合は、こちらを利用することになります。

するぷろ X for WordPress & MT

1,600円
(2018.06.13時点)
posted with ポチレバ

2. スクリプトの挙動

HandyFlowyで書いた内容には、どのようにHTMLが付加されるのか。

先の@marumi_appさんの記事「WorkFlowy→ブログエディタ転送スクリプト(デラックス版)」から以下に抜粋させていただきます。

  • Zoomしているトピック名がタイトルになります。「SLPRO X版」と「クリップボード版」は< h1 >が付きますが、「PressSync版」は < h1 >は付きません。
  • 子トピックがあるトピックは階層に合わせた見出し< h数字 >になります。
  • 子トピックがないトピックは場合は本文< p >になります。
  • 「bq」とだけ書いたトピックはその子孫トピック全体を< blockquote >タグで囲んで出力します。
  • 「ul」とだけ書いたトピックはその子孫トピックを< li >タグにして、全体を< ul >タグで囲んで出力します。
  • 「ol」とだけ書いたトピックはその子孫トピックを< li >タグにして、全体を< ol >タグで囲んで出力します。
  • < li >タグになったトピックの子トピックは出力されますが、孫トピック以降は無視します。(出力しません)
  • 文字修飾(太字・*斜体*・下線)はそのまま< B > < I > < U >タグ付きで出力されます。
  • ノートは無視します(出力しません)。
  • 折りたたまれていて、見えていないトピックも無視します(出力しません)。また、見出しにもなりません。
  • 本文になった場合、トピックごとに< p >タグ付きで出力されます。
  • 本文に書かれたHTMLタグはそのまま出力します。そのため、本文に < は & amp;lt;、&は & amp;amp;という風に書く必要があります。【2017-10-19追加】

3. スクリプトの登録

WorkFlowyに以下のURLスキームをコピーして、コピーしたトピックをHandyFlowyでタップするとHandyFlowyに機能拡張スクリプトとしてインストールすることができます。

PressSync用「WF2BlogEDeluxe4PressSync」

handyflowy://import?name=WF2BlogEDeluxe4PressSync&script=!function()%7Bfunction%20e(e)%7Breturn%20e.replace(%2F%26lt%3B%2Fg%2C%22%3C%22).replace(%2F%26gt%3B%2Fg%2C%22%3E%22).replace(%2F%26quot%3B%2Fg%2C'%22').replace(%2F%26amp%3B%2Fg%2C%22%26%22)%7Dfunction%20t(t%2Cn)%7Bvar%20l%3Dt%3F%22%3C%22%2Bt%2B%22%3E%22%3A%22%3Cp%3E%22%2Cr%3Dt%3F%22%3C%2F%22%2Bt%2B%22%3E%22%3A%22%3C%2Fp%3E%22%3Breturn%20n.getName().getContentText().trim().length%3Fl%2Be(n.getName().getContentText())%2Br%2B%22%5Cn%22%3A%22%22%7Dfunction%20n(e)%7Bfor(var%20n%3D%22%3Cblockquote%3E%5Cn%22%2Cl%3De.getVisibleChildren()%2Cr%3Dl.length%2Co%3D0%3Bo%3Cr%3Bo%2B%2B)0%3D%3D%3D(e%3Dl.eq(o)).getVisibleChildren().length%3Fn%2B%3Dt(%22%22%2Ce)%3An%2B%3Di(%22%22%2Ce)%3Breturn%20n%2B%3D%22%3C%2Fblockquote%3E%5Cn%22%7Dfunction%20l(e)%7Bvar%20l%3D%22%3Cli%3E%5Cn%22%2Ci%3De.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Di)l%2B%3Dr(%22ul%22%2Ce)%3Belse%20if(%22ol%22%3D%3Di)l%2B%3Dr(%22ol%22%2Ce)%3Belse%20if(%22bq%22%3D%3Di)l%2B%3Dn(e)%3Belse%7Bl%2B%3Dt(%22%22%2Ce)%3Bfor(var%20o%3De.getVisibleChildren()%2Cg%3Do.length%2Ca%3D0%3Ba%3Cg%3Ba%2B%2B)l%2B%3Dt(%22%22%2Co.eq(a))%7Dreturn%20l%2B%3D%22%3C%2Fli%3E%5Cn%22%7Dfunction%20r(e%2Ct)%7Bfor(var%20n%3D%22%3C%22%2Be%2B%22%3E%5Cn%22%2Cr%3Dt.getVisibleChildren()%2Ci%3Dr.length%2Co%3D0%3Bo%3Ci%3Bo%2B%2B)n%2B%3Dl(r.eq(o))%3Breturn%20n%2B%3D%22%3C%2F%22%2Be%2B%22%3E%5Cn%22%7Dfunction%20i(e%2Cl)%7Bvar%20o%3D%22%22%2Cg%3D%22h%22%2Be%2Ca%3Dl.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Da)o%2B%3Dr(%22ul%22%2Cl)%3Belse%20if(%22ol%22%3D%3Da)o%2B%3Dr(%22ol%22%2Cl)%3Belse%20if(%22bq%22%3D%3Da)o%2B%3Dn(l)%3Belse%7Bo%2B%3Dt(g%2Cl)%3Bfor(var%20s%3Dl.getVisibleChildren()%2Cu%3Ds.length%2Cc%3D0%3Bc%3Cu%3Bc%2B%2B)%7Bvar%20f%3Ds.eq(c)%3B0%3D%3D%3Df.getVisibleChildren().length%3Fo%2B%3Dt(%22%22%2Cf)%3Ao%2B%3Di(%22%22%3D%3De%3F%22%22%3Ae%2B1%2Cf)%7D%7Dreturn%20o%7Dvar%20o%3Di(1%2C%24(%22.selected%22))%3Bo%3D%24(%22.selected%22).getName().getContentText()%2Bo.replace(%2F%3Ch1%3E.*%3C%5C%2Fh1%3E%2F%2C%22%22)%2Cwindow.open(%22presssync%3A%2F%2F%2FnewPost%3Fcontent%3D%22%2BencodeURIComponent(o))%7D()%3B%0A

SLPRO X用「WF2BlogEDeluxe4SlproX」

handyflowy://import?name=WF2BlogEDeluxe4SlproX&script=!function()%7Bfunction%20e(e)%7Breturn%20e.replace(%2F%26lt%3B%2Fg%2C%22%3C%22).replace(%2F%26gt%3B%2Fg%2C%22%3E%22).replace(%2F%26quot%3B%2Fg%2C'%22').replace(%2F%26amp%3B%2Fg%2C%22%26%22)%7Dfunction%20t(t%2Cn)%7Bvar%20l%3Dt%3F%22%3C%22%2Bt%2B%22%3E%22%3A%22%3Cp%3E%22%2Co%3Dt%3F%22%3C%2F%22%2Bt%2B%22%3E%22%3A%22%3C%2Fp%3E%22%3Breturn%20console.log(%22A%3A%22%2Cn.getName().getContentText())%2Cconsole.log(%22B%3A%22%2CdecodeURIComponent(n.getName().getContentText()))%2Cn.getName().getContentText().trim().length%3Fl%2Be(n.getName().getContentText())%2Bo%2B%22%5Cn%22%3A%22%22%7Dfunction%20n(e)%7Bfor(var%20n%3D%22%3Cblockquote%3E%5Cn%22%2Cl%3De.getVisibleChildren()%2Co%3Dl.length%2Ci%3D0%3Bi%3Co%3Bi%2B%2B)0%3D%3D%3D(e%3Dl.eq(i)).getVisibleChildren().length%3Fn%2B%3Dt(%22%22%2Ce)%3An%2B%3Dr(%22%22%2Ce)%3Breturn%20n%2B%3D%22%3C%2Fblockquote%3E%5Cn%22%7Dfunction%20l(e)%7Bvar%20l%3D%22%3Cli%3E%5Cn%22%2Cr%3De.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Dr)l%2B%3Do(%22ul%22%2Ce)%3Belse%20if(%22ol%22%3D%3Dr)l%2B%3Do(%22ol%22%2Ce)%3Belse%20if(%22bq%22%3D%3Dr)l%2B%3Dn(e)%3Belse%7Bl%2B%3Dt(%22%22%2Ce)%3Bfor(var%20i%3De.getVisibleChildren()%2Cg%3Di.length%2Ca%3D0%3Ba%3Cg%3Ba%2B%2B)l%2B%3Dt(%22%22%2Ci.eq(a))%7Dreturn%20l%2B%3D%22%3C%2Fli%3E%5Cn%22%7Dfunction%20o(e%2Ct)%7Bfor(var%20n%3D%22%3C%22%2Be%2B%22%3E%5Cn%22%2Co%3Dt.getVisibleChildren()%2Cr%3Do.length%2Ci%3D0%3Bi%3Cr%3Bi%2B%2B)n%2B%3Dl(o.eq(i))%3Breturn%20n%2B%3D%22%3C%2F%22%2Be%2B%22%3E%5Cn%22%7Dfunction%20r(e%2Cl)%7Bvar%20i%3D%22%22%2Cg%3D%22h%22%2Be%2Ca%3Dl.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Da)i%2B%3Do(%22ul%22%2Cl)%3Belse%20if(%22ol%22%3D%3Da)i%2B%3Do(%22ol%22%2Cl)%3Belse%20if(%22bq%22%3D%3Da)i%2B%3Dn(l)%3Belse%7Bi%2B%3Dt(g%2Cl)%3Bfor(var%20u%3Dl.getVisibleChildren()%2Cc%3Du.length%2Cs%3D0%3Bs%3Cc%3Bs%2B%2B)%7Bvar%20f%3Du.eq(s)%3B0%3D%3D%3Df.getVisibleChildren().length%3Fi%2B%3Dt(%22%22%2Cf)%3Ai%2B%3Dr(%22%22%3D%3De%3F%22%22%3Ae%2B1%2Cf)%7D%7Dreturn%20i%7Dvar%20i%3Dr(1%2C%24(%22.selected%22))%3Bwindow.open(%22slpro-x%3A%2F%2F%3Fq%3D%22%2BencodeURIComponent(i))%7D()%3B%0A

クリップボードに出力

handyflowy://import?name=WF2BlogEDeluxe4CopyToClipboard&script=!function()%7Bfunction%20e(e)%7Breturn%20e.replace(%2F%26lt%3B%2Fg%2C%22%3C%22).replace(%2F%26gt%3B%2Fg%2C%22%3E%22).replace(%2F%26quot%3B%2Fg%2C'%22').replace(%2F%26amp%3B%2Fg%2C%22%26%22)%7Dfunction%20t(t%2Cn)%7Bvar%20l%3Dt%3F%22%3C%22%2Bt%2B%22%3E%22%3A%22%3Cp%3E%22%2Co%3Dt%3F%22%3C%2F%22%2Bt%2B%22%3E%22%3A%22%3C%2Fp%3E%22%3Breturn%20console.log(%22A%3A%22%2Cn.getName().getContentText())%2Cconsole.log(%22B%3A%22%2CdecodeURIComponent(n.getName().getContentText()))%2Cn.getName().getContentText().trim().length%3Fl%2Be(n.getName().getContentText())%2Bo%2B%22%5Cn%22%3A%22%22%7Dfunction%20n(e)%7Bfor(var%20n%3D%22%3Cblockquote%3E%5Cn%22%2Cl%3De.getVisibleChildren()%2Co%3Dl.length%2Ci%3D0%3Bi%3Co%3Bi%2B%2B)0%3D%3D%3D(e%3Dl.eq(i)).getVisibleChildren().length%3Fn%2B%3Dt(%22%22%2Ce)%3An%2B%3Dr(%22%22%2Ce)%3Breturn%20n%2B%3D%22%3C%2Fblockquote%3E%5Cn%22%7Dfunction%20l(e)%7Bvar%20l%3D%22%3Cli%3E%5Cn%22%2Cr%3De.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Dr)l%2B%3Do(%22ul%22%2Ce)%3Belse%20if(%22ol%22%3D%3Dr)l%2B%3Do(%22ol%22%2Ce)%3Belse%20if(%22bq%22%3D%3Dr)l%2B%3Dn(e)%3Belse%7Bl%2B%3Dt(%22%22%2Ce)%3Bfor(var%20i%3De.getVisibleChildren()%2Cg%3Di.length%2Ca%3D0%3Ba%3Cg%3Ba%2B%2B)l%2B%3Dt(%22%22%2Ci.eq(a))%7Dreturn%20l%2B%3D%22%3C%2Fli%3E%5Cn%22%7Dfunction%20o(e%2Ct)%7Bfor(var%20n%3D%22%3C%22%2Be%2B%22%3E%5Cn%22%2Co%3Dt.getVisibleChildren()%2Cr%3Do.length%2Ci%3D0%3Bi%3Cr%3Bi%2B%2B)n%2B%3Dl(o.eq(i))%3Breturn%20n%2B%3D%22%3C%2F%22%2Be%2B%22%3E%5Cn%22%7Dfunction%20r(e%2Cl)%7Bvar%20i%3D%22%22%2Cg%3D%22h%22%2Be%2Ca%3Dl.getName().getContentText().trim().toLowerCase()%3Bif(%22ul%22%3D%3Da)i%2B%3Do(%22ul%22%2Cl)%3Belse%20if(%22ol%22%3D%3Da)i%2B%3Do(%22ol%22%2Cl)%3Belse%20if(%22bq%22%3D%3Da)i%2B%3Dn(l)%3Belse%7Bi%2B%3Dt(g%2Cl)%3Bfor(var%20s%3Dl.getVisibleChildren()%2Cu%3Ds.length%2CC%3D0%3BC%3Cu%3BC%2B%2B)%7Bvar%20c%3Ds.eq(C)%3B0%3D%3D%3Dc.getVisibleChildren().length%3Fi%2B%3Dt(%22%22%2Cc)%3Ai%2B%3Dr(%22%22%3D%3De%3F%22%22%3Ae%2B1%2Cc)%7D%7Dreturn%20i%7Dvar%20i%3Dr(1%2C%24(%22.selected%22))%3Bwebkit.messageHandlers.CopyToClipboard.postMessage(i)%2Calert(%22Copied%20to%20Clipboard%22)%7D()%3B%0A

4. おわりに

今回ご紹介したスクリプトは、HandyFlowyを使ってブログを書いている方には、ぜひ使っていただきたい大変便利なスクリプトです。

また、ブログを書くなら、階層化や文章の前後の入れ替えなどが簡単にできるHandyFlowyはオススメです。

当ブログでは、HandyFlowy(WorkFlowy)でブログを書くことにについて、以下のとおりいろいろ書いてきましたので、もし、ご興味のある内容がありましたら、ぜひご参考にしてください。

この記事は以上です。

このブログの更新情報や、iPhone・iPadを活用した効率的なインプット・アウトプットの方法を X で発信しています。もしご興味があれば、ぜひ以下のボタンからフォローしてください。また、拙著の一覧はこちら(Amazon著者ページ)からアクセスできます。

今すぐFollow!

小田やかた を

このブログには、iPhone・iPad・Apple Watch、アプリ、Kindle出版、ブログ運営などに関する記事があります。カテゴリーページや下にある「関連記事」を、ぜひご覧ください。

ABOUT ME
アバター画像
小田やかた
ブロガー&Kindle作家。二人の子どもを持つ共働きサラリーマンです。(プロフィールの詳細)iPhone・iPadアプリを活用した効率的なインプットとアウトプットの方法を発信しています。
関連記事