Hi! I’m starting this post to discuss citation workflows, broadly speaking.
Some questions if you’re stuck:
Do you cite your sources in your notes? How do you cite references in your SilverBullet space? Do you use a specialized reference manager? Do you just use regular wikilinks to represent citations? Do you have some other syntax for citations? How do you represent locators like page numbers?
Consider sharing examples if you’re comfortable
There is a preexisting thread that proposes dedicated support for a specific Pandoc-specific syntax: Ideas on citations
It is a good question. The most native way to cite in Silverbullet would be a internal link to a note. So my way to solve this is write a cli tool to synchronize new/selected entries from zotero with metadata like abstract and citation key in frontmatter, create a new note in the Silverbullet and use Syncthing to connect Silverbullet server side with a local storage.
I think it somehow works fine for me. I place the citation key as alias in there “Literature Notes” (I name these notes as), so eventually it looks good to me.
Interesting! I’m currently prototyping something that enables support for Pandoc-style citations. So far, I have a script that parses the citations into objects using index.indexObjects. The goal is to have rendering via CSL, along with supporting live preview in the editor. (I’ll elaborate a bit more once I have a firmer grasp on what I’m doing )
My intuition would also be to go with an internal link to a page that represented the cited work (using frontmatter for all attributes), and then somewhere transforming that to a format suitable for pandoc or other tool.
However as mentioned in Ideas on citations there are already a bunch of pre-existing formats (bibtex and friends) that probably should be leveraged somehow.
I have thought about this. I think internal link still works better than trying to directly embed the bibtex.
The reason being the work flow of academic writing doesn’t require you to embed bibtex in your writing.
If you have a bibliography management system (like zotero) and you can make sure your add the citation key from the original paper to the internal page. Then you just need some post processing to change your internal link format to the \cite{citation_key}.
Since we are writing in markdown and publishing is more on latex. I do this step with the help of llm in which I give several rules and let it convert my markdown to latex, in the meantime convert my internal link to citation in the latex. e.g. a link in my note [[some_paper | its_citation_key]] will be converted by llm to \cite{its_citation_key}. This kind of tedious but very well defined work is perfect for most of the LLM we have right now.
But that’s not what I would like in Silverbullet, e.g. to just write Blah blah blah (@Smil12; p. 345) blah blah blah and see Blah blah blah (Smil, 2012; p. 345) blah blah blah if not inside the @Smil12 with the carret. And then, for example, if hovered by mouse pointer I could see full citation entry, or, if clicked I could be redirected to some templated virtual page (such as for the #tags) that will show the citation entry, or whatever, and to be also able to have citation entries indexed so that I could write some Lua widget to appear at the bottom of the page showing all citation entries referenced on the page. Something like that.
In other words, we already have tags that have some syntax and renders differently, we already have attributes that also have some syntax and renders differently. And both are indexed. And I would also like to have citations with some practical syntax and rendered differently, and, of course, indexed.
On the other hand - we can have both. Once having citation entries indexed we can just settle on some syntax for your internal links as well, such as [[ Smil, 2012 | @Smil12 ]] that will redirect to either what I suggest above (to a page showing the citation entry). I think both approaches can play together very nicely.
(@Smil12; p. 345) alone will render as ([[ Smil, 2012 | @Smil12 ]]; p. 345) (in this case it will be expanded by some user-provided template, with some sane default one),
or you can customize it “on the fly” as you suggest [[ Smil blah blah blah | @Smil12 ]].
Both will link to the indexed citation entry in some way. I love the idea, seems quite powerful, flexible-enough and almost complete.
I don’t use my SB space for academic writing, but I do tend to source things – if I save a couple of things from a book, I usually do something like this:
The source becomes its own doc, tagged #source. That has the bibliographic info.
A quoted passage becomes its own doc, tagged #highlight and with a link back to the doc.
Anything I write about that passage links to the passage directly, or uses the ![[page title]] to quote it inline.
I try to do this for single quotes from, e.g. authors. If I have some Salvador Dali quotes, it’s kinda helpful to make [[Salvador Dali]] a page so I can find quotes.
I like these proposals, being able to say @smith2024 and get the title of the book by the author Smith when my cursor isn’t hovering would be very cool, especially if we could make use of more structured data e.g. in the frontmatter or as attributes on the page.