Skip to content

Commit 73f7ac1

Browse files
committed
keep eol
1 parent 2faf341 commit 73f7ac1

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

bgm_tv_wiki/__init__.py

+10-9
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def non_zero(self) -> Wiki:
6161
fields.append(Field(key=f.key, value=v))
6262
continue
6363

64-
return Wiki(type=self.type, fields=tuple(fields))
64+
return Wiki(type=self.type, fields=tuple(fields), _eol=self._eol)
6565

6666
def get(self, key: str) -> str | list[Item] | None:
6767
for f in self.fields:
@@ -100,11 +100,11 @@ def __set(self, field: Field) -> Wiki:
100100
if not found:
101101
fields.append(field)
102102

103-
return Wiki(type=self.type, fields=tuple(fields))
103+
return Wiki(type=self.type, fields=tuple(fields), _eol=self._eol)
104104

105105
def remove(self, key: str) -> Wiki:
106106
fields = tuple(f for f in self.fields if f.key != key)
107-
return Wiki(type=self.type, fields=fields)
107+
return Wiki(type=self.type, fields=fields, _eol=self._eol)
108108

109109
def semantics_equal(self, other: Wiki) -> bool:
110110
if self.type != other.type:
@@ -197,11 +197,11 @@ def try_parse(s: str) -> Wiki:
197197

198198
def parse(s: str) -> Wiki:
199199
crlf = s.count("\r\n")
200-
lf = s.count("\n")
201-
if crlf == 0 or lf == 0 or lf > crlf:
202-
eol = "\n"
203-
else:
200+
lf = s.count("\n") - crlf
201+
if crlf >= lf:
204202
eol = "\r\n"
203+
else:
204+
eol = "\n"
205205

206206
s = s.replace("\r\n", "\n")
207207
s, line_offset = _process_input(s)
@@ -371,11 +371,12 @@ def __render(w: Wiki) -> Generator[str, None, None]:
371371
if isinstance(field.value, str):
372372
yield f"|{field.key}= {field.value}"
373373
elif isinstance(field.value, list):
374-
yield f"|{field.key}= {{"
374+
yield f"|{field.key}={{"
375375
yield from __render_items(field.value)
376376
yield "}"
377377
elif field.value is None:
378-
yield f"|{field.key}="
378+
# default editor will add a space
379+
yield f"|{field.key}= "
379380
else:
380381
raise TypeError("type not support", type(field.value))
381382

0 commit comments

Comments
 (0)