Per-project Tech Stack for Websites
This document elaborates upon the tech stacks that we use to develop and maintain the websites under our remit.
Following is a list of websites that we help develop and maintain.
Hosted at https://labs.fedoraproject.org/
Hosted at https://arm.fedoraproject.org/
Hosted at https://alt.fedoraproject.org/
Hosted at https://fedoracommunity.org/
Hosted at https://flocktofedora.org/
Following is a list of tools that we make use of.
Genshi is a template engine for XML-based vocabularies written in Python. Genshi is used to easily insert generated output into XML-based languages, usually HTML, and reuse elements between documents. Genshi’s syntax is based on Kid, but its architecture is different.
The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt. It is unique in that it combines the speed and XML feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.
Jinja is a web template engine for the Python programming language. It was created by Armin Ronacher and is licensed under a BSD License. Jinja is similar to the Django template engine but provides Python-like expressions while ensuring that the templates are evaluated in a sandbox.
Frozen-Flask freezes a Flask application into a set of static files. The result can be hosted without any server-side software other than a traditional web server. Frozen-Flask is only about deployment: you can use Frozen-Flask to only have static HTML files on your server.
RSS (Rich Site Summary) is a format for delivering regularly changing web content. Many news-related sites, weblogs and other online publishers syndicate their content as an RSS Feed to whoever wants it. Feedparser and similar libraries are made use of while using Python 3.
Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.
SCSS stands for the Sassy Cascading Style Sheets. The more advanced variant of CSS is SCSS. It was created by Chris Eppstein and Natalie Weizenbaum and designed by Hampton Catlin. It is also referred to as Sassy CSS due to its advanced features.
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.
Antora is a modular, multi-repository site generator designed for creating documentation sites from content composed in AsciiDoc® and processed with Asciidoctor. Antora’s toolchain and workflow help documentation and engineering teams manage documentation sites.
Asciidoctor is a fast, open source, Ruby-based text processor for parsing AsciiDoc® into a document model and converting it to output formats such as HTML 5, DocBook 5, manual pages, PDF, EPUB 3, and other formats. Docs of the said format are fed into Antora for being parsed.
In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. It remains widely used amidst the more prevalent IDE build features.
Podman is an open-source project that is available on most Linux platforms and resides on GitHub. Podman is a daemonless container engine for developing, managing, and running Open Container Initiative (OCI) containers and container images on your Linux System.
Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows.