Skip to content

synthica-org/journal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synthica Journal

Public, open-access journal site for Synthica Journal — peer-reviewed research by high-school and early-career scientists. This repo is the publication face; submission and peer review happen in the Synthica dashboard (create an account → My Journal → submit; every article here went through the 5-stage editorial pipeline there).

How it works

Zero-dependency static site generator (build.js, Node ≥ 18):

node build.js                                  # build from data/fallback.json → dist/
API_BASE=http://localhost:4000 node build.js   # build from a live dashboard backend
python3 -m http.server 8090 -d dist            # preview
  • Content comes from the dashboard backend's public API (/api/journal/meta, /api/journal/issues, /api/journal/publications), with data/fallback.json as the offline fallback (same shape). Deploys re-run the build (see .github/workflows/pages.yml).
  • Pages are modules: pages/<name>.page.js default-exports async (ctx) => [{ path, html }]. build.js auto-discovers them — add pages by adding modules, never by editing the core. ctx = { config, data, layout, esc, slugify }; layout(title, body, { active, head, depth }) wraps content with the shared masthead/footer (partials/), where depth is the page's directory depth (drives relative links).
  • Design: styles/design-system.css (shared Synthica tokens) + styles/journal.css (journal look, ported from the dashboard's journal pages) + styles/base.css (shell). reference/ holds the original dashboard journal pages the design is ported from.

Standards

  • DOI: every article page displays its DOI as https://doi.org/… (prefix 10.55555), with full bibliographic metadata, license (CC BY 4.0), references, and Google Scholar citation_* meta tags. Crossref deposit XML is generated by the dashboard backend (Director desk → issue → “Crossref XML”).
  • ISSN: displayed in the masthead and footer once assigned — set issn in config.json (shows “ISSN pending” until then). Publisher, frequency (Quarterly), and volume/issue numbering are maintained for the ISSN application.

Configuration

config.json — journal title, ISSN, publisher, frequency, DOI prefix, dashboardUrl (submission funnel: …/register?from=journal), apiBase, contact.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors