230 Commits

Author SHA1 Message Date
Tom Alexander
360b2d963d Merge branch 'compare_properties_the_other_nodes'
Some checks failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-10 02:10:09 -04:00
Tom Alexander
534c5ded3c Fix table type is required. 2023-10-10 02:07:36 -04:00
Tom Alexander
bdaf90af03 compare_properties timestamp. 2023-10-10 02:05:31 -04:00
Tom Alexander
1a67aac502 compare_properties latex environment. 2023-10-10 01:39:47 -04:00
Tom Alexander
9f166278f4 compare_properties babel call. 2023-10-10 01:36:48 -04:00
Tom Alexander
c2222c9102 compare_properties keyword. 2023-10-10 01:32:36 -04:00
Tom Alexander
fc104680eb compare_properties horizontal rule. 2023-10-10 01:29:00 -04:00
Tom Alexander
e40e3ff553 compare_properties fixed width area. 2023-10-10 01:27:37 -04:00
Tom Alexander
0b465fe290 compare_properties planning. 2023-10-10 01:24:44 -04:00
Tom Alexander
d5396e311b compare_properties diary sexp. 2023-10-10 01:22:16 -04:00
Tom Alexander
384242af87 compare_properties clock. 2023-10-10 01:19:14 -04:00
Tom Alexander
ec755bae8b compare_properties src block. 2023-10-10 01:13:09 -04:00
Tom Alexander
0b1e06f0d5 compare_properties export block. 2023-10-10 01:07:41 -04:00
Tom Alexander
bdfa050ee3 compare_properties example block. 2023-10-10 01:02:45 -04:00
Tom Alexander
ec98e1c3c5 compare_properties comment block. 2023-10-10 00:15:04 -04:00
Tom Alexander
0d0b1b2051 compare_properties verse block. 2023-10-10 00:12:40 -04:00
Tom Alexander
2215c32e57 compare_properties table cell. 2023-10-10 00:11:05 -04:00
Tom Alexander
cf257443b0 compare_properties table row. 2023-10-10 00:07:34 -04:00
Tom Alexander
62815621e4 compare_properties table. 2023-10-10 00:05:34 -04:00
Tom Alexander
7af5359e00 compare_properties node property. 2023-10-09 22:45:32 -04:00
Tom Alexander
d1184fa1d0 compare_properties property drawer. 2023-10-09 22:42:02 -04:00
Tom Alexander
5b146d7c07 compare_properties drawer. 2023-10-09 22:37:53 -04:00
Tom Alexander
926682d513 compare_properties comment. 2023-10-09 22:36:15 -04:00
Tom Alexander
4c89d6c813 compare_properties footnote definition. 2023-10-09 22:32:25 -04:00
Tom Alexander
62926bb91d compare_properties dynamic block. 2023-10-09 22:28:32 -04:00
Tom Alexander
9ab649ebd4 compare_properties special block. 2023-10-09 22:20:20 -04:00
Tom Alexander
ca1b633a9f compare_properties quote block. 2023-10-09 21:57:11 -04:00
Tom Alexander
f543caee00 compare_properties plain list item. 2023-10-09 21:55:29 -04:00
Tom Alexander
409a92333e compare_properties plain list. 2023-10-09 21:55:28 -04:00
Tom Alexander
7a38d1ead3 compare_properties paragraph. 2023-10-09 21:55:28 -04:00
Tom Alexander
33c53a14ab Switch back to the old compare heading function until we support additional properties. 2023-10-09 21:32:29 -04:00
Tom Alexander
65615c64d2 Implement a new compare_properties implementation of the heading comparison. 2023-10-09 21:27:18 -04:00
Tom Alexander
166e59b922 Implement a compare_property_numeric. 2023-10-09 21:04:41 -04:00
Tom Alexander
8e357ed3b6 compare_properties section. 2023-10-09 20:54:31 -04:00
Tom Alexander
45074e3be3 Add a test. 2023-10-09 20:50:19 -04:00
Tom Alexander
ee1d8ca321 Text markup uses confine context. 2023-10-09 20:36:38 -04:00
Tom Alexander
25531cc443 Accept eof as a disallowed character for plain links. 2023-10-09 20:24:43 -04:00
Tom Alexander
47a440147f Fix formatting.
Some checks failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-09 19:52:32 -04:00
Tom Alexander
8a91b9a074 Merge branch 'subscript_and_superscript_properties' 2023-10-09 19:52:05 -04:00
Tom Alexander
d1ef83afca Compare properties of subscript and superscript. 2023-10-09 19:51:31 -04:00
Tom Alexander
86dd526dde Merge branch 'statistics_cookie_properties' 2023-10-09 19:40:39 -04:00
Tom Alexander
4d88256394 Compare statistics cookies properties. 2023-10-09 19:40:13 -04:00
Tom Alexander
c49455e9ce Merge branch 'target_properties' 2023-10-09 19:37:54 -04:00
Tom Alexander
a588da2c4a Compare target properties. 2023-10-09 19:37:47 -04:00
Tom Alexander
869c98d8b2 Compare line break properties. 2023-10-09 19:33:51 -04:00
Tom Alexander
0374743cad Merge branch 'inline_source_block_properties' 2023-10-09 19:32:04 -04:00
Tom Alexander
4bc2f48738 Compare inline source block properties. 2023-10-09 19:31:57 -04:00
Tom Alexander
69500837f2 Merge branch 'inline_babel_properties' 2023-10-09 19:25:33 -04:00
Tom Alexander
0d0b9863c3 Populate inline babel call fields. 2023-10-09 19:25:00 -04:00
Tom Alexander
6bc6fdc87b Compare properties for inline babel calls. 2023-10-09 19:21:58 -04:00
Tom Alexander
53b9deff10 Merge branch 'citation_properties'
Some checks failed
rustfmt Build rustfmt has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
2023-10-09 19:14:05 -04:00
Tom Alexander
627f16e3a0 Update text markup tests with failure cases. 2023-10-09 19:10:55 -04:00
Tom Alexander
bf1a281c29 Footnote reference description is in a confined context. 2023-10-09 18:23:13 -04:00
Tom Alexander
df4daa0e16 Do not include context in tracing. 2023-10-09 18:02:36 -04:00
Tom Alexander
5cd34ba3a2 Create a new context tree when calling into confine_context.
The parent exit matchers were causing an issue.
2023-10-09 18:02:36 -04:00
Tom Alexander
13b95cd0a1 Fix handling of text markup at the start/end of regular link descriptions and radio targets. 2023-10-09 18:02:36 -04:00
Tom Alexander
876d042c37 Fix tests. 2023-10-09 15:54:30 -04:00
Tom Alexander
81c0b7079f Do not include leading slash in citation style.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-09 15:48:43 -04:00
Tom Alexander
4a367dd7e0 Include closing semicolon in citation reference. 2023-10-09 15:45:10 -04:00
Tom Alexander
8a0f9d4540 Fix comparing key and mark prefix/suffix as optional. 2023-10-09 15:41:21 -04:00
Tom Alexander
f6155ecf93 Switch to returning ComparePropertiesResult.
This is to support returning lists of child results for properties that contain lists of ast nodes.
2023-10-09 15:33:33 -04:00
Tom Alexander
c077d34933 Populate citation reference properties. 2023-10-09 15:33:33 -04:00
Tom Alexander
1ecc3ecf9d Fill citation fields. 2023-10-09 15:33:33 -04:00
Tom Alexander
ced35e1694 Merge branch 'footnote_reference_properties' 2023-10-09 15:33:13 -04:00
Tom Alexander
840dc0a750 Support text markup at the start of a regular link description.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-09 14:02:27 -04:00
Tom Alexander
adc5a383c3 Allow text markup at the start of a radio target. 2023-10-09 13:47:36 -04:00
Tom Alexander
5ac12229f4 Fix footnote reference type. 2023-10-09 13:23:08 -04:00
Tom Alexander
9565435526 Compare footnote reference properties. 2023-10-09 13:14:35 -04:00
Tom Alexander
e39562c85d Roll out the new children functions to all compare functions using the new compare_properties macro.
We will roll it out to the rest of them when we move them over to the new compare_properties macro.
2023-10-09 13:08:45 -04:00
Tom Alexander
c49556bd5d Merge branch 'export_snippet_properties'
Some checks failed
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-09 13:02:07 -04:00
Tom Alexander
84ec2f2023 Introduce functions to compare children and assert there are no children. 2023-10-09 13:01:55 -04:00
Tom Alexander
00ed63dcaa Compare properties for export snippets. 2023-10-09 13:01:55 -04:00
Tom Alexander
8dde8ce4e1 Merge branch 'latex_fragment_properties' 2023-10-09 13:01:29 -04:00
Tom Alexander
4e551e6d7e Compare latex fragment properties.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-09 12:30:59 -04:00
Tom Alexander
ea29ad8667 Merge branch 'entity_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-09 10:33:20 -04:00
Tom Alexander
085e728c34 Add an all entities test without escaping braces. 2023-10-09 10:33:07 -04:00
Tom Alexander
99318f39e3 Do not accept escaping {} for entities ending in whitespace. 2023-10-09 10:33:07 -04:00
Tom Alexander
c679a85e77 Fix sorting of entity names. 2023-10-09 10:33:07 -04:00
Tom Alexander
fc17fc224c Update definitions to the version of entities used in the org-mode in the docker container. 2023-10-09 10:33:07 -04:00
Tom Alexander
7fe7e7a6ea Add use_brackets. 2023-10-09 10:33:07 -04:00
Tom Alexander
ef591556fe Populate entity fields. 2023-10-08 18:06:56 -04:00
Tom Alexander
c150aa4dea Add support for an org-entities global setting. 2023-10-08 18:01:42 -04:00
Tom Alexander
1df6777b0b Starting to compare entity properties. 2023-10-08 17:24:03 -04:00
Tom Alexander
8a109276df Merge branch 'macro_properties' 2023-10-08 17:17:51 -04:00
Tom Alexander
f07d041eb9 Fix handling capitalization in macro names.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-08 16:51:44 -04:00
Tom Alexander
9bdec391f1 Do not capture trailing whitespace on the final macro arg.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-08 16:39:22 -04:00
Tom Alexander
b9ead09dde Add test showing we are not handling trailing whitespace in macro args properly. 2023-10-08 16:34:28 -04:00
Tom Alexander
dd009498dd Switch to using coalesce_whitespace_escaped for macro args.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-08 16:19:25 -04:00
Tom Alexander
17c745ee71 Improve coalesce_whitespace_escaped to borrow when single spaces are used. 2023-10-08 16:15:49 -04:00
Tom Alexander
41aa0349a0 Add tests for coalesce_whitespace_escaped. 2023-10-08 16:06:52 -04:00
Tom Alexander
a6adeee40b Handle escaping the characters in org macro arguments. 2023-10-08 15:54:56 -04:00
Tom Alexander
a32cea8139 Coalesce whitespace in macro args. 2023-10-08 15:08:21 -04:00
Tom Alexander
37bc5ef712 Do not include whitespace at the end of value. 2023-10-08 14:48:29 -04:00
Tom Alexander
1a2f0856da Compare macro properties. 2023-10-08 14:40:01 -04:00
Tom Alexander
3f707149e3 Merge branch 'angle_link_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-08 14:18:25 -04:00
Tom Alexander
e9276e35ca Add comments. 2023-10-08 14:18:17 -04:00
Tom Alexander
3041a575f9 Fix lifetimes. 2023-10-08 14:13:02 -04:00
Tom Alexander
42dbda494a Switch to using a similar optimized Cow function for regular link. 2023-10-08 14:11:46 -04:00
Tom Alexander
0e791e67ab Move the angle link string processing functions to a util file.
Since I bothered to do the right thing and implement these as returning Cow so I can avoid unnecessary allocations, I figure I should move them to a util file so they can be re-used.
2023-10-08 13:36:57 -04:00
Tom Alexander
ba55e0df4f Remove all whitespace from search option if it contains any line breaks and handle triple+ slashes for file links. 2023-10-08 13:23:12 -04:00
Tom Alexander
d987b9b75b Remove line breaks from path and do not allow search option for protocol links. 2023-10-08 13:02:09 -04:00
Tom Alexander
aa253c38dd Parse out the angle link properties. 2023-10-08 12:46:18 -04:00
Tom Alexander
ceb5376b21 Fix handling of search option for plain links when parenthesis are involved. 2023-10-08 10:57:05 -04:00
Tom Alexander
b64c1c944b Allow :: to end links regardless of parenthesis. 2023-10-08 10:57:05 -04:00
Tom Alexander
8bc79f9ef3 Add tests for angle links. 2023-10-08 10:57:04 -04:00
Tom Alexander
488372b070 Merge branch 'plain_link_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-08 10:04:44 -04:00
Tom Alexander
120a06055f Handle 3 or more slashes in the path for regular links. 2023-10-08 09:54:10 -04:00
Tom Alexander
bbcafef8bf Handle 3 or more slashes in the path for plain links. 2023-10-08 09:51:12 -04:00
Tom Alexander
038535174b Do not allow empty path in plain links and do not remove "//" in regular links. 2023-10-08 09:34:47 -04:00
Tom Alexander
1bbe8fc688 Do not strip "//" from plain link path. 2023-10-08 09:28:09 -04:00
Tom Alexander
ba8115c648 Remove "//" from file paths. 2023-10-08 09:16:48 -04:00
Tom Alexander
0030ef4459 Parse application and handle parenthesis in regular links. 2023-10-08 09:10:47 -04:00
Tom Alexander
20a8683894 Handle puncuation-only search options.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has failed
2023-10-07 03:25:37 -04:00
Tom Alexander
3aa84c1743 Add test showing we are not handling puncutation-only search options properly. 2023-10-07 03:23:45 -04:00
Tom Alexander
7196e10b69 Set up regular links for adding application. 2023-10-07 03:14:16 -04:00
Tom Alexander
0c34df159f Add test showing we are not handling application in regular links properly. 2023-10-07 03:03:57 -04:00
Tom Alexander
ddb09a1805 Add support for application in plain links. 2023-10-07 03:00:40 -04:00
Tom Alexander
c58b850570 Add support for search options. 2023-10-07 02:42:07 -04:00
Tom Alexander
a55694176c Compare the properties of plain links. 2023-10-07 02:22:36 -04:00
Tom Alexander
6973d5a2c0 Since value and path are always the same for radio links, I removed the extra value. 2023-10-07 01:48:16 -04:00
Tom Alexander
592e773920 Add tests for plain link search options and relative paths. 2023-10-07 01:44:31 -04:00
Tom Alexander
be553aefb1 Add test showing plain links cannot be templates. 2023-10-07 01:44:31 -04:00
Tom Alexander
5694f80f41 Merge branch 'radio_target_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 01:43:58 -04:00
Tom Alexander
36327e92d7 Radio link did not need Cow.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
I was only using Cow because regular links can use templates which would require owned data. Radio links do not share this feature.
2023-10-07 01:26:52 -04:00
Tom Alexander
c70eb69ed6 Compare radio target properties. 2023-10-07 01:24:32 -04:00
Tom Alexander
8d9ff77799 Merge branch 'radio_link_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 01:14:12 -04:00
Tom Alexander
029791e0b2 Fix tests. 2023-10-07 01:01:04 -04:00
Tom Alexander
8d621b32dc Compare radio link properties.
Some checks failed
rust-test Build rust-test has failed
rust-build Build rust-build has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 00:57:55 -04:00
Tom Alexander
dfad7b7888 Merge branch 'regular_link_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 00:34:14 -04:00
Tom Alexander
56348a6d54 Actually absolute paths are files too.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-07 00:15:37 -04:00
Tom Alexander
65e142a215 Link templates support single-colons and inject the value at the end if no %s is found. 2023-10-06 23:55:21 -04:00
Tom Alexander
aa0a0b890e Relative paths are file links, absolute paths are fuzzy. 2023-10-06 23:48:55 -04:00
Tom Alexander
ab33730830 Search option also supports regex.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has failed
As seen on the list of possible search options at https://orgmode.org/manual/Search-Options.html.
2023-10-06 23:33:09 -04:00
Tom Alexander
4c8828b91b Apply the link templates. 2023-10-06 23:33:09 -04:00
Tom Alexander
2ba5156ee1 Add a global setting for link templates. 2023-10-06 20:34:13 -04:00
Tom Alexander
ae3a6ff919 Turns out links can have templates. 2023-10-06 20:23:19 -04:00
Tom Alexander
4716e1ce5b Switch to using AsRef<str> to make compare_property_quoted_string generic. 2023-10-06 20:23:19 -04:00
Tom Alexander
89fcf6cb54 Restrict protocol links to org-link-parameters. 2023-10-06 19:18:58 -04:00
Tom Alexander
f220fd63e5 Add org-link-parameters to the GlobalSettings. 2023-10-06 19:14:11 -04:00
Tom Alexander
7cf1f7b7bb Only orgify the link text if there are line breaks present. 2023-10-06 19:05:56 -04:00
Tom Alexander
135ca133ea Add tests for search option. 2023-10-06 18:56:11 -04:00
Tom Alexander
d126488891 Handle orgifying text in regular link path and raw-link. 2023-10-06 18:30:08 -04:00
Tom Alexander
51748afd41 Compare pathreg. 2023-10-06 17:28:26 -04:00
Tom Alexander
e84135985e Parse out the pathreg on regular links. 2023-10-06 17:21:43 -04:00
Tom Alexander
448902bb05 Add regular link tests for all the types. 2023-10-06 16:52:45 -04:00
Tom Alexander
65df18171a Add field list for regular link. 2023-10-06 16:42:31 -04:00
Tom Alexander
e2bc58a469 Merge branch 'compare_fields_macro'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-06 16:36:19 -04:00
Tom Alexander
fbe3c76ab7 Cleanup. 2023-10-06 16:32:49 -04:00
Tom Alexander
368c6a457e Wrap the parameter sets in parenthesis. 2023-10-06 16:19:43 -04:00
Tom Alexander
c7dbe596b3 Switch to more generic implementation. 2023-10-06 16:03:41 -04:00
Tom Alexander
3da52a0826 Make a more generic version of compare_property_quoted_string.
This allows for the rust value to be determined by a function rather than hard-coded.
2023-10-06 14:07:25 -04:00
Tom Alexander
ae11e390d1 Add a default case for tokens which do not have any expected properties except for :standard-properties. 2023-10-06 13:45:19 -04:00
Tom Alexander
45dd38ac2d Assume :standard-properties is an expected field. 2023-10-06 13:40:11 -04:00
Tom Alexander
7af18e2312 Move the EmacsField enum since it has nothing to do with ElispFact. 2023-10-06 13:32:39 -04:00
Tom Alexander
1b603f3a05 Implement the comparison. 2023-10-06 13:29:46 -04:00
Tom Alexander
d06e4de7b0 Starting a new macro for comparing fields.
This will help us assert that all fields are tested and that only expected fields are present.
2023-10-06 13:08:15 -04:00
Tom Alexander
e686666ea0 Merge branch 'text_markup_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-06 12:32:05 -04:00
Tom Alexander
672848d06a Compare the properties of text markup. 2023-10-06 12:12:24 -04:00
Tom Alexander
627c785e24 Merge branch 'latex_environment_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-06 12:02:29 -04:00
Tom Alexander
758e224e6d Move consuming trailing element whitespace inside the parsers.
This ensures the parsers can take into account the affiliated keywords when setting their source without needing the SetSource trait.
2023-10-06 12:02:14 -04:00
Tom Alexander
f79606047e Compare value.
Some checks failed
rust-build Build rust-build has succeeded
rust-test Build rust-test has failed
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 20:13:10 -04:00
Tom Alexander
dd3de67a8c Merge branch 'babel_call_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 20:07:30 -04:00
Tom Alexander
823426a4f1 Cleanup. 2023-10-05 20:04:52 -04:00
Tom Alexander
fa97124186 Handle nesting of brackets.
All checks were successful
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 19:51:13 -04:00
Tom Alexander
885fefd060 Implement generic function for balanced brackets text. 2023-10-05 19:51:13 -04:00
Tom Alexander
efac73798f Add a test showing we need to count brackets. 2023-10-05 18:44:57 -04:00
Tom Alexander
68e392811e Parse the babel call. 2023-10-05 18:44:56 -04:00
Tom Alexander
343af41f78 Separate babel call out to its own parser. 2023-10-05 16:27:36 -04:00
Tom Alexander
f49a1853ad Merge branch 'fixed_width_area_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 04:14:35 -04:00
Tom Alexander
6bd8d9efd7 Cleanup. 2023-10-05 04:04:18 -04:00
Tom Alexander
18ad80e018 Compare value. 2023-10-05 03:58:42 -04:00
Tom Alexander
34a0858473 Merge branch 'diary_sexp' 2023-10-05 03:58:19 -04:00
Tom Alexander
4ba9d7439a Compare value. 2023-10-05 03:46:14 -04:00
Tom Alexander
6f0439bb6d Merge branch 'clock_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 03:41:02 -04:00
Tom Alexander
b478b6f5d7 Compare value, duration, and status. 2023-10-05 03:40:29 -04:00
Tom Alexander
02af3d0081 Merge branch 'lesser_block_properties'
All checks were successful
rustfmt Build rustfmt has succeeded
rust-build Build rust-build has succeeded
rust-test Build rust-test has succeeded
rust-foreign-document-test Build rust-foreign-document-test has succeeded
2023-10-05 02:37:58 -04:00
Tom Alexander
40685f05cc Add a test for multiple names on a single element. 2023-10-05 02:28:24 -04:00
Tom Alexander
e21701b97c Cleanup. 2023-10-05 02:26:11 -04:00
Tom Alexander
ef8a6884fe Remove outdated TODO. 2023-10-05 02:20:25 -04:00
Tom Alexander
ac7125d9b6 Only allow a single export type for export blocks. 2023-10-05 02:17:53 -04:00
Tom Alexander
58ca9569a6 Compare export type. 2023-10-05 02:15:32 -04:00
Tom Alexander
1da521b08a Compare value for export block. 2023-10-05 02:06:26 -04:00
Tom Alexander
386ad5091d End switches at the first unrecognized word in src blocks. 2023-10-05 01:55:33 -04:00
Tom Alexander
5f84cd974d Add test showing the first unrecognized word is the end of the switches for src blocks. 2023-10-05 01:10:50 -04:00
Tom Alexander
d8ea450a46 Add TODOs for comparing caption to elems that can have affiliated keywords. 2023-10-05 01:06:30 -04:00
Tom Alexander
3742f4fa08 Remove double option. 2023-10-05 00:53:11 -04:00
Tom Alexander
11a7234900 Handle empty parameters with whitespace preceding. 2023-10-05 00:49:15 -04:00
Tom Alexander
50a3631b79 Handle whitespace after parameters in src blocks. 2023-10-05 00:43:03 -04:00
Tom Alexander
da2d7535e8 Add synonyms for name. 2023-10-05 00:30:33 -04:00
Tom Alexander
1351577c5a Fix handling affiliated keywords before invalid paragraphs. 2023-10-04 23:40:38 -04:00
Tom Alexander
65eda08843 Re-work the element parser to handle affiliated keywords before elements that cannot have affiliated keywords. 2023-10-04 22:47:13 -04:00
Tom Alexander
b82d4c0eca Fix finding name keyword in affiliated keywords list. 2023-10-04 21:32:10 -04:00
Tom Alexander
93fe46e4e7 Populate the name field on elements. 2023-10-04 21:27:55 -04:00
Tom Alexander
5b308ea76f Implement a function to read the name from the affiliated keywords. 2023-10-04 21:12:06 -04:00
Tom Alexander
ab4a0c1224 Clean up. 2023-10-04 21:05:20 -04:00
Tom Alexander
786521ad4a Add affiliated keyword matching to the detect_* functions. 2023-10-04 21:03:32 -04:00
Tom Alexander
d8102b7bc2 Move the affiliated keywords parser inside the specific element parsers.
We need access to the affiliated keywords to do things like set the name of the element, and only half the element parsers are allowed to have affiliated keywords, so it makes sense to move it inside the specific parsers.
2023-10-04 20:55:48 -04:00
Tom Alexander
a26640355c Add check for name on paragraph. 2023-10-04 19:58:09 -04:00
Tom Alexander
057c8a1387 Compare name. 2023-10-04 19:43:34 -04:00
Tom Alexander
4fc81e983a Add tests for names for lesser blocks. 2023-10-04 19:39:50 -04:00
Tom Alexander
258e9485de Add tests for names and references in src and example blocks. 2023-10-04 19:34:10 -04:00
Tom Alexander
87ac18e6b2 Add real handling for preserve indent.
Now that I know which flag changes this setting, we can handle it properly.
2023-10-04 19:23:47 -04:00
Tom Alexander
e1e4ac75e4 Add a test for preserve indent. 2023-10-04 19:05:28 -04:00
Tom Alexander
c877116540 Fix handling of spaces between language, switches, and parameters. 2023-10-04 18:57:51 -04:00
Tom Alexander
8e70773b15 Fix handling cases where only language is specified before parameters. 2023-10-04 18:11:38 -04:00
Tom Alexander
f046b16c11 Compare src block parameters. 2023-10-04 18:02:50 -04:00
Tom Alexander
1ab7d2f2d7 Add a test showing we are not handling exports flags properly. 2023-10-04 17:32:51 -04:00
Tom Alexander
a548c7e170 Exclude language from the switches property. 2023-10-04 17:11:13 -04:00
Tom Alexander
b556f4617f Add src block properties.
These are largely the same as example blocks but with a :language property.
2023-10-04 16:58:45 -04:00
Tom Alexander
13163f2468 Retain labels stays a boolean without -r. 2023-10-04 16:37:15 -04:00
Tom Alexander
da5dcd4c1b Support multiple commas when escaping lines. 2023-10-04 16:03:45 -04:00
Tom Alexander
d059afef07 Add a setting for coderef_label_format. 2023-10-04 15:48:57 -04:00
Tom Alexander
bcade66e68 Retain labels is actually either a boolean or a number. 2023-10-04 15:43:09 -04:00
Tom Alexander
301a6db83e Fix retain labels.
This is a numeric value based on the character offset of -k from the beginning of the switches.
2023-10-04 15:21:27 -04:00
Tom Alexander
32da06776c Handle matching no switches. 2023-10-04 15:21:27 -04:00
Tom Alexander
169bf69f5e Preserve the leading whitespace before an escape. 2023-10-04 15:21:27 -04:00
Tom Alexander
7ee48ff65c Switch to handling the unescaping during the initial parsing.
This preserves the line ending characters unlike the rust .lines() iterator.
2023-10-04 15:21:27 -04:00
Tom Alexander
afb43ff34f Switch to getting the contents with a function to handle the escaped lines. 2023-10-04 15:21:27 -04:00
Tom Alexander
b56d847cfa Compare label format, retain labels, and use labels. 2023-10-04 15:21:27 -04:00
Tom Alexander
1503054994 Make an argument for the line number switch optional. 2023-10-04 11:46:02 -04:00
Tom Alexander
03028889bd Fix capturing trailing whitespace for switches. 2023-10-04 11:34:01 -04:00
Tom Alexander
317293f0f2 Extract the line number from the switches. 2023-10-04 11:31:45 -04:00
Tom Alexander
3d7f411cf9 Compare number lines for example blocks. 2023-10-04 10:31:01 -04:00
Tom Alexander
650cbc17db Compare switches for example block. 2023-10-04 10:04:11 -04:00
Tom Alexander
1d7770e590 Rename data to switches in example and src block. 2023-10-04 09:59:11 -04:00
Tom Alexander
bf038db31c Add test showing trailing whitespace is captured in the switches. 2023-10-04 09:53:33 -04:00
Tom Alexander
4cdf88a632 Switches are not stored for comment blocks, but they are allowed to appear. 2023-10-04 09:51:28 -04:00
Tom Alexander
2eaef82fdb Organize lesser block tests into subfolders. 2023-10-04 09:46:09 -04:00
Tom Alexander
00dc7b636c Add more tests. 2023-10-04 09:42:36 -04:00
Tom Alexander
e6c809ab03 Compare value for comment block. 2023-10-04 09:35:19 -04:00
171 changed files with 8902 additions and 2121 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
/target
Cargo.lock
TODO.org

