Coeur is just another Python tool to generate static sites with thousands of pages, with a bit of extra power.
"cœur" is a French word for "core" or "heart".
This tool is called Coeur for two personal reasons: 1. it will be the core of my blog-farm; 2. one of my favorite places is the Sacre Cœur in Paris.
Coeur is a common python package, you can install from pypi:
pip install --user blog-coeur
The command to be used is blog-coeur
and get help
to start to use:
blog-coeur --help
The ssg
module in Coeur allows you to create a static website from a sqlite
database and import content from markdown files.
To start a new project, run the create
command:
blog-coeur ssg create my-blog
Run a simple local server to build your blog:
blog-coeur ssg server --max-posts=1000 --port=8081
Manage your blog’s posts through a simple web interface:
blog-coeur ssg admin
Go to: http://localhost:8000/admin
Build your blog with the build
command:
blog-coeur ssg build
The blog will be generated in the public
folder.
To import your markdown files from Zola Framework to Coeur:
blog-coeur ssg markdown-to-db "./content"
- Import markdown files from Zola Framework
- Basic blog template based on Zolarwind
- HTML Minification
- Sitemap generation with pagination
- Hot reload
- Post management via SQLAlchemyAdmin dashboard (partial)
- Custom templates (themes)
- Documentation about templates
- Support to use post Tags
- Hot reload v2 - add websocket to auto-refresh the html in the browser
- Manage posts - fixes for multiple databases
The CMP module was designed to simplify content creation powered by the OpenAI API.
The content will be created as posts inside the blog's SQLite database, which is generated by the ssg module. It's important to start your project using the ssg command.
Assuming you already have the blog created with Coeur, you need to set up your OpenAI key in the .env
file and then you can use the cmp module as follows:
blog-coeur cmp title-to-post "Aguas de Lindóia" --custom-prompt="Create a full article about the city, need to be funny and talking in a positive way about the place"
The first parameter is required and will be the title of the post.
It is highly recommended to use a custom-prompt to enhance your experience and get better results. This prompt can be in any language.
You can also set the img-url
parameter to include an image in the post. This needs to be a valid image URL, such as one hosted on S3.
This module will help us to automatically publish the blog posts on social media.
blog-coeur pds publish [OPTIONS] CHANNELS:{instagram}...
This is an open-source project, and I need help to make it better.
If you are a developer, feel free to contact me to work on items from my personal roadmap, or you can suggest something new. Be free, let's do it together.
If you are a company, contact me to support the growth of my project. I'm open to improve it for specifics new use-cases.