Commit Graph

32 Commits

Author SHA1 Message Date
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 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
Brian S. Stephan 715bc38d78
serve per-instance static files at custom-static/ 2022-12-31 10:51:36 -06:00
Brian S. Stephan 0f03ad6f38
allow pages to supply extra footer text 2022-09-16 13:35:40 -05:00
Brian S. Stephan 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
Brian S. Stephan 08305e26db
pydot: handle multiple dot images in one file 2022-04-19 08:41:59 -05:00
Brian S. Stephan f15d955067
initial crack at a block-level figure parser
I didn't like the other figure + figcaption parsers, they either assumed
a lot about usage (e.g. images only), or they were inline parsers that
either wrapped the figure in a paragraph tag (which is incorrect syntax)
or did span trickery (annoying)

so, this handles images and maybe other things, and does things properly
with figures as their own blocks. incomplete but it works with my
images, and should allow for looping (for multi-line content) in the
future?
2022-04-19 08:41:55 -05:00
Brian S. Stephan e61c55bed2 handle graphviz parsing errors more cleanly 2021-06-24 11:37:57 -05:00
Brian S. Stephan da055acda6 provide markdown extension to render graphviz
this is server side, and a more standard format, and thus I like it more
than mermaid, which I've been using at work. but, I really wanted a
server-side option (see my manifesto) for drawing relationship graphs,
for D&D stuff of all things.

this adds an optional 'graphviz' feature to package installation which
consequently depends on pydot
2021-06-24 09:46:26 -05:00
Brian S. Stephan 954f7f4e80 allow markdown files to specify a redirect
closes #13
2021-06-06 22:24:35 -05:00
Brian S. Stephan e8377adcf5 allow pages to specify different templates 2021-04-30 19:41:39 -05:00
Brian S. Stephan cde82ab918 don't route /media separately anymore 2021-04-17 11:16:34 -05:00
Brian S. Stephan 60715a3a5c make request -> instance conversion support symlink dirs
I think this also clarifies the code, a bit
2021-04-17 10:31:05 -05:00
Brian S. Stephan c90f0a3a42 treat symlinks as redirects
closes #7
2021-04-15 21:44:02 -05:00
Brian S. Stephan be88c3c1bc don't error on breadcrumbs if a dir doesn't have index.md
fixes #8
2021-04-14 21:35:14 -05:00
Brian S. Stephan ced67bec8b allow for serving files directly inside pages/ 2021-04-14 20:45:50 -05:00
Brian S. Stephan 39d78af524 add error handler pages for 400, 404, 500 2021-02-21 19:35:52 -06:00
Brian S. Stephan f08c1117d8 move site suffix into title always
this tweaks the behavior of the title to always append ' - suffix' to
any title (from the meta tag, or generated via request path), unless the
page explicitly specifies an empty Title meta tag
2021-02-20 23:21:29 -06:00
Brian S. Stephan 15c88d920b use request path as an alternative to Title metadata 2021-02-20 22:43:42 -06:00
Brian S. Stephan 2e0e87fe95 begin rewriting path to resource resolver
this code was getting too messy and scattered, and I realized that Flask
wasn't doing as much as I thought it was here, so now we need more
safety and sanity checks
2021-02-20 17:42:58 -06:00
Brian S. Stephan 8a6f4d6b45 test multi-line metadata entries 2021-01-17 23:58:57 -06:00
Brian S. Stephan c25fefa9e3 add opengraph metadata to pages, via Markdown meta 2021-01-17 23:02:14 -06:00
Brian S. Stephan 7cf11986c5 user-selectable light and dark themes
cookies, template rendering with different CSS files via default or
request param or cookie, etc.
2020-10-30 00:19:19 -05:00
Brian S. Stephan 14f6125f4e use new-style tox.ini, add flake8-docstrings, add docstrings 2020-06-17 20:18:43 -05:00
Brian S. Stephan 576ffc359c show some navigation on every page
closes #1
2020-03-15 20:33:23 -05:00
Brian S. Stephan 2634c144a7 support a media/ dir under the instance dir
this is for miscellaneous files that should be served directly rather
than being a page route
2020-03-08 11:48:49 -05:00
Brian S. Stephan fe0ca7d90b rename journal module to pages
this better represents the general purpose of this module, rather than
just "journal" stuff (though that will likely be a use)
2020-03-07 14:11:12 -06:00
Brian S. Stephan 1f420eab30 journal: render markdown content + title metadata
this has a really basic template and whatnot at the moment, so
styling/etc isn't done, but this is maybe the last major piece before I
could actually see pushing this onto the site
2020-03-07 12:06:21 -06:00
Brian S. Stephan 0118eb2994 improve the logging inside pytest 2020-03-07 11:45:42 -06:00
Brian S. Stephan 053e3d96a3 attempt to load resolved journal files
one step closer to actual functionality, attempt to load the resolved
markdown file in the instance directory, or 404 if it doesn't exist
2020-03-07 10:08:23 -06:00