Posts tagged ‘Zettlr Markdown editor’

先日から使っているZettlrは安心・安定感はあるものの、それほど機能が多い訳でも、細かくカスタマイズできる訳でもない。それでも、テーマはCSSでいろいろ変えられる。Electronなので、ブラウザと同じ「開発ツール」が使えて、CSSの変更べき箇所が分かり、その場で設定を変えて試せるのが便利だ。Electronは嫌いだけど、この点は良い。

昨日は、色とフォントの組み合わせに好みのものがなかったので調整した。Frankfurtというテーマは、色はいいのだが、フォントがセリフ(日本語の「明朝」に相当)で気に入らなかったので、サンセリフ(日本語の「ゴシック」に相当)に変えた。それに気を良くして、色をデスクトップに合わせてベージュ系にし、いくつかのフォーマットのスタイルも調整した

あと、タブバーが上だとタブ数が多くなった時に見えなくなるので、縦にできないか試してみたら、難しそうではあるけど、やればできそうな感じだった(先は長そうなので、その時はそこまでで止めた)。が、もしかしたら そのうちオリジナルでできるようになるかも知れないから、余り急いで作ることもない。

あと、テーマではないが、Zettlrでノートに画像を貼り付けてもJoplinにインポートされない件は、Joplinで画像を「画像貼り付け用ノート」に貼り付けてインポートし、そこに出たタグをZettlrに貼り付けることで仮対応している。

 

同じくテーマではないけど、ZettlrはZettelkastenというノートの仕方をサポートしていて、気になっている。(→ 参照) 一言で書くと、情報を(小さくまとめて)「カード」に書いて、リンクで繋げて行くようだ。僕のやり方とは違うが、それよりは効率が良さそうな気がした。というのは、今の、カテゴリごとのノートに続けて書いて行くやり方だと、どこに何があるか分からなくなってしまうし、情報を時系列に追加していくうちに、ノート内での小さ目のまとまりの情報の位置が飛び飛びになったりして不便だからだ。

Zettelkastenは、ツールによるのだろうが、手軽に情報(カード)を繋げられて、効率的にカードが探せれば良さそうだと思った。あと、多くのカードを うまく管理できるかも気になる。そして、こういう方法ではGoogle Keepのようなポストイット型の見せ方のほうが良さそうだけど、カードが多くなったら破綻しそうだから そうでもないのかも知れない。

 

PS. 気分良くZettlrを使っていたら、思わぬ欠点が見付かった。上/下付き文字すら表示できないのだ。フォーラムでは作者らしき人が、「Zettlrが使っているエディタCodeMirrorがサポートしない限り対応しない。対応して欲しければ、自分で作ってCodeMirrorに提案しろ。」とのこと。なんか、随分石頭かつ上から目線で嫌な感じだ。いくら面倒でも その言い草はないだろう。一気に冷めた感じ。

僕は上/下付き文字は余り使わないからいいけど、これの主たるユーザーは研究者らしいのに、良く問題ないな。実は使っている人が少ない??

その後、実は、ZettlrのLaTeX拡張($で挟む。例: $m^2$ → m2, $CO_2$ → CO2)を使えば、上付き/下付き文字が使えることが分かった。それで研究者には問題ないだろうが、一般的な問題(例: LaTeXにないMDの機能?, 互換性※)はないのか? そして、作者は なぜ、上記フォーラムでの質問に この機能を紹介しなかったのか? (11/7 7:27)

※JoplinはGFMとLaTeX拡張をサポートしているので、案外、互換性には問題ないのかも知れない。

また放浪しそうな気がして来た・・・

前にも書いたが、このブログのエディタ(もちろん、上付き、下付き文字ができる)でMD(でなくてもいいが)を編集できればいいのだが、できないものか。編集以外が低機能とか煩雑になるのか。ちょっと考えたい。 (11時)

PS2. PSのあとで調べたら、このブログのエディタはTinyMCEのようで有料のようだが、そのお金はWordPressが払っているのだろうか? (それで新しいエディタを押し付けている??)

それはまあいいとして、似たようなエディタにはCKEditorやTrixQuill(あとの2者はフリー)などがあることが分かった。ブラウザで動く、ちょっとした編集領域(ブログにあるようなもの)を作るのは簡単だが(→ Trix, Quill。Trixは画像に横線が入ってしまう。Quillは高機能な感じ)、それでファイルの読み込みや保存(、その他もろもろのこと)をするなど、「本物のエディタ」にするのは面倒そうだ。

そういうののスタンドアロン版があるといいのだが、なかなか手軽なものがなかった。普通のリッチテキスト(あるいはWYSIWYG)エディタはWordみたいで重いし機能があり過ぎて、「ちょっと書く感じ」でないのだ。 上に挙げたような「こういうのでいいんだよ」的なものが欲しい・・・

今は そういうのはMDエディタになるのだろうが、いくら探しても僕の気に入るものがなくて困る。 (21:02)

PS3. PS2の前に、もう少しMDまたはリッチテキストエディタ、他の方法を検討したのだが、ZettlrやJoplinよりいいものはなかった。※ 今までに試した・検討したうち(論外のQOwnNotesは含まないが、純粋に主要な機能がまともに動いたとして比べればZettlrの上になる)では、以下の順位・印象となった。

※その後、pandocでMDをZimのフォーマットに変換すれば取り込めることが分かったので、Zimの順位を上げた。将来性を除けばZittlrやJoplinより良いかも知れない。 (11/7 13:54)

  1. WordPress (ローカルサイト → 外部アクセス用サーバに送信 → スマフォから閲覧)
    • 問題: セキュリティ
    • 手間: HTMLへの変換(移行時のみ)
    • 外部での編集はしない。
    • Joplinは不要。
  2. WordPressのエディタ
    • 手間: HTMLへの変換・逆変換(毎回)
    • Joplinが要る。
  3. Zettlr
    • 問題: 機能が今ひとつ。大きいノートは遅い。
    • フォーマットも今ひとつ。
    • 作者が石頭。
  4. Joplin
    • 問題: 遅い、メモリを食う。
    • 作者が いい加減。
  5. Zim
    • 問題: 何もインポートできない。独自のファイル形式。 → その後、pandocでMD(おそらく その他も可能)を変換すれば取り込めることが分かった。 (11/7 13:54)
    • 作者はMD嫌いか無関心? 「多忙」。
    • 将来性に不安。
  6. Cherrytree
    • 問題: かなりメモリを食う。
    • センスが悪い。
    • 将来性に不安。
  7. VNote
    • 問題: かなりメモリを食う。
    • まだ不完全。
    • 信頼性に不安あり。

そして、実は1番はWordPressでなくても良く、手軽なリッチテキストエディタとファイル送信の仕組みがあればいいことに気付いたが、エディタについてはPS2に書いたように「手頃なものは なし」となった。 (20:44, 11/7 8:17 加筆・修正)

その後、BookStackという、セルフホスティングでTinyMCEでノートを編集できる情報管理システムが見付かった。まさに探していたものだと思い掛けたのだが、良く調べたら、これもZim同様に何もインポートできず、独自のファイル形式(実際にはDBに格納される)である。

フォーラムを見ると、作者は全然乗り気でない(他に重要なことがあると思っている)ようだ。まあ、思想の違いなのだろうけど、全く賛成も理解もできない。僕だったら、これは最も重要で一番最初に考えることだ。

既存システムから移行する手段がなかったら、本気で使おうと思う人はかなり限られてしまう。引越しに例えれば、新しい部屋は今までの家具が全く入らず、全部買い直すか、分解して部品で搬入して組み立て・調整し直す必要があるようなものだ。あるいは、PCだったら、新しいPCは既存のメディアが読めず、USBもNWも繋がらないので、何もコピーして入れられず、情報を1文字ずつ手で打つしかないようなものだ。馬鹿過ぎる。

魅力はあるものの、これだったらZim(ノートはテキストファイルに記述)のほうが まだマシな気がした。ただ、BookStackのサーバはセキュリティに考慮しているようなので、外からのアクセスが可能になるメリットはある。 (11/7 10:03)

  •  0
  •  0
Keys: , , , , , ,

Joplin(特にエディタ)がクソで使い物にならなくなったので※、他を探してみたのだが(試したものを付録に書いた)、結局、Zettlrしか残らなかった。エディタの機能ではJoplinは足りているのだが、遅かったり表示がジャンプしたりと邪魔されて普通に文章が書けないという点で、使うことができない。

※想像して欲しい。1文字打つ・消すたびに5秒くらい待たされるので、記憶と予想で新しいカーソル位置を想定して作業する苦しさを。30年前のviだって、そんなことはなかったよ。もちろん、何か大きなことをすると(いつ起こるかは不明)いきなりカーソルが行方不明になって、文章を書くレベルじゃねえ!

