Skip to main content

A Python CLI tool for converting Leaflet to Zoommap.

Project description

Leaflet-to-Zoommap Converter

This repository contains a Python CLI tool to parse Obsidian Vaults and convert Leaflet codeblocks to Zoommap (TTRPG Tools: Maps) format, supporting map scales, icons and shapes.

Overview

ZoomMap Converter is designed to facilitate the migration from the Obsidian Leaflet plugin to the ZoomMap plugin. It handles the conversion of map notes, markers, and configurations while maintaining compatibility with Obsidian vault structures.

Features

  • Note Conversion: Converts Leaflet-formatted codeblocks to ZoomMap format.
  • Icon Processing: Transforms custom SVG icons with color and size normalisation over to Zoommap.
  • Error Handling: Validation and logging for troubleshooting.
  • Path Management: Handles Obsidian vault file paths and structures.

Installation

Prerequisites

  • Python 3.12+
  • Obsidian vault with Leaflet plugin notes
  • Leaflet Plug-In installed and enabled.
  • Zoommap Plug-In installed and enabled.

Setup

  1. Download the CLI tool using pip.
pip install zoommap-converter
  1. Once installed, you can test the install was successful using:
zoommap-converter --version

Usage

Basic Conversion

  1. Create and configure the settings.yaml file and ensure to include the vault_path and target_path:
vault_path: leaflet-vault
target_path: converted-leaflet-vault

Note: See the sample settings.yaml for more configuration options.

  1. Set the path to your settings.yaml via environment variables:
export SETTINGS=path/to/settings.yaml

zoommap-converter

Or pass it as an argument to the tool:

zoommap-converter --settings path/to/settings.yaml

Development

Project Structure

├── src
│   └── zoommap_converter
│       ├── __init__.py
│       ├── __main__.py
│       ├── app.py
│       ├── cli.py          # Command-line interface
│       ├── logs.py
│       ├── bootstrap/      # Initialisation and setup
│       ├── conf/           # Settings Config
│       ├── converter/      # Core conversion logic
│       └── models/         # Data models and schemas
tests/

Developer Setup

  1. Clone the repository:

    git clone https://codeberg.org/paddyd/zoommap-converter.git
    cd zoommap-converter
    
  2. Install dependencies using uv:

    uv install
    
  3. Configure the vault path in settings.yaml or via environment variables

Running Tests

uv run pytest tests

Building

uv build

Contributing

Contributions are welcome. Please use the provided issue and pull request templates when contributing and follow these guidelines:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request with clear documentation
  4. Include tests for new functionality

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For issues, questions or feature requests, please file an issue.

Acknowledgements

  • Jareika the creator of TTRPG Tools: Maps.
  • Obsidian community for plugin development
  • Font Awesome for icon assets
  • Pydantic for data validation

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

zoommap_converter-0.3.1a1.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

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

zoommap_converter-0.3.1a1-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file zoommap_converter-0.3.1a1.tar.gz.

File metadata

  • Download URL: zoommap_converter-0.3.1a1.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zoommap_converter-0.3.1a1.tar.gz
Algorithm Hash digest
SHA256 109ddd4ab1ecc6434ce55ceb26da1fecce4927c5f1a0461ac6402e8fc893b6a1
MD5 824d9d7aabb2a1125fc5e2dfb7376365
BLAKE2b-256 f31fe9b097c6f5e95936832bc1739629ac1ba6d696791f4c875df0b7d480e9b2

See more details on using hashes here.

File details

Details for the file zoommap_converter-0.3.1a1-py3-none-any.whl.

File metadata

  • Download URL: zoommap_converter-0.3.1a1-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.25 {"installer":{"name":"uv","version":"0.9.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zoommap_converter-0.3.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 1b79185044323e8db98a00cc244c51da6ae8d249dbe89bba2fc755051d7476e2
MD5 2e7711e5424bd60583656cee4bd31ef2
BLAKE2b-256 b21199bacb3f5dc6d4aa61400ea7e6bc5ad665e005fe646ddd72ea3f427ca262

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