WorkflowyのDateが使いやすくなったことをきっかけに、Workflowyの使い方を抜本的に見直しました。
その中でWorkflowyの応用法を探してネットサーフィンしていると、「Workflowyで作った文章を自動的にHTMLに変換し、ブログでアップロードできるプログラム」というものを見つけました。
今回はそれをテーマに色々調べた結果、ChatGPTを用いて同じことを実装できたのでまとめてみます。
結論から言いますと、
・Workflowyのエクスポートで、一番右側にある「OPMLで出力」を選択する
・ChatGPTに
以下のXMLテキストを、後述するルールに従ってHTMLに変換してください。
bodyのoutline text要素のうち、他の要素がネストされている要素の最後の属性をH1にしてください。
bodyのoutline text要素にネストされている全てのoutline text要素の最後の属性を敬語の文章に変換し、pにしてください。
というスクリプトを与え、そこにOPML形式のデータを貼り付けて投げる。
・出てきたHTMLコードを、Wordpressのコードエディタに貼り付けて確定する。
これだけです。
ただ、後述するように、敬語への変換はあまり再現性が無かったりします…
WorkflowyとWordpressのシームレスな連携が欲しい
私のブログ作成において、一番面倒なのは
Workflowyで書いた文章を、Wordpressにコピペして、それをタイトルと段落に調整して、、、という部分でした。
この部分がボトルネックとなって、ネタだけが溜まり続け、一向に記事を作れないというのが目下の問題でした。
そんな悩みを抱えつつ悶々としているなかで出会った情報で飛んで喜んだのですが、
WF2HTMLというプログラムがあったようですが、すでにリンク切れ
ただいろいろ調べてみると、Workflowyのエクスポートで出力できるOPMLというデータ形式のファイルをHTMLに変換するという機能があるようです。
これを勉強してみると解決できそうです。
XMLはデータの構造化と保管に特化したHTMLのようなもので、XSLTでスタイルを編集できる
OPML形式というのはアウトラインプロセッサ用のデータ形式で、XMLの亜種のようです。
HTMLの体裁を整えるCSSがあるように、XMLの体裁を整えるXSLTというものがあります。XSLTスタイルシートの基礎の基礎:XSLTスタイルシート書き方講座(1) – @IT
XMLのスタイルを加工するXSLTの基礎知識:参考サイト
XMLというものは聞いたことはありましたが、まさかこんなに便利そうなものとは思いませんでした。
要は、XMLを使うと文書を構造化することができ、
XMLで構造化された文書をXSLTで加工することができるということです。
これは文書作成において非常に優れたツールです。
これを使いこなせるようになれば、
Workflowyで作った文書を自動的にHTMLに変換するだけでなく、
あらゆる知的生産工程が効率化できそうです。
今思えば、以前タスクマネジメントアプリを作ろうと思って苦労した部分は、アプリのUI部分というよりも文書の構造化だった。
その時の私は文書の構造化という概念を持っていなかったので、にっちもさっちも行かなくなってやめてしまったのでした。
XML、XSLTスタイルシートの勉強をしてみるか。
XMLファイル、XSLTスタイルシートというものの存在を知ったので、これをChatGPTにXMLをHTMLに変換させる作業をさせてみました。
かなり調子が良いです。
ChatGPTにやっていただこう
ところで考えたところで閃いたのです。
これ、ChatGPTが一番得意としているものではないでしょうか?
ChatGPTは自然言語を生成させるとかなり流暢に嘘をついてしまうので取り扱いが難しいですが、プログラミングに限っては非常に優秀です。
しかも、プログラミングは嘘をついていればコンパイルが通らないので答え合わせも簡単で、もしエラーが出てもそれをChatGPTに伝えればデバッグしてくれます。
さっそくチャレンジしてみよう。
こんなスクリプトを入力してみました。
以下のXMLテキストを、後述するルールに従ってHTMLに変換してください。
ルール1:bodyの一つ目の階層の、outline text要素の最後の属性をH1にしてください。
ルール2:bodyの一つ目のoutline text要素にネストされている全ての要素のoutline text要素の最後の属性をpにしてください。
ルール3:pに含まれる文章を、カジュアルな敬語に統一して文体を整えてください。
そしたら見事、しっかりHTMLに変換してくれました!
ただ、実はここにいたるまでは割と困難があり、なぜか途中で敬語にするのをやめてしまったりすることもあり、また再現性もあまりありませんでした。。。
何度か「ちゃんと敬語に変換してください」という指示を出すようにすると良いかもしれません。
とはいえ、面倒な部分を自動化できる可能性が見えてきたのは大きいです。
XML、XSLTに関する知識があれば、もっと正確で多様な指示を出せるようになりそう
今回はほんの少しXMLに関して勉強した程度で、ChatGPTに十分な指示を出すことができました。
でも、もっとXMLに関して勉強すれば、さらに詳細な指示を出して高度なことができるようになりそうです。
AI時代においてはこういった基礎知識が重要になってくることは確実でしょう。
おしまい。
コメント