rewrite the project as a static site generator

this removes Flask, reworks a number of library methods accordingly, and
adds generators and build commands to process the instance directory
(largely unchanged, except config.py is now config.json) and spit out
files suitable to be served by a web server such as Nginx.

there are probably some rough edges here, but overall this works.

also note, as this is no longer server software on a network, the
license has changed from AGPLv3 to GPLv3, and the "or any later version"
allowance has been removed

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
2025-03-12 10:28:38 -05:00
parent ed12272d4d
commit 7eb485c6ae
45 changed files with 1389 additions and 1587 deletions

View File

@@ -4,19 +4,19 @@ build-backend = "setuptools.build_meta"
[project]
name = "incorporeal-cms"
description = "A CMS for serving Markdown files with a bit of dynamicism."
description = "A lightweight static site generator software for Markdown-based sites."
readme = "README.md"
license = {text = "AGPL-3.0-or-later"}
license = {text = "GPL-3.0-only"}
authors = [
{name = "Brian S. Stephan", email = "bss@incorporeal.org"},
]
requires-python = ">=3.8"
dependencies = ["feedgen", "Flask", "Markdown"]
requires-python = ">=3.9"
dependencies = ["feedgen", "jinja2", "Markdown", "termcolor"]
dynamic = ["version"]
classifiers = [
"Framework :: Flask",
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Operating System :: OS Independent",
"Topic :: Text Processing :: Markup :: Markdown",
]
@@ -34,6 +34,9 @@ dev = ["bandit", "dlint", "flake8", "flake8-blind-except", "flake8-builtins", "f
"setuptools-scm", "tox", "twine"]
dot = ["pydot"]
[project.scripts]
incorporealcms-build = "incorporealcms.ssg:build"
[tool.flake8]
enable-extensions = "G,M"
exclude = [".tox/", "venv/", "_version.py"]