How the Journal Article Formatter works
This tool takes a manuscript from metadata and body text through layout, optional author proofing, final production exports, and website publish (early view → version of record). In normal use it connects to ABS Publisher for journals, placement, and DOI rules. Use the workflow strip under the header to see where you are in the pipeline.
Quick start
Recommended — open from ABS Admin (publisher mode, default):
- Start the stack: ABS API (
:5001), Admin (:3000), formatter (node serve.js→:8000). - In Admin go to Articles → Format or Format Article to open a draft. State saves to the article automatically.
- On Metadata → Placement, confirm journal / volume / issue (managed in Admin → Journals).
- Fill Metadata → Article (title, authors, Generate DOI), import or edit on Content, then export or publish.
Standalone local dev (offline journal profiles): add ?standalone=1 to the formatter URL. The Journals tab and local profiles are available again; no Admin API required.
For HTML proofing, also run the Proofreading app: cd ../../Proofreading && node server.js (port 8010).
ABS Publisher mode
- Metadata → Placement — pick journal / volume / issue / section; Apply placement syncs journal name, short title, ISSN, volume, and issue into the manuscript.
- Journal & pages — only page range and article type are edited here; duplicate journal identity fields are read-only.
- Auto-save — when opened from Admin with an
articleId, changes debounce-save toPUT /api/articles/:id/formatter-state. - Escape hatch —
?standalone=1restores the legacy local journal profile workflow for testing.
DOI management
DOI policy (prefix, templates, sequence registry, volume/issue DOIs) lives in the publisher dashboard, not in the formatter.
- Admin → DOI Manager (
/admin/doi) — stats, all generated DOIs, sequence registry, and journal template settings. - Admin → Journals → Edit — same DOI templates per journal (alternative entry).
- Formatter → Metadata → Article — Generate / Sync assigns the article DOI using server rules (one DOI for early view and VoR).
- Placement card — read-only DOI summary with links to Admin; no template editing in the formatter.
After the first website publish, the article DOI is locked on Metadata. Register once with CrossRef; VoR updates metadata at the same DOI.
Full pipeline (overview)
Optional early view can go live after setup (before or during proofing). Version of record (VoR) uses the same URL and DOI and replaces early view after proof is closed.
Step-by-step workflow
- Publisher setup — journals & placement In ABS Admin, create the journal, volumes, and issues. Open the article in the formatter and set Metadata → Placement → Apply. Configure DOI templates in Admin → DOI Manager.
- Metadata — article identity Title, authors, affiliations, keywords, article type, history dates (received / accepted / published), and Generate DOI on the Article section (one identifier for early view and VoR). Validate via CrossRef when needed.
- Layout — print and preview design Pick a preset (e.g. ABS Research Academy, Design 3). Options control title page, sidebar DOI, fonts, and spacing. Preview updates from the same pipeline as exports.
-
Content — manuscript body
Edit in the rich editor or import Word / LaTeX / JATS. Use citations (
\cite{key}), figures, tables, and math. Run preflight from Export (Ctrl/⌘+Shift+V) to catch broken refs and DOIs. - Figures, References, Back matter Upload figures with captions; manage CSL-style references (bulk paste, DOI lookup, APA formatting). Add acknowledgements, funding, conflicts, and appendix blocks on Back Matter.
- Optional — Early view (Export tab) Set Publish as → Early view, enter website base URL, then Download Website Bundle or Publish to Website. Requires title + DOI. Editing stays open after Word/LaTeX import; lock applies only after you explicitly Send to Proofing. Early view page shows an EARLY VIEW banner; DOI and URL are fixed for later VoR.
- Proofreading — send to authors Open the Proofreading tab. Run readiness checks, then Send to Proofing. Workflow moves to Author proof; editor content is snapshotted and locked until import or re-proof. Proofing is optional — you may publish early view before sending to proof. Authors work in the separate app (port 8010): tracked changes, comments, author queries, APA cite tools.
- Proofreading — import corrections After authors Submit, use Import proof corrections (or accepted-only for production). Workflow becomes Proof submitted. Review the dashboard: changes, comments, queries, history.
- Close proofing — enable final production When edits are merged and signed off, click Close proofing — enable final production. Workflow → Final production. Final preview and gated exports (PDF, JATS, HTML, LaTeX) unlock.
- Final preview & production exports Final preview tab: print-ready view. Export: HTML, PDF (print view), JATS XML bundle, LaTeX, CrossRef deposit XML. These use proof-corrected content and are intended for the version of record.
- Version of record — website publish On Export, set Publish as → Version of record. Same slug, URL, and DOI as early view. Download or POST the website bundle; VoR HTML replaces the early view notice with VERSION OF RECORD. Workflow can move to Published. Register the DOI once with CrossRef; update metadata for VoR, do not mint a new DOI.
-
Save project & handoff
Use Save project / Load project (JSON) to archive state. Deploy website ZIP per
website/README.md; ingest JATS/XML into your production CMS if applicable.
Early view vs version of record
supersedes records that VoR replaced early view at the same address.
- Early view — accepted manuscript online before proof finishes; proofing not required to publish.
- VoR — final corrected content; normally after proof closed (checkbox can allow override with confirmation).
- Listing cards and scholar meta use publication dates from metadata and
publicationstate.
Tabs reference
| Tab | Purpose |
|---|---|
| Metadata | Placement (publisher sync), article identity, Generate/Sync DOI, dates, keywords |
| Journals | Local journal profiles — standalone mode only (?standalone=1) |
| Layout | Preset selection and layout designer options |
| Content | Body editor, Word/LaTeX/JATS import |
| Figures | Figure files, captions, IDs for citations |
| References | Bibliography, bulk paste, CrossRef DOI fetch |
| Back Matter | Acknowledgements, funding, appendix, etc. |
| Proofreading | Send/import proof, dashboard, close proofing |
| Final preview | Production preview (after proof closed) |
| Export | Validate, HTML/PDF/XML/LaTeX/CrossRef |
| Journal website | CMS connection, early view / VoR publish, live site preview |
| Guide | This document |
Proofreading app (separate server)
The formatter pushes HTML + metadata via shared/proofing-mapper.mjs to
POST /api/proofs/from-formatter. Authors edit at the Proofreading UI; on submit,
Import proof corrections pulls a patch back into the formatter body and fields.
Template ID matches the article DOI (or title slug). See project README.md and shared integration notes for API URLs.
Exports (what each produces)
- HTML — standalone styled article for archiving or secondary hosting.
- PDF — browser print view; quality depends on print engine.
- JATS XML bundle —
article.xml, figures, tables, manifest for submission systems. - Website bundle —
index.html,article.xml, listing card, manifest withpublicationstage. - CrossRef deposit —
doi_batchXML for registration (one DOI per article).
Journal website (CMS + public site)
Website bundles are built from the Journal website tab and documented in website/README.md.
The local CMS ingest server uses port 8020; the public reader site is ABS Publisher Client (port 3000 in dev).
Use Use local CMS (8020) on the Journal website tab to configure ingest APIs, or publish through ABS Admin Article go-live when connected to the publisher API.
Developers & testing
- Full local stack: ABS backend
:5001, frontend:3000, formatternode serve.js→:8000 - Formatter + proofing:
node scripts/dev-start.mjs - Publisher-connected test:
node scripts/test-publisher-article.mjs - Standalone fixtures:
?standalone=1&earlyview(publisher mode blocks fixture URLs) - Embed URL params:
embed=admin,articleId,apiUrl,siteUrl,formatterCode - E2E workflow:
node scripts/test-workflow-e2e.mjs --start-servers - Documentation:
README.mdin this folder; ABS Admin docs inABS Journal Clone/README.md