Posts tagged ‘QOwnNotes problems’

(2021/11/5 4:10) その後いろいろあり、QOwnNotesは作者共々クソだという結論に達し※、使うどころか画面を見るだけでもイライラするのでアンインストールして、とりあえずZettlrに戻った。それで使いにくいことがあれば、何とかすることにした。

※実際に使ったりフォーラムをのぞいてみて、自分で確認されたい。

やっぱり、舌の根は永遠に乾かないようだ。(そもそも、舌の根が乾いた時は死んでいるのではないか?)

であるので、以下のほとんどは「古い情報」である。


先日は、MDの編集は(Joplinじゃなくて)Zettlrが一番いいと思ってそう書いたのだが、そのすぐあとに、「ちょっと待て」的な展開になった。

先日のリストで「最初に何か(MDは不可)開かないと起動しない。」と書いて却下したQOwnNotesは、本当にそんなにしょうもないものかと疑問に思ったのだ。それに、仮に何か開かないと起動しないとしたって、機能が良ければ使えるかも知れないとも思った。

再度試したら、以前(Evernoteを止める時だったか)試した時の設定の痕跡が残っていたために、何か開かないと起動しない状態になっていることが分かった。再設定したら普通に起動した。全く失礼だった。

しかも、再度試す きっかけとなった機能紹介ページにあるように、機能や操作性がちゃんとしていて意外にいい感じだった。それでも、「完璧」とは言えないが、他に全滅なので それだっていいと思って詳しく試した。

Evernoteを止める時に試した時は、MDを使う気がなかったのとスマフォ版がないので却下したように思うが、今は状況が違って充分候補になる。

結果は、結構な当たりだった。Zettlrに完勝している訳ではないが、良い点はZettlrより多く、悪い点はZettlrより少なかった。(→ 付録を参照)

一番いいのは、ごく当たり前の話ではあるが、sym-linkに対応していることだ。これで、前回苦労して作ったけど なんか煩雑で嫌いな、MDが変更されるたびにJoplinにコピーし続ける処理が不要になる(と思った)。

一方で、Zettlrにない欠点もある。QOwnNotesはリソース(画像)の格納先にはノートのトップディレクトリの"media"というディレクトリだけしか指定できないのだ。それ以外の指定では概ね画像は出ない(フルパスとかを書けば可能らしいが、僕の用途には向かない)。

かたや、Joplinはノートを外部編集に出す時には画像ファイルをノートのトップディレクトリの"resources"に入れるので、そのままではQOwnNotesで画像が出ない。ひどいことに どちらも強情で、設定でディレクトリを変えられるようにはなっていない。

改造した時(後述)に分かったが、QOwnNotesは意外にディレクトリ名をハードコードしていて、それが何箇所にもあった。機能などの出来がいい割には雑なところがあって、どこの人かは分からないがUS的な雰囲気を感じた。

そのせいか、フォーラムでの問い合わせに作者は「変更はできない」と平然と書いていて(参照不明)、なかなか「ん?」だった。

一方、Joplinはディレクトリ名を定数にしていたので、こういうところは抜かりないものだと感心したものの、変更できないようにする考えが理解できなかった。まあ、変えると全部のノートに影響してシステムが崩壊してしまいかねないのは分かるから、仕方ない。

それで、仕方なく「何とか」しようと思った。これはZettlrの時に比べれば簡単で(とその時は思った)、Joplinの出すノート(作業用ノート)中の画像指定タグ中の画像のディレクトリ("resources")を"media"に置換してQOwnNotesに出せばいい。

なお、画像ファイル本体はresourcesにあるので、resourcesをmediaにsym-linkしておく。

早速実装しようとして、気付いた。編集が終わったノートをJoplinに戻す時には、逆に"media"を"resources"に変換しなくてはならないが(そうしないとJoplinで画像が出ない)、それは そんなに簡単なことではない。というのは、いつQOwnNotesで編集を終えるか分からないからだ。※ Zettlrの時同様、Joplinが作業用ノートを削除したことを契機にできるが、削除されたファイルの中身は置換できないので、やっぱり、Zettlrの時同様に、ファイルの変更を監視して逐次Joplinにコピーすることになって、何も簡単ではない。そんなはずではなかったが・・・

※もちろん自分(僕)は分かるので、そういう(手動の)操作を追加すればいいが、必ず忘れるし面倒なので、そういうことは避ける方針だ。これは、PCでUSBメモリを抜く時にアンマウント操作をすべきかどうかの話*に似ている。

