Commit Graph

97 Commits

Author SHA1 Message Date
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
e42edb3f49 Merge branch 'src_block' 2023-10-29 10:44:42 -04:00
Tom Alexander
6d83828012 Add inline source block. 2023-10-29 10:44:32 -04:00
Tom Alexander
eaea37f448 Add a basic template for source blocks. 2023-10-29 10:41:03 -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
8d9a50226a Add a tree-sitter-highlight dependency for source blocks. 2023-10-27 21:17:00 -04:00
Tom Alexander
f164838953 Add a space after objects. 2023-10-27 20:54:24 -04:00
Tom Alexander
fe3f2642fe Add a marker to make incomplete templates more obvious in the rendered html. 2023-10-27 20:51:27 -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
dbea9318e9 Merge branch 'plain_list' 2023-10-27 20:21:30 -04:00
Tom Alexander
4adaeb0341 Add line break. 2023-10-27 20:21:21 -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
4c3bea06d1 Add templates for target, keyword, comment block and comment. 2023-10-27 19:30:16 -04:00
Tom Alexander
0e9d74b2c8 Merge branch 'element_template' 2023-10-27 19:26:38 -04:00
Tom Alexander
6bf1480366 Add a template for paragraph. 2023-10-27 19:26:27 -04:00
Tom Alexander
c279bad13a Add children to heading. 2023-10-27 19:22:17 -04:00
Tom Alexander
bd982fb62d Add a template for section. 2023-10-27 18:30:29 -04:00
Tom Alexander
53a531f568 Add dispatcher for object and element. 2023-10-27 18:26:56 -04:00
Tom Alexander
67b60087af Add templates for the ast nodes. 2023-10-27 18:15:53 -04:00
Tom Alexander
8a3b85d5fa Merge branch 'element_noop' 2023-10-27 17:49:04 -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
860b601f62 Merge branch 'build_site' 2023-10-27 16:19:39 -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