View File

@@ -46,6 +46,13 @@ dockertest:
> $(MAKE) -C docker/organic_test
> docker run --init --rm -i -t --read-only -v "$$(readlink -f ./):/source:ro" --mount type=tmpfs,destination=/tmp --mount source=cargo-cache,target=/usr/local/cargo/registry --mount source=rust-cache,target=/target --env CARGO_TARGET_DIR=/target -w /source organic-test --no-default-features --features compare --no-fail-fast --lib --test test_loader -- --test-threads $(TESTJOBS)
.PHONY: buildtest
buildtest:
> cargo build --no-default-features
> cargo build --no-default-features --features compare
> cargo build --no-default-features --features tracing
> cargo build --no-default-features --features compare,tracing
.PHONY: foreign_document_test
foreign_document_test:
> $(MAKE) -C docker/organic_test run_foreign_document_test

View File

@@ -1,5 +1,11 @@
(dolist (var org-entities)
(when (listp var)
(message "\"%s\"," (nth 0 var))
)
(dolist (var (sort (seq-filter 'listp org-entities)
(lambda (x y) (> (length (nth 0 x)) (length (nth 0 y))))))
(message "EntityDefinition {name: %s, latex_math_mode: %s, latex: %s, html: %s, ascii: %s, utf8: %s},"
(prin1-to-string (nth 0 var))
(if (nth 2 var) "true" "false")
(prin1-to-string (nth 1 var))
(prin1-to-string (nth 3 var))
(prin1-to-string (nth 4 var))
(prin1-to-string (nth 6 var))
)
)

View File

@@ -0,0 +1,17 @@
#+name: foo
: bar
#+source: foo
: bar
#+tblname: foo
: bar
#+resname: foo
: bar
#+srcname: foo
: bar
#+label: foo
: bar

View File

@@ -0,0 +1,8 @@
#+NAME: foo
bar
#+NaMe: baz
cat
#+name: lorem
ipsum

View File

@@ -0,0 +1,6 @@
#+name: foo
#+source: bar
#+name: baz
#+tblname: lorem
#+label: ipsum
: dolar

View File

@@ -0,0 +1,2 @@
#+tblname: foo
: bar

View File

@@ -0,0 +1,10 @@
* Headline
before
#+NAME: foo
:candle:
inside
the drawer
:end:
after

View File

@@ -0,0 +1,7 @@
#+NAME: foo
#+BEGIN: clocktable :scope file :maxlevel 2
#+CAPTION: Clock summary at [2023-08-25 Fri 05:34]
| Headline | Time |
|--------------+--------|
| *Total time* | *0:00* |
#+END:

View File

@@ -0,0 +1,8 @@
#+begin_center
#+end_center
#+begin_center
#+NAME: foo
#+end_center

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_center
#+end_center

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_quote
#+end_quote

View File

@@ -0,0 +1,6 @@
#+NAME: foo
#+begin_defun
foo
{{{bar(baz)}}}
#+end_defun

View File

@@ -0,0 +1,3 @@
- [ ] Foo
- [-] Bar
- [X] Baz

View File

@@ -0,0 +1,2 @@
#+NAME: foo
1. bar

View File

@@ -0,0 +1,2 @@
# This test causes problems with regular links if we do not create a new ContextTree when calling into confine_context.
- foo [[info:bar][baz]] lorem

View File

@@ -0,0 +1,2 @@
#+NAME: foo
| foo | bar |

View File

@@ -0,0 +1,3 @@
#+call:
#+call:

View File

@@ -0,0 +1,3 @@
#+call: foo[inside](bar="baz")[outside]
#+call: foo[](bar="baz")[]

View File

@@ -0,0 +1,7 @@
#+call: foo[inside](bar="baz")[outside]
#+call: foo[[inside]](bar="baz")[outside]
#+call: foo[inside]((bar="baz"))[outside]
#+call: foo[inside](bar="baz")[[outside]]

View File

@@ -0,0 +1 @@
#+call: foo(bar="baz"

View File

@@ -0,0 +1,7 @@
#+call: foo(bar="baz")
#+call: lorem ipsum
#+call: dolar cat(dog)
#+call: (bat)

View File

@@ -0,0 +1,3 @@
#+call: foo [inside] (bar="baz") [outside]
#+call: foo (bar="baz") [outside]

View File

@@ -0,0 +1 @@
CLOCK: [2023-04-21 Fri 19:32]--[2023-04-21 Fri 19:35]

View File

@@ -0,0 +1,3 @@
CLOCK: [2023-04-21 Fri 19:32]--[2023-04-21 Fri 19:35] => 0:03
#+NAME: foo
CLOCK: [2023-04-21 Fri 19:43]

View File

@@ -0,0 +1 @@
CLOCK: [2023-04-21 Fri 19:43] => 0:03

View File

@@ -0,0 +1,2 @@
CLOCK: [1970-01-01 Thu 8:15-13:15otherrest +1w -1d] => 0:03
CLOCK: [1970-01-01 Thu 8:15-13:15otherrest +1w -1d]

View File

@@ -0,0 +1,2 @@
#+NAME: foo
# Comments cannot have affiliated keywords.

View File

@@ -0,0 +1,2 @@
#+NAME: foo
%%(foo)

View File

@@ -0,0 +1,2 @@
#+NAME: foo
: bar

View File

@@ -0,0 +1,2 @@
#+NAME: foo
-----

View File

@@ -0,0 +1,2 @@
#+NAME: foo
#+FOO: BAR

View File

@@ -0,0 +1,4 @@
#+NAME: foo
\begin{foo}
bar
\end{foo}

View File

@@ -0,0 +1,10 @@
#+begin_comment
,* foo
,,,** bar
,*** baz
lorem
, ipsum
,#+begin_src dolar
,#+end_src
#+end_comment

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_comment text
bar
#+end_comment

View File

@@ -0,0 +1,4 @@
#+begin_comment
This is a comment
,* with an escaped line.
#+end_comment

View File

@@ -0,0 +1,3 @@
#+begin_comment -n 20
foo
#+end_comment

View File

@@ -0,0 +1,10 @@
#+begin_example
,* foo
,,,** bar
,*** baz
lorem
, ipsum
,#+begin_src dolar
,#+end_src
#+end_example

View File

@@ -0,0 +1,7 @@
#+begin_example python :exports results
print("foo")
#+end_example
#+begin_example python -n :exports results
print("foo")
#+end_example

View File

@@ -0,0 +1,3 @@
#+begin_example elisp -n 5
foo
#+end_example

View File

@@ -0,0 +1,7 @@
#+begin_example -n -10
foo
#+end_example
#+begin_example +n -15
bar
#+end_example

View File

@@ -0,0 +1,7 @@
#+begin_example -n 0
foo
#+end_example
#+begin_example +n 0
bar
#+end_example

View File

@@ -0,0 +1,8 @@
#+begin_example -n 5
foo
#+end_example
# Line numbering starts at 15 for the example below since it uses +n.
#+begin_example +n 10
bar
#+end_example

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_example text
bar
#+end_example

View File

@@ -0,0 +1,3 @@
#+begin_example foo -k
bar
#+end_example

View File

@@ -0,0 +1,3 @@
#+begin_example foo -n bar -k baz
#+end_example

View File

@@ -0,0 +1,15 @@
#+begin_example text -i
foo
#+end_example
#+begin_example text -n -i
foo
#+end_example
#+begin_example text
foo
#+end_example
#+begin_example text -n -r -k
foo
#+end_example

View File

@@ -0,0 +1,6 @@
#+begin_example text
foo
bar (ref:here)
baz
#+end_example
Link to the reference: [[(here)]]

View File

@@ -0,0 +1,2 @@
#+begin_example
#+end_example

View File

@@ -0,0 +1,15 @@
#+BEGIN_EXAMPLE elisp -n -r -l "((%s))"
foo
#+END_EXAMPLE
#+BEGIN_EXAMPLE elisp -k -n -r -l "((%s))"
foo
#+END_EXAMPLE
#+BEGIN_EXAMPLE elisp -k 8 -n -r -l "((%s))"
foo
#+END_EXAMPLE
#+BEGIN_EXAMPLE elisp -n -r -k -l "((%s))"
foo
#+END_EXAMPLE

View File

@@ -0,0 +1,3 @@
#+begin_example +n 10
foo
#+end_example

View File

@@ -0,0 +1,10 @@
#+begin_export html
,* foo
,,,** bar
,*** baz
lorem
, ipsum
,#+begin_src dolar
,#+end_src
#+end_export

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_export text
bar
#+end_export

View File

@@ -0,0 +1,3 @@
#+begin_export latex
This would be LaTeX code.
#+end_export

View File

@@ -0,0 +1,6 @@
# Verse blocks are the only lesser blocks that contain objects
#+begin_verse
#+begin_comment
This is a comment.
#+end_comment
#+end_verse

View File

@@ -0,0 +1,7 @@
#+begin_src python :exports results
print("foo")
#+end_src
#+begin_src python -n :exports results
print("foo")
#+end_src

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_src text
bar
#+end_src

View File

@@ -0,0 +1,7 @@
#+begin_src python :exports results
print("foo")
#+end_src
#+begin_src python -n :exports results
print("foo")
#+end_src

View File

@@ -0,0 +1,3 @@
#+begin_src foo -n bar -k baz
#+end_src

View File

@@ -0,0 +1,15 @@
#+begin_src text -i
foo
#+end_src
#+begin_src text -n -i
foo
#+end_src
#+begin_src text
foo
#+end_src
#+begin_src text -n -r -k
foo
#+end_src

View File

@@ -0,0 +1,6 @@
#+begin_src text
foo
bar (ref:here)
baz
#+end_src
Link to the reference: [[(here)]]

View File

@@ -0,0 +1,4 @@
#+NAME: foo
#+begin_verse text
bar
#+end_verse

View File

@@ -0,0 +1,2 @@
#+NAME: foo
bar

View File

@@ -0,0 +1,2 @@
<file+sys://foo>
<file+emacs://foo>

View File

@@ -0,0 +1,13 @@
<(foo)>
<((bar))>
<((baz)>
<(lo
rem)>
# These become fuzzy
<(foo) >
< (foo)>
<(foo)::3>

View File

@@ -0,0 +1,6 @@
<#foo>
<#fo
o>
<#foo::3>

View File

@@ -0,0 +1 @@
<elisp:(local-set-key "\M-\x" 'foo-bar-baz)>

View File

@@ -0,0 +1,21 @@
<./simple.org>
<../simple.org>
</simple.org>
<file:simple.org>
<file:sim ple.org>
<file:simp
le.org>
<file:simple.org::3>
<file:simple.org::foo>
<file:simple.org::#foo>
<file:simple.org::foo bar>
<file:simple.org::foo
bar>
<file:simple.org::foo
bar>
<file:simple.org::foo
bar>
<file:simple.org::foo::bar>
<file:simple.org::/foo/>

View File

@@ -0,0 +1,6 @@
<elisp.org>
<eli
sp.org>
<elisp.org::3>

View File

@@ -0,0 +1,6 @@
<id:83986bdf-987c-465d-8851-44cb4c02a86c>
<id:83986bdf-987c-465d
-8851-44cb4c02a86c>
<id:83986bdf-987c-465d-8851-44cb4c02a86c::foo>

View File

@@ -0,0 +1,20 @@
<file:foo>
<file:/bar>
<file://baz>
<file:///lorem>
<file:////ipsum>
<file://///dolar>
<foo>
</bar>
<//baz>
<///lorem>
<////ipsum>
</////dolar>
<https:foo>
<https:/bar>
<https://baz>
<https:///lorem>
<https:////ipsum>
<https://///dolar>

View File

@@ -0,0 +1,6 @@
<shell:foo>
<shell:fo
o>
<shell:foo::3>

View File

@@ -0,0 +1,16 @@
<file:simple.org::foo>
<file:simple.org::#foo>
<file:simple.org::foo bar>
<file:simple.org::foo
bar>
<file:simple.org::foo::bar>
<file:simple.org::/foo/>
<file://en.wikipedia.org/wiki/Shebang_(Uni::x)>
<file:simple.org::*>
<file:simple.org::* foo>
<file:simple.org::*bar>
<file:simple.org::b*az>

View File

@@ -0,0 +1 @@
<https://fizz.buzz/>

View File

@@ -0,0 +1,6 @@
#+LINK: foo https://foo.bar/baz#%s
<foo::lorem>
<cat::bat>
#+LINK: cat dog%s
<cat:bat>

View File

@@ -0,0 +1 @@
<https://en.wikipedia.org/wiki/Shebang_(Unix)>

View File

@@ -0,0 +1,414 @@
\Agrave{}
\agrave{}
\Aacute{}
\aacute{}
\Acirc{}
\acirc{}
\Amacr{}
\amacr{}
\Atilde{}
\atilde{}
\Auml{}
\auml{}
\Aring{}
\AA{}
\aring{}
\AElig{}
\aelig{}
\Ccedil{}
\ccedil{}
\Egrave{}
\egrave{}
\Eacute{}
\eacute{}
\Ecirc{}
\ecirc{}
\Euml{}
\euml{}
\Igrave{}
\igrave{}
\Iacute{}
\iacute{}
\Idot{}
\inodot{}
\Icirc{}
\icirc{}
\Iuml{}
\iuml{}
\Ntilde{}
\ntilde{}
\Ograve{}
\ograve{}
\Oacute{}
\oacute{}
\Ocirc{}
\ocirc{}
\Otilde{}
\otilde{}
\Ouml{}
\ouml{}
\Oslash{}
\oslash{}
\OElig{}
\oelig{}
\Scaron{}
\scaron{}
\szlig{}
\Ugrave{}
\ugrave{}
\Uacute{}
\uacute{}
\Ucirc{}
\ucirc{}
\Uuml{}
\uuml{}
\Yacute{}
\yacute{}
\Yuml{}
\yuml{}
\fnof{}
\real{}
\image{}
\weierp{}
\ell{}
\imath{}
\jmath{}
\Alpha{}
\alpha{}
\Beta{}
\beta{}
\Gamma{}
\gamma{}
\Delta{}
\delta{}
\Epsilon{}
\epsilon{}
\varepsilon{}
\Zeta{}
\zeta{}
\Eta{}
\eta{}
\Theta{}
\theta{}
\thetasym{}
\vartheta{}
\Iota{}
\iota{}
\Kappa{}
\kappa{}
\Lambda{}
\lambda{}
\Mu{}
\mu{}
\nu{}
\Nu{}
\Xi{}
\xi{}
\Omicron{}
\omicron{}
\Pi{}
\pi{}
\Rho{}
\rho{}
\Sigma{}
\sigma{}
\sigmaf{}
\varsigma{}
\Tau{}
\Upsilon{}
\upsih{}
\upsilon{}
\Phi{}
\phi{}
\varphi{}
\Chi{}
\chi{}
\acutex{}
\Psi{}
\psi{}
\tau{}
\Omega{}
\omega{}
\piv{}
\varpi{}
\partial{}
\alefsym{}
\aleph{}
\gimel{}
\beth{}
\dalet{}
\ETH{}
\eth{}
\THORN{}
\thorn{}
\dots{}
\cdots{}
\hellip{}
\middot{}
\iexcl{}
\iquest{}
\shy{}
\ndash{}
\mdash{}
\quot{}
\acute{}
\ldquo{}
\rdquo{}
\bdquo{}
\lsquo{}
\rsquo{}
\sbquo{}
\laquo{}
\raquo{}
\lsaquo{}
\rsaquo{}
\circ{}
\vert{}
\vbar{}
\brvbar{}
\S{}
\sect{}
\P{}
\para{}
\amp{}
\lt{}
\gt{}
\tilde{}
\slash{}
\plus{}
\under{}
\equal{}
\asciicirc{}
\dagger{}
\dag{}
\Dagger{}
\ddag{}
\nbsp{}
\ensp{}
\emsp{}
\thinsp{}
\curren{}
\cent{}
\pound{}
\yen{}
\euro{}
\EUR{}
\dollar{}
\USD{}
\copy{}
\reg{}
\trade{}
\minus{}
\pm{}
\plusmn{}
\times{}
\frasl{}
\colon{}
\div{}
\frac12{}
\frac14{}
\frac34{}
\permil{}
\sup1{}
\sup2{}
\sup3{}
\radic{}
\sum{}
\prod{}
\micro{}
\macr{}
\deg{}
\prime{}
\Prime{}
\infin{}
\infty{}
\prop{}
\propto{}
\not{}
\neg{}
\land{}
\wedge{}
\lor{}
\vee{}
\cap{}
\cup{}
\smile{}
\frown{}
\int{}
\therefore{}
\there4{}
\because{}
\sim{}
\cong{}
\simeq{}
\asymp{}
\approx{}
\ne{}
\neq{}
\equiv{}
\triangleq{}
\le{}
\leq{}
\ge{}
\geq{}
\lessgtr{}
\lesseqgtr{}
\ll{}
\Ll{}
\lll{}
\gg{}
\Gg{}
\ggg{}
\prec{}
\preceq{}
\preccurlyeq{}
\succ{}
\succeq{}
\succcurlyeq{}
\sub{}
\subset{}
\sup{}
\supset{}
\nsub{}
\sube{}
\nsup{}
\supe{}
\setminus{}
\forall{}
\exist{}
\exists{}
\nexist{}
\nexists{}
\empty{}
\emptyset{}
\isin{}
\in{}
\notin{}
\ni{}
\nabla{}
\ang{}
\angle{}
\perp{}
\parallel{}
\sdot{}
\cdot{}
\lceil{}
\rceil{}
\lfloor{}
\rfloor{}
\lang{}
\rang{}
\langle{}
\rangle{}
\hbar{}
\mho{}
\larr{}
\leftarrow{}
\gets{}
\lArr{}
\Leftarrow{}
\uarr{}
\uparrow{}
\uArr{}
\Uparrow{}
\rarr{}
\to{}
\rightarrow{}
\rArr{}
\Rightarrow{}
\darr{}
\downarrow{}
\dArr{}
\Downarrow{}
\harr{}
\leftrightarrow{}
\hArr{}
\Leftrightarrow{}
\crarr{}
\hookleftarrow{}
\arccos{}
\arcsin{}
\arctan{}
\arg{}
\cos{}
\cosh{}
\cot{}
\coth{}
\csc{}
\deg{}
\det{}
\dim{}
\exp{}
\gcd{}
\hom{}
\inf{}
\ker{}
\lg{}
\lim{}
\liminf{}
\limsup{}
\ln{}
\log{}
\max{}
\min{}
\Pr{}
\sec{}
\sin{}
\sinh{}
\sup{}
\tan{}
\tanh{}
\bull{}
\bullet{}
\star{}
\lowast{}
\ast{}
\odot{}
\oplus{}
\otimes{}
\check{}
\checkmark{}
\ordf{}
\ordm{}
\cedil{}
\oline{}
\uml{}
\zwnj{}
\zwj{}
\lrm{}
\rlm{}
\smiley{}
\blacksmile{}
\sad{}
\frowny{}
\clubs{}
\clubsuit{}
\spades{}
\spadesuit{}
\hearts{}
\heartsuit{}
\diams{}
\diamondsuit{}
\diamond{}
\Diamond{}
\loz{}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}
\_ {}

View File

@@ -0,0 +1,414 @@
\Agrave
\agrave
\Aacute
\aacute
\Acirc
\acirc
\Amacr
\amacr
\Atilde
\atilde
\Auml
\auml
\Aring
\AA
\aring
\AElig
\aelig
\Ccedil
\ccedil
\Egrave
\egrave
\Eacute
\eacute
\Ecirc
\ecirc
\Euml
\euml
\Igrave
\igrave
\Iacute
\iacute
\Idot
\inodot
\Icirc
\icirc
\Iuml
\iuml
\Ntilde
\ntilde
\Ograve
\ograve
\Oacute
\oacute
\Ocirc
\ocirc
\Otilde
\otilde
\Ouml
\ouml
\Oslash
\oslash
\OElig
\oelig
\Scaron
\scaron
\szlig
\Ugrave
\ugrave
\Uacute
\uacute
\Ucirc
\ucirc
\Uuml
\uuml
\Yacute
\yacute
\Yuml
\yuml
\fnof
\real
\image
\weierp
\ell
\imath
\jmath
\Alpha
\alpha
\Beta
\beta
\Gamma
\gamma
\Delta
\delta
\Epsilon
\epsilon
\varepsilon
\Zeta
\zeta
\Eta
\eta
\Theta
\theta
\thetasym
\vartheta
\Iota
\iota
\Kappa
\kappa
\Lambda
\lambda
\Mu
\mu
\nu
\Nu
\Xi
\xi
\Omicron
\omicron
\Pi
\pi
\Rho
\rho
\Sigma
\sigma
\sigmaf
\varsigma
\Tau
\Upsilon
\upsih
\upsilon
\Phi
\phi
\varphi
\Chi
\chi
\acutex
\Psi
\psi
\tau
\Omega
\omega
\piv
\varpi
\partial
\alefsym
\aleph
\gimel
\beth
\dalet
\ETH
\eth
\THORN
\thorn
\dots
\cdots
\hellip
\middot
\iexcl
\iquest
\shy
\ndash
\mdash
\quot
\acute
\ldquo
\rdquo
\bdquo
\lsquo
\rsquo
\sbquo
\laquo
\raquo
\lsaquo
\rsaquo
\circ
\vert
\vbar
\brvbar
\S
\sect
\P
\para
\amp
\lt
\gt
\tilde
\slash
\plus
\under
\equal
\asciicirc
\dagger
\dag
\Dagger
\ddag
\nbsp
\ensp
\emsp
\thinsp
\curren
\cent
\pound
\yen
\euro
\EUR
\dollar
\USD
\copy
\reg
\trade
\minus
\pm
\plusmn
\times
\frasl
\colon
\div
\frac12
\frac14
\frac34
\permil
\sup1
\sup2
\sup3
\radic
\sum
\prod
\micro
\macr
\deg
\prime
\Prime
\infin
\infty
\prop
\propto
\not
\neg
\land
\wedge
\lor
\vee
\cap
\cup
\smile
\frown
\int
\therefore
\there4
\because
\sim
\cong
\simeq
\asymp
\approx
\ne
\neq
\equiv
\triangleq
\le
\leq
\ge
\geq
\lessgtr
\lesseqgtr
\ll
\Ll
\lll
\gg
\Gg
\ggg
\prec
\preceq
\preccurlyeq
\succ
\succeq
\succcurlyeq
\sub
\subset
\sup
\supset
\nsub
\sube
\nsup
\supe
\setminus
\forall
\exist
\exists
\nexist
\nexists
\empty
\emptyset
\isin
\in
\notin
\ni
\nabla
\ang
\angle
\perp
\parallel
\sdot
\cdot
\lceil
\rceil
\lfloor
\rfloor
\lang
\rang
\langle
\rangle
\hbar
\mho
\larr
\leftarrow
\gets
\lArr
\Leftarrow
\uarr
\uparrow
\uArr
\Uparrow
\rarr
\to
\rightarrow
\rArr
\Rightarrow
\darr
\downarrow
\dArr
\Downarrow
\harr
\leftrightarrow
\hArr
\Leftrightarrow
\crarr
\hookleftarrow
\arccos
\arcsin
\arctan
\arg
\cos
\cosh
\cot
\coth
\csc
\deg
\det
\dim
\exp
\gcd
\hom
\inf
\ker
\lg
\lim
\liminf
\limsup
\ln
\log
\max
\min
\Pr
\sec
\sin
\sinh
\sup
\tan
\tanh
\bull
\bullet
\star
\lowast
\ast
\odot
\oplus
\otimes
\check
\checkmark
\ordf
\ordm
\cedil
\oline
\uml
\zwnj
\zwj
\lrm
\rlm
\smiley
\blacksmile
\sad
\frowny
\clubs
\clubsuit
\spades
\spadesuit
\hearts
\heartsuit
\diams
\diamondsuit
\diamond
\Diamond
\loz
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_
\_

View File

@@ -1,3 +1,4 @@
call_foo()
call_foo(arguments)
call_bar[header](arguments)
call_baz(arguments)[header]

View File

@@ -1,2 +1,3 @@
before src_foo{ipsum} after
src_bar[lorem]{ipsum}
src_foo{}
before src_bar{lorem} after
src_baz[ipsum]{dolar}

View File

@@ -0,0 +1 @@
{{{Foo(Bar,Baz)}}}

View File

@@ -0,0 +1,7 @@
{{{foo}}}
{{{fo\o}}}
{{{foo(b\ar)}}}
{{{foo(b\,r)}}}

View File

@@ -0,0 +1,10 @@
{{{foo(bar baz)}}}
{{{foo(bar
baz)}}}
{{{foo(foo )}}}
{{{foo(foo , bar )}}}
{{{foo(foo , bar , baz )}}}

View File

@@ -0,0 +1,25 @@
non-link text::foo
eww://foo::foo
rmail://foo::foo
mhe://foo::foo
irc://foo::foo
info://foo::foo
gnus://foo::foo
docview://foo::foo
bibtex://foo::foo
bbdb://foo::foo
w3m://foo::foo
doi://foo::foo
file+sys://foo::foo
file+emacs://foo::foo
shell://foo::foo
news://foo::foo
mailto://foo::foo
https://foo::foo
http://foo::foo
ftp://foo::foo
help://foo::foo
file://foo::foo
elisp://foo::foo
randomfakeprotocl://foo::foo
non-link text::foo

View File

@@ -0,0 +1,13 @@
file:foo
file:/bar
file://baz
file:///lorem
file:////ipsum
file://///dolar
https:foo
https:/bar
https://baz
https:///lorem
https:////ipsum
https://///dolar

View File

@@ -0,0 +1,4 @@
# These do not become links
./simple.org::foo
../simple.org::foo
/simple.org::foo

View File

@@ -0,0 +1,15 @@
file:simple.org::foo
file:simple.org::#foo
file:simple.org::foo bar
file:simple.org::foo
bar
file:simple.org::foo::bar
file:simple.org::/foo/
file://en.wikipedia.org/wiki/Shebang_(Uni::x)
file:simple.org::* foo
file:simple.org::*bar
file:simple.org::b*az

View File

@@ -0,0 +1,8 @@
# None of these end up as links.
#+LINK: foo https://foo.bar/baz#%s
foo::lorem
cat::bat
#+LINK: cat https://dog%s
cat:bat

View File

@@ -0,0 +1,25 @@
non-link text
[[eww://foo]]
[[rmail://foo]]
[[mhe://foo]]
[[irc://foo]]
[[info://foo]]
[[gnus://foo]]
[[docview://foo]]
[[bibtex://foo]]
[[bbdb://foo]]
[[w3m://foo]]
[[doi://foo]]
[[file+sys://foo]]
[[file+emacs://foo]]
[[shell://foo]]
[[news://foo]]
[[mailto://foo]]
[[https://foo]]
[[http://foo]]
[[ftp://foo]]
[[help://foo]]
[[file://foo]]
[[elisp://foo]]
[[randomfakeprotocl://foo]]
non-link text

View File

@@ -0,0 +1,2 @@
[[file+sys://foo]]
[[file+emacs://foo]]

View File

@@ -0,0 +1,13 @@
[[(foo)]]
[[((bar))]]
[[((baz)]]
[[(lo
rem)]]
# These become fuzzy
[[(foo) ]]
[[ (foo)]]
[[(foo)::3]]

View File

@@ -0,0 +1,6 @@
[[#foo]]
[[#fo
o]]
[[#foo::3]]

View File

@@ -0,0 +1,21 @@
[[./simple.org]]
[[../simple.org]]
[[/simple.org]]
[[file:simple.org]]
[[file:sim ple.org]]
[[file:simp
le.org]]
[[file:simple.org::3]]
[[file:simple.org::foo]]
[[file:simple.org::#foo]]
[[file:simple.org::foo bar]]
[[file:simple.org::foo
bar]]
[[file:simple.org::foo
bar]]
[[file:simple.org::foo
bar]]
[[file:simple.org::foo::bar]]
[[file:simple.org::/foo/]]

Some files were not shown because too many files have changed in this diff Show More