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.5.tar.gz (228.3 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.5-py3-none-any.whl (219.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jeff_contacts-0.1.5.tar.gz
  • Upload date:
  • Size: 228.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.9 CPython/3.13.13 Linux/6.17.0-1010-azure

File hashes

Hashes for jeff_contacts-0.1.5.tar.gz
Algorithm Hash digest
SHA256 795e4a8fe5b44335d5fac891c02a087645ae167da45cd39a38ff0f9266954ecc
MD5 21f1f6bc8d992ec64af75a6526274690
BLAKE2b-256 e56273143b940716da0988e65a814a652d50c6f7ce865dd8c28c500e74ccee53

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jeff_contacts-0.1.5-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.13.13 Linux/6.17.0-1010-azure

File hashes

Hashes for jeff_contacts-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 55df5c3fe5f76ec5554e64b8d8b8669a46e8ec33c730d42e26308b280e7a2ec2
MD5 fadf478cad391c01287c554310e413fe
BLAKE2b-256 2f45f10ea8a716a7894553f60320b4feb0f4d90663c1cd3a2f79ac7e99514b0c

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