Skip to content

Commit ef60702

Browse files
geeboshukkinj1tongyulong
authored
👌 IMPROVE: Ensure len(state.src) == len(state.srcCharCode) (#108)
Co-authored-by: Taneli Hukkinen <[email protected]> Co-authored-by: tongyulong <[email protected]>
1 parent 2136ab7 commit ef60702

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

markdown_it/ruler.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,20 @@ class Ruler
2121

2222
class StateBase:
2323
def __init__(self, src: str, md, env):
24+
self.srcCharCode: List[int] = []
2425
self.src = src
2526
self.env = env
2627
self.md = md
2728

29+
@property
30+
def src(self):
31+
return self._src
32+
33+
@src.setter
34+
def src(self, value):
35+
self._src = value
36+
self.srcCharCode = [ord(c) for c in self.src] if self.src is not None else []
37+
2838

2939
# The first positional arg is always a subtype of `StateBase`. Other
3040
# arguments may or may not exist, based on the rule's type (block,

markdown_it/rules_block/state_block.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ def __init__(
1515
srcCharCode: Optional[List[int]] = None,
1616
):
1717

18-
self.src = src
1918
if srcCharCode is not None:
19+
self._src = src
2020
self.srcCharCode = srcCharCode
2121
else:
22-
self.srcCharCode = [ord(c) for c in src] if src is not None else []
22+
self.src = src
2323

2424
# link to parser instance
2525
self.md = md

markdown_it/rules_core/state_core.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
class StateCore(StateBase):
88
def __init__(self, src: str, md, env, tokens=None):
99
self.src = src
10-
self.srcCharCode = [ord(c) for c in src] if src is not None else []
1110
self.md = md # link to parser instance
1211
self.env = env
1312
self.tokens: List[Token] = tokens or []

markdown_it/rules_inline/state_inline.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class Delimiter:
4545
class StateInline(StateBase):
4646
def __init__(self, src: str, md, env, outTokens: List[Token]):
4747
self.src = src
48-
self.srcCharCode = [ord(c) for c in src] if src is not None else []
4948
self.env = env
5049
self.md = md
5150
self.tokens = outTokens

0 commit comments

Comments
 (0)