diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..c3f71d0 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +version: 2 +updates: + # Keep GitHub Actions versions current + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions: + patterns: + - "*" + + # Keep pre-commit hook revisions current + - package-ecosystem: pre-commit + directory: / + schedule: + interval: weekly diff --git a/.github/workflows/link-check.yaml b/.github/workflows/link-check.yaml new file mode 100644 index 0000000..54428f3 --- /dev/null +++ b/.github/workflows/link-check.yaml @@ -0,0 +1,29 @@ +name: Link check + +on: + pull_request: + branches: + - main + +jobs: + link-check: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Check links with lychee + uses: lycheeverse/lychee-action@v2 + with: + # Check all Markdown files in content/ and the root-level docs + args: >- + --verbose + --no-progress + --exclude-path node_modules + --exclude "^https://forum\\.image\\.sc/" + --exclude "^https://www\\.broadinstitute\\.org/" + --exclude "^https://doi\\.org/10\\.1101/" + --exclude "^https://doi\\.org/10\\.64898/" + 'content/**/*.md' + '*.md' + fail: true diff --git a/.github/workflows/pre-commit-checks.yaml b/.github/workflows/pre-commit-checks.yaml index 3777582..4f09dbb 100644 --- a/.github/workflows/pre-commit-checks.yaml +++ b/.github/workflows/pre-commit-checks.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: - python-version: "3.10" - - uses: pre-commit/action@v3.0.0 + python-version: "3.12" + - uses: pre-commit/action@v3.0.1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea99edc..214b56c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,9 +1,12 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks --- +# Exclude vendored theme — it is not our code to lint +exclude: ^themes/ + repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v6.0.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer @@ -11,17 +14,24 @@ repos: - id: detect-private-key # checking spelling - repo: https://github.com/codespell-project/codespell - rev: v2.2.6 + rev: v2.4.2 hooks: - id: codespell + args: + # "patter" is the Cell Press journal identifier used in DOI URLs + - --ignore-words-list=patter # checking markdown formatting - repo: https://github.com/executablebooks/mdformat - rev: 0.7.17 + rev: 1.0.0 hooks: - id: mdformat + exclude: ^content/ additional_dependencies: - - mdformat-gfm + - mdformat-gfm==1.0.0 + - mdformat-frontmatter==2.0.10 + # HTML linting — exclude Hugo template files (contain {{ }} syntax) - repo: https://github.com/Lucas-C/pre-commit-hooks-nodejs rev: v1.1.2 hooks: - id: htmllint + exclude: ^layouts/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3dbf78e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing to cytomining.github.io + +Thank you for your interest in contributing! + +## Code of conduct + +Please uphold our [code of conduct](https://github.com/cytomining/.github/blob/main/CODE_OF_CONDUCT.md). +Report unacceptable behavior to cytodata.info@gmail.com. + +## Reporting issues + +Open a [GitHub issue](https://github.com/cytomining/cytomining.github.io/issues) with a clear description of the problem (e.g., broken link, outdated content, rendering bug). + +## Contributing changes + +1. Fork the repository and create a branch from `main`. +1. Make your changes. See [README.md](README.md) for local development setup. +1. Open a pull request against `main` with a clear description of what changed and why. + +Please keep pull requests focused on a single change. All status checks must pass before merge. + +## Content guidelines + +- Keep tool descriptions factual and concise. +- Follow the frontmatter and section order used in existing content files. +- Verify any external links you add are reachable. diff --git a/README.md b/README.md index 781958a..3bea2ce 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,62 @@ -# Cytomining organization GitHub Pages configuration +# cytomining.github.io -This repo includes content which helps create links via GitHub Pages related to the Cytomining Organization. +Source for the [Cytomining organization website](https://cytomining.github.io/), built with [Hugo](https://gohugo.io/) and the [Congo](https://jpanther.github.io/congo/) theme. -## Development +## Prerequisites -You may place HTML content within the `/docs` folder, which is then rendered on merge to `main`. -We adapt work here from [the documentation found in this Gist](https://gist.github.com/domenic/1f286d415559b56d725bee51a62c24a7). +- [Hugo extended](https://gohugo.io/installation/) v0.161.1 or later + +## Local development + +```bash +git clone https://github.com/cytomining/cytomining.github.io.git +cd cytomining.github.io + +# Serve locally with live reload +hugo server + +# Build for production +hugo --minify +``` + +The site is served at `http://localhost:1313/` by default. + +## Pre-commit hooks + +This repo uses [pre-commit](https://pre-commit.com/) to enforce formatting and catch common issues before every commit. + +```bash +pip install pre-commit +pre-commit install +``` + +After installation, hooks run automatically on `git commit`. To run them manually against all files: + +```bash +pre-commit run --all-files +``` + +## Adding or editing a tool page + +Tool pages live in `content/tools/`. Each file is a Markdown file with frontmatter. + +Minimal frontmatter for a new tool page: + +```yaml +--- +title: "Tool Name" +description: "One-sentence description of what this tool does." +showDate: false +showAuthor: false +--- +``` + +Follow the section order used in existing pages: logo image(s), 1–2 sentence intro, **Key capabilities** bullet list, link to documentation or GitHub, and optionally a **Publication** section. + +## Deployment + +Pushes to `main` trigger the [hugo.yaml](.github/workflows/hugo.yaml) GitHub Actions workflow, which builds the site and deploys it to GitHub Pages automatically. + +## Theme + +This site uses [Congo v2.13.0](https://github.com/jpanther/congo). Theme configuration lives in `config/_default/params.toml`. diff --git a/content/_index.md b/content/_index.md index 0c5274b..500e248 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,4 +1,4 @@ --- -title: "Cytomining" -description: "Open-source tools for single-cell image-based profiling" +title: Cytomining +description: Open-source tools for single-cell image-based profiling --- diff --git a/content/contact/_index.md b/content/contact/_index.md index 2adddb1..deb0aaa 100644 --- a/content/contact/_index.md +++ b/content/contact/_index.md @@ -1,6 +1,6 @@ --- -title: "Contact" -description: "Get in touch with the Cytomining community." +title: Contact +description: Get in touch with the Cytomining community. --- - 💬 Join the conversation on our [Discourse forums](https://forum.image.sc/) diff --git a/content/experimental/_index.md b/content/experimental/_index.md index a3591f2..2f0b6b2 100644 --- a/content/experimental/_index.md +++ b/content/experimental/_index.md @@ -1,6 +1,6 @@ --- -title: "Experimental" -description: "Next-generation tools under active development in the WayScience organization." +title: Experimental +description: Next-generation tools under active development in the WayScience organization. --- The following tools are under active development in the [WayScience](https://github.com/WayScience) organization and represent the next generation of the Cytomining ecosystem. diff --git a/content/tools/_index.md b/content/tools/_index.md index 67f18c1..f3e2b06 100644 --- a/content/tools/_index.md +++ b/content/tools/_index.md @@ -1,6 +1,6 @@ --- -title: "Tools" -description: "Production-ready tools for image-based profiling bioinformatics." +title: Tools +description: Production-ready tools for image-based profiling bioinformatics. --- The Cytomining ecosystem provides a suite of production-ready tools for every stage of the image-based profiling workflow. diff --git a/content/tools/copairs.md b/content/tools/copairs.md index 0337590..ec8e03b 100644 --- a/content/tools/copairs.md +++ b/content/tools/copairs.md @@ -1,6 +1,6 @@ --- -title: "copairs" -description: "Downstream evaluation — measures how reproducibly perturbation profiles retrieve their matched replicates, quantifying profile quality and similarity." +title: copairs +description: Downstream evaluation — measures how reproducibly perturbation profiles retrieve their matched replicates, quantifying profile quality and similarity. showDate: false showAuthor: false --- diff --git a/content/tools/cosmicqc.md b/content/tools/cosmicqc.md index 36c47cd..8b6b755 100644 --- a/content/tools/cosmicqc.md +++ b/content/tools/cosmicqc.md @@ -1,9 +1,9 @@ --- -title: "coSMicQC" -description: "Quality control step — flags and removes low-quality cells before profile processing to prevent artifacts from propagating downstream." +title: coSMicQC +description: Quality control step — flags and removes low-quality cells before profile processing to prevent artifacts from propagating downstream. showDate: false showAuthor: false -logoUrl: "https://raw.githubusercontent.com/cytomining/coSMicQC/main/media/logo/just-icon.png" +logoUrl: https://raw.githubusercontent.com/cytomining/coSMicQC/main/media/logo/just-icon.png --- coSMicQC logo diff --git a/content/tools/cytodataframe.md b/content/tools/cytodataframe.md index 2a03db3..a084f97 100644 --- a/content/tools/cytodataframe.md +++ b/content/tools/cytodataframe.md @@ -1,9 +1,9 @@ --- -title: "CytoDataFrame" -description: "Interactive exploration — view and inspect morphological profiles alongside their source cell images directly in Jupyter notebooks." +title: CytoDataFrame +description: Interactive exploration — view and inspect morphological profiles alongside their source cell images directly in Jupyter notebooks. showDate: false showAuthor: false -logoUrl: "https://raw.githubusercontent.com/cytomining/CytoDataFrame/main/logo/just-icon.png" +logoUrl: https://raw.githubusercontent.com/cytomining/CytoDataFrame/main/logo/just-icon.png --- CytoDataFrame logo diff --git a/content/tools/cytotable.md b/content/tools/cytotable.md index f6fc4a0..d85ab1d 100644 --- a/content/tools/cytotable.md +++ b/content/tools/cytotable.md @@ -1,9 +1,9 @@ --- -title: "CytoTable" -description: "Upstream ingestion — converts raw CellProfiler, DeepProfiler, and IN Carta outputs into scalable, analysis-ready Parquet tables." +title: CytoTable +description: Upstream ingestion — converts raw CellProfiler, DeepProfiler, and IN Carta outputs into scalable, analysis-ready Parquet tables. showDate: false showAuthor: false -logoUrl: "https://raw.githubusercontent.com/cytomining/CytoTable/main/logo/just-icon.png" +logoUrl: https://raw.githubusercontent.com/cytomining/CytoTable/main/logo/just-icon.png --- CytoTable logo diff --git a/content/tools/deepprofiler.md b/content/tools/deepprofiler.md index 50b5cbb..ad7d84a 100644 --- a/content/tools/deepprofiler.md +++ b/content/tools/deepprofiler.md @@ -1,11 +1,11 @@ --- -title: "DeepProfiler" -description: "Alternative feature extraction — deep learning embeddings from raw microscopy images, bypassing classical segmentation-and-measurement pipelines." +title: DeepProfiler +description: Alternative feature extraction — deep learning embeddings from raw microscopy images, bypassing classical segmentation-and-measurement pipelines. showDate: false showAuthor: false --- -DeepProfiler logo +DeepProfiler logo `DeepProfiler` uses deep neural networks to extract morphological features directly from raw microscopy images, bypassing traditional segmentation-and-measurement pipelines. It is designed for high-throughput screens where deep learning representations outperform classical feature sets. diff --git a/content/tools/pycytominer.md b/content/tools/pycytominer.md index 0bae2bc..4dcd814 100644 --- a/content/tools/pycytominer.md +++ b/content/tools/pycytominer.md @@ -1,9 +1,9 @@ --- -title: "Pycytominer" -description: "Core processing pipeline — aggregates, normalizes, and feature-selects morphological profiles for downstream analysis." +title: Pycytominer +description: Core processing pipeline — aggregates, normalizes, and feature-selects morphological profiles for downstream analysis. showDate: false showAuthor: false -logoUrl: "https://raw.githubusercontent.com/cytomining/pycytominer/main/logo/just-icon.png" +logoUrl: https://raw.githubusercontent.com/cytomining/pycytominer/main/logo/just-icon.png --- Pycytominer logo diff --git a/layouts/index.html b/layouts/index.html index d66fde8..84ef57b 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -30,9 +30,9 @@

→ - CytoTable + CytoTable iconCytoTable - coSMicQC + coSMicQC iconcoSMicQC Pycytominer