Commit Graph

555 Commits

Author SHA1 Message Date
Tom Alexander
7ce9dafd96
Fix parsing citations inside paragraphs. 2023-07-21 18:52:02 -04:00
Tom Alexander
d678391789
Fix parsing semicolons. 2023-07-21 18:42:22 -04:00
Tom Alexander
1a8bf01fba
Fix simple citations by making prefixes and suffixes optional. 2023-07-21 18:19:39 -04:00
Tom Alexander
4ad297f58a
Add a test for a simple citation. 2023-07-21 18:00:19 -04:00
Tom Alexander
6b47a6c6c3
Initial implementation for citations.
This implementation definitely has bugs and is completely untested at this point. I'm just committing the initial "assume everything works" version before I did into debugging and fixing.
2023-07-21 17:52:18 -04:00
Tom Alexander
e24b413cd0
Finish first implementation of citation reference. 2023-07-21 16:38:49 -04:00
Tom Alexander
339ff5cd26
Implement key parser and begin key_suffix parser. 2023-07-20 01:13:49 -04:00
Tom Alexander
d5c611674e
Create structure for citations. 2023-07-20 00:38:16 -04:00
Tom Alexander
7611deb1ff
Forgot to add the exit matcher nodes to the context and match the trailing ']'. 2023-07-19 23:40:26 -04:00
Tom Alexander
b850f59640
Implement parser for inline footnotes. 2023-07-19 23:20:17 -04:00
Tom Alexander
a36a820e84
Implement parser for the simplest form of footnote reference. 2023-07-19 21:32:08 -04:00
Tom Alexander
6822069c2f
Implement the parser for anonymous footnotes. 2023-07-19 21:14:09 -04:00
Tom Alexander
5fb66a586d
Implement a function to detect the end of a footnote reference definition with balanced brackets. 2023-07-19 20:52:09 -04:00
Tom Alexander
9c2eb3b122
Create structure for footnote references. 2023-07-19 18:56:46 -04:00
Tom Alexander
95e033a99b
Implement the export snippet parser. 2023-07-19 00:38:19 -04:00
Tom Alexander
1fb8ce9af6
Create structure for export snippets. 2023-07-19 00:09:16 -04:00
Tom Alexander
5e73ca74d5
Fix embedding text that coincidentally matches org-mode object syntax inside a LaTeX environment.
I was using the plain_text matcher before which adds its own exit condition that does not apply to LaTeX environments.
2023-07-18 23:27:48 -04:00
Tom Alexander
0d6f6288c9
Support escaping backslash in sexp. 2023-07-18 23:08:58 -04:00
Tom Alexander
a817eefce7
Add form 6 of LaTeX fragment. 2023-07-18 22:39:05 -04:00
Tom Alexander
4f5c40cd4b
Add forms 4 and 5 of LaTeX fragment. 2023-07-18 22:21:52 -04:00
Tom Alexander
faf81d0143
Add forms 2 and 3 of LaTeX fragment. 2023-07-18 22:02:38 -04:00
Tom Alexander
c79b8c7833
Implement the first form of LaTeX fragment. 2023-07-18 21:50:29 -04:00
Tom Alexander
5ad8fdf4b2
Add test cases. 2023-07-18 21:14:49 -04:00
Tom Alexander
3ab0dd4531
Create structure for LaTeX fragments. 2023-07-18 21:14:49 -04:00
Tom Alexander
754e9ff7d7
Implement entity parser. 2023-07-18 20:35:55 -04:00
Tom Alexander
21f46d09e6
Create structure for entities. 2023-07-18 20:05:39 -04:00
fluxcdbot
bab9232ebc CI: autofix rust code.
All checks were successful
semver Build semver has succeeded
rust-test Build rust-test has succeeded
rustfmt Build rustfmt has succeeded
2023-07-18 17:51:28 +00:00
fluxcdbot
0cd398c30c CI: autofix rust code.
Some checks failed
rustfmt Build rustfmt has failed
rust-test Build rust-test has succeeded
semver Build semver has succeeded
2023-07-18 17:48:21 +00:00
Tom Alexander
167ffa650c
Enable another test. 2023-07-14 20:58:11 -04:00
Tom Alexander
27d863b875
Fix the simple test by allowing bold to start/end with <> and by capturing trailing whitespace from radio links. 2023-07-14 20:55:16 -04:00
Tom Alexander
e608b73d1a
Implement all-token iteration.
Some checks failed
rust-test Build rust-test has failed
Radio targets are now being properly detected and they trigger re-parses but the tests do not yet pass.
2023-07-14 20:45:31 -04:00
Tom Alexander
b27f911ff3
Finish implementing token iteration. 2023-07-14 20:24:06 -04:00
Tom Alexander
08e6efe5f5
Filling in more of the iter_tokens tree. 2023-07-14 20:18:30 -04:00
Tom Alexander
0e73b83bf3
Filling in more of the iter_tokens tree. 2023-07-14 20:09:24 -04:00
Tom Alexander
793e560bd5
Boxing made it work. 2023-07-14 19:57:27 -04:00
Tom Alexander
0073af19e2
Running into an issue returning different iterators from the same function. 2023-07-14 19:54:41 -04:00
Tom Alexander
688779ba40
Fix tests. 2023-07-14 19:09:54 -04:00
Tom Alexander
bd04451d58
Implement the second parsing pass. 2023-07-14 19:06:58 -04:00
Tom Alexander
cdd3517655
Include the trailing space for the bolds. 2023-07-14 18:32:16 -04:00
Tom Alexander
7ca8beac5a
Allow matching bolds in radio link targets. 2023-07-14 18:27:09 -04:00
Tom Alexander
4ba1e63dde
Add a test for bold inside a radio target. 2023-07-14 18:12:04 -04:00
Tom Alexander
e4c6ca2880
Add tracing.
Some checks failed
rust-test Build rust-test has failed
2023-07-14 18:05:31 -04:00
Tom Alexander
b9a7c3f7f3
Fix lifetime issue. 2023-07-14 18:04:01 -04:00
Tom Alexander
4966b02b79
Expanded rematch_target to 3 lifetimes, no fix. 2023-07-14 17:45:20 -04:00
Tom Alexander
ddaefdbf78
Nearly done implementing re-matching of bold, but running into a lifetime issue. 2023-07-14 17:37:46 -04:00
Tom Alexander
e5c1b68b0e
Add a basic test showing the radio link rematching working on plain text.
Some checks failed
rust-test Build rust-test has failed
2023-07-14 16:51:23 -04:00
Tom Alexander
66ae70e790
Implement the rematch target parser. 2023-07-14 16:32:52 -04:00
Tom Alexander
0014dfc21f
Implement the radio link parser.
The parser depends on the rematch_target parser which is not yet implemented.
2023-07-14 16:18:04 -04:00
Tom Alexander
c44e7d642f
Starting code for iterating over the parsed ast. 2023-07-14 12:28:52 -04:00
Tom Alexander
3fc3ba58aa
Defining the RadioTarget context element. 2023-07-14 12:28:52 -04:00
Tom Alexander
22bb42882b
Implement rematch for plain text. 2023-07-14 12:28:51 -04:00
Tom Alexander
397083c658
Define a RematchObject trait for matching radio links based on radio targets. 2023-07-14 12:28:51 -04:00
fluxcdbot
57ac625350 CI: format rust code.
All checks were successful
semver Build semver has succeeded
rustfmt Build rustfmt has succeeded
rust-test Build rust-test has succeeded
2023-07-14 04:28:56 +00:00
Tom Alexander
cdd813fbe6
First implementation of macro. 2023-07-14 00:20:32 -04:00
Tom Alexander
d24c26de7b
Create structure for org macros. 2023-07-13 23:30:06 -04:00
Tom Alexander
d353c1623a
Implement the angle link parser. 2023-07-13 23:02:12 -04:00
Tom Alexander
178221a0a2
Update plain link to allow for exit matchers to trigger during matching. 2023-07-13 22:54:59 -04:00
Tom Alexander
ed8b1405db
Create structure for angle links. 2023-07-13 22:42:42 -04:00
Tom Alexander
475e25ba8e
Add a TODO.
Some checks failed
semver Build semver has succeeded
cargo-fmt Build cargo-fmt has succeeded
build-organic-test Build build-organic-test has succeeded
build-cargo-fmt Build build-cargo-fmt has succeeded
organic-test Build organic-test has failed
2023-07-13 19:33:38 -04:00
fluxcdbot
999c992bdf CI: format rust code.
Some checks failed
semver Build semver has succeeded
cargo-fmt Build cargo-fmt has succeeded
build-organic-test Build build-organic-test has failed
organic-test Build organic-test has failed
build-cargo-fmt Build build-cargo-fmt has succeeded
2023-07-13 23:22:10 +00:00
Tom Alexander
5f4e240af0
Add an initial implementation of PlainLink. 2023-07-13 19:20:17 -04:00
Tom Alexander
59f061ecca
Define pre and post matchers for plain link.
All checks were successful
organic-test Build organic-test has succeeded
2023-07-13 18:30:18 -04:00
Tom Alexander
dcec5c490a
Create structure for plain links.
All checks were successful
organic-test Build organic-test has succeeded
2023-07-13 18:18:07 -04:00
Tom Alexander
ec889bc868
Clean up old unused code. 2023-04-24 20:25:49 -04:00
Tom Alexander
a5585eb01f
Add a not yet implemented function.
This helps when creating new parsers since todo!()s will panic the whole parser.
2023-04-24 20:11:13 -04:00
Tom Alexander
6ed33d3522
Derive partial eq for all objects so we can match radio links. 2023-04-24 19:25:22 -04:00
Tom Alexander
fec7d51f75
Implement radio targets. 2023-04-24 19:18:38 -04:00
Tom Alexander
64c17e654a
Code structure for radio links and radio targets. 2023-04-24 19:06:45 -04:00
Tom Alexander
bc8e640574
Make plain text exit condition not an exit matcher.
I think this condition needs to not exist deeper down the tree.
2023-04-24 18:08:28 -04:00
Tom Alexander
b2ee44ec09
Simplify the implementation of plain text. 2023-04-24 17:58:10 -04:00
Tom Alexander
90a47b7b49
Exit text markup if the parent exit matcher is triggering. 2023-04-24 17:16:07 -04:00
Tom Alexander
ed174c1c41
Fix nested bolds child eating the parent exit. 2023-04-24 16:48:33 -04:00
Tom Alexander
f9d83ee09d
Consume trailing whitespace for links. 2023-04-24 16:29:19 -04:00
Tom Alexander
b2b1e9272c
Format. 2023-04-24 16:19:48 -04:00
Tom Alexander
28759edb3b
Remove unused imports. 2023-04-24 16:19:29 -04:00
Tom Alexander
87be28ed15
Fix matching of description in links. 2023-04-24 16:05:46 -04:00
Tom Alexander
b4d4453186
Just doing a simple match everything for path reg. 2023-04-23 17:37:35 -04:00
Tom Alexander
8a828195bd
Implement all of regular link except for pathreg. 2023-04-23 16:53:02 -04:00
Tom Alexander
3600f46e3b
Initial code structure for regular links. 2023-04-23 16:17:52 -04:00
Tom Alexander
f1bd7f2d1b
Add support for rust-coreutils in integration test script. 2023-04-23 16:12:34 -04:00
Tom Alexander
1044625acb
Clean up import. 2023-04-22 22:58:10 -04:00
Tom Alexander
9968aedd74
Make sure text markup doesn't have interior spaces. 2023-04-22 22:34:37 -04:00
Tom Alexander
f964481544
Switch to using plain text with no additional exit matcher added. 2023-04-22 22:06:34 -04:00
Tom Alexander
208e2cfe87
Clean up imports. 2023-04-22 21:51:53 -04:00
Tom Alexander
0ca6ce504f
Simulate trailing whitespace in empty greater blocks just like drawers. 2023-04-22 21:45:18 -04:00
Tom Alexander
4d4d30c597
Simulate trailing whitespace in empty dynamic blocks just like drawers. 2023-04-22 21:43:11 -04:00
Tom Alexander
cade02eb72
Make the empty drawer honor an immediate exit condition. 2023-04-22 21:39:46 -04:00
Tom Alexander
189edaa24a
Simulate the trailing whitespace capture for empty drawer. 2023-04-22 21:25:46 -04:00
Tom Alexander
62c226fb47
Fix matching only the specific markup. 2023-04-22 21:01:29 -04:00
Tom Alexander
e6c5670a85
Support string-based text markup (code and verbatim). 2023-04-22 20:57:30 -04:00
Tom Alexander
036f4add4a
The object parsers separated out. 2023-04-22 20:48:01 -04:00
Tom Alexander
d2fc8a513f
Separate out the text markup types into their own types. 2023-04-22 20:22:07 -04:00
Tom Alexander
fab4ce0544
Fix a warning. 2023-04-22 20:04:35 -04:00
Tom Alexander
b6233811c3
Fix the implementation of post. 2023-04-22 20:02:51 -04:00
Tom Alexander
a4cce121c0
Add an exit matcher to plain text. 2023-04-22 19:46:27 -04:00
Tom Alexander
9a3bde0d80
First attempt at text markup. 2023-04-22 19:34:13 -04:00
Tom Alexander
0b3f414ecf
Get tracing back into the element parser. 2023-04-22 19:15:29 -04:00
Tom Alexander
f70babdcf4
Get tracing back into the latex environemtn end parser. 2023-04-22 19:12:48 -04:00
Tom Alexander
c0809cce10
Starting to parse text markup. 2023-04-22 19:06:48 -04:00
Tom Alexander
538031c688
Call the text markup parser. 2023-04-22 18:54:19 -04:00