Commit Graph

39 Commits

Author SHA1 Message Date
Tom Alexander eb67327574
Do not error if posts directory does not exist.
build-natter Build build-natter has succeeded Details
format Build format has succeeded Details
rust-clippy Build rust-clippy has succeeded Details
rust-test Build rust-test has succeeded Details
2023-12-23 17:14:31 -05:00
Tom Alexander 8905c9356b
Add a build for regular non-blog-post pages from org source. 2023-12-23 16:55:49 -05:00
Tom Alexander 138d694b27
Copy static files over to the output directory. 2023-12-23 15:45:23 -05:00
Tom Alexander 397d4ea0bc
Fix clippy issues.
rust-test Build rust-test has succeeded Details
rust-clippy Build rust-clippy has succeeded Details
build-natter Build build-natter has succeeded Details
format Build format has succeeded Details
2023-12-23 07:08:06 -05:00
fluxcdbot df339f20fa CI: autofix rust code.
rust-clippy Build rust-clippy has failed Details
rust-test Build rust-test has succeeded Details
format Build format has succeeded Details
2023-12-23 01:46:40 +00:00
Tom Alexander 35dff5cdaf
Rename to natter. 2023-12-21 19:28:31 -05:00
Tom Alexander 2e1c979127
Add a prefix to footnote IDs.
This avoids a conflict with multiple blog posts rendering in the same stream.
2023-12-19 18:01:54 -05:00
Tom Alexander 261fe8a1a2
Fix the links to the blog posts. 2023-12-19 16:49:46 -05:00
Tom Alexander add267d616
Switch over to using the render context in render calls. 2023-12-19 16:20:12 -05:00
Tom Alexander cbe2010407
Invoke dust to render the stream pages.
At this point the render_blog_stream function is done, but RenderBlogStream::new needs to be implemented to actually generate the render context. The body of this function should be similar to convert_blog_post_page_to_render_context.
2023-12-17 17:26:15 -05:00
Tom Alexander 2ba4a5e3d7
Generate newer and older links. 2023-12-17 17:16:26 -05:00
Tom Alexander c3482cf1e4
Chunking the blog posts for the stream. 2023-12-17 16:57:37 -05:00
Tom Alexander fdf84e3d0b
Finding the index page. 2023-12-17 15:45:50 -05:00
Tom Alexander e8ed4a4f4a
Initial structure for rendering a blog post stream. 2023-12-17 15:32:07 -05:00
Tom Alexander 884215a7e1
Writing the stylesheets to the output folder. 2023-12-17 13:46:47 -05:00
Tom Alexander 20c55f0708
Loading stylesheets from the default environment. 2023-12-17 12:43:47 -05:00
Tom Alexander e3b5f7f74f
Rename blog_post module to intermediate.
This module is mostly the intermediate representation of the AST, so the renaming is to make that more clear. The three forms are parsed => intermediate => render.

Parsed comes from Organic and is a direct translation of the org-mode text.

Intermediate converts the parsed data into owned values and does any calculations that are needed on the data (for example: assigning numbers to footnotes.)

Render takes intermediate and translates it into the format expected by the dust templates. The processing in this step should be minimal since all the logic should be in the intermediate step.
2023-10-27 13:10:21 -04:00
Tom Alexander 31a3efe417
Only print the contexts.
This allows us to pipe the output to jq to see the context easier. We can see the rendered output in the files written to disk.
2023-10-24 00:51:28 -04:00
Tom Alexander 3ac7826d2c
Move the logic into convert_blog_post_page_to_render_context.
I was writing it in the build command's rust files for convenience, but now its getting long enough to warrant moving it into its final location.
2023-10-23 22:10:26 -04:00
Tom Alexander 178ce877bc
Render the head for the page. 2023-10-23 21:51:15 -04:00
Tom Alexander 2b6f86d4e9
Switch to rendering blog post pages instead of blog posts. 2023-10-23 20:30:43 -04:00
Tom Alexander 199621b6f1
Remove the separation of the main template.
I don't think this is necessary, and it certainly isn't necessary at this level.
2023-10-22 18:39:05 -04:00
Tom Alexander 586fd8a066
Getting rendered output from duster. 2023-10-22 18:31:56 -04:00
Tom Alexander 043cc5eda4
I think I have worked around the lifetime issue by keeping references to the intermediate str's. 2023-10-22 18:12:45 -04:00
Tom Alexander ce0819e85b
Feeding the templates into the renderer integration. 2023-10-22 17:31:12 -04:00
Tom Alexander fc5342adce
Make the renderer a bit more generic. 2023-10-22 16:40:58 -04:00
Tom Alexander 24bac982f1
Starting to create the renderer integrations.
These are the layer directly over dust which can be used by anything, not just blog posts.
2023-10-22 16:26:43 -04:00
Tom Alexander 5f34cb2dd5
Creating a SiteRenderer struct to handle the logic for invoking dust. 2023-10-22 16:10:41 -04:00
Tom Alexander 0b6900eeca
Serialize the RenderBlogPost to JSON.
This struct still does not contain anything, but I'm just setting up the skeleton for this code.
2023-10-22 16:01:42 -04:00
Tom Alexander a0c5b2d852
Don't use walkdir for getting the post directories.
We are only iterating a single level of depth anyway, so read_dir is enough.
2023-10-22 14:49:08 -04:00
Tom Alexander a9fbb4cd63
Get the output directory and clear it. 2023-10-22 14:40:59 -04:00
Tom Alexander 07e4209048
Setting the post id based on the folder name. 2023-10-22 13:50:11 -04:00
Tom Alexander 2f0f3ab346
Switch to using CustomError because a boxed StdError is not Send. 2023-10-22 13:44:03 -04:00
Tom Alexander 816780589f
Parse the org-mode files. 2023-10-21 18:00:51 -04:00
Tom Alexander acaa12cb6e
Read the org files inside the writer directory. 2023-10-20 20:16:22 -04:00
Tom Alexander 051e86e65a
Remove the AddPost command.
I will be putting this back in later but having the skeleton sitting there unused has no value at this time.
2023-10-20 19:13:22 -04:00
Tom Alexander 672ca07a0e
Introduce a new config struct the lives above the raw disk implementation.
This should let us include values that would not be written to disk like the folder containing the config.
2023-10-18 21:25:37 -04:00
Tom Alexander 933387eb6f
Writing the writer.toml to a folder when running init. 2023-10-18 20:21:28 -04:00
Tom Alexander 8b5930f277
Set up folder structure for the command handlers. 2023-10-18 19:54:18 -04:00