Newer
Older
file = open("md1.txt", encoding="utf-8")
arr = []
for i in file:
arr.append(i.rstrip("\n"))
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
new_arr = []
new_arr.append(f"## **{arr.pop(0)}**")
for _ in range(4):
del arr[0]
stek = []
p = False
li_c = False
li = False
li_c2 = False
for s in arr:
if "Пример" in s:
if p:
new_arr.append(f"|||{'<br>'.join(stek).rstrip('<br>')}")
else:
new_arr.append("<br>".join(stek).rstrip("<br>"))
p = True
stek = []
new_arr.append(f"### **{s}**")
elif p:
if s == "Ввод\tВывод":
if stek:
new_arr.append(f"|||{'<br>'.join(stek).rstrip('<br>')}")
new_arr.append("<br>".join(stek).rstrip("<br>"))
stek = []
new_arr.append("|Ввод |Вывод|")
new_arr.append("|-----|-----|")
else:
stek.append(s)
elif s == "Формат ввода" or s == "Формат вывода" or s == "Примечание":
new_arr.append("<br>".join(stek).rstrip("<br>"))
stek = []
new_arr.append(f"### **{s}**")
else:
if s and s[-1] == ":":
li_c = True
stek.append(s)
elif li_c:
li_c = False
if s == "":
li = True
new_arr.append("<br>".join(stek) + "<br>")
stek = []
elif li:
if not li_c2:
if s[-1] == ";":
li_c2 = True
else:
li = False
stek.append(s)
if li_c2:
new_arr.append(f"* {s}")
if s[-1] == ".":
li = False
new_arr.append("")
li_c2 = False
else:
stek.append(s)
new_arr.append(f"|||{'<br>'.join(stek[:-1]).rstrip('<br>')}")
file.close()
input_count = stek[-1]
input_count = int(input_count)
for i in range(len(new_arr)):
if new_arr[i][:3] == "|||":
data = new_arr[i][3:].split("<br>")
if input_count == "_":
data = f"|{'<br>'.join(data)}||"
elif input_count > 0:
if 2 * input_count > len(data):
data = f"|{'<br>'.join(data[:input_count])}|{'<br>'.join(data[input_count:])}<br>{'<br>'.join([' '] * (2 * input_count - len(data)))}<br>|"
data = f"|{'<br>'.join(data[:input_count])}|{'<br>'.join(data[input_count:])}|"
else:
data = f"|{'<br>'.join(data[:input_count])}<br>{'<br>'.join([' '] * (len(data) - 2 * input_count))}<br>|{'<br>'.join(data[input_count:])}<br>|"
else:
if -2 * input_count > len(data):
data = f"|{'<br>'.join(data[:len(data) + input_count])}<br>{'<br>'.join([' '] * (-2 * input_count - len(data)))}<br>|{'<br>'.join(data[:-1 * input_count])}|"
data = f"|{'<br>'.join(data[:-1 * input_count])}|{'<br>'.join(data[-1 * input_count:])}|"
data = f"|{'<br>'.join(data[:len(data) + input_count])}|{'<br>'.join(data[len(data) + input_count:])}<br>{'<br>'.join([' '] * (len(data) - -2 * input_count))}<br>|"
new_arr[i] = data
for i in range(len(new_arr)):
if new_arr[i] and (new_arr[i][0] == "|" or new_arr[i][0] == "#"):
continue
elems = new_arr[i].split("<br>")
del_ind = []
for j in range(len(elems) - 1):
if len(elems[j]) == 1 and elems[j] == elems[j + 1][0]:
del_ind.append(j)
if del_ind:
for j in del_ind[::-1]:
if j:
buff = elems.pop(j + 1)
elems[j - 1] = elems[j - 1] + "$" + buff[0] + "$" + buff[1:]
del elems[j]