Skip to main content

Crinita: static website generator

Author: David Salac https://www.github.com/david-salac

Project sites: Crinita

Crinita is a Python application for generating static websites like blogs, data catalogues or simple static pages. It directly creates HTML files based on inputs (without requiring to run any script languages on the server-side).

Blog and static website generator

Generally speaking, Crinita is a static website generator. That is an application that generates simple HTML files that cover all the content of sites from all inputs - composed mainly of the definition of pages, articles, datasets and other entities on websites). So after running of static websites generator, you have a set of *.html files (including index.html) that allows you to browse sites.

There are many advantages of using static websites generator rather than the standard approach using some web frameworks (like PHP, Django). Mainly, the result can be simply deployed to production as you do not need to configure anything on the server-side. There are many ways how to deploy the outcome; the most popular is GitHub pages (technically a free place where to host your static pages). Another significant advantage is the security perspective - it is almost impossible to hack static websites (what a massive difference if you consider how vulnerable are websites running on WordPress or similar technologies). Last but not least advantage is cost-effectiveness - you do not need to use any expensive technologies for hosting (like AWS) or pay directly for these services (like Wix, Medium).

Crinita allows you to generate blog, data catalogues or simple website. It includes advanced features like tags, the possibility to edit meta tags for each entity. Interface for using Crinita is simple, so you can learn it quickly. Installation of Crinita is a simple task as it does not require any system dependencies.

Typical use cases

There are some typical use cases when it is beneficial to use Crinita, among the most popular are:

  1. Need to leave technically weak services like Blogger: There are many services that allow you to run your blog. One of the most popular is Blogger. However, the technical quality of these services is notoriously weak (particularly if it comes to Blogger). It is often hard to use them for anything even bit more technical (like including articles with code examples). The resulting page often is also technically weak - no SEO-friendly output (usually it's impossible to index article in Google at all).
  2. Do not want to pay for services like Medium: Many helpful services can run your blog (or static pages) in a technically suitable way. One of the reasonably good services is Medium. Although it is quite good, it is also quite expensive - which can demotivate many potentials bloggers.
  3. Afraid of security vulnerabilities of WordPress: if people want to run their blog on their infrastructure, the typical first choice is WordPress. It is simple, quick to install and easy to use. Unfortunately, it is notoriously problematic in the security point of view. Everyone can find a lot of articles and analysis of these vulnerabilities. It is mainly the security issue that makes WordPress almost useless for many cases. Because Crinita works on different principles, it is practically impossible to hack resulting pages.
  4. Difficulties with back-up and restore procedures: it is often hard (and sometimes impossible) to back-up your blog (pages) content. So if your pages are hacked (or destroyed by any other way), you lose all your work. This is a frequent problem with WordPress - where even if you create a back-up of your database - restoring it is a fairly difficult task. Some external services (Blogger, Medium) do not allow backing-up in any reasonable format at all. Crinita, on the other hand, is backed-up in principle (because generator files are just simple Python scripts that can be easily pushed to GitHub).
  5. Simple to use and quick to install: one of the essential quality of Crinita is that it is simple to install and to use. On the other hand, it is presumed here, that user is fluent in Python developing and HTML coding. If this is your case, it just requires to install Crinita from PyPi archive, download layouts and styles and then just write some content.
  6. Cheap and primitive infrastructure: as you do not need to run any script on the server-side (like PHP, Ruby, etc.), infrastructure for the Crinita is fairly simple. Technically the simplest way how to run your websites is to deploy them through GitHub pages (technically the free hosting for static websites) - which is a highly recommended approach (as you can have both generating scripts and content on one place and backed-up).

How to install Crinita

In order to install Crnita, you need to have prepared your Python (in version at least 3.8) environment ready first. There are many manuals on how to install Python on your machine (so there is no reason why to explain it here again).

To install Crinita, you can use your PIP directly with a default package manager (PyPi.org). Just write a command:

pip install crinita

To check if the installation is successful, write in some script:

import crinita as cr

If you do not see any error, it looks good.

How to use Crinita

The simplest way where to start to generate your own websites is to use the logic of existing ones:

  1. Use https://github.com/david-salac/itblog.github.io for the complex blog (with articles and pages).
  2. Use https://github.com/david-salac/crinita.github.io for the simple static websites.

In all these cases, the generating script is in the folder generator. There is also a definition of pages and articles there.

Metadata

Release files for crinita 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crinita 2.0.1
File Size Uploaded
crinita-2.0.1.tar.gz 27.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crinita 2.0.1
File Interpreter ABI Platform
crinita-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 61.5 kB

Release files / crinita-2.0.1.tar.gz

Download URL crinita-2.0.1.tar.gz
Size 27.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c05ca033b2dcef2a25f7d82f29431bb992226c32c80a0e4cd9308202eb190a64
BLAKE2b-256 checksum
How to use checksums
7cd713953530f5bc34043d9c0642b1a99423213e89ffc114d1d34c7ee8760b67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0

Release files / crinita-2.0.1-py3-none-any.whl

Download URL crinita-2.0.1-py3-none-any.whl
Size 34.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b7781175cbeae3ff68e6e965faef3b957197a0244d0f33038daee61ee9b110e
BLAKE2b-256 checksum
How to use checksums
57461ccc812dfc08c5881a6d38e4b3e3b9f85847549359ac1d9f59912c78ece3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page