Commit Graph

82 Commits

Author SHA1 Message Date
Tom Alexander
a966be8122
Remove closures from iselector macro. 2023-10-29 22:29:28 -04:00
Tom Alexander
24b9782146
Avoid closures for the intermediate macro. 2023-10-29 22:29:28 -04:00
Tom Alexander
3d44d20384
Running into borrow issue on intermediate. 2023-10-29 18:46:14 -04:00
Tom Alexander
f98a09bc59
Use macros for creating the intermediate stage.
This is to make it easier to change function signatures by consolidating the places where the signatures exist.
2023-10-29 18:46:14 -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
645ae26701
Remove intermediate lifetime. 2023-10-29 14:53:11 -04:00
Tom Alexander
6109902945
Create an intermediate ast node type. 2023-10-29 14:45:02 -04:00
Tom Alexander
cd27869122
Populate render context for footnote references. 2023-10-29 14:45:02 -04:00
Tom Alexander
795945f0da
Register footnote definitions. 2023-10-29 14:45:02 -04:00
Tom Alexander
cb7c28c1ae
Add intermediate lifetime. 2023-10-29 12:24:49 -04:00
Tom Alexander
52ca300de3
Beginning to hand out footnote ids. 2023-10-29 12:24:49 -04:00
Tom Alexander
06dcd22e69
Switch to split inclusive instead of manually-implemented full lines iterator. 2023-10-29 10:59:33 -04:00
Tom Alexander
f87c453459
Move the full lines iterator to its own file. 2023-10-29 10:55:03 -04:00
Tom Alexander
6d83828012
Add inline source block. 2023-10-29 10:44:32 -04:00
Tom Alexander
fb99fd2b39
Get the source code lines. 2023-10-29 10:32:05 -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
f9377d7609
Make converstion to intermediate state async.
We are going to need to do things like call external tools for syntax highlighting so we are going to need async in there eventually.
2023-10-27 15:55:19 -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
c6cf5f75ac
Introduce a registry into the conversion to intermediate format. 2023-10-27 15:05:49 -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
4c59011389
Copy heading level. 2023-10-27 12:14:07 -04:00
Tom Alexander
ba2756c762
Create intermediate representation for plain text. 2023-10-27 10:23:05 -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
Tom Alexander
3b472a9e96
Introduce element and object enums. 2023-10-24 00:04:44 -04:00
Tom Alexander
77f8375d7a
Introduce an array of document elements. 2023-10-24 00:01:40 -04:00
Tom Alexander
3cfcae25a9
Move the render context to its own folder.
We are going to have a lot of render context types because there are so many org-mode elements/objects so I'm moving it to a separate folder for organization.
2023-10-23 23:49:35 -04:00
Tom Alexander
ab36a60545
Generate the minimum relative path by chopping off the shared stem. 2023-10-23 23:04:05 -04:00
Tom Alexander
68cae57f16
Add a function to get the shared portion of a path. 2023-10-23 22:50:43 -04:00
Tom Alexander
11bfb6836f
Include a self-link for the blog. 2023-10-23 22:38:00 -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