dwp-forge / refnotes

4 stars 6 forks source link

Refnotes with hyphen in namespace not rendered #65

Closed heylix closed 3 years ago

heylix commented 3 years ago

If you create a refnote in card format looking like this:

^ Title     ^ Wirtschaftsinformatik |
^ Author    | Jane P. Laudon, Detlef Schoder |
^ Published | 2015 |
^ Publisher | Pearson Deutschland GmbH |
^ Pages     | 1104 |
^ URL | https://www.pearson-studium.de/wirtschaftsinformatik_1.html |
^ Note name | :de:b-i:wirtschaftsinformatik-2015 |

and reference it with [(:de:b-i:wirtschaftsinformatik-2015)], the note is not rendered. If you remove the hyphen (:de:bi:wirtschaftsinformatik-2015), it works.

dwp-forge commented 3 years ago

This works according to the documentation.

The strict rules for the note naming are slightly released for fully qualified note names. If name starts with namespace specification, apart from alpha-numeric characters you can also use some extra symbols, so you can have notes named like, for example, “Smith&Johns(2012).” Note that this applies only to note names – namespace names are still restricted to alpha-numeric characters.

The idea is that in order for the syntax [(whatever)] to allow "whatever" to be both note name and note text, there should be some set of rules to distinguish the "names" from the "texts". I deliberately reduce subset of possible names in favor of making fewer exceptions for valid text. For example, a date [(2021-05-06)] should be treated as note text, rather than a name. The assumption is that user has freedom to consciously select name according to a set of known rules. On the other hand, any random text is not bound by any rules, and trying to do so would be pointless.

I guess, you may argue that the choice of of the naming rules is too restrictive. At this point it's hard to tell if there are any use cases that would be broken if namespace names would allow dashes. Actually, I didn't want to bother with coming up with valid text cases to begin with, so obviously it's impossible to understand impact of the change on an undefined scope.

You could try an underscore instead of the dash. Will that work for you?