前回候補に挙がったTriliumは、(いろいろな問題はあるけど一番大きいのは、)内部的にMDでない(HTMLのようだ)※せいかJoplinのノートを開くと書式が変わってしまう。Triliumを使うために全部のノートを見て修正するなんてやってられないので、やっぱり使いものにならない。

※どうしてそうしたかは分からないが、推測してみると、MDよりHTMLのほうが 幅広い表現が可能なためかも知れない。が、世の中の標準に合わせずに自分だけの(詳細が不明な)仕様で通そうとしても先は ない。そういう点で、Triliumはセンスが悪い。

更に、PC(Linux)だけの話なら まだいいが、僕はスマフォ(Android)でもノートを共有して開きたい。すると、ノートの同期システムが必要になるのだが、こちらも(僕には)まともなものがなかった(例: ちゃんと同期しない、電池を食う)。また、同期するといっても、常に全部のノートをスマフォに入れておく必要はなく、見たいものだけ適宜ダウンロードすればいいのだが、そういうものは なかなかない。Dropboxは近いのだが、その上のノートをMDエディタで開いた時に画像が開けない問題があった。Dropbox対応のMDエディタなら可能かも知れないが、有料である。※

※高いものではないから、ちゃんと使えるなら買ってもいいけど、買わないと確かめられないので どうにもならない。

すると、PCとサーバとスマフォでノートを同期するという点では、Joplinは必要充分で なかなか良いことに気付いた。

なお、JoplinのAndroidアプリはLinux版と同様に重くて(EvernoteのAndroidアプリと同様) ほとんど編集はできず、表示専用と割り切っている。

そこで考えたのは、いつものように、JoplinとZettlrで「何とかする」ことだ。それぞれの得意な(「使える」)ところを使い、以下のように分業させるのだ。

JoplinとZettlrの分業

  • Joplin
    • (Linuxアプリ) ノートの管理
    • (スマフォアプリ) スマフォでのノートの表示
      • 重いので、編集は元から諦めている。
      • ノートの編集(書き込み)の代わりに、自作のメモ記録システム(BNote)を使っている。
        • 必要なら、そのメモをPCでノートに貼り込む。
    • ノートのサーバとの同期
  • Zettlr
    • ノートの編集

試しに上記の分業システム(のPoCかプロト)を昨日作り、どうにか動くようになった。以下に基本的な動作を示す。

動作

  1. Zettlrで編集したいノートに対して、Joplinで外部エディタでの編集を設定する(ノート名で右クリック → "Edit in external editor")。
    • あらかじめ、Joplinの設定の外部エディタに、JoplinとZettlrを連携させるためのコマンド(「コネクタ」?)を指定しておく。
  2. JoplinとZettlrを連携させるコマンド(zettlr.sh)は以下を実行する。
    1. 編集用にJoplinからエクスポートされたノート(「元ノート」)を作業ディレクトリにコピーする(→ 「作業ノート」)。
      • 元ノート自体をZettlrに指定してもいいのだが、Joplinの他のファイル(設定やログ)が見えるのが嫌だし、それらを誤って変更したり削除してしまうのを防ぐために こうしている。
      • また、下にも書いたが、Zettlrは単にファイル名を指定しても開けない場合があるので、(仕方なく)作業ディレクトリを作ることにした。
      • 更に、Zettlrはsym-linkは開けないようなので、(仕方なく)編集するノートを作業ディレクトリにコピーすることにした。
        • このために かなり面倒になった。。。
        • 調べたら、ワークスペースやノートのあるディレクトリにsym-linkがあると うまく動かないことがあるようで(→ 参照)、実際に この環境でもしばらく使っていたらノートが開けなくなってしまった(なぜか、Zettlrを再起動すると開ける)ので、(仕方なく)作業ディレクトリ直下からsym-linkを排除し、ノート中のリソース(画像)を抽出してJoplinのディレクトリからsym-linkして(サブディレクトリにある分には大丈夫なようだ)表示できるようにした。これで様子を見ることにした。
    2. 作業ノートを指定してZettlrを起動する。
      • あらかじめ、Zettlrに作業ディレクトリをワークスペースとして設定しておく。
        • 設定しないと、Zettlrが起動中に新たにノートを開く時にエラーで開けない場合が多い。
    3. 作業ノートの更新または元ノートが削除されるのを待つ。
      • 作業ノートの更新の場合、少し更新を「ためて」からJoplinのディレクトリにコピーする。
        • ノートを書いている時は頻繁に作業ノートのファイルが更新され、そのたびにコピーするのは無駄だし重そうなのでそうした。
        • 現状は、10回以上更新があったか、10回未満でも約20秒間更新がなかった場合にコピーするようにしている。
      • 元ノートが削除された場合(Joplinで外部エディタでの編集が解除された)、作業ノートを削除して終了する。
        • 作業ノートを元ノートにコピーしていない場合(上記の保留された更新が未反映の場合)には、エラーダイアログを出す。 → あとで手で反映させるなどが必要。
    4. 3に戻る。
  3. ノートの編集を終える時は、Joplinでノートの外部エディタでの編集の設定("Edit in external editor")を解除する。 → 元ノートが削除され、上の「元ノートが削除された場合」が実行される。

