Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Statamic Bard Footnotes Laravel Package

goldnead/statamic-bard-footnotes

A Statamic addon that adds footnote support to Bard rich text fields. Editors insert inline references and the addon renders a clean, linked footnotes list on the front end, with sensible defaults and easy customization for both content editors and developers.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for citations/sources: v2.1.0 ships a complete editor-side sources experience — a "Sources (N)" panel under the field, citation count with link-out (↗, new tab), Go to citation / Next citation navigation, and an "Edit Source n" panel with live, in-order highlighting of every place that source is used. That is a non-trivial ProseMirror/TipTap surface you would otherwise scope and maintain; adopt instead of building if citations are on your roadmap.
  • Editorial workflow / UX decisions: you can now decide whether editors edit source text and URLs inline (text + link only — no source picker, no merging) versus editing in the body. Read-only fields correctly hide Edit, so preview/approval flows stay safe. There is deliberately no remove action: footnotes are removed in the text, which is a policy decision worth stating explicitly to editors rather than discovering in support tickets.
  • Content reuse and multi-surface publishing: Footnotes::number() is now idempotent and numbers across the whole field, so you can number once, split, and render each part through Augmentor::convertToHtml() with numbering and fnref-n (first occurrence only) staying globally consistent. This is the enabling decision for excerpts, teasers, paginated articles, sectioned landing pages, print/PDF, email, and AMP-style outputs from the same field.
  • Roadmap sequencing: treat the shipped capabilities as the baseline (display, navigate, edit, part-rendering, en/de strings) and plan follow-ups explicitly: additional locales, source de-duplication/merging, and any remove-in-panel affordance are not in this release.
  • Platform standardization: the package assumes a Statamic Bard field and a Vue/ProseMirror editor context. It is a useful forcing function in a "standardize on Bard vs. another CMS/editor" evaluation.
  • Localization/internationalization commitments: nine new en/de strings land now. Launching in other markets means budgeting translation contributions, not just configuration.

When to Consider This Package

Consider it when:

  • You are on Statamic with Bard rich-text fields and editors already write footnotes/citations in body content.
  • Content is citation-bearing: research, policy, legal, journalism, academic, medical, or any editorial standard that requires sourced claims.
  • You render the same field in more than one place or in parts — teasers, paginated articles, PDF/email exports, section-based layouts. The idempotent numbering and cross-part fnref-n behavior is the strongest reason to upgrade to 2.1.0.
  • You want a low-ceremony, additive editor enhancement: mounted via a plugin view through TipTap's VueRenderer in the same app context, rebuilt correctly on fullscreen enter/exit (where it becomes its own card), and mounted at all only in fields that actually have footnotes.
  • You value testable primitives: hasFootnotes, nextCitation, isHttpUrl, reusedCount (now aware of wholeSource), and citationHighlightPlugin with setCitationHighlight are pure helpers tested against a real ProseMirror schema — easier to reason about, extend, and regression-test than DOM-driven logic.
  • You need only English and German today, or are willing to supply the remaining strings.

Look elsewhere, or plan custom work, when:

  • You are not on Statamic/Bard, or you render content headlessly without the Vue editor context — the editor-facing value does not transfer.
  • You require footnote/source removal from the panel, source de-duplication/merging (this release explicitly merges nothing), or a source picker/reuse picker. Those are gaps, not regressions.
  • You need a broad locale set out of the box.
  • Your citation model needs structured metadata (author, publisher, access date, DOI) rather than plain text plus a URL.
  • You want the highlight action to be undoable — setCitationHighlight is intentionally excluded from undo history; acceptable, but confirm it matches editor expectations.
  • Your team is small, single-locale, and authors occasional footnotes in Markdown — the integration cost likely exceeds the payoff.

How to Pitch It (Stakeholders)

To executives (one paragraph): This release turns a plain footnote field into a credible sourcing experience without new build spend — editors can see how many sources a piece cites, jump to each citation, and correct a source in one place with every usage updating live. More importantly, it makes the same content safely reusable across excerpts, paginated pages, and print/PDF, because footnote numbering is now consistent across every rendered part instead of restarting at 1. That is reach and trust for existing content rather than a new product line, and it is an additive minor version, not a migration.

To engineering: Additive 2.1.0. Frontend is a ProseMirror plugin view mounted through TipTap's VueRenderer alongside the node view — inherits app context and provides, sits directly after the editor frame and before core's footer toolbar, remounts on fullscreen transitions, and mounts nothing when a field has no footnotes. Pure, schema-tested helpers (hasFootnotes, nextCitation, isHttpUrl, citationHighlightPlugin/setCitationHighlight, reusedCount with wholeSource) make the logic unit-testable. Note the behavioral change to flag in QA: Footnotes::number() is idempotent and numbers the whole field, so any pipeline that renders a field in parts will now produce continuous numbering and a single fnref-n on first occurrence — previously each part restarted at 1. Partly numbered documents get renumbered. Run a visual diff over existing multi-part templates and update the README-linked "Rendering a Bard field in parts" guidance in your docs.

To editors/editorial leads: You get a Sources (N) strip under the field listing each source with its citation count and link-out. Use Go to citation / Next citation to walk the manuscript, and Edit to fix the source text or link once — every place it is used is highlighted as you type, with nothing merged. To remove a footnote, delete it in the text; there is no remove button in the panel. Editing is unavailable in read-only views, so review copies stay untouched. New UI strings are English and German.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource