denote
名前は実装に使っているのが
Denoであることと、「意味」「表現」などを意味するdenoteが言語化支援ツールとして丁度よさそうだったことから
進捗
2022-04-18
記法を折り畳めるようにした
外部リンクを踏めるようにした
前作よりは多少エレガントな実装にはなったが、色々やってるとどうしても増えてしまう
why
自分で全てを把握できるものが欲しい
自前実装してれば中身を好きなだけ書き換えられる
は
の製品なので入社しないといじれないだろうし、したとしても自由にはいじれないだろう
自前でコンセプトなどを真似して組んでしまえばやりたいことができる
Vimが無いと動かない
Vimを人におすすめするのはちょっと…
設定も必要で面倒臭い
競合させるわけにもいかないのでやむなし
物理キーボード以外での操作に難がある
リッチじゃない
画像とか貼りたいことがある
個人だと必要ない機能に思われるが実はそうではない
vim-scrapとZatsu wikiを作ってこれに気付けた
良い物は模倣してみたくなる
日本語入力システムでやった
Scrapboxだと?
テキストエディタ
コラボレーションシステム
ウェブアプリケーション
全部理解できる
ブラウザで動くと色々便利
ブラウザで動く既存のエディタの中でScrapboxがよくできている
だから複製しようという動機で動いている
割と深い所まで真似しているので問題があれば消します
Twitterや
井戸端などでコラッと言ってもらえれば対応します
方針
上から下まで全部Denoでやる
前回はバックエンドをGoにしたため二重に実装する必要があって疲弊してしまった
シングルバイナリに全てを閉じ込めたくてそうしたが大した意味はない
Clone名乗れるくらいには記法をサポートする
前作になくて欲しかったのは
アイコン記法
画像
コードブロック
「サービス」にしない
あくまで欲しいのはリアルタイムに編集できる
Gollumみたいなもの
変なこだわりあるから作ってるだけでサービスが欲しければ普通にScrapbox使えばいいと思う
けどサーバーとして置く以上簡単な物でいいのでログイン機構は欲しい
かといってローカルのツールであることにこだわりすぎない
面倒なので共同編集とか実装していなかったけど結局やった方がいいと思う
実装の話
土台しかないので何書けばいいのかわからん問題
OSSにしているので
さんがどんどんPR投げてくれてる
makeChanges()
が便利
CSSの挙動を調べるのにDevToolsのComputedが便利
Scrapboxの行パーサは正規表現で実装されているらしいがパーサコンビネータいじってる方が楽しいので
bread-n-butterでパースすることにした
必要な物が足りないし拡張性が乏しいのでbread-n-butterを捨てることにした
notやuntilなどの最短マッチをするのに必要な部品が全くない
ネストした構造を扱う上に中途半端な状態でマッチするので必須