Banyan: a Zotero-native citation tool for complex citation style

Hi everyone,

I'd like to share a project I've been working on called **Banyan**: a Zotero plugin end its addin ecosystem that let you create citation styles with powerful JavaScript. It's been tested with a small group of users and is now ready for broader community feedback.

Banyan started from four frustrations with CSL that many of us have run into:

**1. Your Zotero data isn't fully usable.**
CSL only lets you use variables that the spec defines. Many Zotero item fields have no CSL equivalent, you can't use those field in your CSL style. Banyan drops the goal of being compatible with other reference managers and instead supports Zotero items completely.
The same goes for user input: instead of a set of fixed locators and a "hide author" checkbox, Banyan lets style authors declare exactly what input they need — extra locators, alternate citation forms, anything the style requires. Users only see what's relevant.

**2. Logic control is too limited.**
CSL's conditionals can only test variables the engine has defined. Even with CSL-M, a macro can't branch on an item's language, so multilingual styles end up duplicating huge amounts of code. Banyan styles are JavaScript, so you get real programming-level logic. Each citation/bibliography entry can be formatted the way it actually needs to be.

**3. The CSL spec is harder than it looks.**
CSL is markup that depends heavily on engine behavior, and combining elements, attributes, and child elements correctly is genuinely difficult — for people and event for common AI. A Banyan style is just a specialized JavaScript script. Developers and AI agents can transfer what they already know and produce a working style quickly. For non-expert users, there's also an AI-agent toolkit to help write styles.

**4. Centralized locales and independent styles get in the way.**
Banyan removes CSL's locale system and independent-style registry. Instead, it encourages you to write the style that's sufficient for your own scenario — no global vocabulary to fight against.

**On top of that, Banyan's word-processor add-in delivers two features people have wanted for a long time:**

- **Multi-section bibliographies.** You can generate separate reference lists for different chapters or sections — essential for theses and edited volumes.
- **Citation hyperlinks.** In-text citations can link directly to their bibliography entry or online page, so readers can jump from a citation to the full reference.
- **Faster refreshes through incremental updates.** Instead of rebuilding all fields, the add-in updates only what changed.

Zotero is working on some of these capabilities officially, but Banyan's companion add-in supports them now.

Banyan has been tested in a small circle and works well for the workflows it supports. Now I'd love to hear from the wider community: what citation needs do you have that current tools don't meet? What would make Banyan more useful for you? Your feedback will directly shape where the project goes.

GitHub: https://github.com/jiaojiaodubai/Banyan
Sign In or Register to comment.