BoumWave


NameBoumWave JSON
Version 2.1.1 PyPI version JSON
download
home_pageNone
SummaryThe static blog generator that does exactly what it needs to. Nothing more.
upload_time2025-11-01 18:01:16
maintainerNone
docs_urlNone
authorNone
requires_python>=3.13
licenseNone
keywords static-site-generator blog markdown seo multilingual
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src="logo.jpg" alt="BoumWave Logo" width="250">
</p>

# BoumWave

**The static blog generator that does exactly what it needs to. Nothing more.**

## Why BoumWave?

Static site generators were built in an older era. They've become overcomplicated with:
- Tag management
- Complex pagination
- Search functionality
- Modules and plugins everywhere
- 200-page documentation

**But what's really the purpose of a static site generator?**

1. You prepare your HTML template
2. You write your article in markdown
3. Boum, you generate it
4. Done

**That's exactly what BoumWave does.**

The goal: simplify the conversion from markdown to your template without having to copy-paste the template every time and manually update all the meta tags (Open Graph, Twitter Card, JSON-LD, canonical links...).

You initialize it, you design your template, you don't even need to read docs, and boom your blog is generated.

**No documentation needed.** The configuration file and templates contain detailed comments explaining what everything does. [Just read the files](https://github.com/CedricRaison/BoumWave/blob/master/src/boumwave/templates/default_config.toml).

If you want to add other features to your blog, like an about page or a contact page, that's not the job of a static site generator. You can add them easily yourself.

## Features

- **Simple**: 4 commands, that's it
- **Multilingual**: Native support for multiple languages
- **Your design**: Full HTML templates, do whatever you want
- **Automatic SEO**: Open Graph, Twitter Card, JSON-LD without thinking
- **Markdown**: Write in markdown, get HTML
- **Fast**: Generates your pages in a flash
- **Zero complex configuration**: One simple, clear TOML file

## Quick Start

```bash
# Install BoumWave
uv add boumwave

# Initialize your project
# this will create a boumwave.toml file
bw init

# Create the basic structure
bw scaffold

# Create your first post
bw new_post "My Awesome Post"

# Edit content/my_awesome_post/my_awesome_post.en.md

# Generate the HTML
bw generate my_awesome_post

# Done. Your post is in posts/en/my-awesome-post/
```

## Installation

### With uv (recommended)

```bash
uv add boumwave
```

## Usage

### 1. Initialize a project

```bash
bw init
```

Creates a `boumwave.toml` file with all the configuration.

### 2. Create the structure

```bash
bw scaffold
```

Creates the necessary folders and example templates:
- `templates/post.html`: The template for individual blog post pages
- `templates/link.html`: The template used to generate each post link in your index
- `index.html`: Your blog homepage with a list of all posts

**About index.html**: BoumWave generates a default `index.html` file, but you can bring your own. Just make sure it contains the markers `<!-- POSTS_START -->` and `<!-- POSTS_END -->` where you want the post list to appear. BoumWave will automatically insert your posts there, sorted by date.

You can customize all paths by editing the `boumwave.toml` file.

### 3. Create a post

```bash
bw new_post "Post Title"
```

Creates a folder with a markdown file for each configured language.

### 4. Generate HTML

```bash
bw generate post_name
```

Generates HTML with:
- Your template applied
- Open Graph meta tags
- Twitter Card
- JSON-LD for search engines
- Canonical link
- Automatic index.html update

## Configuration

One file: `boumwave.toml`

No hidden default values. Everything is explicit. You know exactly what's configured.


## Philosophy

**Do one thing, do it well.**

BoumWave doesn't handle:
- Comments (use Disqus, Giscus...)
- Search (add it yourself if you want)
- Analytics (Google Analytics, Plausible...)
- Deployment (use GitHub Pages, Netlify...)
- Tags and categories (Why use that in 2025 ?)

BoumWave handles:
- Markdown to HTML conversion
- Templates
- SEO meta tags
- Multilingual support
- Automatic index.html links

The rest is your site. Do what you want with it.

## Why the name?

**BoumWave** is a combination of my username **BoumTAC** and the word **"weave"**, which means to interlace or connect threads together. A static site generator weaves a link between a template and a text file, bringing them together into a final page.

**But here's the funny part:** when I started the project, I made a typo and wrote "wave" instead of "weave". It has a completely different meaning, but I kept it. The waves in the logo now make perfect sense, and it makes for a nice story.

Sometimes the best names come from happy accidents.

## License

MIT

## Contributing

Contributions are welcome! Open an issue or a PR.

## Author

Created for those who just want to write.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "BoumWave",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": null,
    "keywords": "static-site-generator, blog, markdown, seo, multilingual",
    "author": null,
    "author_email": "Cedric Raison <cedric.raison@hey.com>",
    "download_url": "https://files.pythonhosted.org/packages/5b/9e/bdc15c2f6c9b0de0a37fb5ab9d641381229db0aad827451ea8fa0418a427/boumwave-2.1.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\"logo.jpg\" alt=\"BoumWave Logo\" width=\"250\">\n</p>\n\n# BoumWave\n\n**The static blog generator that does exactly what it needs to. Nothing more.**\n\n## Why BoumWave?\n\nStatic site generators were built in an older era. They've become overcomplicated with:\n- Tag management\n- Complex pagination\n- Search functionality\n- Modules and plugins everywhere\n- 200-page documentation\n\n**But what's really the purpose of a static site generator?**\n\n1. You prepare your HTML template\n2. You write your article in markdown\n3. Boum, you generate it\n4. Done\n\n**That's exactly what BoumWave does.**\n\nThe goal: simplify the conversion from markdown to your template without having to copy-paste the template every time and manually update all the meta tags (Open Graph, Twitter Card, JSON-LD, canonical links...).\n\nYou initialize it, you design your template, you don't even need to read docs, and boom your blog is generated.\n\n**No documentation needed.** The configuration file and templates contain detailed comments explaining what everything does. [Just read the files](https://github.com/CedricRaison/BoumWave/blob/master/src/boumwave/templates/default_config.toml).\n\nIf you want to add other features to your blog, like an about page or a contact page, that's not the job of a static site generator. You can add them easily yourself.\n\n## Features\n\n- **Simple**: 4 commands, that's it\n- **Multilingual**: Native support for multiple languages\n- **Your design**: Full HTML templates, do whatever you want\n- **Automatic SEO**: Open Graph, Twitter Card, JSON-LD without thinking\n- **Markdown**: Write in markdown, get HTML\n- **Fast**: Generates your pages in a flash\n- **Zero complex configuration**: One simple, clear TOML file\n\n## Quick Start\n\n```bash\n# Install BoumWave\nuv add boumwave\n\n# Initialize your project\n# this will create a boumwave.toml file\nbw init\n\n# Create the basic structure\nbw scaffold\n\n# Create your first post\nbw new_post \"My Awesome Post\"\n\n# Edit content/my_awesome_post/my_awesome_post.en.md\n\n# Generate the HTML\nbw generate my_awesome_post\n\n# Done. Your post is in posts/en/my-awesome-post/\n```\n\n## Installation\n\n### With uv (recommended)\n\n```bash\nuv add boumwave\n```\n\n## Usage\n\n### 1. Initialize a project\n\n```bash\nbw init\n```\n\nCreates a `boumwave.toml` file with all the configuration.\n\n### 2. Create the structure\n\n```bash\nbw scaffold\n```\n\nCreates the necessary folders and example templates:\n- `templates/post.html`: The template for individual blog post pages\n- `templates/link.html`: The template used to generate each post link in your index\n- `index.html`: Your blog homepage with a list of all posts\n\n**About index.html**: BoumWave generates a default `index.html` file, but you can bring your own. Just make sure it contains the markers `<!-- POSTS_START -->` and `<!-- POSTS_END -->` where you want the post list to appear. BoumWave will automatically insert your posts there, sorted by date.\n\nYou can customize all paths by editing the `boumwave.toml` file.\n\n### 3. Create a post\n\n```bash\nbw new_post \"Post Title\"\n```\n\nCreates a folder with a markdown file for each configured language.\n\n### 4. Generate HTML\n\n```bash\nbw generate post_name\n```\n\nGenerates HTML with:\n- Your template applied\n- Open Graph meta tags\n- Twitter Card\n- JSON-LD for search engines\n- Canonical link\n- Automatic index.html update\n\n## Configuration\n\nOne file: `boumwave.toml`\n\nNo hidden default values. Everything is explicit. You know exactly what's configured.\n\n\n## Philosophy\n\n**Do one thing, do it well.**\n\nBoumWave doesn't handle:\n- Comments (use Disqus, Giscus...)\n- Search (add it yourself if you want)\n- Analytics (Google Analytics, Plausible...)\n- Deployment (use GitHub Pages, Netlify...)\n- Tags and categories (Why use that in 2025 ?)\n\nBoumWave handles:\n- Markdown to HTML conversion\n- Templates\n- SEO meta tags\n- Multilingual support\n- Automatic index.html links\n\nThe rest is your site. Do what you want with it.\n\n## Why the name?\n\n**BoumWave** is a combination of my username **BoumTAC** and the word **\"weave\"**, which means to interlace or connect threads together. A static site generator weaves a link between a template and a text file, bringing them together into a final page.\n\n**But here's the funny part:** when I started the project, I made a typo and wrote \"wave\" instead of \"weave\". It has a completely different meaning, but I kept it. The waves in the logo now make perfect sense, and it makes for a nice story.\n\nSometimes the best names come from happy accidents.\n\n## License\n\nMIT\n\n## Contributing\n\nContributions are welcome! Open an issue or a PR.\n\n## Author\n\nCreated for those who just want to write.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "The static blog generator that does exactly what it needs to. Nothing more.",
    "version": "2.1.1",
    "project_urls": {
        "Homepage": "https://github.com/CedricRaison/BoumWave",
        "Issues": "https://github.com/CedricRaison/BoumWave/issues",
        "Repository": "https://github.com/CedricRaison/BoumWave"
    },
    "split_keywords": [
        "static-site-generator",
        " blog",
        " markdown",
        " seo",
        " multilingual"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "42c3b81a5dcd07d6d6bbd4c433b62bf08a8a59b22659767bf9eec01da214805c",
                "md5": "e3616c834f7cd3cc5dc5c2e6f29e4b80",
                "sha256": "83c8c08a05ca2ba68eadd07a7b0f4723650ca461d62b5fbed31e384cce6f8602"
            },
            "downloads": -1,
            "filename": "boumwave-2.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e3616c834f7cd3cc5dc5c2e6f29e4b80",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 39871,
            "upload_time": "2025-11-01T18:01:15",
            "upload_time_iso_8601": "2025-11-01T18:01:15.435956Z",
            "url": "https://files.pythonhosted.org/packages/42/c3/b81a5dcd07d6d6bbd4c433b62bf08a8a59b22659767bf9eec01da214805c/boumwave-2.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5b9ebdc15c2f6c9b0de0a37fb5ab9d641381229db0aad827451ea8fa0418a427",
                "md5": "94ae426ed0182c0cf5b4ed5b9bf65fe3",
                "sha256": "dd77718a2d02127c22c72dac4293fa3bbc252a3d74b6da62ed0e6ae42040accf"
            },
            "downloads": -1,
            "filename": "boumwave-2.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "94ae426ed0182c0cf5b4ed5b9bf65fe3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 27168,
            "upload_time": "2025-11-01T18:01:16",
            "upload_time_iso_8601": "2025-11-01T18:01:16.702785Z",
            "url": "https://files.pythonhosted.org/packages/5b/9e/bdc15c2f6c9b0de0a37fb5ab9d641381229db0aad827451ea8fa0418a427/boumwave-2.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-01 18:01:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CedricRaison",
    "github_project": "BoumWave",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "boumwave"
}
        
Elapsed time: 1.49255s