Skip to content

Why use another reference manager if everything can be done within Obsidian?

License

Notifications You must be signed in to change notification settings

hermeneuticlens/obsidian-reference-manager

Repository files navigation

Obsidian Reference Manager

Most people rely on another reference manager (e.g. Zotero, Jabref) in order to cite in Obsidian. However, not only are the syncing process cluncky and unreliable, but the reference data are also not directly accessible to Obsidian users for customized query. After reviewing the documentations, I think that Obsidian can totally be its own reference manager, and one even more powerful and well integrated into an academic workflow. The current project serves to validate this hypothesis.

See this post for others sharing similar sentiments.

Features and Design Goals

  • Each reference entry has its own Markdown file, like an index card, where reference data is stored in the frontmatter of a file. This way, the reference data can be directly accessible to users who want to conduct customized operations on them, such as Dataview/Datacore queries. This also frees users form the burden of manually managing and coordinating between index card and reference data, as in the case of using a separate reference manager app.
  • Reference data must be stored in a format that balances programming utility and human readability, since one of the benefits of putting reference data in the file's frontmatter is making the data available to users, while providing the functionality of exporting the data to industry standards (e.g. CSL-JSON) to work with other refernece manger apps and reference processors (e.g. pandoc citeproc).
  • Reference pages can be automatically generated by improrting a CSL-JSON file, so one doesn't have to work all the way from sctatch if they already have a database.
    (I choose CSL-JSON because it is more cross-platform and supports more document types. Support for *.bib import and export might be considered in the future. In the meantime, users can convert existing .bib files into CSL-JSON on their own if needed)
  • Similarly, CSL-JSON file can be easily generated from reference pages via an export. This is not needed if one writes and cites exclusively within Obsidian. This is only needed if one needs to write and cite elsewhere or eventually convert Markdown to another format via Pandoc, for instance.

Roadmap

Milestone 1: "Index Cards"

  • 0.0.1 Define and set up Reference Entry schema for reference data to be stored in the frontmatter section of a file in Obsidian, and define how to map between this shcema and CSL-JSON.
  • 0.0.5 Function to one-time import CSL-JSON into Obsidian, with each page representing an reference and all pages residing in an Index Card folder.
    (At this stage I don't want to worry about resolving conficts with existing pages. I want to get to the next steps more quickly, so this is just for one-time set up so I have some data to work with.)
  • 0.1.0 Build up a basic, view-only reference manager UI within Obsidian.

Milestone 2: Citation

  • 0.1.5 Develop a very basic citation tool for people to easily query and insert citation as they write. An importnat part of this is to decide how to provide the best featuers within Obsidian while making the file still readable as a Markdown file, both for human reading and for other processors such as Pandoc Citeproc.
  • 0.2.0 Ability to export references to CSL-JSON.

Milestone 3: Reference Manager UI

  • 0.3.0 Make the UI fully interactive and editable.
  • Maybe more advanced support for folders/categories/tags?

Beta 1: More features, Refinements, and Bug-Fixes

  • 0.4.5 Write a user guide; list prerequisites and incompatiblities/conflict with other plugins.
  • 0.5.0 Publish to Obsidian Community Plugin Store.

Beta 2: More features, Refinements, and Bug-Fixes

Release Candidate: Additional Features Under consideration:

  • .bib support.
  • Conflict resolution with existing pages for import.

Notes and Considerations

Development Priorities and Constraints: In order to facilitate the development of this plugin, I will first build it according to my needs. I do research in the field of humanities and use Chicago Manual of Styles, so features suiting my needs will be prioritized. My apologzies for not having the knowledge or resoruce for other citation styles and use cases.

CSL vs BibLaTeX: CSL seems to be neater in terms of its schema. For example, it handles author's name by breaking it down to "given" "family" and "suffix" fields, with the alternative of "literal" field for institutional other special names. However, CSL is evolving, and potential changes, as suggested by this debate over "title-short", needs to be dealt with.

Dependencies & Acknowledgements

About

Why use another reference manager if everything can be done within Obsidian?

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published