目次
最近WorkFlowyを使い始めて、いろいろ便利になっています。
ちょっとしたメモとかTODOとか、
実行したら「COMPLETE」ということで、
横線がつくので、確認もしやすいです。
ブログを書くにあたって、いろいろと構成を考えたりする必要があります。
WorkFlowyは、シンプルなアウトラインプロセッサなので、
トピックの移動なども気軽にできます。
ひととおりブログ原稿を書いたあと、Exportで出力するわけですが、
ブログ用とするなら、HTMLタグが付いている必要があります。
実際に使用しているWorkFlowyの見た目と
同じようなフォーマットです。
Evernoteにコピペしたところ、同じようにできました。
単純に、テキストのスペース(ブランク)を使って階層化しています。
アウトラインプロセッサ用のXML形式のフォーマットです。
というわけで、変換用のツールをネットで探してみました。
●WorkflowyのOPML出力テキストをブログ原稿テキストに変換するツールを追加 (Miyota-0.6.0)
Javaで作成されているようです。
●WF2HTMLのirodrawさん専用バージョンWFtoHTML irodrawEdithion
AppleScriptだそうです。
OPMLはXMLのアウトラインプロセッサ版です。
XMLなので、XSLTという、HTMLならCSSがあるように、
体裁を整える仕組みがあります。
●参考サイト
XSLTスタイルシートの基礎の基礎
ネットで調べましたが、なんだか難しそうでした。
もしXSLTが使えるなら、プログラム言語に関係なく、
XMLデータの加工ができます。
個人的には、HタグとPタグが付いてくれればいいレベルなので、
自分で作ることにしました。
以前、アマゾン検索システムを自作したときに、
アマゾンから取得したXMLデータを加工して表示したことがあるので、
プログラムを作ることにしました。
ネットで検索すると、RSSリーダーでも、OPMLが使えるそうです。
それを利用すると、一気にまとめてRSSリーダーに登録できるそうです。
そのOPMLですが、outlineタグの中に、type,text,title,xmlUrlなどがあります。
それに対して、WorkFlowyの場合は、textだけのようです。
あとは、outlineタグが階層化されています。
PCではフォルダと同じような感じですが、
最初の階層のデータを取得する方法と、
その下の階層のデータを取得する方法は、同じです。
同じということは、同じ関数が使えます。
そして、その関数内で、自分自身の関数を呼び出すという、
再帰的なことができます。
作ってみるとシンプルな関数となりますが、
無限ループにならないように注意する必要があります。
以下が関数です。
<!---================================================================= xmlConv ==================================================================---> <cffunction name="xmlConv" access="public" returnType="string" output="yes"> <cfargument name="xml" type="xml" required="yes"> <cfargument name="path" type="string" required="yes"> <cfargument name="no" type="numeric" required="yes"> <cfset var sData = ""> <cfset var aryXmlDoc = XmlSearch(arguments.xml, arguments.path)> <cfloop index="idx" array="#aryXmlDoc#"> <cfif ArrayLen(idx.XmlChildren) eq 0> <cfif form.p eq 1> <cfset sData = sData & "#idx.XmlAttributes.text##request.CRLF##request.CRLF#"> <cfelse> <cfset sData = sData & "<p>#idx.XmlAttributes.text#</p>#request.CRLF#"> </cfif> <cfelse> <cfset sData = sData & "#request.CRLF#<h#arguments.no#>#idx.XmlAttributes.text#</h#arguments.no#>#request.CRLF#"> <cfset sData = sData & xmlConv(idx, "outline",arguments.no + 1)> </cfif> </cfloop> <cfreturn sData> </cffunction>
XMLデータを加工するためには、
実際にどんなデータがあるか確認しながらやっています。
デバッグしながらの開発ですね。
ちなみにColdFusionでは、
cfdumpタグという変数の中身が見やすく表示されるので、
とても便利です。
今回のデモデータをcfdumpタグで画面に表示すると、
以下のように表示されます。
こちらがWebアプリとなっています。
個人的には、ブログは、「はてな」と「WordPress」を使っています。
pタグありとなしで使い分けてみてください。
あまり凝ったことはしていないので、
「Hタグ、Pタグがついてくれるので、ちょっとは便利だな~」
ぐらいで、使ってみてくださいね。
「WorkFlowyのExportのOPML形式をHTMLなどに変換する」
※
WorkFlowyで、週にまとめてTODOなど作るのに便利かも。
「指定した回数分の日付や回数がついた文字列を生成する方法」
追記)2015/10/22
目次が表示されるプラグインを使っていましたが、
「表示されないのは、なぜ?」と思っていたところ、
Hタグが大文字だったからでした。
プログラムを小文字のhに修正しました。