markdown-script 0.4.2__tar.gz → 0.4.3__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.
- {markdown_script-0.4.2 → markdown_script-0.4.3}/Cargo.lock +92 -81
- {markdown_script-0.4.2 → markdown_script-0.4.3}/Cargo.toml +18 -17
- {markdown_script-0.4.2 → markdown_script-0.4.3}/PKG-INFO +1 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/README.md +18 -3
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/error.rs +2 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/evaluator.rs +121 -9
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/fs.rs +60 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lib.rs +429 -11
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/limits.rs +47 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/diagnostic.rs +127 -13
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/facts.rs +69 -6
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/fix.rs +6 -6
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/tier.rs +94 -6
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/resolver/frontmatter.rs +305 -3
- markdown_script-0.4.3/crates/mds-core/src/resolver/frontmatter_tests.rs +635 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/resolver/inheritance.rs +30 -25
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/resolver.rs +52 -26
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/resolver_tests.rs +356 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/source_path.rs +195 -18
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/sourcemap.rs +2 -2
- markdown_script-0.4.3/crates/mds-core/src/vars_json.rs +514 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/tests/api_surface.rs +77 -0
- markdown_script-0.4.3/crates/mds-core/tests/assert_promotions.rs +570 -0
- markdown_script-0.4.3/crates/mds-core/tests/spec_error_codes.rs +189 -0
- markdown_script-0.4.3/crates/mds-core/tests/yaml_funnel.rs +296 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/Cargo.toml +1 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_concurrency.py +6 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_limits.py +82 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_parity.py +14 -1
- {markdown_script-0.4.2 → markdown_script-0.4.3}/LICENSE +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/README.md +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/Cargo.toml +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/arity.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/ast.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/builtins.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/error_tests.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/formatter.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lexer.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/config.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/mod.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/duplicate_export.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/duplicate_import.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/empty_block.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/legacy_interpolation.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/mod.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/redundant_else.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/shadow_variable.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/structural_eq.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/unreachable_branch.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/unused_function.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/unused_import.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/lint/rules/unused_variable.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/options.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/parser.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/parser_helpers.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/parser_tests.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/scope.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/validator.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/src/value.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/tests/fmt.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/tests/intrinsic_output.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/tests/source_map_vfs.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-core/tests/virtual_fs.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/LICENSE +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/README.md +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/benchmarks/bench.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/build.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/pyrightconfig.json +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/src/lib.rs +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/conftest.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/import_consumer.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/import_provider.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/lint_warn_only.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/messages.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/mixed.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/simple.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/fixtures/var.mds +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_contract.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_errors.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_functional.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_lint.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_perf.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_pickle.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_source_map.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/test_typing.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/crates/mds-python/tests/typecheck_sample.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/pyproject.toml +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/python/markdown_script/__init__.py +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/python/markdown_script/__init__.pyi +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/python/markdown_script/_markdown_script.pyi +0 -0
- {markdown_script-0.4.2 → markdown_script-0.4.3}/python/markdown_script/py.typed +0 -0
|
@@ -81,7 +81,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
|
|
|
81
81
|
dependencies = [
|
|
82
82
|
"proc-macro2",
|
|
83
83
|
"quote",
|
|
84
|
-
"syn",
|
|
84
|
+
"syn 2.0.117",
|
|
85
85
|
]
|
|
86
86
|
|
|
87
87
|
[[package]]
|
|
@@ -175,9 +175,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
|
|
175
175
|
|
|
176
176
|
[[package]]
|
|
177
177
|
name = "clap"
|
|
178
|
-
version = "4.6.
|
|
178
|
+
version = "4.6.6"
|
|
179
179
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
180
|
-
checksum = "
|
|
180
|
+
checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
|
|
181
181
|
dependencies = [
|
|
182
182
|
"clap_builder",
|
|
183
183
|
"clap_derive",
|
|
@@ -185,9 +185,9 @@ dependencies = [
|
|
|
185
185
|
|
|
186
186
|
[[package]]
|
|
187
187
|
name = "clap_builder"
|
|
188
|
-
version = "4.6.
|
|
188
|
+
version = "4.6.6"
|
|
189
189
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
190
|
-
checksum = "
|
|
190
|
+
checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
|
|
191
191
|
dependencies = [
|
|
192
192
|
"anstream",
|
|
193
193
|
"anstyle",
|
|
@@ -197,14 +197,14 @@ dependencies = [
|
|
|
197
197
|
|
|
198
198
|
[[package]]
|
|
199
199
|
name = "clap_derive"
|
|
200
|
-
version = "4.6.
|
|
200
|
+
version = "4.6.4"
|
|
201
201
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
|
-
checksum = "
|
|
202
|
+
checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
|
|
203
203
|
dependencies = [
|
|
204
204
|
"heck",
|
|
205
205
|
"proc-macro2",
|
|
206
206
|
"quote",
|
|
207
|
-
"syn",
|
|
207
|
+
"syn 3.0.5",
|
|
208
208
|
]
|
|
209
209
|
|
|
210
210
|
[[package]]
|
|
@@ -356,7 +356,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
|
|
|
356
356
|
dependencies = [
|
|
357
357
|
"proc-macro2",
|
|
358
358
|
"quote",
|
|
359
|
-
"syn",
|
|
359
|
+
"syn 2.0.117",
|
|
360
360
|
]
|
|
361
361
|
|
|
362
362
|
[[package]]
|
|
@@ -486,13 +486,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
486
486
|
|
|
487
487
|
[[package]]
|
|
488
488
|
name = "js-sys"
|
|
489
|
-
version = "0.3.
|
|
489
|
+
version = "0.3.103"
|
|
490
490
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
491
|
-
checksum = "
|
|
491
|
+
checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
|
|
492
492
|
dependencies = [
|
|
493
493
|
"cfg-if",
|
|
494
494
|
"futures-util",
|
|
495
|
-
"once_cell",
|
|
496
495
|
"wasm-bindgen",
|
|
497
496
|
]
|
|
498
497
|
|
|
@@ -524,9 +523,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|
|
524
523
|
|
|
525
524
|
[[package]]
|
|
526
525
|
name = "libc"
|
|
527
|
-
version = "0.2.
|
|
526
|
+
version = "0.2.189"
|
|
528
527
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
529
|
-
checksum = "
|
|
528
|
+
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
530
529
|
|
|
531
530
|
[[package]]
|
|
532
531
|
name = "libloading"
|
|
@@ -558,7 +557,7 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
|
|
558
557
|
|
|
559
558
|
[[package]]
|
|
560
559
|
name = "mds-cli"
|
|
561
|
-
version = "0.4.
|
|
560
|
+
version = "0.4.3"
|
|
562
561
|
dependencies = [
|
|
563
562
|
"clap",
|
|
564
563
|
"ctrlc",
|
|
@@ -575,7 +574,7 @@ dependencies = [
|
|
|
575
574
|
|
|
576
575
|
[[package]]
|
|
577
576
|
name = "mds-core"
|
|
578
|
-
version = "0.4.
|
|
577
|
+
version = "0.4.3"
|
|
579
578
|
dependencies = [
|
|
580
579
|
"indexmap",
|
|
581
580
|
"miette",
|
|
@@ -588,7 +587,7 @@ dependencies = [
|
|
|
588
587
|
|
|
589
588
|
[[package]]
|
|
590
589
|
name = "mds-napi"
|
|
591
|
-
version = "0.4.
|
|
590
|
+
version = "0.4.3"
|
|
592
591
|
dependencies = [
|
|
593
592
|
"mds-core",
|
|
594
593
|
"napi",
|
|
@@ -599,7 +598,7 @@ dependencies = [
|
|
|
599
598
|
|
|
600
599
|
[[package]]
|
|
601
600
|
name = "mds-python"
|
|
602
|
-
version = "0.4.
|
|
601
|
+
version = "0.4.3"
|
|
603
602
|
dependencies = [
|
|
604
603
|
"mds-core",
|
|
605
604
|
"pyo3",
|
|
@@ -609,7 +608,7 @@ dependencies = [
|
|
|
609
608
|
|
|
610
609
|
[[package]]
|
|
611
610
|
name = "mds-wasm"
|
|
612
|
-
version = "0.4.
|
|
611
|
+
version = "0.4.3"
|
|
613
612
|
dependencies = [
|
|
614
613
|
"js-sys",
|
|
615
614
|
"mds-core",
|
|
@@ -653,7 +652,7 @@ checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b"
|
|
|
653
652
|
dependencies = [
|
|
654
653
|
"proc-macro2",
|
|
655
654
|
"quote",
|
|
656
|
-
"syn",
|
|
655
|
+
"syn 2.0.117",
|
|
657
656
|
]
|
|
658
657
|
|
|
659
658
|
[[package]]
|
|
@@ -689,13 +688,14 @@ dependencies = [
|
|
|
689
688
|
|
|
690
689
|
[[package]]
|
|
691
690
|
name = "napi"
|
|
692
|
-
version = "3.
|
|
691
|
+
version = "3.12.2"
|
|
693
692
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
694
|
-
checksum = "
|
|
693
|
+
checksum = "58c5f4d5375213fdb7be2655e152386e82f026f9a5ba36a75556e11359aafe09"
|
|
695
694
|
dependencies = [
|
|
696
695
|
"bitflags",
|
|
697
696
|
"ctor",
|
|
698
697
|
"futures",
|
|
698
|
+
"libc",
|
|
699
699
|
"napi-build",
|
|
700
700
|
"napi-sys",
|
|
701
701
|
"nohash-hasher",
|
|
@@ -706,42 +706,42 @@ dependencies = [
|
|
|
706
706
|
|
|
707
707
|
[[package]]
|
|
708
708
|
name = "napi-build"
|
|
709
|
-
version = "2.
|
|
709
|
+
version = "2.4.1"
|
|
710
710
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
711
|
-
checksum = "
|
|
711
|
+
checksum = "60fdf9b392c50e7c4170fa633bd909490ed7835cea4c046776d1a4dd8d2ae0ab"
|
|
712
712
|
|
|
713
713
|
[[package]]
|
|
714
714
|
name = "napi-derive"
|
|
715
|
-
version = "3.
|
|
715
|
+
version = "3.6.3"
|
|
716
716
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
717
|
-
checksum = "
|
|
717
|
+
checksum = "0fa55ea69990c90b888e9e77044410e304ce7f35de599dc6d0b5c1923d2e59af"
|
|
718
718
|
dependencies = [
|
|
719
719
|
"convert_case",
|
|
720
720
|
"ctor",
|
|
721
721
|
"napi-derive-backend",
|
|
722
722
|
"proc-macro2",
|
|
723
723
|
"quote",
|
|
724
|
-
"syn",
|
|
724
|
+
"syn 2.0.117",
|
|
725
725
|
]
|
|
726
726
|
|
|
727
727
|
[[package]]
|
|
728
728
|
name = "napi-derive-backend"
|
|
729
|
-
version = "
|
|
729
|
+
version = "6.1.2"
|
|
730
730
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
731
|
-
checksum = "
|
|
731
|
+
checksum = "df4056ac7c18e4438ccf0edaed4340ca0d269278c8ec19284f7b23cb039fd0ae"
|
|
732
732
|
dependencies = [
|
|
733
733
|
"convert_case",
|
|
734
734
|
"proc-macro2",
|
|
735
735
|
"quote",
|
|
736
736
|
"semver",
|
|
737
|
-
"syn",
|
|
737
|
+
"syn 2.0.117",
|
|
738
738
|
]
|
|
739
739
|
|
|
740
740
|
[[package]]
|
|
741
741
|
name = "napi-sys"
|
|
742
|
-
version = "3.
|
|
742
|
+
version = "3.3.0"
|
|
743
743
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
744
|
-
checksum = "
|
|
744
|
+
checksum = "85fbf1fa9f1babfe396d74bbbf52b3643770243e8f5b0b46715d4caf7f0dfc9a"
|
|
745
745
|
dependencies = [
|
|
746
746
|
"libloading",
|
|
747
747
|
]
|
|
@@ -877,7 +877,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
877
877
|
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
|
878
878
|
dependencies = [
|
|
879
879
|
"proc-macro2",
|
|
880
|
-
"syn",
|
|
880
|
+
"syn 2.0.117",
|
|
881
881
|
]
|
|
882
882
|
|
|
883
883
|
[[package]]
|
|
@@ -891,9 +891,9 @@ dependencies = [
|
|
|
891
891
|
|
|
892
892
|
[[package]]
|
|
893
893
|
name = "pyo3"
|
|
894
|
-
version = "0.29.
|
|
894
|
+
version = "0.29.2"
|
|
895
895
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
896
|
-
checksum = "
|
|
896
|
+
checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
|
|
897
897
|
dependencies = [
|
|
898
898
|
"libc",
|
|
899
899
|
"once_cell",
|
|
@@ -905,18 +905,18 @@ dependencies = [
|
|
|
905
905
|
|
|
906
906
|
[[package]]
|
|
907
907
|
name = "pyo3-build-config"
|
|
908
|
-
version = "0.29.
|
|
908
|
+
version = "0.29.2"
|
|
909
909
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
910
|
-
checksum = "
|
|
910
|
+
checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
|
|
911
911
|
dependencies = [
|
|
912
912
|
"target-lexicon",
|
|
913
913
|
]
|
|
914
914
|
|
|
915
915
|
[[package]]
|
|
916
916
|
name = "pyo3-ffi"
|
|
917
|
-
version = "0.29.
|
|
917
|
+
version = "0.29.2"
|
|
918
918
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
919
|
-
checksum = "
|
|
919
|
+
checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
|
|
920
920
|
dependencies = [
|
|
921
921
|
"libc",
|
|
922
922
|
"pyo3-build-config",
|
|
@@ -924,26 +924,26 @@ dependencies = [
|
|
|
924
924
|
|
|
925
925
|
[[package]]
|
|
926
926
|
name = "pyo3-macros"
|
|
927
|
-
version = "0.29.
|
|
927
|
+
version = "0.29.2"
|
|
928
928
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
929
|
-
checksum = "
|
|
929
|
+
checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
|
|
930
930
|
dependencies = [
|
|
931
931
|
"proc-macro2",
|
|
932
932
|
"pyo3-macros-backend",
|
|
933
933
|
"quote",
|
|
934
|
-
"syn",
|
|
934
|
+
"syn 2.0.117",
|
|
935
935
|
]
|
|
936
936
|
|
|
937
937
|
[[package]]
|
|
938
938
|
name = "pyo3-macros-backend"
|
|
939
|
-
version = "0.29.
|
|
939
|
+
version = "0.29.2"
|
|
940
940
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
941
|
-
checksum = "
|
|
941
|
+
checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
|
|
942
942
|
dependencies = [
|
|
943
943
|
"heck",
|
|
944
944
|
"proc-macro2",
|
|
945
945
|
"quote",
|
|
946
|
-
"syn",
|
|
946
|
+
"syn 2.0.117",
|
|
947
947
|
]
|
|
948
948
|
|
|
949
949
|
[[package]]
|
|
@@ -1025,9 +1025,9 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
|
1025
1025
|
|
|
1026
1026
|
[[package]]
|
|
1027
1027
|
name = "serde"
|
|
1028
|
-
version = "1.0.
|
|
1028
|
+
version = "1.0.229"
|
|
1029
1029
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1030
|
-
checksum = "
|
|
1030
|
+
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
1031
1031
|
dependencies = [
|
|
1032
1032
|
"serde_core",
|
|
1033
1033
|
"serde_derive",
|
|
@@ -1046,29 +1046,29 @@ dependencies = [
|
|
|
1046
1046
|
|
|
1047
1047
|
[[package]]
|
|
1048
1048
|
name = "serde_core"
|
|
1049
|
-
version = "1.0.
|
|
1049
|
+
version = "1.0.229"
|
|
1050
1050
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1051
|
-
checksum = "
|
|
1051
|
+
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
1052
1052
|
dependencies = [
|
|
1053
1053
|
"serde_derive",
|
|
1054
1054
|
]
|
|
1055
1055
|
|
|
1056
1056
|
[[package]]
|
|
1057
1057
|
name = "serde_derive"
|
|
1058
|
-
version = "1.0.
|
|
1058
|
+
version = "1.0.229"
|
|
1059
1059
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1060
|
-
checksum = "
|
|
1060
|
+
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
1061
1061
|
dependencies = [
|
|
1062
1062
|
"proc-macro2",
|
|
1063
1063
|
"quote",
|
|
1064
|
-
"syn",
|
|
1064
|
+
"syn 3.0.5",
|
|
1065
1065
|
]
|
|
1066
1066
|
|
|
1067
1067
|
[[package]]
|
|
1068
1068
|
name = "serde_json"
|
|
1069
|
-
version = "1.0.
|
|
1069
|
+
version = "1.0.151"
|
|
1070
1070
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1071
|
-
checksum = "
|
|
1071
|
+
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
1072
1072
|
dependencies = [
|
|
1073
1073
|
"itoa",
|
|
1074
1074
|
"memchr",
|
|
@@ -1098,9 +1098,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
1098
1098
|
|
|
1099
1099
|
[[package]]
|
|
1100
1100
|
name = "similar"
|
|
1101
|
-
version = "3.
|
|
1101
|
+
version = "3.2.0"
|
|
1102
1102
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1103
|
-
checksum = "
|
|
1103
|
+
checksum = "4f66ca1f7aca2474dc10c942eb22feffc897735f54cd1db90138c2fddb490987"
|
|
1104
1104
|
dependencies = [
|
|
1105
1105
|
"bstr",
|
|
1106
1106
|
]
|
|
@@ -1149,6 +1149,17 @@ dependencies = [
|
|
|
1149
1149
|
"unicode-ident",
|
|
1150
1150
|
]
|
|
1151
1151
|
|
|
1152
|
+
[[package]]
|
|
1153
|
+
name = "syn"
|
|
1154
|
+
version = "3.0.5"
|
|
1155
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1156
|
+
checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
|
|
1157
|
+
dependencies = [
|
|
1158
|
+
"proc-macro2",
|
|
1159
|
+
"quote",
|
|
1160
|
+
"unicode-ident",
|
|
1161
|
+
]
|
|
1162
|
+
|
|
1152
1163
|
[[package]]
|
|
1153
1164
|
name = "target-lexicon"
|
|
1154
1165
|
version = "0.13.5"
|
|
@@ -1190,22 +1201,22 @@ dependencies = [
|
|
|
1190
1201
|
|
|
1191
1202
|
[[package]]
|
|
1192
1203
|
name = "thiserror"
|
|
1193
|
-
version = "2.0.
|
|
1204
|
+
version = "2.0.20"
|
|
1194
1205
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1195
|
-
checksum = "
|
|
1206
|
+
checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
|
|
1196
1207
|
dependencies = [
|
|
1197
1208
|
"thiserror-impl",
|
|
1198
1209
|
]
|
|
1199
1210
|
|
|
1200
1211
|
[[package]]
|
|
1201
1212
|
name = "thiserror-impl"
|
|
1202
|
-
version = "2.0.
|
|
1213
|
+
version = "2.0.20"
|
|
1203
1214
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1204
|
-
checksum = "
|
|
1215
|
+
checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
|
|
1205
1216
|
dependencies = [
|
|
1206
1217
|
"proc-macro2",
|
|
1207
1218
|
"quote",
|
|
1208
|
-
"syn",
|
|
1219
|
+
"syn 3.0.5",
|
|
1209
1220
|
]
|
|
1210
1221
|
|
|
1211
1222
|
[[package]]
|
|
@@ -1292,9 +1303,9 @@ dependencies = [
|
|
|
1292
1303
|
|
|
1293
1304
|
[[package]]
|
|
1294
1305
|
name = "wasm-bindgen"
|
|
1295
|
-
version = "0.2.
|
|
1306
|
+
version = "0.2.126"
|
|
1296
1307
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1297
|
-
checksum = "
|
|
1308
|
+
checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
|
|
1298
1309
|
dependencies = [
|
|
1299
1310
|
"cfg-if",
|
|
1300
1311
|
"once_cell",
|
|
@@ -1305,9 +1316,9 @@ dependencies = [
|
|
|
1305
1316
|
|
|
1306
1317
|
[[package]]
|
|
1307
1318
|
name = "wasm-bindgen-futures"
|
|
1308
|
-
version = "0.4.
|
|
1319
|
+
version = "0.4.76"
|
|
1309
1320
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1310
|
-
checksum = "
|
|
1321
|
+
checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d"
|
|
1311
1322
|
dependencies = [
|
|
1312
1323
|
"js-sys",
|
|
1313
1324
|
"wasm-bindgen",
|
|
@@ -1315,9 +1326,9 @@ dependencies = [
|
|
|
1315
1326
|
|
|
1316
1327
|
[[package]]
|
|
1317
1328
|
name = "wasm-bindgen-macro"
|
|
1318
|
-
version = "0.2.
|
|
1329
|
+
version = "0.2.126"
|
|
1319
1330
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1320
|
-
checksum = "
|
|
1331
|
+
checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
|
|
1321
1332
|
dependencies = [
|
|
1322
1333
|
"quote",
|
|
1323
1334
|
"wasm-bindgen-macro-support",
|
|
@@ -1325,31 +1336,31 @@ dependencies = [
|
|
|
1325
1336
|
|
|
1326
1337
|
[[package]]
|
|
1327
1338
|
name = "wasm-bindgen-macro-support"
|
|
1328
|
-
version = "0.2.
|
|
1339
|
+
version = "0.2.126"
|
|
1329
1340
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1330
|
-
checksum = "
|
|
1341
|
+
checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
|
|
1331
1342
|
dependencies = [
|
|
1332
1343
|
"bumpalo",
|
|
1333
1344
|
"proc-macro2",
|
|
1334
1345
|
"quote",
|
|
1335
|
-
"syn",
|
|
1346
|
+
"syn 2.0.117",
|
|
1336
1347
|
"wasm-bindgen-shared",
|
|
1337
1348
|
]
|
|
1338
1349
|
|
|
1339
1350
|
[[package]]
|
|
1340
1351
|
name = "wasm-bindgen-shared"
|
|
1341
|
-
version = "0.2.
|
|
1352
|
+
version = "0.2.126"
|
|
1342
1353
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1343
|
-
checksum = "
|
|
1354
|
+
checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
|
|
1344
1355
|
dependencies = [
|
|
1345
1356
|
"unicode-ident",
|
|
1346
1357
|
]
|
|
1347
1358
|
|
|
1348
1359
|
[[package]]
|
|
1349
1360
|
name = "wasm-bindgen-test"
|
|
1350
|
-
version = "0.3.
|
|
1361
|
+
version = "0.3.76"
|
|
1351
1362
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1352
|
-
checksum = "
|
|
1363
|
+
checksum = "2a0d555ca874445df8d314f94f5c948a4e74e5418f332c89f660a3d8310a96f4"
|
|
1353
1364
|
dependencies = [
|
|
1354
1365
|
"async-trait",
|
|
1355
1366
|
"cast",
|
|
@@ -1369,20 +1380,20 @@ dependencies = [
|
|
|
1369
1380
|
|
|
1370
1381
|
[[package]]
|
|
1371
1382
|
name = "wasm-bindgen-test-macro"
|
|
1372
|
-
version = "0.3.
|
|
1383
|
+
version = "0.3.76"
|
|
1373
1384
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1374
|
-
checksum = "
|
|
1385
|
+
checksum = "94eb68555b95bcea5e8cf4abe280b529049479fa995bfc23734af96a6aedc120"
|
|
1375
1386
|
dependencies = [
|
|
1376
1387
|
"proc-macro2",
|
|
1377
1388
|
"quote",
|
|
1378
|
-
"syn",
|
|
1389
|
+
"syn 2.0.117",
|
|
1379
1390
|
]
|
|
1380
1391
|
|
|
1381
1392
|
[[package]]
|
|
1382
1393
|
name = "wasm-bindgen-test-shared"
|
|
1383
|
-
version = "0.2.
|
|
1394
|
+
version = "0.2.126"
|
|
1384
1395
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1385
|
-
checksum = "
|
|
1396
|
+
checksum = "c31d56021e873866c968588ed85ccdf56db5c426e44afdb4618c39895104b920"
|
|
1386
1397
|
|
|
1387
1398
|
[[package]]
|
|
1388
1399
|
name = "wasm-encoder"
|
|
@@ -1552,7 +1563,7 @@ dependencies = [
|
|
|
1552
1563
|
"heck",
|
|
1553
1564
|
"indexmap",
|
|
1554
1565
|
"prettyplease",
|
|
1555
|
-
"syn",
|
|
1566
|
+
"syn 2.0.117",
|
|
1556
1567
|
"wasm-metadata",
|
|
1557
1568
|
"wit-bindgen-core",
|
|
1558
1569
|
"wit-component",
|
|
@@ -1568,7 +1579,7 @@ dependencies = [
|
|
|
1568
1579
|
"prettyplease",
|
|
1569
1580
|
"proc-macro2",
|
|
1570
1581
|
"quote",
|
|
1571
|
-
"syn",
|
|
1582
|
+
"syn 2.0.117",
|
|
1572
1583
|
"wit-bindgen-core",
|
|
1573
1584
|
"wit-bindgen-rust",
|
|
1574
1585
|
]
|
|
@@ -3,9 +3,9 @@ members = ["crates/mds-core", "crates/mds-python"]
|
|
|
3
3
|
resolver = "2"
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.4.
|
|
6
|
+
version = "0.4.3"
|
|
7
7
|
edition = "2021"
|
|
8
|
-
rust-version = "1.88" # napi 3.
|
|
8
|
+
rust-version = "1.88" # napi 3.12.2 sets rust-version = "1.88" in its published Cargo.toml
|
|
9
9
|
license = "MIT"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
repository = "https://github.com/dean0x/mdscript"
|
|
@@ -24,22 +24,23 @@ wasm-bindgen = "0.2"
|
|
|
24
24
|
serde-wasm-bindgen = "0.6"
|
|
25
25
|
wasm-bindgen-test = "0.3"
|
|
26
26
|
js-sys = "0.3"
|
|
27
|
-
napi = { version = "3.
|
|
28
|
-
napi-derive = "3.
|
|
29
|
-
napi-build = "2"
|
|
30
|
-
# Python bindings (crates/mds-python). Pins are exact and soak-checked (2026-
|
|
27
|
+
napi = { version = "3.12.2", default-features = false, features = ["napi3", "serde-json"] }
|
|
28
|
+
napi-derive = "3.6.3"
|
|
29
|
+
napi-build = "2.4.1"
|
|
30
|
+
# Python bindings (crates/mds-python). Pins are exact and soak-checked (2026-09-06):
|
|
31
31
|
# pyo3 0.29.0 patches two RustSec advisories disclosed 2026-06-11 — RUSTSEC-2026-0176
|
|
32
32
|
# (OOB read in PyList/PyTuple iterator nth/nth_back) and RUSTSEC-2026-0177 (missing
|
|
33
33
|
# Sync bound on PyCFunction::new_closure, a free-threading soundness gap this crate is
|
|
34
34
|
# directly exposed to via `gil_used = false` below). Both are fixed only in >=0.29.0.
|
|
35
|
-
# 0.29.
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
# `cargo build/clippy/test --workspace` compile the cdylib
|
|
39
|
-
# without linking libpython or needing a Python interpreter.
|
|
40
|
-
# gated behind the crate's own default feature so it can be
|
|
41
|
-
# features (incl. `macros`) are kept. pythonize's minor must
|
|
42
|
-
pyo3
|
|
35
|
+
# 0.29.2 is a patch on the already-fixed 0.29 line (both advisories remain fixed);
|
|
36
|
+
# published 2026-08-05 (32 days of soak at 2026-09-06), past the routine 30d window.
|
|
37
|
+
# It is the newest patch available — no 0.29.x above 0.29.2 exists. `abi3-py311` is
|
|
38
|
+
# ALWAYS on (not optional) so `cargo build/clippy/test --workspace` compile the cdylib
|
|
39
|
+
# against the stable ABI without linking libpython or needing a Python interpreter.
|
|
40
|
+
# `extension-module` is gated behind the crate's own default feature so it can be
|
|
41
|
+
# toggled off. pyo3 default features (incl. `macros`) are kept. pythonize's minor must
|
|
42
|
+
# track pyo3's (0.29 ↔ 0.29); no 0.29.x above 0.29.0 exists for pythonize — pin stays.
|
|
43
|
+
pyo3 = { version = "=0.29.2", features = ["abi3-py311"] }
|
|
43
44
|
pythonize = "=0.29.0"
|
|
44
45
|
# notify is CC0-1.0 (public-domain dedication). CC0 is permissive and non-contaminating
|
|
45
46
|
# with respect to the workspace MIT license. Explicitly accepted here.
|
|
@@ -53,9 +54,9 @@ pythonize = "=0.29.0"
|
|
|
53
54
|
notify = "8"
|
|
54
55
|
ctrlc = "3.5"
|
|
55
56
|
# similar: pure-Rust diffing (mds-cli `fmt --diff`). Apache-2.0 (MIT-compatible, no
|
|
56
|
-
# copyleft). 3.
|
|
57
|
-
#
|
|
58
|
-
# MSRV (1.88). Only the default features ("std", "text") are used.
|
|
57
|
+
# copyleft). 3.2.0 released 2026-08-17 (20d soak at 2026-09-06) — within the one-off
|
|
58
|
+
# 14-day flush rule for this batch. rust-version = "1.85" in its published Cargo.toml,
|
|
59
|
+
# within the workspace MSRV (1.88). Only the default features ("std", "text") are used.
|
|
59
60
|
similar = "3.1"
|
|
60
61
|
|
|
61
62
|
# panic = "unwind" is required workspace-wide because mds-wasm and mds-napi use
|
|
@@ -94,6 +94,7 @@ Build/Watch options:
|
|
|
94
94
|
--out-dir <DIR> Output directory (build/single-file watch: <stem>.md or <stem>.json;
|
|
95
95
|
dir-mode watch: mirrors source subtree)
|
|
96
96
|
--vars <FILE> JSON file with variable overrides (reloaded each rebuild)
|
|
97
|
+
A key repeated at any depth warns with its path; the last value wins.
|
|
97
98
|
--set KEY=VALUE Set a single variable (repeatable); value coerced to number/bool/null/array when possible
|
|
98
99
|
Repeating a key warns; the last value wins.
|
|
99
100
|
--set-string KEY=VALUE Set a single variable as a string, bypassing type coercion (repeatable)
|
|
@@ -112,7 +113,12 @@ Build/Watch options:
|
|
|
112
113
|
|
|
113
114
|
Watch-only options:
|
|
114
115
|
--clear Clear terminal before each rebuild (only when stderr is a TTY)
|
|
115
|
-
--debounce <MS>
|
|
116
|
+
--debounce <MS> Quiet period in milliseconds before a rebuild (default: 100).
|
|
117
|
+
Each file change restarts the window, so a save burst longer
|
|
118
|
+
than MS still coalesces into a single rebuild. The window is
|
|
119
|
+
capped at max(10 × MS, 1000) ms, so a file written to
|
|
120
|
+
continuously still rebuilds. 0 disables coalescing (every
|
|
121
|
+
event rebuilds). Values above 60000 are clamped.
|
|
116
122
|
--poll-interval <MS> Liveness-probe interval in milliseconds (default: 1000).
|
|
117
123
|
0 disables self-heal (native events only). Clamped to ≥50ms.
|
|
118
124
|
The watcher self-heals after a watched dir/root is deleted and
|
|
@@ -132,7 +138,7 @@ Exit codes:
|
|
|
132
138
|
3 Resource limit exceeded
|
|
133
139
|
```
|
|
134
140
|
|
|
135
|
-
**Directory mode** (`mds build <dir>` / `mds check <dir>`): every non-partial `.mds` file under the directory is compiled, with two automatic exclusions: directories whose name starts with `.` (e.g. `.git`, `.github`, `.claude`, `.cursor`) and `node_modules` are skipped during traversal. `_`-prefixed files are partials — tracked as dependencies but never emitted to their own output. Output mirrors the source subtree (e.g. `src/a/b/foo.mds` → `dist/a/b/foo.md`). Symlinks are rejected. Errors are per-file and do not abort the run; a summary (`N built, N failed`; `N passed, N failed` for `check`) is printed on a successful run or when any file fails; the exit code is non-zero if any file fails. Under `--quiet`, the summary is suppressed on a fully-successful run but is always emitted when any file fails, so the non-zero exit is never unexplained. If **every** `.mds` file is under a default-excluded directory, the command exits non-zero and prints a diagnostic carrying the skip count — even under `--quiet` — because this is the silent CI green-pass failure mode for prompt-template libraries stored under `.github/prompts/`, `.claude/`, or `.cursor/rules/`. A genuinely empty directory (no `.mds` files anywhere)
|
|
141
|
+
**Directory mode** (`mds build <dir>` / `mds check <dir>`): every non-partial `.mds` file under the directory is compiled, with two automatic exclusions: directories whose name starts with `.` (e.g. `.git`, `.github`, `.claude`, `.cursor`) and `node_modules` are skipped during traversal. `_`-prefixed files are partials — tracked as dependencies but never emitted to their own output. Output mirrors the source subtree (e.g. `src/a/b/foo.mds` → `dist/a/b/foo.md`). Symlinks are rejected. Errors are per-file and do not abort the run; a summary (`N built, N failed`; `N passed, N failed` for `check`) is printed on a successful run or when any file fails; the exit code is non-zero if any file fails. Under `--quiet`, the summary is suppressed on a fully-successful run but is always emitted when any file fails, so the non-zero exit is never unexplained. If **every** `.mds` file is under a default-excluded directory, the command exits non-zero and prints a diagnostic carrying the skip count — even under `--quiet` — because this is the silent CI green-pass failure mode for prompt-template libraries stored under `.github/prompts/`, `.claude/`, or `.cursor/rules/`. A genuinely empty directory (no `.mds` files anywhere) also exits non-zero (`1`) with `no .mds files found in <dir>; nothing was built` (`…checked` for `check`), likewise even under `--quiet` — an empty tree is treated as a misconfiguration, not a success. (Changed in v0.4.3; previously exited 0.) A directory whose `.mds` files are all `_`-prefixed partials is treated the same way — `build`/`check` exit `1` with `<n> .mds file(s) found in <dir> but all are _-prefixed partials; nothing was built` (`…checked`), even under `--quiet`, while `mds fmt` and `mds lint` are unaffected since they format and lint partials. (Changed in v0.4.3; previously `0 built, 0 failed`, exit 0.) `mds watch <dir>` is the exception: it starts on an empty tree and compiles files created later. Stale output files (compiled outputs with no corresponding source) are cleaned up automatically. The output extension is intrinsic: `.md` for Markdown templates, `.json` for templates with `@message` blocks.
|
|
136
142
|
|
|
137
143
|
`mds fmt <dir>` follows the same directory-mode conventions (recursive, symlinks rejected, continue-on-error, non-zero exit summary) with one deliberate difference: it formats `_`-prefixed **partials too** — formatting rewrites source, not compiled output, and a partial's source is just as much a candidate for reformatting as any other file.
|
|
138
144
|
|
|
@@ -155,6 +161,10 @@ mds watch src/ --out-dir dist # mirror source subtree under dist/
|
|
|
155
161
|
# src/a/b/foo.mds → dist/a/b/foo.md (not dist/foo.md)
|
|
156
162
|
```
|
|
157
163
|
|
|
164
|
+
`mds watch src/` starts even when `src/` has no `.mds` files yet; files created later are
|
|
165
|
+
compiled as they appear (unlike `build`/`check`/`fmt`/`lint`, which exit non-zero on an empty
|
|
166
|
+
tree).
|
|
167
|
+
|
|
158
168
|
> **Changed in v0.4.0:** Directory mode with `--out-dir` or `mds.json output_dir`
|
|
159
169
|
> now mirrors the source subtree instead of writing flat stems. Old flat outputs are
|
|
160
170
|
> orphaned and must be removed manually.
|
|
@@ -210,7 +220,9 @@ continuing past per-file errors and printing a summary
|
|
|
210
220
|
(`N formatted, M unchanged, K failed`, or `N would reformat, M unchanged, K failed` under `--check`). A file
|
|
211
221
|
is only written (and its mtime touched) when its content actually changes. Status lines and
|
|
212
222
|
summaries go to stderr; `--diff` output and stdin filter-mode content go to stdout; `--quiet`
|
|
213
|
-
suppresses status but never errors.
|
|
223
|
+
suppresses status but never errors. A directory with no `.mds` files exits 1 with
|
|
224
|
+
`no .mds files found in <dir>; nothing was formatted`, even under `--quiet`.
|
|
225
|
+
Reads a `fmt` section from `mds.json`
|
|
214
226
|
(`{"fmt": {"sort_frontmatter_keys": true}}`) for forward compatibility — the field doesn't drive
|
|
215
227
|
any formatting behavior yet; frontmatter key sorting is deferred to a future version.
|
|
216
228
|
|
|
@@ -230,6 +242,9 @@ mds lint --quiet . # directory lint: silent on clean/warn-only; sum
|
|
|
230
242
|
Directory mode (`mds lint <dir>`) lints every `.mds` file recursively (partials included) and
|
|
231
243
|
prints one summary line to stderr after processing all files:
|
|
232
244
|
`N clean, N with warnings, N with errors, N resource-limited`.
|
|
245
|
+
A directory with no `.mds` files exits 2 (lint's usage-error code) with
|
|
246
|
+
`no .mds files found in <dir>; nothing was linted` on stderr, even under `--quiet`, and prints
|
|
247
|
+
no summary.
|
|
233
248
|
Under `--quiet`, the summary is suppressed when the worst outcome is warnings or clean; it is
|
|
234
249
|
always printed when any file has errors or hits a resource limit, so the non-zero exit is never
|
|
235
250
|
unexplained in those cases. Two exits are deliberately left unexplained under `--quiet`, because
|
|
@@ -965,7 +965,8 @@ impl MdsError {
|
|
|
965
965
|
/// evaluator runs without source context — see the arity span-divergence
|
|
966
966
|
/// note in `evaluator.rs`), `MixedContent` is a *structural* error about the
|
|
967
967
|
/// template's shape: the offending node's byte offset is known statically
|
|
968
|
-
/// from the AST, so the diagnostic underlines the orphan content (
|
|
968
|
+
/// from the AST, so the diagnostic underlines the orphan content (the origin rides
|
|
969
|
+
/// along the node, so no path→source lookup is needed).
|
|
969
970
|
///
|
|
970
971
|
/// `offset`/`len` index into `source`; the shared [`at`] guard drops `src`
|
|
971
972
|
/// (keeping raw offset/length for `serialize()`) if they fall out of bounds,
|