使っている時の画面を見ても、単に「2つのMDエディタが動いているだけ」だが、背後では上のような複雑な処理をしている。そのおかげで、Zettlrでノートを変更すると少し経ってJoplinの表示も更新される。

Zettlr(左)でJoplin(右)のノートを編集している様子

 

効果・良かったこと

  • 操作性: Zettlrは高速(というか、当たり前の速さ)だし、MDエディタとしての挙動も概ね一般的(Joplinに近い)なので、書く時にストレスがなさそうだ。
    • 今までのところ、機能不明・不足以外のストレスはない。
      • 他のエディタのようなプレビュー画面はない(印刷プレビューのみ)のだが、それで充分使えるところがZettlrの表示の すごい・うまいところだと思う。やたらに機能を増やさず、着実に進めている印象がいい。
    • 一方、Joplinのエディタは まさに"disturbance/distraction-ful"だ。
  • メモリ量: JoplinもZettlrも同じElectronで動いていると思われるが、Zettlrは随分まとも(というか普通)。
    • 開いているノートの数と使用メモリ量(アイドル時)の比較例
      • Joplin: 1ノート(サイズ: 約40KB): 約1.2GB
      • Zettlr: 5ノート(サイズ: 合計約1MB): 約680MB
    • Joplinはエディタの他にノート管理や同期の機能があるとは言え、メモリを食い過ぎる。多くのノートを開くと、簡単に2GBを超える。
    • Joplinのメモリは減ることがないが、Zettlrは作業状態に応じて ちゃんと減るのが いい(というか、それが普通だ!)。

処理速度もメモリ量も、同じElectronなのにZettlrは ちゃんとしているが、Joplinは全然「なってない」。Zettlrができているので、やればできるはずのことをしていない(Androidアプリも同様にひどい)。作者は、手を広げるよりも、まず こういう基本的なところを詰めるべきだと思う。

惜しいこと

  • ノートを編集するたびにJoplinで外部エディタでの編集を設定するのが面倒。
    • Joplinを終了しなければ設定は維持されるので それほど煩雑ではないが、(可能ならZettlrに組み込まれた)シンプルなメニュー的なものが欲しい。
  • JoplinとZettlrの管理情報(タイトルの設定方法やタグやノートのIDやマークダウンリンクなど)が別々なので煩雑。
    • ノートIDの統合はできないだろうから、Joplinをベースにするしかなく、必要になるたびにJoplinに戻るのが面倒そうだ。
    • 書いていて気付いたが、Zettlrで貼り込んだ画像をJoplinに戻す必要があることを忘れて居た。面倒かも知れない。。。
    • 同様に、新規ノートはZettlrでは作れない(Joplinに入れる機能がない)。: なかなか先が長そうだ・・・
  • Zettlrの編集機能が「もう一声」。
    • 総合的には、試した他よりは ずっといいのだが・・・
      • 書式設定の機能・メニューが少ない。
      • 日本語処理は特にしていないようで、日本語中の英語の単語選択(ほとんど文章全部が選択される)もスペルチェックも誤動作する(ノートのほぼ全体が真っ赤になるw)。
    • このブログ(WordPress)のエディタくらいの機能があれば言うことないが、なかなかうまく行かないものだ。
      • 何度もブログでノートを書くことを考えているのだが、エディタの機能だけで済むものでもなく、なかなかうまく行きそうにないので諦めている。
    • あと、テーマがどれもイマイチ。自分でCSSをいじれるが、もう少し普通の感覚のものを用意して欲しかった。
      • もしかすると、日本(というか、僕?)以外では、用意されたものがごく普通なのかも知れないw が、特に色遣いの趣味が悪い。明る目の緑とかキツい赤とか止めて欲しい・・・
  • "Zettlr"の綴りが いつも分からないw
    • Zettler? Zottler? Zottero? ヒ○ラー? デスラー?などと、最初の"Z"しか分からない。

