Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches: [main]
paths:
- "docs/**"
- "build_docs.py"
- ".github/workflows/docs.yml"
workflow_dispatch:

Expand All @@ -25,13 +26,30 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Set up Python 3.11
uses: actions/setup-python@v6
with:
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml

- name: Install docs build dependencies
run: pip install markdown

# Previously this workflow uploaded ./docs/ raw, which published the markdown
# sources as downloads and the Sphinx sources as dead files, while the API
# reference was never built at all. build_docs.py renders each guide into a
# styled page and wires them together. See audit A-13.
- name: Build documentation site
run: python build_docs.py

- name: Configure Pages
uses: actions/configure-pages@v6

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: ./docs/
path: ./docs/_site/

deploy:
name: Deploy to GitHub Pages
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,6 @@ CLAUDE.md
# Plottle — generated test artifacts (should never be committed)
tests/*.png
tests/*.json

# Generated documentation site (build_docs.py)
docs/_site/
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Plottle provides a unified interface for scientific data work:

- **Data I/O** — 18 file formats (CSV, Excel, TSV, JSON, Parquet, NumPy, Pickle, JCAMP-DX, HDF5, NetCDF, SPC, ASC, mzML/mzXML, and more)
- **Mathematical analysis** — statistics, curve fitting, signal processing, peak analysis, hypothesis testing, optimization, linear algebra
- **Multi-library plotting** — 26 plot types across Matplotlib (static), Seaborn (statistical), and Plotly (interactive)
- **Multi-library plotting** — 27 plot types across Matplotlib (static), Seaborn (statistical), and Plotly (interactive)
- **14-page Streamlit GUI** — exploratory data analysis without writing code
- **CLI** — batch processing and scripted workflows
- **Plugin system** — drop `plugin_*.py` into `plugins/` for custom plot types and tools
Expand Down Expand Up @@ -76,7 +76,7 @@ without installing, use `python -m plottle.cli` instead.
| --- | --- |
| **Home** | Dashboard overview and help tabs |
| **1 — Data Upload** | Upload files in 18 formats; preview shape, column types, and summary statistics; batch folder import |
| **2 — Quick Plot** | 26 plot types with live style controls, annotation panel, and Convert to Plotly toggle |
| **2 — Quick Plot** | 27 plot types with live style controls, annotation panel, and Convert to Plotly toggle |
| **3 — Analysis Tools** | 8 tabs: Statistics, Distribution, Curve Fit, Optimization, Linear Algebra, Signal Processing, Peak Analysis, Statistical Tests |
| **4 — Multi-Plot Dashboard** | Up to 4×4 grid layouts with axis sharing and combined PNG/PDF export |
| **5 — Advanced Plotting** | Seaborn statistical plots and Plotly interactive charts with HTML export |
Expand Down Expand Up @@ -140,7 +140,7 @@ save_figure(fig, 'spectrum.png', dpi=300)
| --- | --- |
| `plottle.io` | `load_data()` / `save_data()` — auto-detects format from extension |
| `plottle.math` | 25 functions — statistics, curve fitting, hypothesis tests, optimization, linear algebra |
| `plottle.plotting` | 26 plot types; Matplotlib → `(fig, ax, info)`, Plotly → `(fig, info)` |
| `plottle.plotting` | 27 plot types; Matplotlib → `(fig, ax, info)`, Plotly → `(fig, info)` |
| `plottle.signal` | 16 functions — smoothing, filtering, FFT, derivatives, baseline correction, interpolation |
| `plottle.peaks` | 5 functions — find, integrate, FWHM, fit (Gaussian/Lorentzian/Voigt/pseudo-Voigt) |
| `plottle.data_tools` | 12 non-destructive DataFrame operations |
Expand Down
Loading