dwp-forge / refnotes

4 stars 6 forks source link

separate "reference namespace" for each page #37

Closed mlinchitstest closed 7 years ago

mlinchitstest commented 7 years ago

I'm afraid that for a large wiki with hundreds of articles and thousands of refs, this could get unwieldy. Since Dokuwiki has no bibtex management like latex, it becomes necessary to have a separate attached ref:@ID@ page for each article (otherwise it's hard to get a handle on the bibtex entries used in a specific article). There is no problem getting this working, however the references still share some large combined namespace, unless you want you want to type out a long @ID@ name every time you add a citation to the article. Furthermore, since the reference namespace is completely independent of the namespace of the page that contains the references, it seems like there should be a performance bottleneck when refnotes has to scan the hundreds of pages in ref: to find the one with the code block containing the given citation key. Finally given enough time, without a bibtex management interface, duplicates will be a huge problem.

TL;DR: I'd propose an alteration to the plugin. Let's say you put some bibtex entries on some page, call it ref:topic:page_name, then ref:topic:page_name _becomes the namespace of the references contained on that page_ (so we are not using @comment anymore). Now you should be able cite these on page on page topic:page_name using some sort of shorthand like [(this:cite_key)]

I'm not too desperate to get this feature, since you can always just use named footnotes right on the page. However it is a shame that the "reference database" is actually not that well suited for large projects.

dwp-forge commented 7 years ago

If I get it right, the suggestion is to drop full specification of namespace for notes and references in some cases. The problem I see in this is the "in some cases" part. You adding a feature that overlaps (and sometimes conflicts) with the existing ones, and will require some extensive documentation. For example, what if ref:topic:page_name does have @Comment statement? Which one should win? All these minor details have to be explained. And you already complained that the documentation is not very clear.

Also the whole idea of the database was to allow pages to share notes. By having a separate ref:@ID@ page for each @ID@ you are doing exactly the opposite. If the same book is referenced on many pages do you really want to have bunch of BibTeX entries copy-pasted on multiple ref: pages? I wouldn't.

And all of this just to avoid typing ref:topic:page_name few times? Not sure it's worth that.

mlinchitstest commented 7 years ago

yes, if we follow @ID@ for the namespace, @Comment would no longer be used—in all cases. people can still have all references on one page if they want, but I don't see that working for a large number of articles without an integrated bib manager. I think using the page name instead of code will actually make more straightforward. Of course, the ref pages should still all to be in the same dedicated namespace. But you may be right. It's probably more straightforward in this case to just write out the references in dokuwiki text at the bottom of each page. One can also create a (CSL)[http://editor.citationstyles.org/visualEditor/] to have a reference manager churn out references that are pre-formatted for dokuwiki. Implementing something simple like page number support would probably be more worthwhile.

Plus, it might be a good idea to use a plain text file. Your plugin reads bibtex anyway, so if you just have a text file with no </code> @comment etc. it could be plug-and play with any ref manager

mlinchitstest commented 7 years ago

closing this, reopened a new issue with a more precise description of the problem