From 53e97b0c13be2aad79f3f2af2b95c32be2663e7e Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Thu, 5 Dec 2024 13:23:38 +0900 Subject: [PATCH 1/8] =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E5=B4=A9=E3=82=8C?= =?UTF-8?q?=E3=82=92=E4=BA=8B=E5=89=8D=E4=BF=AE=E6=AD=A3=E3=81=99=E3=82=8B?= =?UTF-8?q?Markdown=E6=8B=A1=E5=BC=B5=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/cpprefjp/site/issues/1362 --- fix_display_error.py | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 fix_display_error.py diff --git a/fix_display_error.py b/fix_display_error.py new file mode 100644 index 0000000..8536e9a --- /dev/null +++ b/fix_display_error.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +""" +表示崩れを事前修正 +========================================= + +Markdownライブラリの箇条書きの前に空行が必要な制限を回避 +""" + +import re +import datetime + +from markdown.extensions import Extension +from markdown.preprocessors import Preprocessor + +def is_item_line(line: str) -> bool: + m = re.match(r'^([0-9]+\.\s)', line) + if m: + return True + + m = re.match(r'^([+-]\s)', line) + if m: + return True + return False + +class FixDisplayErrorExtension(Extension): + + def extendMarkdown(self, md, md_globals): + pre = FixDisplayErrorPreprocessor(md) + + md.registerExtension(self) + md.preprocessors.add('fix_display_error', pre, ">normalize_whitespace") + + +class FixDisplayErrorPreprocessor(Preprocessor): + + def __init__(self, md): + Preprocessor.__init__(self, md) + self._markdown = md + + def run(self, lines): + new_lines = [] + self._markdown._meta_result = {} + + in_code_block: bool = False + prev_line: str | None = None + for line in lines: + is_code_block = line.strip().startswith("```") + if is_code_block: + in_code_block = not in_code_block + + if in_code_block: + new_lines.append(line) + continue + + if prev_line != None: + if not is_item_line(prev_line) and is_item_line(line): + new_lines.append("") + + prev_line = line + new_lines.append(line) + + return new_lines + + +def makeExtension(**kwargs): + return FixDisplayErrorExtension(**kwargs) From 8a64f39f89cbc164a2f546572014a0911636d5c5 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Thu, 5 Dec 2024 16:13:46 +0900 Subject: [PATCH 2/8] =?UTF-8?q?=E5=89=8A=E9=99=A4=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=82=8BRegistry.add=E9=96=A2=E6=95=B0=E3=81=AE=E4=BB=A3?= =?UTF-8?q?=E3=82=8F=E3=82=8A=E3=81=ABRegistry.register=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commit.py | 5 ++--- fix_display_error.py | 3 ++- footer.py | 3 ++- mark.py | 5 ++--- mathjax.py | 3 ++- meta.py | 6 ++++-- qualified_fenced_code.py | 3 ++- sponsor.py | 5 ++--- 8 files changed, 18 insertions(+), 15 deletions(-) diff --git a/commit.py b/commit.py index a04aa00..ec5180c 100644 --- a/commit.py +++ b/commit.py @@ -39,18 +39,17 @@ def extendMarkdown(self, md, md_globals): pre = CommitPreprocessor(md) md.registerExtension(self) - md.preprocessors.add('commit', pre, ">normalize_whitespace") + #md.preprocessors.add('commit', pre, ">normalize_whitespace") + md.preprocessors.register(pre, 'commit', 25) class CommitPreprocessor(Preprocessor): def __init__(self, md): Preprocessor.__init__(self, md) - self._markdown = md def run(self, lines): new_lines = [] - self._markdown._meta_result = {} for line in lines: new_line = replace_commit_line(line) diff --git a/fix_display_error.py b/fix_display_error.py index 8536e9a..d081061 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -28,7 +28,8 @@ def extendMarkdown(self, md, md_globals): pre = FixDisplayErrorPreprocessor(md) md.registerExtension(self) - md.preprocessors.add('fix_display_error', pre, ">normalize_whitespace") + #md.preprocessors.add('fix_display_error', pre, ">qualified_fenced_code") + md.preprocessors.register(pre, 'fix_display_error', 29) class FixDisplayErrorPreprocessor(Preprocessor): diff --git a/footer.py b/footer.py index 6920132..d3ee452 100644 --- a/footer.py +++ b/footer.py @@ -20,7 +20,8 @@ def extendMarkdown(self, md, md_globals): footer = FooterTreeprocessor() footer.config = self.getConfigs() md.registerExtension(self) - md.treeprocessors.add('footer', footer, '_begin') + #md.treeprocessors.add('footer', footer, '_begin') + md.treeprocessors.register(footer, 'footer', 50) # top priority (begin) class FooterTreeprocessor(markdown.treeprocessors.Treeprocessor): diff --git a/mark.py b/mark.py index 3d49ce9..92042ff 100644 --- a/mark.py +++ b/mark.py @@ -31,18 +31,17 @@ def extendMarkdown(self, md, md_globals): markpre = MarkPreprocessor(md) md.registerExtension(self) - md.preprocessors.add('mark', markpre, ">normalize_whitespace") + #md.preprocessors.add('mark', markpre, ">normalize_whitespace") + md.preprocessors.register(markpre, 'mark', 25) class MarkPreprocessor(Preprocessor): def __init__(self, md): Preprocessor.__init__(self, md) - self._markdown = md def run(self, lines): new_lines = [] - self._markdown._meta_result = {} pattern = re.compile("|".join(map(re.escape, MARK_DICT.keys()))) for line in lines: diff --git a/mathjax.py b/mathjax.py index 09af179..bdc79a2 100644 --- a/mathjax.py +++ b/mathjax.py @@ -28,7 +28,8 @@ def extendMarkdown(self, md, md_globals): mathjaxpre = MathJaxPreprocessor(md) md.registerExtension(self) - md.preprocessors.add('mathjax', mathjaxpre, ">normalize_whitespace") + #md.preprocessors.add('mathjax', mathjaxpre, ">normalize_whitespace") + md.preprocessors.register(mathjaxpre, 'mathjax', 25) class MathJaxPreprocessor(Preprocessor): diff --git a/meta.py b/meta.py index ecb858f..f331b52 100644 --- a/meta.py +++ b/meta.py @@ -40,8 +40,10 @@ def extendMarkdown(self, md, md_globals): metapost = MetaPostprocessor(md) md.registerExtension(self) - md.preprocessors.add('meta', metapre, ">normalize_whitespace") - md.postprocessors.add('meta', metapost, '_end') + #md.preprocessors.add('meta', metapre, ">normalize_whitespace") + #md.postprocessors.add('meta', metapost, '_end') + md.preprocessors.register(metapre, 'meta', 25) + md.postprocessors.register(metapost, 'meta', 0) # bottom priority (end) class MetaPreprocessor(Preprocessor): diff --git a/qualified_fenced_code.py b/qualified_fenced_code.py index 6509299..c611de7 100644 --- a/qualified_fenced_code.py +++ b/qualified_fenced_code.py @@ -55,7 +55,8 @@ def extendMarkdown(self, md, md_globals): fenced_block = QualifiedFencedBlockPreprocessor(md, self.global_qualify_list) md.registerExtension(self) - md.preprocessors.add('qualified_fenced_code', fenced_block, ">normalize_whitespace") + #md.preprocessors.add('qualified_fenced_code', fenced_block, ">normalize_whitespace") + md.preprocessors.register(fenced_block, 'qualified_fenced_code', 28) def _make_random_string(): diff --git a/sponsor.py b/sponsor.py index ef40335..570e69c 100644 --- a/sponsor.py +++ b/sponsor.py @@ -80,18 +80,17 @@ def extendMarkdown(self, md, md_globals): pre = SponsorPreprocessor(md) md.registerExtension(self) - md.preprocessors.add('sponsor', pre, ">normalize_whitespace") + #md.preprocessors.add('sponsor', pre, ">normalize_whitespace") + md.preprocessors.register(pre, 'sponsor', 25) class SponsorPreprocessor(Preprocessor): def __init__(self, md): Preprocessor.__init__(self, md) - self._markdown = md def run(self, lines): new_lines = [] - self._markdown._meta_result = {} jst = datetime.timezone(datetime.timedelta(hours=+9), 'JST') now = datetime.datetime.now(jst) From 78e863264472a19953de3e778f426d7f0b8791fd Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Thu, 5 Dec 2024 16:14:35 +0900 Subject: [PATCH 3/8] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E5=BE=8C=E3=81=AB=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E4=BF=AE=E9=A3=BE=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=81=AB=E7=A9=BA=E8=A1=8C=E3=82=92=E6=8C=9F?= =?UTF-8?q?=E3=82=80=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_display_error.py | 55 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/fix_display_error.py b/fix_display_error.py index d081061..e4d8108 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -3,7 +3,10 @@ 表示崩れを事前修正 ========================================= -Markdownライブラリの箇条書きの前に空行が必要な制限を回避 +Markdownライブラリの以下の制限を回避: + +- 箇条書きの前に空行が必要な制限を回避して、自動で空行を挟む +- コードブロックのあとにコード修飾以外を書く際は空行が必要になる制限を回避して、自動で空行を挟む """ import re @@ -13,15 +16,31 @@ from markdown.preprocessors import Preprocessor def is_item_line(line: str) -> bool: - m = re.match(r'^([0-9]+\.\s)', line) + stripped_line = line.strip() + m = re.match(r'^([0-9]+\.\s)', stripped_line) if m: return True - m = re.match(r'^([+-]\s)', line) + m = re.match(r'^([*+-]\s)', stripped_line) if m: return True return False +def is_qualify_or_meta(line: str) -> bool: + if not is_item_line(line): + return False + if "[meta" in line: + return True + if "[mathjax enable]" in line: + return True + if "[link" in line: + return True + if "[color" in line: + return True + if "[italic]" in line: + return True + return False + class FixDisplayErrorExtension(Extension): def extendMarkdown(self, md, md_globals): @@ -36,25 +55,43 @@ class FixDisplayErrorPreprocessor(Preprocessor): def __init__(self, md): Preprocessor.__init__(self, md) - self._markdown = md def run(self, lines): new_lines = [] - self._markdown._meta_result = {} + in_outer_code_block: bool = False in_code_block: bool = False prev_line: str | None = None + is_prev_code_block = False for line in lines: - is_code_block = line.strip().startswith("```") - if is_code_block: - in_code_block = not in_code_block + is_outer_code_block = line.strip().startswith("````") + if is_outer_code_block: + in_outer_code_block = not in_outer_code_block + prev_line = line + new_lines.append(line) + continue + + if not in_outer_code_block: + is_code_block = line.strip().startswith("```") + if is_code_block: + in_code_block = not in_code_block + if not in_code_block: + is_prev_code_block = True + prev_line = line + new_lines.append(line) + continue + + if is_prev_code_block and len(line) > 0 and not is_item_line(line) and not is_qualify_or_meta(line): + is_prev_code_block = False + new_lines.append("") if in_code_block: + prev_line = line new_lines.append(line) continue if prev_line != None: - if not is_item_line(prev_line) and is_item_line(line): + if not is_item_line(prev_line) and is_item_line(line) and not is_qualify_or_meta(line): new_lines.append("") prev_line = line From a50dbc64471e2c50a7c9c0b3e80ced7f04392d5e Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Wed, 11 Dec 2024 12:26:32 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E4=BF=AE?= =?UTF-8?q?=E9=A3=BE=E3=82=92=E5=87=A6=E7=90=86=E3=81=97=E3=81=9F=E3=81=82?= =?UTF-8?q?=E3=81=A8=E3=81=AB=E8=A1=A8=E7=A4=BA=E5=B4=A9=E3=82=8C=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=82=92=E3=81=99=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commit.py | 1 - fix_display_error.py | 28 +++------------------------- mark.py | 1 - mathjax.py | 1 - meta.py | 2 -- qualified_fenced_code.py | 3 +-- sponsor.py | 1 - 7 files changed, 4 insertions(+), 33 deletions(-) diff --git a/commit.py b/commit.py index ec5180c..0e426a7 100644 --- a/commit.py +++ b/commit.py @@ -39,7 +39,6 @@ def extendMarkdown(self, md, md_globals): pre = CommitPreprocessor(md) md.registerExtension(self) - #md.preprocessors.add('commit', pre, ">normalize_whitespace") md.preprocessors.register(pre, 'commit', 25) diff --git a/fix_display_error.py b/fix_display_error.py index e4d8108..9229825 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -6,7 +6,6 @@ Markdownライブラリの以下の制限を回避: - 箇条書きの前に空行が必要な制限を回避して、自動で空行を挟む -- コードブロックのあとにコード修飾以外を書く際は空行が必要になる制限を回避して、自動で空行を挟む """ import re @@ -26,29 +25,13 @@ def is_item_line(line: str) -> bool: return True return False -def is_qualify_or_meta(line: str) -> bool: - if not is_item_line(line): - return False - if "[meta" in line: - return True - if "[mathjax enable]" in line: - return True - if "[link" in line: - return True - if "[color" in line: - return True - if "[italic]" in line: - return True - return False - class FixDisplayErrorExtension(Extension): def extendMarkdown(self, md, md_globals): pre = FixDisplayErrorPreprocessor(md) md.registerExtension(self) - #md.preprocessors.add('fix_display_error', pre, ">qualified_fenced_code") - md.preprocessors.register(pre, 'fix_display_error', 29) + md.preprocessors.register(pre, 'fix_display_error', 28) class FixDisplayErrorPreprocessor(Preprocessor): @@ -62,7 +45,6 @@ def run(self, lines): in_outer_code_block: bool = False in_code_block: bool = False prev_line: str | None = None - is_prev_code_block = False for line in lines: is_outer_code_block = line.strip().startswith("````") if is_outer_code_block: @@ -81,17 +63,13 @@ def run(self, lines): new_lines.append(line) continue - if is_prev_code_block and len(line) > 0 and not is_item_line(line) and not is_qualify_or_meta(line): - is_prev_code_block = False - new_lines.append("") - if in_code_block: prev_line = line new_lines.append(line) continue - if prev_line != None: - if not is_item_line(prev_line) and is_item_line(line) and not is_qualify_or_meta(line): + if prev_line != None and len(prev_line) > 0: + if not is_item_line(prev_line) and is_item_line(line): new_lines.append("") prev_line = line diff --git a/mark.py b/mark.py index 92042ff..e317a59 100644 --- a/mark.py +++ b/mark.py @@ -31,7 +31,6 @@ def extendMarkdown(self, md, md_globals): markpre = MarkPreprocessor(md) md.registerExtension(self) - #md.preprocessors.add('mark', markpre, ">normalize_whitespace") md.preprocessors.register(markpre, 'mark', 25) diff --git a/mathjax.py b/mathjax.py index bdc79a2..68b923f 100644 --- a/mathjax.py +++ b/mathjax.py @@ -28,7 +28,6 @@ def extendMarkdown(self, md, md_globals): mathjaxpre = MathJaxPreprocessor(md) md.registerExtension(self) - #md.preprocessors.add('mathjax', mathjaxpre, ">normalize_whitespace") md.preprocessors.register(mathjaxpre, 'mathjax', 25) diff --git a/meta.py b/meta.py index f331b52..6994d92 100644 --- a/meta.py +++ b/meta.py @@ -40,8 +40,6 @@ def extendMarkdown(self, md, md_globals): metapost = MetaPostprocessor(md) md.registerExtension(self) - #md.preprocessors.add('meta', metapre, ">normalize_whitespace") - #md.postprocessors.add('meta', metapost, '_end') md.preprocessors.register(metapre, 'meta', 25) md.postprocessors.register(metapost, 'meta', 0) # bottom priority (end) diff --git a/qualified_fenced_code.py b/qualified_fenced_code.py index 273a815..ddeb4ac 100644 --- a/qualified_fenced_code.py +++ b/qualified_fenced_code.py @@ -65,8 +65,7 @@ def extendMarkdown(self, md, md_globals): fenced_block = QualifiedFencedBlockPreprocessor(md, self.global_qualify_list) md.registerExtension(self) - #md.preprocessors.add('qualified_fenced_code', fenced_block, ">normalize_whitespace") - md.preprocessors.register(fenced_block, 'qualified_fenced_code', 28) + md.preprocessors.register(fenced_block, 'qualified_fenced_code', 29) def _make_random_string(): diff --git a/sponsor.py b/sponsor.py index 570e69c..64e8dd9 100644 --- a/sponsor.py +++ b/sponsor.py @@ -80,7 +80,6 @@ def extendMarkdown(self, md, md_globals): pre = SponsorPreprocessor(md) md.registerExtension(self) - #md.preprocessors.add('sponsor', pre, ">normalize_whitespace") md.preprocessors.register(pre, 'sponsor', 25) From db63374f01e65edf5152e40d206fd29305aecda7 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Wed, 11 Dec 2024 13:22:10 +0900 Subject: [PATCH 5/8] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96?= =?UTF-8?q?=E3=83=AD=E3=83=83=E3=82=AF=E5=87=A6=E7=90=86=E5=BE=8C=E3=81=AA?= =?UTF-8?q?=E3=81=AE=E3=81=A7=E3=82=B3=E3=83=BC=E3=83=89=E3=83=96=E3=83=AD?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=81=AF=E8=80=83=E6=85=AE=E3=81=97=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=81=93=E3=81=A8=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_display_error.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/fix_display_error.py b/fix_display_error.py index 9229825..2e1853a 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -42,32 +42,8 @@ def __init__(self, md): def run(self, lines): new_lines = [] - in_outer_code_block: bool = False - in_code_block: bool = False prev_line: str | None = None for line in lines: - is_outer_code_block = line.strip().startswith("````") - if is_outer_code_block: - in_outer_code_block = not in_outer_code_block - prev_line = line - new_lines.append(line) - continue - - if not in_outer_code_block: - is_code_block = line.strip().startswith("```") - if is_code_block: - in_code_block = not in_code_block - if not in_code_block: - is_prev_code_block = True - prev_line = line - new_lines.append(line) - continue - - if in_code_block: - prev_line = line - new_lines.append(line) - continue - if prev_line != None and len(prev_line) > 0: if not is_item_line(prev_line) and is_item_line(line): new_lines.append("") From 862a309bd6f2face82ffcf7b05ef7cc3aa875a97 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Wed, 11 Dec 2024 16:35:25 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=83=87=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=81=95=E3=82=8C=E3=81=9F=E8=A1=8C=E3=82=82=E7=AE=87?= =?UTF-8?q?=E6=9D=A1=E6=9B=B8=E3=81=8D=E3=81=A8=E3=81=BF=E3=81=AA=E3=81=99?= =?UTF-8?q?=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_display_error.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fix_display_error.py b/fix_display_error.py index 2e1853a..32fed8a 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -15,6 +15,11 @@ from markdown.preprocessors import Preprocessor def is_item_line(line: str) -> bool: + if line.startswith(" "): + return True + if line.startswith("\t"): + return True + stripped_line = line.strip() m = re.match(r'^([0-9]+\.\s)', stripped_line) if m: From bab3753b30754bfa8f8ff8fabdfaad31d3b896cf Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Thu, 12 Dec 2024 20:56:41 +0900 Subject: [PATCH 7/8] =?UTF-8?q?=E7=AE=87=E6=9D=A1=E6=9B=B8=E3=81=8D?= =?UTF-8?q?=E3=81=AF=E7=A9=BA=E8=A1=8C=E3=81=8C=E3=81=8F=E3=82=8B=E3=81=BE?= =?UTF-8?q?=E3=81=A7=E7=AE=87=E6=9D=A1=E6=9B=B8=E3=81=8D=E3=81=A8=E3=81=97?= =?UTF-8?q?=E3=81=A6=E6=89=B1=E3=81=86=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_display_error.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/fix_display_error.py b/fix_display_error.py index 32fed8a..7ea8340 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -15,11 +15,6 @@ from markdown.preprocessors import Preprocessor def is_item_line(line: str) -> bool: - if line.startswith(" "): - return True - if line.startswith("\t"): - return True - stripped_line = line.strip() m = re.match(r'^([0-9]+\.\s)', stripped_line) if m: @@ -48,10 +43,20 @@ def run(self, lines): new_lines = [] prev_line: str | None = None + in_item: bool = False for line in lines: - if prev_line != None and len(prev_line) > 0: - if not is_item_line(prev_line) and is_item_line(line): - new_lines.append("") + if prev_line == None: + prev_line = line + new_lines.append(line) + continue + + if not is_item_line(prev_line) and not in_item and is_item_line(line): + new_lines.append("") + + if not in_item and is_item_line(line): + in_item = True + if in_item and len(line) == 0: + in_item = False prev_line = line new_lines.append(line) From 6ae5a1146ad15085417eb7f6ecef372b30f50849 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Thu, 12 Dec 2024 21:00:15 +0900 Subject: [PATCH 8/8] =?UTF-8?q?=E8=A6=8B=E5=87=BA=E3=81=97=E8=A1=8C?= =?UTF-8?q?=E3=82=82=E7=AE=87=E6=9D=A1=E6=9B=B8=E3=81=8D=E3=81=AE=E7=B5=82?= =?UTF-8?q?=E4=BA=86=E3=81=A8=E3=81=BF=E3=81=AA=E3=81=99=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fix_display_error.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fix_display_error.py b/fix_display_error.py index 7ea8340..5a3c04b 100644 --- a/fix_display_error.py +++ b/fix_display_error.py @@ -25,6 +25,13 @@ def is_item_line(line: str) -> bool: return True return False +def is_item_end_line(line: str) -> bool: + if len(line) == 0: + return True + if re.match(r'^#+ ', line): + return True + return False + class FixDisplayErrorExtension(Extension): def extendMarkdown(self, md, md_globals): @@ -55,7 +62,7 @@ def run(self, lines): if not in_item and is_item_line(line): in_item = True - if in_item and len(line) == 0: + if in_item and is_item_end_line(line): in_item = False prev_line = line