resumyst


Nameresumyst JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryModern CV generation system combining Typst templating with Python CLI - create multiple professional document variants from unified YAML data
upload_time2025-08-31 18:01:04
maintainerNone
docs_urlNone
authorFilippo Guerranti
requires_python>=3.10
licenseNone
keywords cv resume typst template cli yaml document-generation academic pdf professional
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # resumyst

Generate professional CVs from YAML data using Typst templates.

> **Alpha Software**: This project is in early development. Features may change and bugs are expected. Always review generated CVs before submitting them.

|Academic|Industry|Short|
|:-:|:-:|:-:|
|![academic CV](out/png/cv-academic-1.png)|![industry CV](out/png/cv-industry-1.png)|![short CV](out/png/cv-short-1.png)|

A modern CV generation system that combines Typst templating with Python CLI convenience. Generate multiple CV variants from a single YAML data source.

## Features

- Multiple variants: Academic, industry, and compact formats
- Interactive project setup wizard
- Live preview server with auto-reload
- Data validation with helpful error messages
- Interactive content editor
- Intelligent filtering with `exclude_from` flags
- PDF and PNG output formats

## Installation

```bash
pip install resumyst
```

Typst will be automatically installed when first needed, or you can install it manually beforehand from [typst.app](https://github.com/typst/typst?tab=readme-ov-file#installation).

## Quick Start

### Interactive Setup

```bash
# Create new CV project
resumyst init my-cv
cd my-cv

# Edit your data
resumyst edit

# Live preview
resumyst serve

# Build CV
resumyst build academic
```

### Direct Usage

```bash
# Skip wizard, use defaults
resumyst init my-cv --quick

# Build specific variant
resumyst build industry

# Build all variants
resumyst build --all

# Watch for changes
resumyst build academic --watch
```

## Project Structure

```
my-cv/
├── data/
│   ├── config.yaml          # Global styling
│   ├── personal.yaml        # Contact info
│   ├── sections/             # CV content
│   │   ├── experience.yaml
│   │   ├── education.yaml
│   │   └── ...
│   └── variants/             # Variant settings
│       ├── academic.yaml
│       ├── industry.yaml
│       └── short.yaml
├── typst/                    # Template files
└── out/                      # Generated outputs
    ├── pdf/
    └── png/
```

## CV Variants

**Academic** - Complete CV with all publications, teaching, and academic activities
**Industry** - Professional focus with selected publications and practical experience
**Short** - Compact 1-2 page version for quick applications

Control what appears in each variant using `exclude_from` flags in your YAML files:

```yaml
# This entry appears in all variants
- title: "Important Publication"
  year: 2024

# This entry is excluded from short variant
- title: "Minor Publication"
  year: 2023
  exclude_from: ["short"]
```

## Commands

- `resumyst init [name]` - Create new CV project
- `resumyst edit` - Interactive content editor
- `resumyst build [variant]` - Build CV (academic/industry/short)
- `resumyst serve` - Start live preview server
- `resumyst validate` - Validate YAML data
- `resumyst clean` - Remove build outputs

## Configuration

Edit `data/config.yaml` to customize typography, spacing, colors, and formatting:

```yaml
typography:
  fonts:
    text: "Libertinus Serif"
  sizes:
    body: 11.2pt

colors:
  link: "#0645ad"

formatting:
  date_format: "MMM YYYY"
  show_location: true
```

## Template Customization

Modify Typst template files in the `typst/` directory:
- `typst/styles.typ` - Typography and layout
- `typst/components.typ` - UI elements
- `typst/renderers.typ` - Section formatting

## Auto-Installation

Resumyst automatically installs Typst using platform-appropriate package managers:

- **Windows**: winget, Cargo
- **macOS**: Homebrew, Cargo  
- **Linux**: Cargo (APT/Snap require manual installation for security)

Disable auto-installation: `resumyst build academic --no-auto-install`

## Development

```bash
git clone https://github.com/guerrantif/resumyst.git
cd resumyst
pip install -e .
resumyst --help
```

## Requirements

- Python 3.10+
- Typst (auto-installed)

## License

MIT License - see LICENSE file for details.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "resumyst",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cv, resume, typst, template, cli, yaml, document-generation, academic, pdf, professional",
    "author": "Filippo Guerranti",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/6e/e3/93dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944/resumyst-0.1.1.tar.gz",
    "platform": null,
    "description": "# resumyst\n\nGenerate professional CVs from YAML data using Typst templates.\n\n> **Alpha Software**: This project is in early development. Features may change and bugs are expected. Always review generated CVs before submitting them.\n\n|Academic|Industry|Short|\n|:-:|:-:|:-:|\n|![academic CV](out/png/cv-academic-1.png)|![industry CV](out/png/cv-industry-1.png)|![short CV](out/png/cv-short-1.png)|\n\nA modern CV generation system that combines Typst templating with Python CLI convenience. Generate multiple CV variants from a single YAML data source.\n\n## Features\n\n- Multiple variants: Academic, industry, and compact formats\n- Interactive project setup wizard\n- Live preview server with auto-reload\n- Data validation with helpful error messages\n- Interactive content editor\n- Intelligent filtering with `exclude_from` flags\n- PDF and PNG output formats\n\n## Installation\n\n```bash\npip install resumyst\n```\n\nTypst will be automatically installed when first needed, or you can install it manually beforehand from [typst.app](https://github.com/typst/typst?tab=readme-ov-file#installation).\n\n## Quick Start\n\n### Interactive Setup\n\n```bash\n# Create new CV project\nresumyst init my-cv\ncd my-cv\n\n# Edit your data\nresumyst edit\n\n# Live preview\nresumyst serve\n\n# Build CV\nresumyst build academic\n```\n\n### Direct Usage\n\n```bash\n# Skip wizard, use defaults\nresumyst init my-cv --quick\n\n# Build specific variant\nresumyst build industry\n\n# Build all variants\nresumyst build --all\n\n# Watch for changes\nresumyst build academic --watch\n```\n\n## Project Structure\n\n```\nmy-cv/\n\u251c\u2500\u2500 data/\n\u2502   \u251c\u2500\u2500 config.yaml          # Global styling\n\u2502   \u251c\u2500\u2500 personal.yaml        # Contact info\n\u2502   \u251c\u2500\u2500 sections/             # CV content\n\u2502   \u2502   \u251c\u2500\u2500 experience.yaml\n\u2502   \u2502   \u251c\u2500\u2500 education.yaml\n\u2502   \u2502   \u2514\u2500\u2500 ...\n\u2502   \u2514\u2500\u2500 variants/             # Variant settings\n\u2502       \u251c\u2500\u2500 academic.yaml\n\u2502       \u251c\u2500\u2500 industry.yaml\n\u2502       \u2514\u2500\u2500 short.yaml\n\u251c\u2500\u2500 typst/                    # Template files\n\u2514\u2500\u2500 out/                      # Generated outputs\n    \u251c\u2500\u2500 pdf/\n    \u2514\u2500\u2500 png/\n```\n\n## CV Variants\n\n**Academic** - Complete CV with all publications, teaching, and academic activities\n**Industry** - Professional focus with selected publications and practical experience\n**Short** - Compact 1-2 page version for quick applications\n\nControl what appears in each variant using `exclude_from` flags in your YAML files:\n\n```yaml\n# This entry appears in all variants\n- title: \"Important Publication\"\n  year: 2024\n\n# This entry is excluded from short variant\n- title: \"Minor Publication\"\n  year: 2023\n  exclude_from: [\"short\"]\n```\n\n## Commands\n\n- `resumyst init [name]` - Create new CV project\n- `resumyst edit` - Interactive content editor\n- `resumyst build [variant]` - Build CV (academic/industry/short)\n- `resumyst serve` - Start live preview server\n- `resumyst validate` - Validate YAML data\n- `resumyst clean` - Remove build outputs\n\n## Configuration\n\nEdit `data/config.yaml` to customize typography, spacing, colors, and formatting:\n\n```yaml\ntypography:\n  fonts:\n    text: \"Libertinus Serif\"\n  sizes:\n    body: 11.2pt\n\ncolors:\n  link: \"#0645ad\"\n\nformatting:\n  date_format: \"MMM YYYY\"\n  show_location: true\n```\n\n## Template Customization\n\nModify Typst template files in the `typst/` directory:\n- `typst/styles.typ` - Typography and layout\n- `typst/components.typ` - UI elements\n- `typst/renderers.typ` - Section formatting\n\n## Auto-Installation\n\nResumyst automatically installs Typst using platform-appropriate package managers:\n\n- **Windows**: winget, Cargo\n- **macOS**: Homebrew, Cargo  \n- **Linux**: Cargo (APT/Snap require manual installation for security)\n\nDisable auto-installation: `resumyst build academic --no-auto-install`\n\n## Development\n\n```bash\ngit clone https://github.com/guerrantif/resumyst.git\ncd resumyst\npip install -e .\nresumyst --help\n```\n\n## Requirements\n\n- Python 3.10+\n- Typst (auto-installed)\n\n## License\n\nMIT License - see LICENSE file for details.",
    "bugtrack_url": null,
    "license": null,
    "summary": "Modern CV generation system combining Typst templating with Python CLI - create multiple professional document variants from unified YAML data",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/guerrantif/resumyst",
        "Issues": "https://github.com/guerrantif/resumyst/issues",
        "Repository": "https://github.com/guerrantif/resumyst"
    },
    "split_keywords": [
        "cv",
        " resume",
        " typst",
        " template",
        " cli",
        " yaml",
        " document-generation",
        " academic",
        " pdf",
        " professional"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "976a33db2b3bf81c60a84bb133fb9d20b2c967ce97d38e3084c05dc4584ecf88",
                "md5": "46d4bf1cb646928205ef0e4b0cf4a99f",
                "sha256": "9971bd0559a4c6bcf7b505fb15614d74be9fa856a80de59e14ef029f46579fba"
            },
            "downloads": -1,
            "filename": "resumyst-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "46d4bf1cb646928205ef0e4b0cf4a99f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 39541,
            "upload_time": "2025-08-31T18:00:57",
            "upload_time_iso_8601": "2025-08-31T18:00:57.694608Z",
            "url": "https://files.pythonhosted.org/packages/97/6a/33db2b3bf81c60a84bb133fb9d20b2c967ce97d38e3084c05dc4584ecf88/resumyst-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ee393dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944",
                "md5": "44fc3a5a19e980e045bcb9c77ca67c70",
                "sha256": "b7ea0ad830cc8d911b9b1e637fe7a0d1a4ffb9568fbfd4394532ca8a879ee813"
            },
            "downloads": -1,
            "filename": "resumyst-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "44fc3a5a19e980e045bcb9c77ca67c70",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 5177514,
            "upload_time": "2025-08-31T18:01:04",
            "upload_time_iso_8601": "2025-08-31T18:01:04.504228Z",
            "url": "https://files.pythonhosted.org/packages/6e/e3/93dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944/resumyst-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-31 18:01:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "guerrantif",
    "github_project": "resumyst",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "resumyst"
}
        
Elapsed time: 0.78598s