*不要という人も多いが、僕はOSの仕組み上、必要だと思う。例えば、OSは、メモリがいつ抜かれるか分からないではないか。それに備えて常に安全策を取っているOSがあるようだが、それは何か違うし、それだって完全に安全ではない。そういうOSでは書き込み中に抜いてもいいのだろうか?

本当に「何もせずに抜いていい」と言うなら、USBの端子に「抜かれつつある状態」を検出する仕組み、または、処理中は抜けないようにロックする仕組みが必要だ。

しかし、一晩頭を冷やして考えて、(他の案もあったものの、)QOwnNotesかJoplinを改造して、QOwnNotesが"resources"を認識するようにするか、Joplinが作業用ノートに"media"で出すようにすれば、万事丸く収まる気がした。

早速QOwnNotesを改造してみたら、うまくできた。ただ、オリジナルのQOwnNotesが更新されるたびに改造し直す必要があるので面倒だ(作者にフィードバックしてオリジナルに入れてもらえばいいが、結構なパワーが要る)。※

QOwnNotesにはスクリプティングという機能(JavaScriptらしい)があり、それを使えば改造しなくても実現できるかもしれないが、なかなかハードルが高いので保留にした。

※と書いたら、さっき更新の通知が来たwww (18:00)

更新のたびに改造するのはJoplinでも同様だが、僕はJoplinに これ以上の改良は期待しておらず、激遅とメモリの馬鹿食いが解消されない限りMDの編集には使わないので、仮に今後更新しなくても大きな問題はないと考え、Joplinも改造してみた。こっちはGUI版とコマンドライン版があって全部は確認できていないが、おそらくうまく行ったと思う。

JoplinはJavaScript(正確にはTypeScript?)で書かれているので、コンパイルが不要なのが楽だった。 (← TypeScriptからJSへのコンパイルは要る。これが長くて面倒・・・) でも、nodeの更新が必要なのに気付かず、ちょっと手こずった。

それから、Joplinにはプラグインの機能があるので、それを作れば改造しなくても実現できるのかも知れないが、QOwnNotesのスクリプティングと同様にハードルが高い。

Joplinは以下のように改造した。

  • ノートを外部編集設定した時
    • 作業用ノート中の画像指定のディレクトリの"resources"を"media"に置換する。
    • それがファイルに書き出される。
      • それがQOwnNotesに読み込まれる。
  • ノートの外部編集設定を解除した時
    • ファイルから読み込んだ作業用ノート(QOwnNotesが更新した(かも知れない)もの)中の画像指定のディレクトリの"media"を"resources"に置換する。
      • そのあとで、何事もなかったようにJoplinの内部パスに変換される。

なお、外部編集設定している間もJoplinはノートが更新されるたびに表示を更新するので、その時は画像が出なくなる。読み込まれるたびに変換すればいいのだろうが、無駄な処理だし面倒なのでやっていない。 (← その後、更新されても ちゃんと画像が出ることが分かった。それが下に書いたように正しい動作で、出なかったのはQOwnNotesの版(改造版かどうか)と合ってなかったからかも知れない。)

良く考えると、読み込まれるたびに上の変換が行われるはずなので、外部編集設定を解除するまでは、少し動作が違うのかも知れない。まあ、それほど大きな問題ではない。

あとは、改造版Joplinを「ちゃんと」使えるようにすればいいのだが、改造したものは「開発版」と出ていて設定なども本物とは別で、その直し方(書いてない・・・)を調べようとするところで力尽きたw

→ JSとTSの違い(あと、昨日はJSを直して居たが、それはTSから生成されるため、危うく消滅するところだった)、その他諸々に戸惑いながらも どうにかできた。改造版Joplin (GUI版)とオリジナル版QOwnNotesで連携できている。

CLI版は謎の動作(中身を表示すると、画像のディレクトリが外部編集と同じディレクトリになっている)だが、オリジナル版と同じなので良しとした。面倒なのでAppImageは作らず、npmやnodeで起動することにした。

npmとnodeとelectronの違いが分からないが、興味ないので放置する。

あとはQOwnNotesでの画像の追加や新規ノート作成に対応などが残って居るが、おいおい やりたい。 (これも疲れそうだ) (11/1 13:33)

 

