Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4114875
add new smc models
mpound Jul 27, 2026
4256f6b
deprecate 2006 smc models
mpound Jul 27, 2026
b3754aa
change up the table, add placeholder for smc
mpound Jul 27, 2026
6b2a88e
release 3.x updates
mpound Aug 3, 2026
442093d
release 3.x updates
mpound Aug 3, 2026
2c9d652
update parameters table and equation
mpound Aug 4, 2026
ced9d8b
new SMC images and html files
mpound Aug 11, 2026
fc8ea15
smc model params
mpound Aug 11, 2026
dc8c908
update for smc
mpound Aug 11, 2026
aa832d9
define FIR wavelength range
mpound Aug 12, 2026
a18530d
updated z=1 models
mpound Aug 17, 2026
81f7b08
add some print statements
mpound Aug 17, 2026
b3099f0
Add CLAUDE.md with codebase guidance for Claude Code
mpound Aug 17, 2026
32c48d1
Implement -m/--modelset flag and fix syntax error blocking script
mpound Aug 17, 2026
d32806c
enable -m option
mpound Aug 17, 2026
b07572e
Parallelize model-page generation at the ratio level, not the ModelSe…
mpound Aug 17, 2026
77cf921
add some more detail to oops statement
mpound Aug 17, 2026
88b4eb7
Add numpydoc-style docstrings to make_model_webpages.py
mpound Aug 17, 2026
f14eb7d
fix todos
mpound Aug 17, 2026
67bfaf4
final updates for v3.01
mpound Aug 18, 2026
2184af3
update all models pages
mpound Aug 18, 2026
c80e449
final? changes
mpound Aug 18, 2026
1e96d30
add gitignore
mpound Aug 18, 2026
b6b244c
use rlease link
mpound Aug 25, 2026
5fb3dd2
aug 25
mpound Aug 25, 2026
5e6eb36
Merge github.com:mpound/pdrtoolbox-web into release_3_0
mpound Aug 31, 2026
2b33f10
update index
mpound Aug 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
Empty file added .gitignore
Empty file.
39 changes: 39 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Repository overview

Static website for the PhotoDissociation Region Toolbox (dustem.astro.umd.edu), served via Apache SSI (Server Side Includes — `<!--#include virtual="..." -->`). Describes PDR modeling, hosts model images/FITS files, and documents the `pdrtpy` Python package (https://pdrtpy.readthedocs.io). There is no build step, bundler, or JS framework for the static pages — HTML is either hand-edited or generated by the Python script in `autogen/`.

## Regenerating the model pages

The `models/` directory (one subdirectory per ModelSet, e.g. `wk2006_Z1.0_constant_density`, `smc_Z0.2_L45_constant_density`) is generated output, not hand-edited. Each ModelSet directory contains generated `.fits`, `.png`, and `.html` files for every model ratio/quantity, plus an `index.html`.

To regenerate:

```
cd autogen
python make_model_webpages.py # generate all non-KOSMA-tau ModelSets
python make_model_webpages.py -k # also include KOSMA-tau (kt*) models
python make_model_webpages.py -m <name> # only a given modelset
python make_model_webpages.py -q # quick: skip plot generation, only rebuild all_models index
```

This requires `pdrtpy` installed (`ModelSet`, `ModelPlot` from `pdrtpy.modelset` / `pdrtpy.plot.modelplot`) and writes output to `../models.new/` (a sibling directory, NOT `../models/` — output must be reviewed and manually promoted/renamed into `models/` before it takes effect on the site). The script pools across `os.cpu_count() - 2` processes via `multiprocessing.Pool`.

Key behaviors to know when touching `autogen/make_model_webpages.py`:

- `lmc` and `wk2006` model name prefixes are currently skipped entirely (line ~65), as is any `kt*` set when `-k`/`--kosmatau` is not passed.
- Per-ModelSet HTML "explain" text and display titles are hardcoded in `explain` and `model_title` dicts inside `process_modelset()` — add entries there when introducing a new ModelSet family (matched by prefix of `ms.keyname`).
- Model titles/units arrive from `pdrtpy` containing LaTeX (`$...$`); the script does manual `.replace()` cleanup to turn them into HTML/entities before rendering. If `$` still appears in a title after cleanup, the script prints `############ OOPS missed some latex ...` — check for this in output when adding new model quantities.
- Ionized-gas line-ratio models (`model.wcs.wcs.ctype[0] == "T_e"`) are plotted/labeled differently (electron temperature/density axes) than standard PDR density/FUV-flux models — this drives `ms.keyname = "hii"` and different axis labels.
- Each ModelSet directory also gets a `<keyname>_models.tgz` tarball referenced from its page; this is not created by the script and must exist separately in `models/`. It is not tracked by github since it is a large binary file. Marc ensures these files are up to date.

Jinja2 templates live in `autogen/`: `index_page_jinja_template.html` (per-ModelSet index), `model_page_jinja_template.html` (per-model-quantity page), `all_models_page_jinja_template.html` (top-level `models/index.html` listing all ModelSets). These duplicate the nav/head markup rather than sharing it with the hand-written pages — when nav changes, update it in the templates *and* in every top-level `.html` file and `includes/nav.inc`.

## Page structure conventions

- `includes/head.inc`, `includes/nav.inc`, `includes/footer.inc` are SSI includes intended to be shared across hand-written pages, but note the top-level pages (`index.html`, `models.html`, `tools.html`, `docs.html`) inline their own copy of the nav markup rather than including `nav.inc` — check which pattern a given page already uses before editing.
- CSS: `css/pdrt.css` is site-specific; `freelancer/css/*` is the vendored Start Bootstrap "Freelancer" theme (https://startbootstrap.com/themes/freelancer/) — don't hand-edit vendored files, override in `pdrt.css` instead.
- Root-relative paths (`/css/...`, `/includes/...`, `/models/...`) are used throughout — pages assume they are served from the site root, not from a subdirectory.
3 changes: 2 additions & 1 deletion autogen/all_models_page_jinja_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
<h1 class="pre-wrap mymasthead-heading font-weight-bold mb-0">
Links to All Available ModelSets</h1>
<p class="myp">
Click on the description to explore a ModelSet (see plots, download FITS files).
To see plots and download individual FITS files for a given ModelSet, click on its ModelSet Description.

<table class="table mytable table-striped table-striped table-bordered" bgcolor="white" >
<tr><th>ModelSet name in <tt><a href="https://pdrtpy.readthedocs.io">pdrtpy</a></tt></th><th>ModelSet Description</th></tr>
{% for key,value in all_models.items() %}
Expand Down
2 changes: 1 addition & 1 deletion autogen/index_page_jinja_template.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ <h1 class="pre-wrap mymasthead-heading font-weight-bold mb-0">
{{modelset.header}}</h1>
<p class="myp">
Below are links to the individual FITS files
and plots in the <i>{{modelset.name}}</i> <a class="mya"
and plots in the <i>{{modelset.name}} z={{modelset.z}} losangle={{modelset.losangle}}</i> <a class="mya"
href="https://pdrtpy.readthedocs.io/en/latest/pdrtpy.modelset.html">ModelSet</a>. We also provide a <a class="mya" href="{{modelset.tarball}}">gzipped tarball</a> of all the <i>{{modelset.keyname}}</i> FITS and PNG files.

<table class="table mytable table-striped table-striped table-bordered" bgcolor="white" >
Expand Down
Loading