小技チョコレート

ちょっとした小技を紹介するだけのブログです。

Dynalistの内容をLogseqにコピー&ペーストできない場合の対処法

Logseqのバージョン0.7.1以降では、Dynalistのエクスポート画面からエクスポートした内容をLogseqのページ上に直接貼り付けると、"Block Render Error"というエラーが出たり、元の階層構造が正しく再現されなかったり、ソースコード用の書式が勝手に適用されたりする場合があります。*1

この問題を回避し、元の階層構造を再現した形で・余分な書式も付けずにLogseqに貼り付ける方法を紹介します。
Logseqのプラグインを使う方法と、使わない方法とがあります。前者のほうがラクです。


〈目次〉


Logseqのプラグイン“Paste More”を使う方法

プラグインのインストールとショートカットキーの設定

デスクトップ版のLogseqの右上にあるのアイコンをクリックして開くメニューの中の「プラグイン」をクリックすると、このような画面が開きます。

中央上部の「マーケットプレース」をクリックし、かつ左上のところで「プラグイン」を選択したうえで、検索フォームにpaste moreと入力すると、プラグイン"Paste More”がヒットするので、灰色の四角形の右下にある「インストール」の文字をクリックして、これをインストールします。

インストールされたら、同じ画面で中央上部の「インストール済」を選択すると、そこに“Paste More”が表示されているので、左下の歯車アイコンをクリックして「設定を開く」をクリック。

“Paste More”の設定画面が開きます。

とりあえずは、外部からコピーした内容をLogseqにペーストするときに使用する専用のショートカットキーを指定するだけでよいと思います。
上から3番目の入力欄がそれで、デフォルトではmod+ctrl+shift+vと記入されていると思います。
Windowsの場合、そのままでもCtrl+Shift+Vとして機能するようです。
私はmod+の部分は消しておきました。

設定できたら、右上の×を押します。

コピー&ペーストの手順

DynalistからLogseqへコピー&ペーストしたい内容を、DynalistのExport機能でエクスポートするとき、フォーマットとして“Plain text”かつ“Dashes”を選びます。*2

Logseqにおいて貼り付けたい位置を開き、上掲の設定画面で設定したショートカットキーを押すと貼り付けられます。

以上です。

Logseqのプラグインを使わない方法

実行環境

Logseq 0.8.0(Windows版)で正しくペーストできることを確認済みです。

コピー&ペーストの手順

DynalistからLogseqへコピー&ペーストしたい内容を、DynalistのExport機能でエクスポートするとき、フォーマットとして“Plain text”かつ“Dashes”を選びます。

貼り付けたいページをLogseqで開き日誌ページの場合は日付をクリックしてその日のページを開き)、右上のアイコンをクリックして開くメニューから「デフォルトのアプリで開く」をクリック(ショートカットキーで開きたい場合はCtrl +D Ctrl + Aと押す)。*3

ただし、そのページが空白のときは、メニュー内に「デフォルトのアプリで開く」が存在せず、Ctrl +D Ctrl + Aのショートカットキーも効かない可能性があります(まだMarkdownファイルが生成されていないからだと思います)。その場合は、Logseq上でそのページに1文字でもいいので何か書いたり、もしくは1回改行したうえで、Ctrl + R(=Reload)を押してから上述の「デフォルトのアプリで開く」またはCtrl +D Ctrl + Aを押せば、Markdownファイルが開きます。


MarkdownファイルをVisual Studio Codeで開いた例)

このとき、貼り付けたい位置(行)の行頭にすでに半角ハイフン(-)が記入されている場合は、そのハイフンは不要なので、それを消してから、上掲のエクスポートした内容を貼り付けて、このファイルを上書き保存します。

すると、Logseqの画面上でも元の階層構造が再現された形で貼り付けられています。

以上です。

補遺

本記事には含めませんでしたが、同様の用途で使えるプラグインがもう1つあります。
全体の手順が煩雑になりそうなので、あまりお奨めしません。

*1:エクスポート元(コピー元)がDynalistである場合に限らず、一般的に、階層構造をもつ複数行のテキストをLogseqに貼り付けるとこのような問題が起きるのだろうと思われます。

*2:エクスポート元がDynalist以外であっても、基本的にはこのフォーマットに従っていれば大丈夫なのだろうと思います。

*3:当日の日付の日誌ファイル(Markdownファイル)を任意のアプリケーションで開くPythonスクリプトもあります。→ https://gist.github.com/kojp/0277c48a384a6559cfb131897ceea599