quillmark 0.5.0__tar.gz → 0.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. {quillmark-0.5.0 → quillmark-0.5.1}/Cargo.lock +8 -8
  2. {quillmark-0.5.0 → quillmark-0.5.1}/Cargo.toml +5 -5
  3. {quillmark-0.5.0 → quillmark-0.5.1}/PKG-INFO +1 -1
  4. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/convert.rs +45 -3
  5. {quillmark-0.5.0 → quillmark-0.5.1}/README.md +0 -0
  6. {quillmark-0.5.0 → quillmark-0.5.1}/pyproject.toml +0 -0
  7. {quillmark-0.5.0 → quillmark-0.5.1}/python/quillmark/__init__.py +0 -0
  8. {quillmark-0.5.0 → quillmark-0.5.1}/python/quillmark/__init__.pyi +0 -0
  9. {quillmark-0.5.0 → quillmark-0.5.1}/python/quillmark/py.typed +0 -0
  10. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark/Cargo.toml +0 -0
  11. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark/README.md +0 -0
  12. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark/src/lib.rs +0 -0
  13. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark/src/orchestration.rs +0 -0
  14. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-acroform/Cargo.toml +0 -0
  15. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-acroform/README.md +0 -0
  16. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-acroform/src/lib.rs +0 -0
  17. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/Cargo.toml +0 -0
  18. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/README.md +0 -0
  19. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/backend.rs +0 -0
  20. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/error.rs +0 -0
  21. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/lib.rs +0 -0
  22. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/parse.rs +0 -0
  23. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/quill.rs +0 -0
  24. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/templating.rs +0 -0
  25. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/types.rs +0 -0
  26. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-core/src/value.rs +0 -0
  27. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/.npmignore +0 -0
  28. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/Cargo.toml +0 -0
  29. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/README.md +0 -0
  30. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/appreciated_letter/Quill.toml +0 -0
  31. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/appreciated_letter/appreciated_letter.md +0 -0
  32. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/appreciated_letter/glue.typ +0 -0
  33. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/extended_metadata_demo.md +0 -0
  34. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/frontmatter_demo.md +0 -0
  35. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/sample.md +0 -0
  36. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/taro/Quill.toml +0 -0
  37. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/taro/glue.typ +0 -0
  38. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/taro/taro.md +0 -0
  39. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/taro.png +0 -0
  40. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_form_8/Quill.toml +0 -0
  41. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_form_8/form.pdf +0 -0
  42. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_form_8/usaf_form_8.md +0 -0
  43. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/.quillignore +0 -0
  44. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/Quill.toml +0 -0
  45. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/assets/dow_seal.png +0 -0
  46. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/glue.typ +0 -0
  47. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/.gitignore +0 -0
  48. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/LICENSE +0 -0
  49. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/Cinzel/Cinzel-Regular.ttf +0 -0
  50. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +0 -0
  51. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/CopperplateCC-Heavy.otf +0 -0
  52. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +0 -0
  53. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +0 -0
  54. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/NimbusRomNo9L-Med.otf +0 -0
  55. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/NimbusRomNo9L-MedIta.otf +0 -0
  56. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/NimbusRomNo9L-Reg.otf +0 -0
  57. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/NimbusRomNo9L-RegIta.otf +0 -0
  58. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/src/lib.typ +0 -0
  59. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/src/utils.typ +0 -0
  60. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/packages/tonguetoquill-usaf-memo/typst.toml +0 -0
  61. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/resources/usaf_memo/usaf_memo.md +0 -0
  62. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-fixtures/src/lib.rs +0 -0
  63. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/.gitignore +0 -0
  64. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/Cargo.toml +0 -0
  65. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/IMPLEMENTATION_SUMMARY.md +0 -0
  66. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/README.md +0 -0
  67. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/examples/basic.py +0 -0
  68. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/examples/batch.py +0 -0
  69. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/examples/workflow_demo.py +0 -0
  70. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/python/quillmark/__init__.py +0 -0
  71. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/python/quillmark/__init__.pyi +0 -0
  72. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/python/quillmark/py.typed +0 -0
  73. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/src/enums.rs +0 -0
  74. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/src/errors.rs +0 -0
  75. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/src/lib.rs +0 -0
  76. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/src/types.rs +0 -0
  77. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/conftest.py +0 -0
  78. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/test_api_requirements.py +0 -0
  79. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/test_engine.py +0 -0
  80. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/test_parse.py +0 -0
  81. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/test_quill.py +0 -0
  82. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/tests/test_render.py +0 -0
  83. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-python/uv.lock +0 -0
  84. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/Cargo.toml +0 -0
  85. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/README.md +0 -0
  86. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/compile.rs +0 -0
  87. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/error_mapping.rs +0 -0
  88. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/filters.rs +0 -0
  89. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/lib.rs +0 -0
  90. {quillmark-0.5.0 → quillmark-0.5.1}/quillmark-typst/src/world.rs +0 -0
