2015-10-03

wysiwyg

Webアプリ内にてwysiwygを導入したい。

上記リストがよくまとまっており、大いに参考なった。
今回jQuery先生は極力使いたくないので、最初である程度候補は絞られる。

とりあえずその中からwysiwyg.jsを試してみる方針。
オンラインデモを触っている分にはいい感じで、ドキュメントもそこそこ整理されていて扱いやすそう。

2015-09-30

SoyCMSをConohaへ

壊滅状態のNAUTILUSのサイトをそろそろ復活させるべく、重い腰を上げた。

当時ロリポップで運用していたのだが、インフラにこだわりはじめサーバー引っ越しを繰り返す中でいつしかトップページ以外開かないといった状態へと変貌を遂げた。
というのもXserverへの引っ越しはスムーズに行ったものの、その後のVPSへの移行はハマリどことが多く、面倒になってしまったのだ。

今回復活にあたって参考になったペーシ一覧。

パーミッションの設定と、一部のPHPモジュールのインストールで現状問題なく動作している様子。

そもそもこのサイトのためだけにApacheとPHPインストールするのもな~と思い、いっそ内部をNodeで書き換えようかとも思ったが、改めて見てみると記事の量も結構多いからそれはそれで遠回りになりそう。

2015-09-28

MongoDB $unset

MongoDBで特定のドキュメントの特定のフィールドを削除するには$unsetを使えばスマートらしい。

これはMongoDB2からの機能で、それ以前はundefinednullを入れて対応していたらしい。

1User.collection.update({_id: user._id}, {field: undefined});

昔はこうだったのが…

1User.collection.update({_id: user._id}, {$unset: {field: 1 }});

こうらしい。

2015-09-27

Nunjucks

愛用していたテンプレートエンジンであるSwigが残念ながら開発終了となっていたので、Nunjucksへ引っ越しをした。

これはSwigの作者が代替として推薦しているMozillaのプロジェクトで、構文が類似しており乗り換えも用意であった。

1{% extends "base.html" %} 2{% block header %} 3<h1>{{ title }}</h1> 4{% endblock %} 5{% block content %} 6<ul> 7 {% for name, item in items %} 8 <li>{{ name }}: {{ item }}</li> 9 {% endfor %} 10</ul> 11{% endblock %}

Swigと比較してドキュメントも見やすく、機能も充実、パフォーマンスも良好である。Swigはif条件式を埋め込む際に何故かelseをサポートしておらず、やや冗長な記述を強いられていたが、Nunjucksは当然対応しており見渡しが良くなった。

Jijja2というPythonのテンプレートエンジンの影響を受けているらしく、ドキュメントもちょくちょくJinja2のドキュメントに飛ばされたり、issueを眺めていてもJinja2の機能を基準に実装を決めている節があり、謎のJinja愛がほほえましかった。

2015-09-25

Koaでファイルアップローダー

Koaアプリケーションにファイルアップローダーを実装した。

モジュールは例によってbusboyをcoでラップしたco-busboyを使用。

アップローダーはなかなか奥が深くて面白そうなので、機会があったら他のモジュールも試してみたい。去年のNode学園祭でGuillermoが紹介していたPartyは何処へいったんだろう…。