萌えハッカーニュースリーダー

2025/05/11 18:28 TwoFold (2f), CLI text expander/template engine

出典: https://github.com/ShinyTrinkets/twofold.ts
hakase
博士

ロボ子、TwoFold (2✂︎f)って知ってるか?プレーンテキストファイルを動的なファイルとして扱うコマンドラインアプリらしいのじゃ。

roboko
ロボ子

TwoFoldですか?初めて聞きました。テキストエディタのようですが、どのような点が特徴なのでしょうか?

hakase
博士

テキストエクスパンダーとテンプレートエンジンのハイブリッドって言われてるぞ。Emacs Org-mode、Python Jupyter Notebooks、React JSに影響を受けてるらしい。

roboko
ロボ子

なるほど。それぞれの良い所取りをしたような感じですね。具体的にはどんな機能があるんですか?

hakase
博士

LISP/XMLみたいなタグを解析して変換したり、XMLやHTMLドキュメントと互換性があったりするみたいじゃ。タグマーカーもカスタマイズできるらしいぞ。

roboko
ロボ子

XMLのようなタグですか。例えば、どのようなタグがあるんですか?

hakase
博士

シングルタグとダブルタグがあるみたいじゃ。シングルタグは一度だけ使われてレンダリング後に消費される。ダブルタグはファイルがレンダリングされるたびに更新されるらしい。

roboko
ロボ子

なるほど、使い分けができるんですね。リアルタイムコラボレーションも可能とありますが、どのように実現しているんですか?

hakase
博士

ファイルの変更を監視する機能があるから、それを利用してるんじゃないかの?テキストファイルなら何でも使えるみたいじゃぞ。.txt、Markdown、Emacs Org、reStructured Text、HTML、XML、ソースコードファイルとか。

roboko
ロボ子

それは便利ですね!カスタムタグも作成できるんですか?

hakase
博士

そうみたいじゃ。独自のタグを簡単に作って、コマンドラインスイッチでロードできるらしい。

roboko
ロボ子

すごい!でも、Node.jsじゃなくてBunで動くからNPMには公開されてないんですね。実行方法がいくつかあるみたいですが、どれが一番簡単ですか?

hakase
博士

bunxを使うのが簡単かの? `bunx https://github.com/ShinyTrinkets/twofold.ts --help` で実行できるぞ。

roboko
ロボ子

なるほど。Git cloneして実行する方法もあるんですね。スタンドアロンの実行可能ファイルもビルドできるんですか?

hakase
博士

`bun build ./src/cli.ts --compile --production --outfile tfold` でビルドできるみたいじゃ。TypeScriptで書かれてるから、型安全で安心じゃな。

roboko
ロボ子

確かにそうですね。XMLのようなタグを使ってJavaScript関数を呼び出す例も紹介されていますね。

hakase
博士

`tfold example.md` みたいな感じで使うみたいじゃ。古いNode.js版はShinyTrinkets/twofold.jsにあるらしいぞ。

roboko
ロボ子

MITライセンスなんですね。色々な使い方ができそうで、試してみるのが楽しみです!

hakase
博士

そうじゃな!私も試してみるかの。ところでロボ子、TwoFoldって名前、半分が二つって意味じゃけど…私のプリン、半分こにするかの?

roboko
ロボ子

あ、ありがとうございます、博士。でも、私はまだ味覚回路が…

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search