Skip to main content

CRM Markdown synchronisé depuis CardDAV (Baikal), publié en site statique Hugo.

Project description

jeff

jeff

Your contacts live in CardDAV. Your CRM lives in Markdown.

PyPI version Python versions License: MIT Build Publish codecov Docstring coverage Quality Gate Status Maintainability Rating Reliability Rating Security Rating Bugs Vulnerabilities Code Smells Technical Debt

jeff syncs contacts from a Baikal CardDAV server into clean Markdown files with YAML frontmatter, then publishes a static HTML site. No database, no SaaS, no vendor lock-in — just files, Git, and a fast static site.

How it works

Baikal (CardDAV)  ──sync──>  Markdown + YAML  ──build──>  Hugo static site
  1. Fetch contacts from your CardDAV server (incremental, ctag/etag-based)
  2. Transform vCards into Markdown files with structured YAML frontmatter
  3. Publish a fast, searchable static site with Hugo

Setup

pip install jeff-contacts

Create a .jeff file at the root of your project:

carddav_url=https://your-baikal.example.com/dav.php/addressbooks/user/default/
carddav_username=user
carddav_password=secret
chmod 600 .jeff

Usage

jeff sync           # incremental sync (only changed contacts)
jeff sync --full    # force full re-sync
jeff publish        # build static HTML site
jeff --verbose sync # debug logging

jeff sync creates one Markdown file per contact in content/contacts/, extracts photos to static/photos/, and tracks sync state in .sync-state.json.

jeff publish generates a static HTML site in public/ with a contact index and individual profile pages.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jeff_contacts-0.1.4.tar.gz (226.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jeff_contacts-0.1.4-py3-none-any.whl (219.3 kB view details)

Uploaded Python 3

File details

Details for the file jeff_contacts-0.1.4.tar.gz.

File metadata

  • Download URL: jeff_contacts-0.1.4.tar.gz
  • Upload date:
  • Size: 226.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.9 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for jeff_contacts-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8013d2561ced43be15024d5b2d1a87ff209597cd1e4cbe012241295481833db4
MD5 297e447318aa323b64ac53c6a9ffc668
BLAKE2b-256 d87e64b32e51fd7cc69eec99331d0619476a2ebd5d7ff6a4fd4e887143281681

See more details on using hashes here.

File details

Details for the file jeff_contacts-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: jeff_contacts-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 219.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.9 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for jeff_contacts-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0f24467eda867b622b6781e67d2d9e47c7b195f43dc623654dee305ccd429352
MD5 954f99677b3a09f979b72e5a949a52c6
BLAKE2b-256 5673bf1d264a385a6c96b1dec90513e570ac194b04a733cb6690e1852235e652

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page