Skip to content

AtomRearch/AtomPub

Repository files navigation

AtomPub

A journal-styled academic writing platform — op-eds, reading notes, method write-ups, and research observations.
atomrearch.github.io/AtomPub  ·  中文版 →


AtomPub is an independent academic publication edited by Zhengqian Jin. Contributions from peers are welcome.

Every article gets a permanent URL and a stable citation ID in the form AP-YYYY-slug.

What lives here

Category What it means in practice
Op-ed The take worth writing down
Reading notes When a paper deserves more than a tweet
Method write-up The protocol actually used, not the boilerplate
Data note Preliminary results that shouldn't disappear into a lab notebook

How to contribute

Option A — GitHub PR (preferred)

# 1. Fork https://github.com/AtomRearch/AtomPub
# 2. Copy the template:
cp journal/_extensions/atompub-light/template.qmd journal/articles/your-slug.qmd
# 3. Write the piece. Set `atompub-id: AP-YYYY-your-slug` in the front-matter.
# 4. Open a PR titled: "Submission: Your Article Title"

Optionally include references.bib and an OG image at journal/assets/og/your-slug.png (1200 × 630 px).

Option B — Email

Send the manuscript in any format (.qmd, Word, plain text) to atomfeed@163.com. Subject: AtomPub submission: Title. Formatting will be handled on our end.

Run locally

# Requires Quarto ≥ 1.4  →  https://quarto.org/docs/get-started/
cd journal
quarto preview      # live-reload at http://localhost:3434

Quick publish (maintainer only)

Double-click push-article.bat at the repo root → paste the .qmd path → done. The article goes live in ~2 minutes via GitHub Actions.

Protected posts (password-gated)

Add protected: true to any article's front matter and it ships as ciphertext: the publish workflow encrypts the rendered HTML with AES-256-GCM (PBKDF2-SHA256, 310k iterations) and readers decrypt it in-browser via WebCrypto after entering the access phrase. GitHub Pages only ever hosts the encrypted blob; the post is also scrubbed from search.json and RSS feeds.

Setup (maintainer, once):

gh secret set ATOMPUB_PASSWORD -R AtomRearch/AtomPub

Per-post password: set protect-password: "..." in the front matter (beats the site-wide secret). One unlock per browser session covers all posts sharing the same phrase.

Caveats — know what this is and isn't:

  • Title, description, and date stay public (listing pages, OG tags). Keep them non-sensitive.
  • Anyone holding the phrase can share the decrypted content; a weak phrase can be brute-forced offline. Use a long passphrase.
  • If ATOMPUB_PASSWORD is unset at build time, protected posts fail closed: a placeholder is published, never plaintext.

Local test:

cd journal && quarto render && cd ..
python journal/tools/protect.py journal/_site --articles journal/articles --password "test"
python -m http.server -d journal/_site 8642   # open /articles/<slug>.html

Repo layout

AtomPub/
├── journal/                  ← the deployable site
│   ├── _quarto.yml
│   ├── index.qmd             home
│   ├── about.qmd
│   ├── submit.qmd
│   ├── articles/             one .qmd per article
│   ├── assets/               logo, OG images
│   └── _extensions/
│       └── atompub-light/    custom Quarto theme + partials
├── push-article.bat          one-click publish script
└── .github/workflows/        build → deploy to GitHub Pages

Stack

Quarto · custom atompub-light extension · GitHub Pages · GitHub Actions. The extension handles masthead, TOC, OG/Twitter metadata, and byline automatically from YAML front-matter.

License

Articles: CC-BY 4.0 · Extension + site code: MIT

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors