CRM Markdown synchronisé depuis CardDAV (Baikal), publié en site statique Hugo.
Project description
jeff
Your contacts live in CardDAV. Your CRM lives in Markdown.
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
- Fetch contacts from your CardDAV server (incremental, ctag/etag-based)
- Transform vCards into Markdown files with structured YAML frontmatter
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be2cd1ab83b8d0f68c3133f2503f2c246fb767c7176f6a99c917b5c1b14f4a77
|
|
| MD5 |
69799db36209d31eaf61759c155e670b
|
|
| BLAKE2b-256 |
7cb62c063c01145726cc52c9c3d124a7cd0cd75fb7853fed4dd2049510861d06
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aac175728be19a3dedf2f0c35782a785fd9542ebe73d87270eb81a4ad520a5fb
|
|
| MD5 |
b3b839eea87c7ae65fe01a8a151eeaae
|
|
| BLAKE2b-256 |
5f27ca2fec6aac21b3dac29ffdbccd1f6dbbada043ded784ca4d3ff82a64f5b0
|