いうツールをつくった。寒い日が続きますがお元気ですか。Chrome拡張を1つこさえれば、大の大人が寄ってたかってモダンと言い合う類のものが一通り学べるだろうと思います。導入していかなければならない。いう調子では、本腰を入れてJavaScriptと向き合う機会に恵まれない職種の人達が簡単には参入できず、ReactやWebpackなどのプロダクトが例え良いものであったとしても、なかなか一般に普及しづらい状況にあると思う。worldを表示して終わるだけでなく、実利的に役立つようなツールが必要だと考えた。炊飯器みたいなものですね。いうツールがあり、これが似たようなことを実現していたんだけれども、CSSをJavaScriptのコードとして書かせたり、動的サイトとして動かしたりする必要は無かったので、自分の用途に合うものをつくることにした。Pagesなどで静的サイトを公開したいとき、選択肢としてはJekyllやMiddleman、Octopress、Hexo、Hugoなど、色々なツールがある。見れば全身の指でも数え切れないほどの沢山の静的サイトジェネレータが出てくる。GitHubが勝手にやってくれるので、非常に便利。JavaScriptを加えて動きのあるサイトをつくろうと思うと、例えば以下のような選択肢を迫られることになる。昔ながらの片手間で書くJavaScriptで済ませるWebpackなどの一連の環境を整えてビルドする環境を用意するkatatemaはこの問題に対して、他のツールに比べて強い優位性を持っている。前述したように、Webpackなどの設定は勝手にやってくれるので、面倒な設定作業を必要としない。サーバサイドでもクライアントサイドでも同じソースコードで動作させられるため、動きを付けるのが非常に簡単である。Reactの機能を利用し、UIのコンポーネント化、状態管理、イベントハンドラ、ライフサイクルの利用など、少しのコードを付け足すだけで様々な機能を実装できる。PHPの時代PHP全盛期の時代、人々はサーバに置いたPHPファイルを単純なHTMLテンプレートとして利用し、穏やかで牧歌的な暮らしを送っていたように思う。PHPのこういう、とにかく置けば動く、ロジックはHTML中に埋め込む、みたいな分かりやすさ・取っ付きやすさみたいなところは好きだった。ReactやJSXも最初はそういう風にHTMLテンプレートとして使い始めればいいかなと思っている。単純なHTMLテンプレートの代替策としては留まらなくて、コンポーネントに分けてそれぞれ名前を付けて再利用したり、テストしたりしやすいという利点もある。入力値の型宣言ができたり、Lintに掛けられたりと、HTMLテンプレートとして使うことだけ考えてもReactには色々と便利なところがあると思う。同様に、FTP全盛期の、HTMLファイルを置いたパスにアクセスすればコンテンツが見られるような単純さも好きだった。間に複雑なルーティングのロジックなどが入らず、ファイルシステムをAPIとして利用するというのも、やはり分かりやすくて良い。生成されるということになっていて、この辺りは単純で分かりやすくて良いなと思っている。./docs/usage.html画面の更新HTMLファイルを生成する機能だけでなく、開発時に使うためのプレビュー用サーバも用意している。閲覧できるようになっている。servekatatemaでのプレビュー時には、ソースコードを書き換えるとページがリロードされることなく画面の一部がヌルリと書き換わるようになっている。ページだけでなく、ページで利用しているCSSを書き換えたときも、同様に新しいスタイルが適用されるようになっている。便利で、デザイン作業とかだとこれが無いと正直やってられない。Replacementという機能が利用されていて、内部的にはソースコード変更時にWebSocketで差分のデータがサーバからクライアントに受け渡されており、Reactの差分更新で画面の一部が書き換わっている。これを自分で設定しようとすると、webpack-dev-serverやreact-hot-loaderなどの設定を自分で行わないといけないので、慣れていないとかなり面倒くさいことになる。いうページをつくるときに、丁度いいツールが無かったので1週間ほどでこしらえたものである。画面の左側にプレビュー画面、右側にエディタを置いて、コードを保存するたびに徐々にページが出来上がっていく体験は非常に良いものだった。コードを参考にした結果、かなり似た感じのツールになってしまった感が否めない...。対象としている主な利用者層が違っていて、自分としてはWebデザイナーぐらいの人に使ってもらえる、そんなに融通は効かないけれど簡単に使えるツールに出来ると良いなと思っている。すべての静的サイトはこれでつくるべきだとは到底思ってはいなくて、低コストで雑にページをつくりたいときの道具、あるいは昨今のJavaScript周辺技術の学習用途とかで使うと良いんじゃないかと。特設サイトみたいな小規模なページを手早くつくるために導入してもらえると嬉しい。最初、katatemaをつくった動機として「nowなどを使って動的サイトにホスティングする必要は無い云々」ということを書いていたんですが、nowは静的サイトもホスティングできるということを指摘していただいて、その辺りの文面を修正しました。誤解を招く文章で申し訳ないです!。