メモ・残件

  • ファイル更新の検出は、inotifywaitというコマンドを使った。これをモニターモードで動かし、出力されるイベントを読み込んで処理する。
    • ファイルのコピー中などに起こったイベントを落とさないように、モニターモードで動かすことにした。
  • 連続した複数のイベントを保留してまとめる処理は、イベントの読み込み(bashのreadコマンド)にタイムアウトを指定することなどで実現した。
  • 現状では、編集中のノートごとに上のファイル更新の検出処理が起動されてイマイチなので、いつか統合したい。
    • ただ、基本的に待っているだけなので、負荷は高くない。が、無駄にプロセスが多くなって気分が悪い。
  • 上に書いたように、Zettlrで追加した画像や新規ノートをJoplinに入れる処理が必要だが、作るのは容易ではない。対応できるまでは適宜Joplinを併用するしかない。

 

付録: 試して却下したMDエディタ

以下のもの(すべてLinux版)を試したが、どれも僕には今ひとつだった。次点的なものはMark TextとAbricotineとReTextだった。

(書いたあとで再度試して分かったが、)Mark Textはキーの挙動と勝手な修正とメモリ量などを我慢すればZettlrより良さそうで、乗り換えたくなっている。が、更に少し試したら結構バグがあるようだし、ノートを勝手に修正されるのは困るので、保留した。Abricotineはメモリを食うのが惜しい。ReTextは いろいろ惜しい。いったい何を考えているのか分からない。そこを直せばいい感じだ。

  • Remarkable: パッケージ不足でインストール不可だった。
  • ReText: タブキーで箇条書きがインデントしない。
    • プレビューの画像のサイズが大きい(リサイズされない)。
    • ライブプレビューの表示位置がエディタと同期せず、不便。 (← レンダラーにWebkitを使えば同期する。)
    • 改行の解釈・処理が違うようで、改行だけで次に空行がないと、行が繋がってしまう。
    • メモリ量は少なそう。
  • Mark Text: MDを勝手に変更(修正)する。カーソルがノート内にある場合、Page Up/Down, 上下キーの動きがおかしい。
    • MDの箇条書きの子要素の前に余計な空行が入る(MDを勝手に変更する)。
      • その他も勝手にいろいろ(空行や空白など)書き換わる。「正しいMD」に修正してしまうようだ。
    • MDの空行が無視される。入れてもなくなる。
    • 細かいバグが多そう。
      • Ver. 1未満なので仕方ない? (結構時間は経っているが・・・)
    • 日本語対応は一番良い。
    • 雰囲気はZettlrに似ている。
    • メモリ量は多目だが、Joplinよりは少なそう。
  • MindForger: PPAがUbuntu 20.4 LTS(focal)に非対応でインストール不可だった。
  • Abricotine: 開くノート(ウインドウ)の数に応じてメモリがかなり増える。約340MB+200MB/ノート。
    • 複数のノートは別ウインドウ
    • 設定がファイル
    • 表示は綺麗。
    • Zettlrに近い。
    • 古い: 2015年。ただし、GitHubでのリリースは2020年。
  • Notable: ワークスペース型で、ノートのインポートが必要。
  • Haroopad: タブキーで箇条書きがインデントしない。
    • 複数のノートは別ウインドウ
    • なぜか、メニューのフォントが汚い。
    • 雰囲気が、僕が使っているエディタjEditに似ている。
    • メモリ量は少なそう。
    • 寄付の表示が消せない。 (← ボタンを押せば消える)
    • 古い: 2015年。
  • GhostWriter: 複数のノートが同時に開けない。
  • QOwnNotes: 最初に何か(MDは不可)開かないと起動しない。
  • Markdownify: ライブラリが合わないようで、起動しない。
  • Znote: Joplinで作ったMDの画像が表示できない。
  • Apostrophe: Joplinで作ったMDの画像が表示できない。
    • 機能が貧弱
    • Flatpakなので、インストール・起動・アンインストールが面倒
  • StackEditPro: サイトが開けなかった。
  •  1
  •  0
Keys: , , , , , ,