diff --git a/src/claridoc/style_contracts.py b/src/claridoc/style_contracts.py index 0a91ec8..67ed17a 100644 --- a/src/claridoc/style_contracts.py +++ b/src/claridoc/style_contracts.py @@ -149,6 +149,7 @@ def reader_prose_segments(markdown: str) -> list[ReaderProseSegment]: for quoted_span in _QUOTED_SPANS: prose = quoted_span.sub("", prose) prose = re.sub(r"^\s*(?:[-*+]|\d+[.)])\s+", "", prose).strip() + prose = re.sub(r"[*_~]", "", prose).strip() if prose: segments.append(ReaderProseSegment(prose, line_number, current_h2)) diff --git a/tests/test_lint.py b/tests/test_lint.py index 07dea73..e53ca4f 100644 --- a/tests/test_lint.py +++ b/tests/test_lint.py @@ -214,6 +214,19 @@ class LintTests(unittest.TestCase): self.assertIn("STYLE002", {issue.code for issue in report.issues}) self.assertEqual(report.metrics["plain_form_ending_count"], 1) + def test_korean_experience_contract_blocks_emphasized_plain_ending(self) -> None: + brief = self._korean_experience_brief() + sources = make_sources() + text, outline = self._experience_document( + brief, + extra_by_section={0: "**현재 구현은 이 값을 사용한다.**"}, + ) + + report = lint_document(text, brief, outline, sources) + + self.assertIn("STYLE002", {issue.code for issue in report.issues}) + self.assertEqual(report.metrics["plain_form_ending_count"], 1) + def test_korean_style_lint_exempts_non_reader_prose(self) -> None: brief = self._korean_experience_brief() sources = make_sources()