保存ファイル名のエンコード
Logseqでは、基本的にはページのタイトルと同じ名前のファイルがPC上に保存されます。
ただし、Windows、macOS、Unixなど各OSには使用できるファイル名に制限があります。
よってLogseqでは主にこの制限に対応するため、保存されるファイル名の一部を書き換えています(エンコード)。
エンコードのルールは次のとおりです。
< > : " \ | ? * #
例)「C#の概要」というタイトルの場合「C%23の概要.md」というファイル名となります。
2)/(スラッシュ)は ___(アンダースコアが3つ)へエンコードされます。
例)「Logseq/記法」というタイトルの場合「Logseq___記法.md」というファイル名になります。
ただし例外として、タイトルの末尾が/(スラッシュ)で終わる場合、スラッシュを省いたファイル名になります。
例)「mypage/」というタイトルの場合「mypage.md」というファイル名となります。
3)タイトルがWindowsの予約語と等しい場合、後ろに___(アンダースコアが3つ)が追加されます。
予約語:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9
例)「CON」というタイトルの場合「CON___.md」というファイル名となります。
4)ピリオドで終わるタイトルは、後ろに___(アンダースコアが3つ)が追加されます。
例)「D.C.」というタイトルの場合「D.C.___.md」というファイル名となります。
5)/(スラッシュ)の直前直後にある_(アンダースコア)は%5Fへエンコードされます。
例)「hello_/_world」というタイトルの場合「hello%5F___%5Fworld」となる。
めったに起こらないと思いますが・・。