turbopelican


Nameturbopelican JSON
Version 0.6.1 PyPI version JSON
download
home_pageNone
SummaryAn uber-quick tool to create a Pelican static-site and deploy it to GitHub Pages.
upload_time2025-07-21 03:20:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords generate pelican static website
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center"><img width="400" alt="turbopelican logo" src="https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/logo.svg"/></div>

# turbopelican

[![turbopelican](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/badge/v2.json)](https://github.com/turbopelican/turbopelican)
[![PyPI Version](https://img.shields.io/pypi/v/turbopelican.svg)](https://pypi.python.org/pypi/turbopelican)
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)

An uber-quick tool to create a Pelican static-site and deploy it to GitHub
Pages.

* [Explanation](#explanation)
* [Usage](#usage)
  * [Configuration](#configuration)
* [Development](#development)
  * [NeoVim](#neovim)

## Explanation

GitHub lets you host static websites at your own subdomain. If your GitHub
username is **mrjohndoe**, you can host a website at
`https://mrjohndoe.github.io`. The same applies for organizations. If your
GitHub organization is called **MySpecialOrg**, you can host a website at
`https://myspecialorg.github.io`.

`turbopelican` is a tool which swiftly creates a static website to deploy at
your subdomain. Any developer with a GitHub account and `uv` installed
(**[see here](https://docs.astral.sh/uv/getting-started/installation/)**) can
deploy a website in minutes.

## Usage

Before you run `turbopelican`, create a new repository where you will keep the
source for your website.

> ℹ️  **_NOTE:_**  Make sure that the site-url uses the GitHub repository's name.
For example, if you want the website to be `https://johndoe.github.io`, your
GitHub repository will need to be called `johndoe.github.io`.

![Create your repository on GitHub](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/create-repo.png)

After your repository is created, copy the git repository URL. You'll need it
later.

![Obtain your repository URL](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/get-repo-reference.png)

Then enter your settings for your repository, and under "**Code and
automation**" click "**Pages**". The section "**Build and deployment**" allows
you to choose a source. Chose "**GitHub actions**".

![Configure site publication](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/github-actions-settings.png)

Next, you need to run `turbopelican`. Users are recommended to run
`turbopelican` using `uvx`:

![Run turbopelican](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/run-turbopelican-init.gif)

You can use the defaults, or choose your own values. In the example above, I
have decided to give the website a non-default name, but I have left the other
settings. `turbopelican` then creates a new repository
`my-turbopelican-website`, with everything ready to push to GitHub.

> ℹ️  **_NOTE:_**  Make sure that the site-url uses the GitHub repository's name.
For example, if you want the website to be `https://johndoe.github.io`, your
GitHub repository will need to be called `johndoe.github.io`.

You will then need to push your code to GitHub:

```sh
cd my-turbopelican-website
git remote add origin git@github.com:my-turbopelican-website/my-turbopelican-website.github.io.git # Use your own git repo reference
git push -q --set-upstream origin main
```

Now look at your repository on GitHub. You should be able to see the
repository:

![View new repository](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/view-new-repo.png)

If you navigate back to the settings for GitHub Pages, you should see a
message informing you that your website is already live.

> ℹ️  **_NOTE:_** It may take a minute for this prompt to appear, because
GitHub Actions must first deploy your website.

![Site is live](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/site-is-live.png)

If you follow the link, you should be able to see your newly deployed website.

![View website](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/main-page.png)

You can learn more about Pelican [here](https://getpelican.com).

It is also possible to add a GitHub Page website to an *existing* repository
using the `turbopelican adorn` command, which works similarly to the
`turbopelican init` command.

### Configuration

Pelican still targets Python 3.9, which does not bundle built-in support for
reading TOML configuration. Projects using `turbopelican` require Python 3.11
or higher, and therefore adopt the newer convention of placing configuration
in a TOML file rather than Python scripts. Generally, you should only need to
modify `turbopelican.toml`, rather than `pelicanconf.py` or `publishconf.py`.

## Development

Ensure you have [uv](https://docs.astral.sh/uv/getting-started/installation/)
and [git](https://git-scm.com/downloads) installed. You will need to create a
[fork](https://github.com/turbopelican/turbopelican/fork) of the repository.
Then you should navigate to GitHub Actions
(*https://github.com/yourusername/turbopelican/actions*) and enable workflows
on your repository. After that, you can clone your fork onto your computer.

```sh
git clone git@github.com:yourusername/turbopelican.git
cd turbopelican
uv sync
```

When you need to check that the branch can pass CI, you can run the Makefile
like so:

```sh
make ci
```

Once you push your branch to GitHub, the workflow "**Run CI**" should run. If
you have not enabled workflows yet, do so, and then run the workflow manually.
Pull requests should be made only for branches which pass CI. Once it has
passed, you should then open a pull request. If you are contributing a new
feature or breaking changes, you should set the base reference to the current
feature branch. Otherwise, you should set the base reference to **main**.

### NeoVim

Contributors to turbopelican are encouraged to use
[NeoVim](https://neovim.io/) as their IDE during development, in conjunction
with [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig). When you
launch NeoVim, you should pass the project's IDE settings like so:

```sh
. .venv/bin/activate
nvim -u init.lua
```

This will ensure that you receive Ruff and Pyright warnings in your editor. It
will also automatically format any Python code on write.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "turbopelican",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "generate, pelican, static, website",
    "author": null,
    "author_email": "Elliot Simpson <elliot@p-s.co.nz>",
    "download_url": "https://files.pythonhosted.org/packages/ab/2d/7514407d8324cce066bb6333ce8b57b7f9f7eea521912a75983809a12690/turbopelican-0.6.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\"><img width=\"400\" alt=\"turbopelican logo\" src=\"https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/logo.svg\"/></div>\n\n# turbopelican\n\n[![turbopelican](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/badge/v2.json)](https://github.com/turbopelican/turbopelican)\n[![PyPI Version](https://img.shields.io/pypi/v/turbopelican.svg)](https://pypi.python.org/pypi/turbopelican)\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\n\nAn uber-quick tool to create a Pelican static-site and deploy it to GitHub\nPages.\n\n* [Explanation](#explanation)\n* [Usage](#usage)\n  * [Configuration](#configuration)\n* [Development](#development)\n  * [NeoVim](#neovim)\n\n## Explanation\n\nGitHub lets you host static websites at your own subdomain. If your GitHub\nusername is **mrjohndoe**, you can host a website at\n`https://mrjohndoe.github.io`. The same applies for organizations. If your\nGitHub organization is called **MySpecialOrg**, you can host a website at\n`https://myspecialorg.github.io`.\n\n`turbopelican` is a tool which swiftly creates a static website to deploy at\nyour subdomain. Any developer with a GitHub account and `uv` installed\n(**[see here](https://docs.astral.sh/uv/getting-started/installation/)**) can\ndeploy a website in minutes.\n\n## Usage\n\nBefore you run `turbopelican`, create a new repository where you will keep the\nsource for your website.\n\n> \u2139\ufe0f  **_NOTE:_**  Make sure that the site-url uses the GitHub repository's name.\nFor example, if you want the website to be `https://johndoe.github.io`, your\nGitHub repository will need to be called `johndoe.github.io`.\n\n![Create your repository on GitHub](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/create-repo.png)\n\nAfter your repository is created, copy the git repository URL. You'll need it\nlater.\n\n![Obtain your repository URL](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/get-repo-reference.png)\n\nThen enter your settings for your repository, and under \"**Code and\nautomation**\" click \"**Pages**\". The section \"**Build and deployment**\" allows\nyou to choose a source. Chose \"**GitHub actions**\".\n\n![Configure site publication](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/github-actions-settings.png)\n\nNext, you need to run `turbopelican`. Users are recommended to run\n`turbopelican` using `uvx`:\n\n![Run turbopelican](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/run-turbopelican-init.gif)\n\nYou can use the defaults, or choose your own values. In the example above, I\nhave decided to give the website a non-default name, but I have left the other\nsettings. `turbopelican` then creates a new repository\n`my-turbopelican-website`, with everything ready to push to GitHub.\n\n> \u2139\ufe0f  **_NOTE:_**  Make sure that the site-url uses the GitHub repository's name.\nFor example, if you want the website to be `https://johndoe.github.io`, your\nGitHub repository will need to be called `johndoe.github.io`.\n\nYou will then need to push your code to GitHub:\n\n```sh\ncd my-turbopelican-website\ngit remote add origin git@github.com:my-turbopelican-website/my-turbopelican-website.github.io.git # Use your own git repo reference\ngit push -q --set-upstream origin main\n```\n\nNow look at your repository on GitHub. You should be able to see the\nrepository:\n\n![View new repository](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/view-new-repo.png)\n\nIf you navigate back to the settings for GitHub Pages, you should see a\nmessage informing you that your website is already live.\n\n> \u2139\ufe0f  **_NOTE:_** It may take a minute for this prompt to appear, because\nGitHub Actions must first deploy your website.\n\n![Site is live](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/site-is-live.png)\n\nIf you follow the link, you should be able to see your newly deployed website.\n\n![View website](https://raw.githubusercontent.com/turbopelican/turbopelican/refs/heads/main/assets/readme/main-page.png)\n\nYou can learn more about Pelican [here](https://getpelican.com).\n\nIt is also possible to add a GitHub Page website to an *existing* repository\nusing the `turbopelican adorn` command, which works similarly to the\n`turbopelican init` command.\n\n### Configuration\n\nPelican still targets Python 3.9, which does not bundle built-in support for\nreading TOML configuration. Projects using `turbopelican` require Python 3.11\nor higher, and therefore adopt the newer convention of placing configuration\nin a TOML file rather than Python scripts. Generally, you should only need to\nmodify `turbopelican.toml`, rather than `pelicanconf.py` or `publishconf.py`.\n\n## Development\n\nEnsure you have [uv](https://docs.astral.sh/uv/getting-started/installation/)\nand [git](https://git-scm.com/downloads) installed. You will need to create a\n[fork](https://github.com/turbopelican/turbopelican/fork) of the repository.\nThen you should navigate to GitHub Actions\n(*https://github.com/yourusername/turbopelican/actions*) and enable workflows\non your repository. After that, you can clone your fork onto your computer.\n\n```sh\ngit clone git@github.com:yourusername/turbopelican.git\ncd turbopelican\nuv sync\n```\n\nWhen you need to check that the branch can pass CI, you can run the Makefile\nlike so:\n\n```sh\nmake ci\n```\n\nOnce you push your branch to GitHub, the workflow \"**Run CI**\" should run. If\nyou have not enabled workflows yet, do so, and then run the workflow manually.\nPull requests should be made only for branches which pass CI. Once it has\npassed, you should then open a pull request. If you are contributing a new\nfeature or breaking changes, you should set the base reference to the current\nfeature branch. Otherwise, you should set the base reference to **main**.\n\n### NeoVim\n\nContributors to turbopelican are encouraged to use\n[NeoVim](https://neovim.io/) as their IDE during development, in conjunction\nwith [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig). When you\nlaunch NeoVim, you should pass the project's IDE settings like so:\n\n```sh\n. .venv/bin/activate\nnvim -u init.lua\n```\n\nThis will ensure that you receive Ruff and Pyright warnings in your editor. It\nwill also automatically format any Python code on write.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "An uber-quick tool to create a Pelican static-site and deploy it to GitHub Pages.",
    "version": "0.6.1",
    "project_urls": {
        "Changelog": "https://github.com/turbopelican/turbopelican/blob/main/CHANGELOG.md",
        "Homepage": "https://turbopelican.github.io",
        "Issues": "https://github.com/turbopelican/turbopelican/issues",
        "Source": "https://github.com/turbopelican/turbopelican"
    },
    "split_keywords": [
        "generate",
        " pelican",
        " static",
        " website"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cd581676a8b6c08c49711fdc7ebe0ffa2eb29bea6435750778452d3652efba87",
                "md5": "a10c97841a991a809730d7b86ddda4a6",
                "sha256": "af1caabef25d5bc94cabe23e052e78dd6991ea5aab1a1537cd41077b828b8e0a"
            },
            "downloads": -1,
            "filename": "turbopelican-0.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a10c97841a991a809730d7b86ddda4a6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 96433,
            "upload_time": "2025-07-21T03:20:50",
            "upload_time_iso_8601": "2025-07-21T03:20:50.846782Z",
            "url": "https://files.pythonhosted.org/packages/cd/58/1676a8b6c08c49711fdc7ebe0ffa2eb29bea6435750778452d3652efba87/turbopelican-0.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ab2d7514407d8324cce066bb6333ce8b57b7f9f7eea521912a75983809a12690",
                "md5": "d914a3ccce334b022049b0e9cdf07bf2",
                "sha256": "860785fa30d8231a0d913d4b7dedc89127dae7c9e8fa54e61cd4f1cd22f8ac64"
            },
            "downloads": -1,
            "filename": "turbopelican-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d914a3ccce334b022049b0e9cdf07bf2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 966072,
            "upload_time": "2025-07-21T03:20:52",
            "upload_time_iso_8601": "2025-07-21T03:20:52.076334Z",
            "url": "https://files.pythonhosted.org/packages/ab/2d/7514407d8324cce066bb6333ce8b57b7f9f7eea521912a75983809a12690/turbopelican-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-21 03:20:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "turbopelican",
    "github_project": "turbopelican",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "turbopelican"
}
        
Elapsed time: 0.85407s