d49b9d48a8
don't add an artificial ./ subdir due to how os.path.relpath works
...
this fixes stuff like og:urls of https://foo/./ or https://foo/./page
and also removes an extra layer of depth in the breadcrumb hierarchy,
just by suppressing the '.' in relpath output at the root of pages/
fixes #21
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 21:09:50 -05:00
9caf08a277
changelog for v2.0.1
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 08:24:46 -05:00
8aabd93273
don't copy .files into the SSG output dir
...
they may be vim swap files and that kind of garbage
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 08:20:58 -05:00
6d7987cfae
don't require the host to be in the Image tag
...
now that we know our base host via config, we can stop hardcoding it in
each Image tag
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 08:13:18 -05:00
abc05ee4e8
fix how my email address displays in gitea
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 13:22:30 -05:00
f623ffdd7c
don't refer to my manual uploads now that I push to PyPI
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 13:13:25 -05:00
2a4cc26c06
slight tweak to the description, and clarify what isn't GPLv3
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 11:01:23 -05:00
4f39bea3a9
fix up the object attributes for in/out dirs in the generator
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 10:39:18 -05:00
9104769299
document my regrettable opening of Pandora's box
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 10:12:18 -05:00
5b17041b66
move the style switcher to the a separate .js file
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 10:06:15 -05:00
d52fc4df9a
fix where the feed generator outputs to, and also output error pages
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 09:07:56 -05:00
4644aea4b0
bump the copyright on some new/rewritten modules
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 08:06:06 -05:00
749576f535
README cleanups
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 07:13:53 -05:00
afc85faa2f
make the style cookie apply to the whole site
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 01:00:10 -05:00
f3eed9d4f2
fix and test the linking to the style switcher
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 00:47:00 -05:00
41350d4b7a
remove debug stuff from the style switcher JS
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 00:38:37 -05:00
168bca05f7
make the call to generate the RSS/ATOM feeds when building
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 00:33:01 -05:00
4c9ed712bc
add a changelog documenting v2.0.0
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-17 00:08:54 -05:00
7eb485c6ae
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>
2025-03-16 23:56:37 -05:00
ed12272d4d
default tables to 100% width
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-12-05 23:44:04 -06:00
1e839d691b
update reference to the DCO now that it's in CONTRIBUTING.md
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-05-02 09:25:40 -05:00
aeff73e3fc
add twine to development packages
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-26 10:13:23 -05:00
d28ddf9392
remove "trailing slash on void elements" which "has no effect"
...
caught by the W3C validator
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-26 10:11:38 -05:00
249f9d4962
put ancillary docs under the main license
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-21 17:48:43 -05:00
f12b76680f
use reuse lint
for REUSE compliance
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-16 00:38:28 -05:00
c21a9b2638
replace plain text LICENSE with LICENSE.md
...
REUSE specification will care of the .txt in a bit
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-16 00:14:39 -05:00
6d7bfc58c8
add copyright and license tags to CSS and templates
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-16 00:10:34 -05:00
071be9b62d
requirements recompile + adding reuse
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-15 23:58:10 -05:00
ae584d5bf8
move the DCO into CONTRIBUTING.md
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-12 00:58:52 -05:00
05fb402029
add some quick contribution info and point at an IRC channel
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-02-25 00:29:08 -06:00
ada8691f85
version bumps
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-02-24 23:55:01 -06:00
d4ce04cd34
update feed test directory for the new structure
...
I guess this proves that the old structure still works with the new
code, though it creates IDs that have the file path in them
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 22:35:58 -06:00
63a263724c
simplify the expected feed structure
...
I don't think there's any need for a million directories, on second
thought, so just put YYMMDD prefixed files in the feed/ directory
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 22:17:28 -06:00
02c2176c4f
link to the Atom and RSS feeds in the template
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 22:09:58 -06:00
30d6f99c9b
return the proper atom and rss content types for the feeds
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 15:31:18 -06:00
575e2ad387
provide author information for the feed and entries
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 15:25:46 -06:00
b26975421c
make the feed ID be a valid URL for compliance
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 15:19:57 -06:00
6dc443e59f
implement a rudimentary Atom/RSS feed module
...
this provides a somewhat unconfigurable (at the moment) feed module
which provides Atom and RSS feeds. entries are determined by symlinks to
content pages, because my core CMS usage is still more general and not
blog-like. the symlinks allow for arbitrarily adding entries as I see
fit.
this also moves core Markdown parser stuff to the library module, since
that's used by the feed as well as normal pages
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 14:55:02 -06:00
5a9a36f463
deduplicate TITLE_SUFFIX from new DOMAIN_NAME
...
I will need the domain name for feed stuff, and I'm already crudely
using the title suffix in the nav as if it was a domain name, so let's just be
explicit in the case I ever change my mind on domain-in-title styling
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 11:55:01 -06:00
680a2bc764
add python 3.12 to tox environments
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 11:13:08 -06:00
713632fe7a
unpin tox in requirements
...
for some reason bandit wasn't earlier catching the SubElement usage but
now it is, but it's harmless anyway so we'll just suppress it.
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 11:12:59 -06:00
bf646db1e8
convert tooling to pyproject.toml based
...
still has dynamic versioning and etc.
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-30 10:33:28 -06:00
2871e5a000
version bumps
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-28 15:40:56 -06:00
7b225a6de3
adding a compliant copyright line to all code
...
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-28 15:33:41 -06:00
e1dc2afc7b
add SPDX-License-Identifier and DCO information
...
this includes my personal signoff on the MAINTAINERS.md for DCO purposes
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-18 11:15:56 -06:00
0fef13c71a
version bumps, especially flask and werkzeug 3
2023-10-07 14:02:23 -05:00
6b5cdb7f7e
add python 3.11 to tox tests
2023-10-07 13:07:05 -05:00
55cfad90a9
use werkzeug safe_join to sanitize the requested path
...
no tests changed, so my implementation might have been good, but let's
use the provided check
2022-12-31 11:53:14 -06:00
b3dfab2611
simplify and better standardize the link underline
2022-12-31 11:33:36 -06:00
715bc38d78
serve per-instance static files at custom-static/
2022-12-31 10:51:36 -06:00