These are the bare minimum yet possibly over-explained steps for creating a Pelican plugin.
Please let us know in an issue if we forgot anything!
- Fork thedropin.
- Change all dir names and references to this project's name[1]_.
[1] | Python project names are typically short and lower-cased. If you make a single-word project, congrats, you never have to worry about inconsistent casing between projects. If you absolutely must use spacing, use underscores for project names, directories, and filenames. |
See instructions for installing Pipenv. Then run pipenv install --dev
.
This is now where you get to get 🎨 creative! Good luck, have fun.
This is wading into dangerous territory to start recommending text-editor practices, but if you open your editor from inside the Pipenv shell, that may help your editor loading the proper environment-specific dependencies.
pipenv run tests
pipenv run lints
Two great ways to share your code with the community.
See Contributing a plugin and Using Git and Github about adding a plugin to the pelican-plugins
repo.
This is probably the hardest part, and is why I'd wager there are so few Pelican projects registered on PyPI[2]_. Begin with the manual steps. Afterwards, add support for the automated steps as soon as possible while everything is fresh in your head.
[2] | This is based on the following three classifier searches. At the time of writing these are the tallies, with possible overlap between them; Framework :: Pelican (20 projects) + Framework :: Pelican :: Plugins (12 projects) + Framework :: Pelican :: Themes (5 projects) = 37. |
Your first time uploading a project to PyPI requires using Twine. All of the below commands can be found in the Pipfile [scripts]
section for your convenience.
pipenv shell
Enter your dev environment wheretwine
will be accessible.python setup.py sdist bdist_wheel
Create a normal distribution.- Register on PyPI.
- Think hard on your project name once more before uploading. Short lowercase 1 word names are best.
Optionally, you can do some checks on your distribution before attempting an official upload.
- Also register on TestPyPI if you intend to test your distribution before making it official.
twine check dist/*
Check the distribution you made in the second step.twine upload --repository testpypi dist/*
Run a test of the upload. Preview at https://test.pypi.org/project/thedropin.
Back to the official upload steps..
twine upload dist/*
Upload your project to PyPI.
Continue below before you're tired!
- Visit https://pypi.org/manage/account/token/ to get your API token.
- Create a project-scoped token.
gem install travis
Install the Travis CLI.travis login
Log into the CLI app. Use--com
if you've opted into the https://travis-ci.com/ beta.travis encrypt "your-api-token" --com
Override the token in this repo. Travis is migrating to Travis travis-ci.com.python ./release.py
Save your changes and bump the version.
Try bumping the version and tags again using the release script. After you've found your groove with this, give yourself a pat on the back. Job well done!
The installation instructions for your new plugin will now be the following.
pipenv install --dev thedropin
update your
pelicanconf.py
's plugins settings to include the following.import thedropin PLUGINS = [thedropin]
You can now include {{ article.emoji }}
or {{ page.emoji }}
in your templates. This can be overridden in the article, or page's, metadata. For example, :emoji: 🧙
.
MIT