Commit Graph

44 Commits

Author SHA1 Message Date
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
d4b290ebe6 Remove unnecessary let statements from render macro. 2023-12-19 17:31:50 -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
cb3278aba5 Create a struct that will combine all the context for converting intermediate objects into the dust render context. 2023-12-19 14:54:12 -05:00
Tom Alexander
94d9a95967 Add a basic template for the blog stream page. 2023-12-19 14:13:29 -05:00
Tom Alexander
6511115b95 Implement a flawed version of RenderBlogStreamEntry::new.
There are some shortcomings in this implementation listed in the comments, but this is the general structure.
2023-12-19 10:59:34 -05:00
Tom Alexander
53cd55932b Implement RenderBlogStream::new.
I still need to implement RenderBlogStreamEntry::new.
2023-12-19 10:47:03 -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
e8ed4a4f4a Initial structure for rendering a blog post stream. 2023-12-17 15:32:07 -05:00
Tom Alexander
c98489cacb Add the page header to the render context. 2023-12-17 14:45:42 -05:00
Tom Alexander
35dbab0ceb Create a page header struct. 2023-12-17 14:45:42 -05:00
Tom Alexander
b654ca4859 Add render phase to tables. 2023-10-31 20:29:37 -04:00
Tom Alexander
ef4d315bf2 Run cargo fix. 2023-10-31 20:02:46 -04:00
Tom Alexander
159d8fb72a Add render stage for text markup. 2023-10-31 20:02:04 -04:00
Tom Alexander
ae933b491e Use macros for the intermediate to render step.
This is largely to make changing the type signature of these functions easier by significantly reducing the amount of places that duplicates the signature.
2023-10-31 19:48:05 -04:00
Tom Alexander
8695cf17c5 Copy the value of latex fragments through the pipeline. 2023-10-31 19:14:36 -04:00
Tom Alexander
ada11816fb Run cargo fix. 2023-10-29 22:31:29 -04:00
Tom Alexander
3720558d93 Render the footnote definitions. 2023-10-29 18:46:13 -04:00
Tom Alexander
b66ec507ef Create a render ast node type. 2023-10-29 18:46:13 -04:00
Tom Alexander
cd27869122 Populate render context for footnote references. 2023-10-29 14:45:02 -04:00
Tom Alexander
6d83828012 Add inline source block. 2023-10-29 10:44:32 -04:00
Tom Alexander
313313ae53 Initial structure for unhighlighted source blocks. 2023-10-29 09:37:27 -04:00
Tom Alexander
d9a3b13780 Use raw_link instead of path for regular links. 2023-10-29 09:31:00 -04:00
Tom Alexander
3d89492518 Add regular link. 2023-10-27 20:43:57 -04:00
Tom Alexander
793789bdf2 Add entity. 2023-10-27 20:27:50 -04:00
Tom Alexander
bfc9e3ed80 Add plain list items. 2023-10-27 20:18:19 -04:00
Tom Alexander
62ffc76376 Add basic templates for plain list. 2023-10-27 20:12:56 -04:00
Tom Alexander
5bbb12327b Add template for quote blocks. 2023-10-27 19:53:18 -04:00
Tom Alexander
f6c475c80c Add templates for text markup. 2023-10-27 19:42:33 -04:00
Tom Alexander
c279bad13a Add children to heading. 2023-10-27 19:22:17 -04:00
Tom Alexander
b0ac14ee58 Add the skeletons for the objects. 2023-10-27 17:48:19 -04:00
Tom Alexander
23713a934c Add the skeletons for the elements. 2023-10-27 17:08:58 -04:00
Tom Alexander
354d24cf69 Add comment as a no-op. 2023-10-27 16:14:37 -04:00
Tom Alexander
5891ac7fb7 Add keyword and as no-op. 2023-10-27 16:09:44 -04:00
Tom Alexander
4a6948cde7 Add paragraph. 2023-10-27 15:46:56 -04:00
Tom Alexander
5b34942b64 Add element. 2023-10-27 15:46:56 -04:00
Tom Alexander
7b01230234 Add target. 2023-10-27 15:05:50 -04: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
1ac39c2a6f Add RenderPlainText. 2023-10-27 13:01:45 -04:00
Tom Alexander
744d3e50fb Convert intermediate objects into render objects. 2023-10-27 12:47:12 -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
2b7a19a1d4 Introduce the corresponding non-render types. 2023-10-24 00:36:08 -04:00