# African-American Press Archive Site
This repository contains the public-facing web application for the African-American Press Archive. Image assets are hosted externally (e.g., Wasabi) and referenced via the manifests generated by `merge_manifests.py`.
## Structure
- `index.html`, `app.js`, `style.css`: Front-end application files.
- `web_content/manifest.json`: Combined manifest referencing the latest issues across all papers.
- `web_content/manifests/`: Per-paper manifests and a paper index.
- `config/papers.yaml`: Mapping from paper slug to the remote storage location (base URL) for images.
- `merge_manifests.py`: Script to rebuild manifests from processed metadata and storage config.
- `scripts/`: Deployment helpers (e.g., syncing to Wasabi or GitHub repositories).
## Workflow
1. Process PDFs/JP2 files in the working repo (`extract_pages.py`, `process_jp2.py`).
2. Upload the generated JPGs to the configured storage provider (`scripts/sync_to_wasabi.sh` for Wasabi, or custom tooling).
3. Run `python merge_manifests.py` to refresh `web_content/manifest.json` and per-paper manifests with the correct remote URLs.
4. Commit and push this site repo to deploy (GitHub Pages, Netlify, S3/CloudFront, etc.).
## Local Development
```bash
python3 -m http.server --directory . 8000
# Visit
localhost
```
### Rebuilding manifests locally
```bash
python3 merge_manifests.py
```
Ensure `config/papers.yaml` points to valid base URLs before rebuilding.