Commit Graph

179 Commits

Author SHA1 Message Date
c46a1c0bae
don't handle custom-static dirs specially anymore
they're just more static files among all the static files we serve, they
should go into pages/ like everything else

fixes 

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 21:26:25 -05:00
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 

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2025-03-18 21:09:50 -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
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
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
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
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
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
f12b76680f
use reuse lint for REUSE compliance
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-04-16 00:38:28 -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
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
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
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
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
e9af2de21e
don't assume all styles are in the static directory
this is to make room for a second, instance-configured spot for them
2022-12-31 10:16:35 -06:00
4a2f650a33
don't hardcode styles to present, use config
now that we can override the styles in practice, we also need to only
present what is possible in the HTML
2022-12-31 09:53:22 -06:00
fd0fb390ff
allow for overriding PAGE_STYLES
moving this allows for per-instance customizations later, but that won't
be practical until serving styles from the instance dir is also allowed.
but, this sets the ground work and does allow for removing some styles
(e.g. if someone wanted to only allow 'plain').

also I still need to add the ability to present the themes list dynamically
2022-12-31 09:40:13 -06:00
0f19fcb174
fix bad copy and paste job on link styles 2022-09-16 14:16:13 -05:00
83eb464be9
style the potential for links in the footer 2022-09-16 13:40:23 -05:00
0f03ad6f38
allow pages to supply extra footer text 2022-09-16 13:35:40 -05:00
21ea24ffa1
header style tweaks, deemphasizing it a bit 2022-06-05 21:30:49 -05:00
aa6a27dd8b
make the header bigger, and align header and content padding better 2022-05-17 07:57:23 -05:00
c80172cffd
go back to red headers and links as normal-colored text
the new way to do the links without adding links to images is probably
dumb and/or missing some stuff, but it works and does what I want, and I
think I like the old look of the colors better, so time to try it and
see if it sticks still
2022-05-17 07:57:23 -05:00
89ea2fb87e
give the header nav links an underline on hover 2022-05-17 07:57:23 -05:00
8ac5b25208
get rid of the slight recoloring of bold text 2022-05-17 07:57:23 -05:00
54b953f5ed
go back to the old, balanced width alignments 2022-05-17 07:57:23 -05:00
de0641b08f
tweak the two-tone backgrounds and whitespace up the header 2022-05-17 07:57:23 -05:00
3454de17fc
style links with color, not underlines
this allows me to link to images (e.g. in figures) without having a
separate override class to remove their underline, which is ugly. on
account of making links red, it was looking like too much red
(especially on the index) with headers also being red, so this makes
headers the default text color.

still not 100% committed to this but I'm trying it out
2022-04-19 08:41:59 -05:00
1fe6623587
remove .img-frame class, unnecessary with figures 2022-04-19 08:41:59 -05:00
ec042e466c
scoot the footer down a bit, and give it margins like the main content's 2022-04-19 08:41:59 -05:00
6daed848d0
remove duplicate link styles
all these subclasses or whatever are the same
2022-04-19 08:41:59 -05:00
502adac89c
make the pydot syntax backwards compatible with code fences
without this, the code fence parser was getting thrown off if you didn't
have the pydot extension loaded, which was thwarting backwards
compatibility. this makes the pydot bits look like an attribute to the
vanilla parser, so at least then the vanilla markdown renders as
intended
2022-04-19 08:41:59 -05:00