Uniform journal page date formatting; only use date format setting to render dates displayed to user

Currently, the date format (e.g., yyyy-MM-dd EEEE) that Logseq uses for journal pages is used both in the filename on disk and throughout the UI. This can get very confusing very fast when you wish to switch to a different date format, as any references to journal entries will now use the wrong name. In addition, when referencing a future date, it is difficult to reference it when the weekday is in the journal date format because you likely don’t know the days of the week that future dates are. And it can make it inconvenient to type out the date in general — do you really want to have to type MMMM do, yyyy each time? A shortcut for that would be nice.

I think it would be much simpler if behind the scenes, Logseq universally stored dates with some fixed, unchanging format, e.g., yyyy-MM-dd. Then, the date format setting would only control how dates are displayed to the user in the Logseq UI. So if your date format were set to EEEE, yyyy/MM/dd:

  • You would type either [[2023-05-06]] or [[Saturday, 2023/05/06]] to reference the page for May 6, 2023
  • In the markdown itself, Logseq would store [[2023-05-06]]; if you actually typed [[Saturday, 2023/05/06]], Logseq would do the conversion once focus left that block
  • The filename of that journal page would be journals/2023-05-06.md
  • Logseq would display that journal page’s title as Saturday, 2023/05/06
  • The reference [[2023-05-06]] would be rendered as [[Saturday, 2023/05/06]] when focus was not in that block (the same way that _abc_ is rendered as abc).
  • etc

Basically Logseq would only store the date as 2023-05-06 and then render that as Saturday, 2023/05/06 whenever the rendered date was displayed to the user.