それから、(これが最初だったのだが)上の処理の他に、QOwnNotesの動作を改善し、使いやすくするための処理をJoplin→QOwnNotesのコネクタに入れた。

  • QOwnNotesはノートのタイトルをファイル名から取るが、Joplinのノートのファイル名はIDなので、ノートを表示させないとタイトルが分からなくて不便。
    • それを解消するため、Joplinが外部編集設定した時に、作業用ノートのタイトル(Joplinでは最初の行に書かれている)を短縮してファイル名に入れるようにした。
    • 重複を防ぐため、元のIDも付けるようにした。
  • QOwnNotesは画像タグのタイトル(またはキャプション)が空だと画像を表示しない。
    • それを解消するため、Joplinが外部編集設定した時に、作業用ノート中にタイトルが空の画像タグを見付けたら、ファイル名をタイトルに入れるようにした。
    • MDでは画像のタイトルを見ることはまずないし、空のものにファイル名を付けるのに特段の問題はなさそうだ。
    • ※ノートから画像を抽出する部分のソースを見ると、タイトルが空でも問題ないはずなのだが そうでないので、別のところで落としているようだ。

 

と、最初は「簡単だ!」と思ったけど実はそうでもなかったという、いつものパターンである。(Joplinの改造を仕上げる件が残って居るものの、)今は、以下のように普通にMD(画像も)が表示でき、快適に編集できている。

QOwnNotesをJoplinの外部エディタにして、ノートを編集できるようにした。

 

最後にもう一回言いたいのは、ZettlrでもQOwnNotesでも どちらもでいいけど、Joplinのエディタを使っていた時のイライラから解放され、まさにサクサクと(それが普通なんだけど)文章が書けるようになって(Joplinも最初はそうだったはずだが、いつの間にか肥大化・肥満化・劣化してしまったようだ・・・)、うれしい限りだ。

 

付録: ZettlrとQOwnNotesの長所と短所

主に相互の比較の観点で書いた。また、基準はJoplinのエディタ(機能としては かなり良いほう)である。なお、太字は僕が重視した(「これはちょっと」、「これはいい」と思った)点である。

Zettlrの長所・短所

  • 長所
    • 他のエディタよりは ちゃんと使える。
    • 全ノートに対する検索ができる。
    • ノートの編集ペーンはプレビュー兼用だけど見やすい。
  • 短所
    • 検索で前候補に行けない。 → その後、Shift+Enterで行けることが分かった。 (11/5 5:53)
    • sym-linkで誤動作する。 → コネクタで対応した。 → 最新版(2.0.2)では直っていそうな感じ。ただし、相変わらずsym-linkのファイルは開けない。 (11/5 5:53)
    • MDのタグの動作が変・変なものに変えてしまう場合がある。例: コードブロック, 横線 → Auto completeを調整すれば大丈夫そうな感じ。 (11/5 5:53)

      • それをコピー・ペーストしても、ちゃんと働かないことがある。補完の影響?
    • ()や"などの補完が余計なことが多いうえにoffにできず、面倒。 → 設定があった(最新版で増えた?)。それ以外もAuto completeを調整すれば大丈夫かも。 (11/5 5:53)
    • 編集中に表示位置がジャンプすることがある(Joplinよりはずっと少ない)。
      • プレビューが別でないので、ジャンプは仕方ない?
      • 表示はジャンプするが、カーソル位置は動かないので まだ良い。 (11/5 5:53)
    • 選択したブロックを箇条書き・番号リストにすることができない。 → 選択して右クリック → "Insert numbered/unordered list"でできる。が、箇条書きは頭の文字が違う(そのうち直る?)。 (11/5 5:53)

      • 番号リストのリナンバーもできない。 (できるものは見たことない)
    • 書式設定の ショートカット・ボタンが少ない。
    • 細かいカスタマイズができない。 → CSSの調整である程度できる? (11/5 5:53)
    • 日時の挿入ができない。 → スニペットで代用できる。(11/5 5:53)
    • 日本語処理が今ひとつ。
    • 左サイドバーの機能が貧弱。
    • Joplinのタグに相当するものがない。
    • Joplinとタイトルの指定方法が異なる。
    • テーマの色の趣味が悪いうえに調整できない。→ CSSで調整できる。 (11/5 5:53)
      • テーマでフォントも決まってしまうので不便。

