inputboxを作る

8:00

おはようございます。昨日は私事でバタバタしていて作業がほとんどできなかったので、今日はばりばりと進めたいところですが、今日は今日で朝から妻の病院の付き添いです。

Textbox:

まずはinputbox(仮)の仮組みをしてみましょう。

中央に入力窓があり、左右にもウィンドウがある感じです。左右の窓は特定の動作で呼び出す、というのでもよいでしょう。

* * *

Image from Gyazo

まずGmailのような入力窓にしました。

で、addボタンを押したら、それがhistroy.jsonに記録されるようにします。それで最低限の「保存」機能にはなるでしょう。

* * *

保存先はjsonなので、前回作ったjsonに追記が使えるはずです。まず、空っぽのjsonを作っておきましょう。

11:00

Textbox:

Image from Gyazo

できました。入力して「add」ボタンを押せばhistory.jsonに記録されます。左にはそのjsonの中身が表示されています。

で、このhistoryをクリックしたら、その中身がモーダルの方に表示されればOKです。その際は、そのとき表示されている内容は自動的に保存されるのがよい?

* * *

historyから戻す機能もつけました。現状は戻すときは保存しない形で。

呼び出したファイルの中身が書き換えられている場合だけ新しく保存する、という形にしたいところ。

* * *

とりあえず、最低限使える形にできたのでOKとしましょう。

でんでんコンバーターへのメッセージ:

あとで読む:でんでん開発ブログ : 助けてください! 企画協力者募集のお願い

メッセージを送っておきました。

Textbox:

ヒストリーから呼び出されたアイテムは、保存されるときもともとのヒストリーのidも保持しておき、「すべてを削除」を選択したらそのすべてを削除できる、という機能はどうか。

14:00

Textbox:

inputbox、現段階でもかなり便利です。シンプルで使いやすい。

情報を連続的にまとめていくために、「リプライ」のようなことができると面白いと思います。が、ヒストリー機能と若干競合しますね。

もう少し考えたいところ。

* * *

ここの入力から、各種ページないしはそのページ用のjsonに入力すること。

R-style:

記事を書きます。

* * *

publish:記憶と記録 | R-style

16:00

Textbox:

inputboxについて思いついたことを少し整理しておきます。

まず、基本的な入力機構はできました。単に保存するだけなら普通に使えます。

で、history-chainの機能を考えてます。あるメモをhistroyからcallして書き換えて保存したときに、新しいメモとして保存されると共に、大本になったメモへの参照も残しておく、というもの。jsonではリファラーという属性を与えて、それをdivのカスタム属性とすれば実装はできるでしょう。

そうやってメモの「履歴」を辿っていけるようにしておく、というのが一つの構想です。

で、別の構想が、リプライ。Twitterの機能のようなもの。あるメモに対して新しいメモを繋げていく、という機能。

これはビューの問題になるでしょうか。つまり、そのメモを表示したときに、リプライもとのメモを時系列で表示させる、というもの。でもってこれはよくよく考えるとリファラーと同じです。

リファラーは、一つのメモを書き換えていき、gitのコミットをさかのぼっていけるような機能であり、リプライはtwitterのようにある連続した話題をひとまとめにする機能です。

textwell的には前者、Twitter的には後者で、どちらかを採用するか、どちらも採用するのかを決めたいところ。仮にリプライのようにするならば、参照があるメモは表示を一つにまとめてしまい、先頭のものだけを表示する、ということもできるかもしれません。

* * *

上に関することですが、同一のテーマのメモをどうするか。

リプライでまとめる機能とは別に、たとえば見出しやタイトルを与えて、共通するものを表示させるということができるでしょう。

あるいは、複数のメモをマージしてページ(単一ファイル)にするという操作も考えられます。

そうした場合、histroyからそれらのメモを消して、代わりにページリンクをhistoryに加えるとよいかもしれません。

* * *

あと、最近作るようになっている「アイデア台帳」と「主題ノート」への追記も考えたいところ。たぶんこれは、上の機能と統合して考えられるでしょう。

入力をカードとして保存することで、historyにも残りつつ、カードリストとしても残る。で、このカードリストがアイデア台帳の役割も担う。アイデアjsonというものを作っても良いし、アイデアjsonのtype:アイデアとして保存してもいい。

で、それとは別に「主題」ごとに情報を分けて保存する。この場合、13種類以上の主題ノートを「あて先」に選ぶか、あるいは先ほど考えた関連するメモを表示する機能で代替するか、です。

この辺は、もう少し実際に使ってみてから考えましょう。でもって、HyperIndexとの連携も一つの課題です。

とりあえず、このinputboxが触っていて面白いので、しばらくはこれに注力するとしましょう。

* * *

ハッシュタグのような機能をつけて、Twitterに寄せる?

* * *

読書日記もjsonで形成する、とするとどうなる。

漫画とそれ以外でわけるかどうか。

それ以外は、一冊で一ページを作ってもよい。

漫画は、読書日記にあるだけでもいい。

jsonで書誌データ及び自分の感想と読了日を保存する。

そのjsonを読み解いて、ページを生成する。ここまでは標準的。

テキストでデータを持っていても、jsonでデータを持っていてもあまり変わらない。

マークダウン形式だと入力が楽だから使っているが、inputbox経由で作成するならばほとんど変わらない。

次に考えるのはまずここから。

本を入力するときは、inputboxのフォームも変えてしまう? それともテンプレートの挿入みたいなもので対応する?

最終的にページとして生成したいデータはいかのようなもの。

Image from Gyazo

これをどのように作るか。

テンプレートなら、あらかじめ項目の見出しを書き込んだテキストを挿入する形になる。

フォームを弄るなら、著者欄や出版社欄を作ることになる。で、ISBNを入力したら、それが自動的に補完されるとGood。

漫画の場合、原作と作画とキャラクターデザインなどが分かれている場合があり、定型的な入力フォームではその対応が難しくなる。その辺をまとめて「著」としてくくっていいなら、もっと楽にはなる。

17:00

publish:BC055『限りある時間の使い方』から考える「時間の使い方」

Tetbox:

inputboxが表示されているときに、「book」というボタンを押すと、入力フォームがbook用に変更される、というイメージ。

そもそもそのjsonはどのような形式になっているのだろうか。普通にすべての行をlineとして保存することはできる。あるいは、“author"や"publisher"のような属性を与えて、特別なjsonにすることもできる。

* * *

汎用性を考えるなら、line=bodyの中に書誌情報をそのまま入れ込んでしまうことだろう。その場合、属性で検索するのが少し面倒になる。ただし、jsonの処理は他と共通で構わない。たとえば、同じlineに他のjsonと本のjsonを違和感なく並べる場合は、その方がいだろう。

ここで考える。

「本の感想を書く」と「書誌情報」は同じなのかどうか、という点。

前者は自分の出来事なので、他のカードと同じスタイルがよいだろう。後者は一種のデータであり、フォーマットが整ったデータベースにするのがいいだろう。どちらがいいか。

* * *

というか、どちらかを選ぶ必要はないのではないか。

まず書誌情報を入力して、本のデータベースにそれを登録する。その上で、その情報を参照しながら本の感想を書く、という流れ。で、書誌情報を入れずに感想を書くこともできるようにする、という感じで。