Test coverage
Line coverage per module and file, from the CI run behind release v1.42.0. Aggregated the same way as the project's release notes and pull request coverage comments, so it never drifts from what actually shipped.
Total line coverage: 95.7% (27113/28336).
App — 95.6% (24503/25644)
Crates — 95.4% (21178/22204)
papyrus-ast-cache — 98.0% (589/601)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-ast-cache/src/lib.rs | 89.3% | 50/56 |
app/crates/papyrus-ast-cache/src/bundled.rs | 96.2% | 50/52 |
app/crates/papyrus-ast-cache/src/version.rs | 98.5% | 66/67 |
app/crates/papyrus-ast-cache/src/bundled_blob.rs | 98.9% | 88/89 |
app/crates/papyrus-ast-cache/src/entry.rs | 99.1% | 229/231 |
app/crates/papyrus-ast-cache/src/ops/load.rs | 100.0% | 18/18 |
app/crates/papyrus-ast-cache/src/ops/prime.rs | 100.0% | 12/12 |
app/crates/papyrus-ast-cache/src/ops/store.rs | 100.0% | 51/51 |
app/crates/papyrus-ast-cache/src/ops/test_support.rs | 100.0% | 25/25 |
papyrus-lint-cli — 99.0% (2859/2887)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-lint-cli/src/args/help.rs | 91.3% | 42/46 |
app/crates/papyrus-lint-cli/src/run_fix.rs | 92.2% | 47/51 |
app/crates/papyrus-lint-cli/src/init.rs | 94.0% | 63/67 |
app/crates/papyrus-lint-cli/src/run_scan.rs | 96.1% | 147/153 |
app/crates/papyrus-lint-cli/src/doctor/report.rs | 96.9% | 31/32 |
app/crates/papyrus-lint-cli/src/project.rs | 97.1% | 33/34 |
app/crates/papyrus-lint-cli/src/run_lint.rs | 97.7% | 130/133 |
app/crates/papyrus-lint-cli/src/output/mod.rs | 98.6% | 73/74 |
app/crates/papyrus-lint-cli/src/run_lint_command.rs | 98.9% | 176/178 |
app/crates/papyrus-lint-cli/src/doctor/checks.rs | 99.1% | 209/211 |
app/crates/papyrus-lint-cli/src/args/mod.rs | 100.0% | 3/3 |
app/crates/papyrus-lint-cli/src/args/parse.rs | 100.0% | 34/34 |
app/crates/papyrus-lint-cli/src/args/validate.rs | 100.0% | 191/191 |
app/crates/papyrus-lint-cli/src/blob.rs | 100.0% | 138/138 |
app/crates/papyrus-lint-cli/src/doctor/mod.rs | 100.0% | 43/43 |
app/crates/papyrus-lint-cli/src/lib.rs | 100.0% | 48/48 |
app/crates/papyrus-lint-cli/src/main.rs | 100.0% | 7/7 |
app/crates/papyrus-lint-cli/src/report.rs | 100.0% | 117/117 |
app/crates/papyrus-lint-cli/src/run_tests/basic.rs | 100.0% | 292/292 |
app/crates/papyrus-lint-cli/src/run_tests/compile_check.rs | 100.0% | 49/49 |
app/crates/papyrus-lint-cli/src/run_tests/cross_script_resolution.rs | 100.0% | 191/191 |
app/crates/papyrus-lint-cli/src/run_tests/fix.rs | 100.0% | 253/253 |
app/crates/papyrus-lint-cli/src/run_tests/script_roots_and_config.rs | 100.0% | 187/187 |
app/crates/papyrus-lint-cli/src/run_tests/stale_output_and_filename_checks.rs | 100.0% | 233/233 |
app/crates/papyrus-lint-cli/src/run_tests/tag_filter.rs | 100.0% | 57/57 |
app/crates/papyrus-lint-cli/src/run_tests/threading.rs | 100.0% | 36/36 |
app/crates/papyrus-lint-cli/src/test_support.rs | 100.0% | 29/29 |
papyrus-lint-config — 92.3% (621/673)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-lint-config/src/presets.rs | 87.9% | 290/330 |
app/crates/papyrus-lint-config/src/project_file.rs | 94.4% | 169/179 |
app/crates/papyrus-lint-config/src/skyrim.rs | 97.3% | 72/74 |
app/crates/papyrus-lint-config/src/compiler.rs | 100.0% | 90/90 |
papyrus-lint-core — 95.2% (2733/2870)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-lint-core/src/function_table/external.rs | 77.4% | 41/53 |
app/crates/papyrus-lint-core/src/function_table/shared.rs | 77.7% | 101/130 |
app/crates/papyrus-lint-core/src/function_table/ancestry.rs | 81.2% | 290/357 |
app/crates/papyrus-lint-core/src/function_table/load.rs | 95.3% | 101/106 |
app/crates/papyrus-lint-core/src/parallel.rs | 96.3% | 130/135 |
app/crates/papyrus-lint-core/src/script_locator.rs | 97.2% | 246/253 |
app/crates/papyrus-lint-core/src/script_functions.rs | 97.4% | 303/311 |
app/crates/papyrus-lint-core/src/compiler.rs | 99.0% | 99/100 |
app/crates/papyrus-lint-core/src/presets.rs | 99.0% | 99/100 |
app/crates/papyrus-lint-core/src/project_root.rs | 99.2% | 128/129 |
app/crates/papyrus-lint-core/src/achlist.rs | 99.5% | 201/202 |
app/crates/papyrus-lint-core/src/compile_diagnostics.rs | 100.0% | 220/220 |
app/crates/papyrus-lint-core/src/content_hash.rs | 100.0% | 15/15 |
app/crates/papyrus-lint-core/src/diff.rs | 100.0% | 109/109 |
app/crates/papyrus-lint-core/src/function_table/mod.rs | 100.0% | 63/63 |
app/crates/papyrus-lint-core/src/function_table/test_support.rs | 100.0% | 17/17 |
app/crates/papyrus-lint-core/src/native_globals.rs | 100.0% | 23/23 |
app/crates/papyrus-lint-core/src/pex_header.rs | 100.0% | 170/170 |
app/crates/papyrus-lint-core/src/script_filename_mismatch.rs | 100.0% | 117/117 |
app/crates/papyrus-lint-core/src/source_encoding.rs | 100.0% | 159/159 |
app/crates/papyrus-lint-core/src/stale_pex.rs | 100.0% | 101/101 |
papyrus-lint-output — 98.8% (243/246)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-lint-output/src/plain.rs | 95.6% | 65/68 |
app/crates/papyrus-lint-output/src/ai.rs | 100.0% | 112/112 |
app/crates/papyrus-lint-output/src/diagnostic.rs | 100.0% | 40/40 |
app/crates/papyrus-lint-output/src/json.rs | 100.0% | 26/26 |
papyrus-lints — 94.6% (11832/12508)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-lints/src/too_many_states.rs | 52.6% | 10/19 |
app/crates/papyrus-lints/src/multiple_auto_states.rs | 55.0% | 11/20 |
app/crates/papyrus-lints/src/lib_tests/support.rs | 60.8% | 62/102 |
app/crates/papyrus-lints/src/goto_state.rs | 67.6% | 100/148 |
app/crates/papyrus-lints/src/useless_downcast.rs | 68.6% | 120/175 |
app/crates/papyrus-lints/src/unused_import.rs | 79.5% | 140/176 |
app/crates/papyrus-lints/src/local_variable_shadowing.rs | 80.7% | 134/166 |
app/crates/papyrus-lints/src/get_state_comparison.rs | 84.3% | 134/159 |
app/crates/papyrus-lints/src/argument_types.rs | 85.5% | 278/325 |
app/crates/papyrus-lints/src/argument_override_types.rs | 86.5% | 90/104 |
app/crates/papyrus-lints/src/return_types.rs | 87.1% | 142/163 |
app/crates/papyrus-lints/src/non_global_function_call.rs | 88.0% | 139/158 |
app/crates/papyrus-lints/src/unnecessary_function.rs | 89.9% | 258/287 |
app/crates/papyrus-lints/src/lib.rs | 92.7% | 179/193 |
app/crates/papyrus-lints/src/impossible_cast.rs | 93.2% | 164/176 |
app/crates/papyrus-lints/src/unused_nodiscard.rs | 93.6% | 264/282 |
app/crates/papyrus-lints/src/formid_hex_notation.rs | 93.8% | 195/208 |
app/crates/papyrus-lints/src/float_int_conversion.rs | 93.9% | 46/49 |
app/crates/papyrus-lints/src/repeated_setoutfit.rs | 93.9% | 93/99 |
app/crates/papyrus-lints/src/setvalue_in_loop.rs | 94.2% | 130/138 |
app/crates/papyrus-lints/src/unresolved_script.rs | 94.2% | 229/243 |
app/crates/papyrus-lints/src/unused_property.rs | 94.3% | 66/70 |
app/crates/papyrus-lints/src/unguarded_self_recursion.rs | 94.3% | 216/229 |
app/crates/papyrus-lints/src/magic_numbers.rs | 94.4% | 118/125 |
app/crates/papyrus-lints/src/forbidden_functions.rs | 94.6% | 123/130 |
app/crates/papyrus-lints/src/lib_tests/disable.rs | 94.7% | 18/19 |
app/crates/papyrus-lints/src/missing_doc_comment.rs | 94.9% | 111/117 |
app/crates/papyrus-lints/src/unchecked_cast.rs | 95.1% | 214/225 |
app/crates/papyrus-lints/src/assignment_operator_spacing.rs | 95.2% | 140/147 |
app/crates/papyrus-lints/src/script_name_collision.rs | 95.2% | 40/42 |
app/crates/papyrus-lints/src/operator_spacing.rs | 95.3% | 142/149 |
app/crates/papyrus-lints/src/global_variable_increment.rs | 95.4% | 206/216 |
app/crates/papyrus-lints/src/get_form_from_file_skyrim_esm.rs | 95.7% | 154/161 |
app/crates/papyrus-lints/src/int_division_to_float.rs | 96.0% | 97/101 |
app/crates/papyrus-lints/src/invalid_random_range.rs | 96.3% | 52/54 |
app/crates/papyrus-lints/src/circular_dependency.rs | 96.5% | 83/86 |
app/crates/papyrus-lints/src/float_equality.rs | 96.6% | 57/59 |
app/crates/papyrus-lints/src/identifier_casing.rs | 96.6% | 259/268 |
app/crates/papyrus-lints/src/static_function_call_via_instance.rs | 96.6% | 173/179 |
app/crates/papyrus-lints/src/unchecked_array_element.rs | 96.7% | 261/270 |
app/crates/papyrus-lints/src/empty_body.rs | 96.7% | 119/123 |
app/crates/papyrus-lints/src/debug_side_effects.rs | 96.8% | 120/124 |
app/crates/papyrus-lints/src/property_sorting.rs | 96.9% | 187/193 |
app/crates/papyrus-lints/src/invariant_loop_condition.rs | 97.2% | 106/109 |
app/crates/papyrus-lints/src/none_form_usage.rs | 97.3% | 249/256 |
app/crates/papyrus-lints/src/unreachable_elseif.rs | 97.3% | 145/149 |
app/crates/papyrus-lints/src/unused_getter.rs | 97.4% | 111/114 |
app/crates/papyrus-lints/src/type_flow.rs | 97.4% | 149/153 |
app/crates/papyrus-lints/src/state_count.rs | 97.4% | 75/77 |
app/crates/papyrus-lints/src/strict_boolean.rs | 97.6% | 80/82 |
app/crates/papyrus-lints/src/slow_functions.rs | 97.6% | 161/165 |
app/crates/papyrus-lints/src/const_eval.rs | 97.6% | 81/83 |
app/crates/papyrus-lints/src/named_arguments.rs | 97.6% | 246/252 |
app/crates/papyrus-lints/src/visitor.rs | 97.7% | 385/394 |
app/crates/papyrus-lints/src/parameter_reassignment.rs | 97.9% | 46/47 |
app/crates/papyrus-lints/src/lib_tests/lint.rs | 98.0% | 199/203 |
app/crates/papyrus-lints/src/array_bounds.rs | 98.1% | 153/156 |
app/crates/papyrus-lints/src/chain_whitespace.rs | 98.2% | 112/114 |
app/crates/papyrus-lints/src/short_wait_interval.rs | 98.3% | 57/58 |
app/crates/papyrus-lints/src/event_signature.rs | 98.4% | 62/63 |
app/crates/papyrus-lints/src/argument_naming.rs | 98.5% | 64/65 |
app/crates/papyrus-lints/src/numeric_comparison.rs | 98.5% | 64/65 |
app/crates/papyrus-lints/src/cyclomatic_complexity.rs | 98.5% | 67/68 |
app/crates/papyrus-lints/src/lib_tests/rule_flags_external.rs | 98.5% | 134/136 |
app/crates/papyrus-lints/src/unused_local_variable.rs | 98.5% | 135/137 |
app/crates/papyrus-lints/src/variable_used_before_assignment.rs | 98.8% | 244/247 |
app/crates/papyrus-lints/src/type_casing.rs | 98.8% | 165/167 |
app/crates/papyrus-lints/src/readonly_property_write.rs | 98.9% | 86/87 |
app/crates/papyrus-lints/src/unchecked_form_parameter.rs | 99.4% | 156/157 |
app/crates/papyrus-lints/src/global_variable_setvalue.rs | 99.4% | 172/173 |
app/crates/papyrus-lints/src/actor_value.rs | 100.0% | 52/52 |
app/crates/papyrus-lints/src/array_size_range.rs | 100.0% | 27/27 |
app/crates/papyrus-lints/src/block_comment.rs | 100.0% | 36/36 |
app/crates/papyrus-lints/src/comma_spacing.rs | 100.0% | 112/112 |
app/crates/papyrus-lints/src/config.rs | 100.0% | 76/76 |
app/crates/papyrus-lints/src/default_property_value.rs | 100.0% | 40/40 |
app/crates/papyrus-lints/src/disable_comments.rs | 100.0% | 151/151 |
app/crates/papyrus-lints/src/division_by_zero.rs | 100.0% | 35/35 |
app/crates/papyrus-lints/src/exclamation_spacing.rs | 100.0% | 109/109 |
app/crates/papyrus-lints/src/explicit_return.rs | 100.0% | 41/41 |
app/crates/papyrus-lints/src/external_signatures.rs | 100.0% | 46/46 |
app/crates/papyrus-lints/src/fragment_code.rs | 100.0% | 36/36 |
app/crates/papyrus-lints/src/function_override.rs | 100.0% | 63/63 |
app/crates/papyrus-lints/src/indentation.rs | 100.0% | 191/191 |
app/crates/papyrus-lints/src/lib_tests/diagnostic.rs | 100.0% | 9/9 |
app/crates/papyrus-lints/src/lib_tests/repair.rs | 100.0% | 128/128 |
app/crates/papyrus-lints/src/lib_tests/repair_external.rs | 100.0% | 82/82 |
app/crates/papyrus-lints/src/lib_tests/restrict_to_line.rs | 100.0% | 54/54 |
app/crates/papyrus-lints/src/lib_tests/rule_flags.rs | 100.0% | 287/287 |
app/crates/papyrus-lints/src/missing_update_handler.rs | 100.0% | 58/58 |
app/crates/papyrus-lints/src/native_function_usage.rs | 100.0% | 36/36 |
app/crates/papyrus-lints/src/registry.rs | 100.0% | 5/5 |
app/crates/papyrus-lints/src/repeated_getvalue.rs | 100.0% | 93/93 |
app/crates/papyrus-lints/src/self_assignment.rs | 100.0% | 37/37 |
app/crates/papyrus-lints/src/semicolon.rs | 100.0% | 79/79 |
app/crates/papyrus-lints/src/state_function_signature.rs | 100.0% | 108/108 |
app/crates/papyrus-lints/src/state_reference.rs | 100.0% | 21/21 |
app/crates/papyrus-lints/src/static_condition.rs | 100.0% | 35/35 |
app/crates/papyrus-lints/src/tags.rs | 100.0% | 12/12 |
app/crates/papyrus-lints/src/trailing_whitespace.rs | 100.0% | 59/59 |
app/crates/papyrus-lints/src/unreachable_statement.rs | 100.0% | 50/50 |
app/crates/papyrus-lints/src/unused_disable.rs | 100.0% | 86/86 |
papyrus-parser — 95.1% (2301/2419)
| File | Coverage | Lines |
|---|---|---|
app/crates/papyrus-parser/src/visit.rs | 49.2% | 87/177 |
app/crates/papyrus-parser/src/lib.rs | 96.9% | 506/522 |
app/crates/papyrus-parser/src/types.rs | 98.1% | 259/264 |
app/crates/papyrus-parser/src/lexer.rs | 98.8% | 414/419 |
app/crates/papyrus-parser/src/parser.rs | 99.7% | 705/707 |
app/crates/papyrus-parser/src/ast.rs | 100.0% | 6/6 |
app/crates/papyrus-parser/src/cache.rs | 100.0% | 223/223 |
app/crates/papyrus-parser/src/token.rs | 100.0% | 101/101 |
frontend — 97.8% (1987/2031)
| File | Coverage | Lines |
|---|---|---|
src/watch.ts | 87.5% | 49/56 |
src/live-edit-lint.ts | 91.7% | 22/24 |
src/code-viewer-diff.ts | 93.3% | 28/30 |
src/progress.ts | 93.5% | 29/31 |
src/code-viewer-actions.ts | 93.8% | 60/64 |
src/code-viewer-compile.ts | 94.4% | 17/18 |
src/autocomplete.ts | 94.9% | 168/177 |
src/live-edit-pointer.ts | 95.1% | 116/122 |
src/backend.ts | 95.5% | 42/44 |
src/live-edit-highlight.ts | 95.5% | 21/22 |
src/results-list-actions.ts | 97.0% | 32/33 |
src/code-viewer-view.ts | 97.4% | 37/38 |
src/presets-picker.ts | 98.1% | 52/53 |
src/live-edit-persist.ts | 98.2% | 55/56 |
src/results-filter.ts | 98.6% | 139/141 |
src/live-edit-autocomplete.ts | 98.9% | 88/89 |
src/drop.ts | 99.2% | 122/123 |
src/code-viewer-dialog.ts | 100.0% | 31/31 |
src/code-viewer-mode.ts | 100.0% | 11/11 |
src/code-viewer-state.ts | 100.0% | 27/27 |
src/code-viewer.ts | 100.0% | 14/14 |
src/config-io.ts | 100.0% | 14/14 |
src/config-ui.ts | 100.0% | 84/84 |
src/config.ts | n/a | 0/0 |
src/download-text-file.ts | 100.0% | 7/7 |
src/highlight.ts | 100.0% | 53/53 |
src/live-edit-members.ts | 100.0% | 10/10 |
src/live-edit.ts | 100.0% | 22/22 |
src/main-severity.ts | 100.0% | 5/5 |
src/main-tabs.ts | 100.0% | 9/9 |
src/main-types.ts | n/a | 0/0 |
src/main.ts | 100.0% | 73/73 |
src/path.ts | 100.0% | 14/14 |
src/presets-api.ts | 100.0% | 13/13 |
src/presets-management.ts | 100.0% | 98/98 |
src/presets-state.ts | 100.0% | 26/26 |
src/presets.ts | 100.0% | 6/6 |
src/project-io.ts | 100.0% | 42/42 |
src/project-settings.ts | 100.0% | 82/82 |
src/project-state.ts | 100.0% | 32/32 |
src/project.ts | n/a | 0/0 |
src/results-export-ai.ts | 100.0% | 38/38 |
src/results-export-json.ts | 100.0% | 3/3 |
src/results-export-text.ts | 100.0% | 1/1 |
src/results-export-types.ts | 100.0% | 2/2 |
src/results-list-export.ts | 100.0% | 18/18 |
src/results-list-item.ts | 100.0% | 89/89 |
src/results-list-mass-fix.ts | 100.0% | 32/32 |
src/results-list-render.ts | 100.0% | 12/12 |
src/results-list-state.ts | 100.0% | 16/16 |
src/results-list.ts | 100.0% | 4/4 |
src/theme.ts | 100.0% | 22/22 |
src-tauri — 95.0% (1338/1409)
| File | Coverage | Lines |
|---|---|---|
app/src-tauri/src/lib.rs | 0.0% | 0/8 |
app/src-tauri/src/export.rs | 92.1% | 58/63 |
app/src-tauri/src/main.rs | 93.3% | 237/254 |
app/src-tauri/src/lint_config.rs | 93.8% | 195/208 |
app/src-tauri/src/repair.rs | 95.1% | 135/142 |
app/src-tauri/src/project_root.rs | 96.1% | 49/51 |
app/src-tauri/src/lint.rs | 96.6% | 114/118 |
app/src-tauri/src/config_presets.rs | 96.7% | 177/183 |
app/src-tauri/src/files.rs | 97.4% | 334/343 |
app/src-tauri/src/meta.rs | 100.0% | 39/39 |
Editor plugins — 99.2% (1034/1042)
SublimeLinter-contrib-papyrus-lint — 98.9% (363/367)
| File | Coverage | Lines |
|---|---|---|
SublimeLinter-contrib-papyrus-lint/cli_download.py | 97.3% | 145/149 |
SublimeLinter-contrib-papyrus-lint/cli_hashes.py | 100.0% | 1/1 |
SublimeLinter-contrib-papyrus-lint/commands.py | 100.0% | 174/174 |
SublimeLinter-contrib-papyrus-lint/linter.py | 100.0% | 43/43 |
vscode-extension — 99.4% (671/675)
| File | Coverage | Lines |
|---|---|---|
out-test/src/cli.js | 97.8% | 87/89 |
out-test/src/cliDownload.js | 98.4% | 120/122 |
out-test/src/cliHashes.js | 100.0% | 13/13 |
out-test/src/codeActions.js | 100.0% | 34/34 |
out-test/src/config.js | 100.0% | 38/38 |
out-test/src/diagnostics.js | 100.0% | 22/22 |
out-test/src/documents.js | 100.0% | 34/34 |
out-test/src/extension.js | 100.0% | 47/47 |
out-test/src/init.js | 100.0% | 76/76 |
out-test/src/linter.js | 100.0% | 111/111 |
out-test/src/liveLint.js | 100.0% | 46/46 |
out-test/src/vscodeDiagnostics.js | 100.0% | 43/43 |
Tooling — 95.5% (1576/1650)
CI tooling — 94.9% (777/819)
| File | Coverage | Lines |
|---|---|---|
.github/scripts/write_cli_hashes.py | 0.0% | 0/16 |
.github/scripts/lighthouse_summary.py | 90.9% | 10/11 |
.github/scripts/render_nexuspage.py | 91.7% | 11/12 |
.github/scripts/build_rules_json.py | 93.3% | 14/15 |
.github/scripts/ci_lib/source_metrics.py | 93.3% | 154/165 |
.github/scripts/bbcode_lint.py | 93.8% | 15/16 |
.github/scripts/ci_lib/links.py | 94.3% | 116/123 |
.github/scripts/generate_nexuspage_tables.py | 94.4% | 17/18 |
.github/scripts/hall_of_shame.py | 95.2% | 20/21 |
.github/scripts/coverage_summary.py | 95.5% | 21/22 |
.github/scripts/semver_advisory.py | 96.9% | 31/32 |
.github/scripts/ci_lib/__init__.py | n/a | 0/0 |
.github/scripts/ci_lib/bbcode.py | 100.0% | 44/44 |
.github/scripts/ci_lib/cli_release_hashes.py | 100.0% | 49/49 |
.github/scripts/ci_lib/coverage_lcov.py | 100.0% | 56/56 |
.github/scripts/ci_lib/lighthouse_report.py | 100.0% | 71/71 |
.github/scripts/ci_lib/nexuspage_render.py | 100.0% | 27/27 |
.github/scripts/ci_lib/nexuspage_tables.py | 100.0% | 30/30 |
.github/scripts/ci_lib/rules_json.py | 100.0% | 16/16 |
.github/scripts/ci_lib/semver.py | 100.0% | 75/75 |
Pages (site builder) — 96.1% (799/831)
| File | Coverage | Lines |
|---|---|---|
pages/build.py | 92.7% | 102/110 |
pages/browser_check.py | 94.1% | 128/136 |
pages/rules_page.py | 94.4% | 51/54 |
pages/site_chrome.py | 95.6% | 65/68 |
pages/css.py | 95.7% | 22/23 |
pages/docs_pages.py | 96.8% | 120/124 |
pages/coverage_report.py | 97.3% | 107/110 |
pages/markdown_render.py | 98.5% | 130/132 |
pages/highlighting.py | 100.0% | 21/21 |
pages/minify.py | 100.0% | 19/19 |
pages/site_assets.py | 100.0% | 34/34 |