QOwnNotesの長所・短所

  • 長所
    • 他のエディタより ちゃんと使える。
    • 使用メモリ量が少ない。: Zettlrの約1/4。
      • 例: 4ノートを開いている場合、アイドル時約140MB
        • この少なさは何かの間違いではないかと思って調べ直すのだが、合っている。
    • 編集中に位置がジャンプしない。
      • ただし、プレビューペーンは頻繁にジャンプする(それでも、Joplinと違って ちゃんと戻る)が、エディタは動かない。
    • 全ノートに対する検索ができる。
    • 細かいカスタマイズが結構できる。
      • できないことも結構ある。
    • 日時の挿入ができる。
      • フォーマットが変更できる。
    • ノート一覧が縦なので、ノートが多くなっても見やすい。
    • 高速
      • ノートの切り替え(読み込み)がJoplinよりずっと速い。
    • 文字列を選択してネットで検索できる。
      • これが欲しかった!!
    • Joplinのタグに相当するものがある。
    • ノートの暗号化が可能
      • 実際に使うかは不明。
    • スクリプティング機能がある。
      • 実際に使うかは不明。
    • コネクタでノートを常時コピーしないので、Joplinでの変更が検出できる。
  • 短所
    • 画像の保存ディレクトリとタグのディレクトリが"media"で固定。対応が必要。 → Joplinを改造し、外部編集時のディレクトリを"media"にして対応した。 (11/3 13:36)
      • 本文に記載のとおり。
    • 選択したブロックを箇条書き・番号リストにすることができない。 ← スクリプトでできることが分かった。すごい。 (11/2 6:21)
      • → スクリプト"List maker"でできる。 (11/2 6:21)
      • 番号リストのリナンバーもできない。 (できるものは見たことない)
        • → スクリプト"Fix list numbers"でできる。 (11/2 6:21)
    • 書式設定のボタンが少ない。
    • MDの解釈・実装のJoplinとの差
      • 画像タグのタイトル([])が空だと表示されない。 → コネクタで対応した。: 修正する(ファイル名を付ける)ようにした。
      • HTML要素(例: "<s>")をコードブロックに入れても無効化できない。 → &xxx;を使うしかない? なぜか、今試したら問題ない。他のアプリとの混同や勘違いだった? (11/2 8:44)

        • あとで問題になりそうではある。
      • 画像タグの前に空行がないと、プレビューがおかしくなる。
        • 画像の前に縦の空白が入る。
      • 単一の改行は無視されて繋がってしまう。空行を入れないと、期待する結果にならない。
        • MD本来の動作なので、仕方ない。
        • こいういうのが嫌で却下したMDエディタがあったが、QOwnNotesは それを補うほどのメリットがある。
        • ただ、それと違うのは、勝手にノートを変更(「修正」)しないことだ。これは重要だ。
    • 検索結果のハイライトが消せない。 → 対処してもらって解決した。 (11/3 13:36) → が、実際には、どうしようもない場当たり的な修正だったし、作者自身が作ったものの仕様を覚えてなくて、こっちが混乱させられたり(そもそも、ハイライトが消えないのが仕様だったのを、僕に指摘されて場当たり的に消したものだから、整合性が取れなくなった)と、クソさが露呈し、それで使うのを止めた。 (11/5 20:40)

      • 検索文字列を消せばハイライトも消えるが、位置がリセットされてしまう。
    • 日本語処理が今ひとつ。
      • 直接関係ないが、日本語入力(Fcitx+Mozc)の未確定入力の下線が出ないのがちょっと辛い・・・ Fcitx側で調整できるのだろうか? → いろいろ調べたところ、Qt5の問題のようだ。ほとんどのアプリで下線が出ない。 (11/1 17:01) → QOwnNotesの問題ではなく、fcitx-qt5の問題だった。自分で対処した。 (11/3 13:36)
        • ただ、LibreOffice CalcとImpressでは出るのが謎。使い方があるのだろうか?
    • 画像がある場合、プレビューの縦の余白が広過ぎることがある。
      • 画像タグの書き方によるようで、次を空行にすれば直ることが分かった。
    • ノートにタイトルが指定できない。: ファイル名で見るしかない。 → コネクタで対応した。: ファイル名にタイトルを付けるようにした。
    • プレビューペーンが最後まで見えない(ことがある)。
      • コードブロックの開きと閉じの対応(インデント)が悪かったためだった。
    • 書式付き文字をコピーして、他のアプリでペーストすると、書式の文字列も貼り付けられてしまうことがある。: 再現せず。
      • 別のアプリ(ReText)だったか?
  • QOwnNotes

    QOwnNotes

    Open source markdown note-taking for Linux, macOS …

  • Overview

    Overview

    Open source markdown note taking for Linux, macOS …

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