Despite Logseq is advertised as local-first, pages’ file names present several issues (non-standard alphanumeric characters, capitalisation…) that makes it really difficult to work with them outside logseq. The image below summarises most of the issues I have encountered so far:
Using non alphanumeric characters: there’s plenty of literature on why this should be avoided (see references below, but in short: potential problem with certain OSes, file systems and syncronisation services)
Using @ when inserting Zotero references
Using %2Fwhen creating hierarchies
Using whitespaces → difficult to work with command line
Same capitalisation as page → lack of consistency, potential duplicates (only differing in capitalisation), file names may change easily, extra checks
Two possible workarounds could be:
(Dendron inspired) Change default behaviour about automated filename creation so files follow the following criteria:
always lowercase
use . for hierarchies (although that works great in git, I’ve just learnt that it could be problematic in dropbox -see here: Issue with colons in filenames on Windows (and Git)). If . is not possible, other option could be -
use - (or _ if - is used for hierarchies) instead of blank spaces
Add the hability to customise the resulting filename at a note level, by creating a property (i.e. filename:: . If there’s such a property, filename should be created based on its content. If not, use the default behaviour.
Having more easily readable and manageable files would make Logseq more coherent with the “local-first” approach. And it seems like it wouldn’t be hard to fix.
I am using version 0.9.19 AppImage on debian 12 system. And I am still seeing my new page files contain whitespaces in their filenames if their header inside logseq is set with a whitespace.
Example: Ctrl + k to create a new page. Name it “A new page again”. And you will have the markdown file created with whitespaces in its filename:
[...]
├── pages
│ ├── A new page again.md
│ └── contents.md
[...]
Is there a solution to this? I would like to have my filenames named with underscores instead of whitespaces in between the words, like this: A_new_page_again.md