Skip to main content

sigmark

GPG signing for static site markdown content.

Sign Hugo/static-site markdown files with GPG, embedding ASCII-armored signatures directly in YAML front matter. Verify authenticity, strip signatures, or check signing status across your content directory.

Install

pip install sigmark

Requires GPG (gpg) to be installed and available on your PATH.

Usage

# Sign all markdown files in a directory
sigmark sign --key you@example.com content/

# Sign a single file
sigmark sign --key you@example.com content/post/hello/index.md

# Verify signatures
sigmark verify content/

# Check signing status
sigmark status content/

# Remove signatures
sigmark strip content/

How It Works

Sigmark signs only the body of each markdown file (everything below the closing --- front-matter delimiter). The GPG signature is stored as a signature field in the YAML front matter:

---
title: Hello World
date: 2026-01-01
signature: |
  -----BEGIN PGP SIGNATURE-----
  iQEzBAABCAAdFiEE...
  -----END PGP SIGNATURE-----
---
Your post body here.

This means front-matter changes (tags, categories, draft status) don't invalidate the signature, while any change to the actual content does.

Commands

Command Description
sign --key <id> PATHS... Sign markdown files with GPG
verify PATHS... Verify GPG signatures (exit 1 on failure)
strip PATHS... Remove signature fields from front matter
status PATHS... Report unsigned / valid / invalid per file

All commands accept files and/or directories. Directories are walked recursively for .md files with YAML front matter. Global flags: --verbose, --dry-run.

License

MIT

Release files for sigmark 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sigmark 0.1.0
File Size Uploaded
sigmark-0.1.0.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sigmark 0.1.0
File Interpreter ABI Platform
sigmark-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.3 kB

Release files / sigmark-0.1.0.tar.gz

Download URL sigmark-0.1.0.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
da025952b55050a6239e724db5fc21a0e4003a751f1b5254464459eacb9c73a5
BLAKE2b-256 checksum
How to use checksums
7e118198ded87020be6d5c7be97bdaeb797b8248a54264bd40ef161538eb24e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / sigmark-0.1.0-py3-none-any.whl

Download URL sigmark-0.1.0-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba6fffcd6c5af1c93aeba01a5665b8cffc5b4bdcbe2261916395555e2c5c055d
BLAKE2b-256 checksum
How to use checksums
1e5f708ab7b74b17ac63abd1f700ae189c725dec428ef1391ff520fb230b3cff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page