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.3.tar.gz (34.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.3-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jeff_contacts-0.1.3.tar.gz
Algorithm Hash digest
SHA256 be2cd1ab83b8d0f68c3133f2503f2c246fb767c7176f6a99c917b5c1b14f4a77
MD5 69799db36209d31eaf61759c155e670b
BLAKE2b-256 7cb62c063c01145726cc52c9c3d124a7cd0cd75fb7853fed4dd2049510861d06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jeff_contacts-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.8 CPython/3.13.13 Linux/6.17.0-1010-azure

File hashes

Hashes for jeff_contacts-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 aac175728be19a3dedf2f0c35782a785fd9542ebe73d87270eb81a4ad520a5fb
MD5 b3b839eea87c7ae65fe01a8a151eeaae
BLAKE2b-256 5f27ca2fec6aac21b3dac29ffdbccd1f6dbbada043ded784ca4d3ff82a64f5b0

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