Curious to get people’s opinions here. Suppose I have a page about, say, buying a new bike. Conceptually, its name is “New Bike”. It can be called one of the following:
“New Bike”. The URL path will be /New%20Bike, which is ugly. (/New+Bike is different; using + for space only works in the query section of URLs, not in the path)
“New_Bike”. The URL path will be /New_Bike, which is OK. However, now the page name will actually be displayed as “New_Bike” everywhere.
“NewBike” is also an option I guess, but I like it less.
Some sites, e.g. Wikipedia, opt to have “underscore is space” URLs; e.g. Web browser - Wikipedia redirects to Web browser - Wikipedia; the page’s name is “Web browser”. To have a literal underscore in a page name, one would have to use DISPLAYTITLE. I actually like that approach for SilverBullet - i.e. have an option where “New Page” is actually “New_Page” both in URL and file-on-disk, disallow underscores in page name files, and allow customizing page display names in frontmatter. But I don’t know if it’s anywhere near worth the effort, I might be the only one who even looks at URLs.
I think it is really a matter of personal preference. My primary OS is a Linux Distribution. As such, dealing with file names with spaces in them is more bother than they are worth IMO. So, I replace the spaces with “-” in the name. Why “-”? Mainly for the look and the fact that I don’t have to hit a key combination to get the character unlike “_”. All of this, however, is my take on the matter. You do you, amigo and have fun!!
I also got hung up on this. Hence my topic on case sensitives. I think it would be nice to replace the spaces with a character and have a page alias for names/metadata. This starts to blur the line with file specific pages vs say a wiki I think.
It would be very cool though if we replaced all spaces with “_” for file name to keep the file structure and URL in tact.
I feel like if I was more adapt to using the tools here we could write processes that do some of these quality of life type concepts.
I use spaces in page names keeping lower and upper case as per common rules for titles. A also use diacritics, punctuation etc. I use UTF-8 exclusively. I do not care how it is encoded in the background (if even needed today) for my browser can handle it properly for me. I would prefare to have everythink as it is on the filesystem as well to navigate normally from the command line for my shell handles it correctly for me too. (recent Linux, Firefox, BASH)
There is the filesystem end and there is the browser end. SilverBullet should just “proxy” between HTTP URL encoding back and forth on both ends (if needed). If I name a page Příliš žluťoučký kůň! I should be able to write it as [[Příliš žluťoučký kůň!]] as well as [Příliš žluťoučký kůň!](/Příliš žluťoučký kůň!) and so will be named on filesystem as well. As user I must not be forced to handle or work arround the need for the URL encoding because of some historical flaws in some protocols. My user naming schema should not be disturbed in any way. I think this is crutial.
If it means special handling for some OSes or anything like that, let’s do the extra work. The benefit of having this right and seamless is of the highest importance!