@@ -2043,7 +2043,7 @@ dependencies = [
2043
2043
 
2044
2044
  [[package]]
2045
2045
  name = "quillmark"
2046
- version = "0.5.0"
2046
+ version = "0.5.1"
2047
2047
  dependencies = [
2048
2048
  "acroform",
2049
2049
  "anyhow",
@@ -2060,7 +2060,7 @@ dependencies = [
2060
2060
 
2061
2061
  [[package]]
2062
2062
  name = "quillmark-acroform"
2063
- version = "0.5.0"
2063
+ version = "0.5.1"
2064
2064
  dependencies = [
2065
2065
  "acroform",
2066
2066
  "minijinja",
@@ -2073,7 +2073,7 @@ dependencies = [
2073
2073
 
2074
2074
  [[package]]
2075
2075
  name = "quillmark-core"
2076
- version = "0.5.0"
2076
+ version = "0.5.1"
2077
2077
  dependencies = [
2078
2078
  "anyhow",
2079
2079
  "glob",
@@ -2088,7 +2088,7 @@ dependencies = [
2088
2088
 
2089
2089
  [[package]]
2090
2090
  name = "quillmark-fixtures"
2091
- version = "0.5.0"
2091
+ version = "0.5.1"
2092
2092
  dependencies = [
2093
2093
  "quillmark",
2094
2094
  "quillmark-typst",
@@ -2096,7 +2096,7 @@ dependencies = [
2096
2096
 
2097
2097
  [[package]]
2098
2098
  name = "quillmark-fuzz"
2099
- version = "0.5.0"
2099
+ version = "0.5.1"
2100
2100
  dependencies = [
2101
2101
  "proptest",
2102
2102
  "quillmark-core",
@@ -2105,7 +2105,7 @@ dependencies = [
2105
2105
 
2106
2106
  [[package]]
2107
2107
  name = "quillmark-python"
2108
- version = "0.5.0"
2108
+ version = "0.5.1"
2109
2109
  dependencies = [
2110
2110
  "anyhow",
2111
2111
  "pyo3",
@@ -2116,7 +2116,7 @@ dependencies = [
2116
2116
 
2117
2117
  [[package]]
2118
2118
  name = "quillmark-typst"
2119
- version = "0.5.0"
2119
+ version = "0.5.1"
2120
2120
  dependencies = [
2121
2121
  "anyhow",
2122
2122
  "dirs",
@@ -2138,7 +2138,7 @@ dependencies = [
2138
2138
 
2139
2139
  [[package]]
2140
2140
  name = "quillmark-wasm"
2141
- version = "0.5.0"
2141
+ version = "0.5.1"
2142
2142
  dependencies = [
2143
2143
  "console_error_panic_hook",
2144
2144
  "getrandom 0.3.4",
@@ -11,7 +11,7 @@ default-members = [
11
11
  resolver = "2"
12
12
 
13
13
  [workspace.package]
14
- version = "0.5.0"
14
+ version = "0.5.1"
15
15
  edition = "2021"
16
16
  include = ["src/**", "Cargo.toml", "README*", "LICENSE*"]
17
17
  readme = "README.md"
@@ -47,10 +47,10 @@ dirs = "6.0"
47
47
  acroform = "0.1.3"
48
48
 
49
49
  # Intra-project dependencies
50
- quillmark-core = { version = "0.5.0", path = "quillmark-core" }
51
- quillmark-typst = { version = "0.5.0", path = "quillmark-typst", default-features = false }
52
- quillmark-acroform = { version = "0.5.0", path = "quillmark-acroform" }
53
- quillmark = { version = "0.5.0", path = "quillmark", default-features = false }
50
+ quillmark-core = { version = "0.5.1", path = "quillmark-core" }
51
+ quillmark-typst = { version = "0.5.1", path = "quillmark-typst", default-features = false }
52
+ quillmark-acroform = { version = "0.5.1", path = "quillmark-acroform" }
53
+ quillmark = { version = "0.5.1", path = "quillmark", default-features = false }
54
54
 
55
55
  # Test and dev dependencies
56
56
  tempfile = "~3.23"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quillmark
3
- Version: 0.5.0
3
+ Version: 0.5.1
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: Apache Software License
@@ -49,6 +49,7 @@ pub enum ConversionError {
49
49
  /// Escapes text for safe use in Typst markup context.
50
50
  pub fn escape_markup(s: &str) -> String {
51
51
  s.replace('\\', "\\\\")
52
+ .replace("//", "\\/\\/")
52
53
  .replace('*', "\\*")
53
54
  .replace('_', "\\_")
54
55
  .replace('`', "\\`")
@@ -417,7 +418,7 @@ mod tests {
417
418
  fn test_link() {
418
419
  let markdown = "[Link text](https://example.com)";
419
420
  let typst = mark_to_typst(markdown).unwrap();
420
- assert_eq!(typst, "#link(\"https://example.com\")[Link text]\n\n");
421
+ assert_eq!(typst, "#link(\"https:\\/\\/example.com\")[Link text]\n\n");
421
422
  }
422
423
 
423
424
  #[test]
@@ -426,7 +427,7 @@ mod tests {
426
427
  let typst = mark_to_typst(markdown).unwrap();
427
428
  assert_eq!(
428
429
  typst,
429
- "Visit #link(\"https://example.com\")[our site] for more.\n\n"
430
+ "Visit #link(\"https:\\/\\/example.com\")[our site] for more.\n\n"
430
431
  );
431
432
  }
432
433
 
@@ -438,7 +439,7 @@ mod tests {
438
439
  // Lists end with extra newline per CONVERT.md examples
439
440
  assert_eq!(
440
441
  typst,
441
- "A paragraph with *bold* and a #link(\"https://example.com\")[link].\n\nAnother paragraph with `inline code`.\n\n+ A list item\n+ Another item\n\n"
442
+ "A paragraph with *bold* and a #link(\"https:\\/\\/example.com\")[link].\n\nAnother paragraph with `inline code`.\n\n+ A list item\n+ Another item\n\n"
442
443
  );
443
444
  }
444
445
 
@@ -608,4 +609,45 @@ mod tests {
608
609
  let result = mark_to_typst(&markdown);
609
610
  assert!(result.is_ok());
610
611
  }
612
+
613
+ // Tests for // (comment syntax) escaping
614
+ #[test]
615
+ fn test_slash_comment_in_url() {
616
+ let markdown = "Check out https://example.com for more.";
617
+ let typst = mark_to_typst(markdown).unwrap();
618
+ // The // in https:// should be escaped to prevent it from being treated as a comment
619
+ assert!(typst.contains("https:\\/\\/example.com"));
620
+ }
621
+
622
+ #[test]
623
+ fn test_slash_comment_at_line_start() {
624
+ let markdown = "// This should not be a comment";
625
+ let typst = mark_to_typst(markdown).unwrap();
626
+ // // at the start of a line should be escaped
627
+ assert!(typst.contains("\\/\\/"));
628
+ }
629
+
630
+ #[test]
631
+ fn test_slash_comment_in_middle() {
632
+ let markdown = "Some text // with slashes in the middle";
633
+ let typst = mark_to_typst(markdown).unwrap();
634
+ // // in the middle of text should be escaped
635
+ assert!(typst.contains("text \\/\\/"));
636
+ }
637
+
638
+ #[test]
639
+ fn test_file_protocol() {
640
+ let markdown = "Use file://path/to/file protocol";
641
+ let typst = mark_to_typst(markdown).unwrap();
642
+ // file:// should be escaped
643
+ assert!(typst.contains("file:\\/\\/"));
644
+ }
645
+
646
+ #[test]
647
+ fn test_single_slash() {
648
+ let markdown = "Use path/to/file for the file";
649
+ let typst = mark_to_typst(markdown).unwrap();
650
+ // Single slashes should not be escaped (only // is a comment in Typst)
651
+ assert!(typst.contains("path/to/file"));
652
+ }
611
653
  }
File without changes
File without changes
File without changes