2025-02-15 02:42:21 +03:00
|
|
|
|
# import json
|
|
|
|
|
|
# import sys
|
|
|
|
|
|
# import re
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# body = json.loads(input())
|
|
|
|
|
|
# blocks = body['blocks']
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# def eprint(*args, **kwargs):
|
|
|
|
|
|
# print(*args, file=sys.stderr, **kwargs)
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# def str2pd(str_to_pandoc):
|
|
|
|
|
|
# def intersperse(lst, item):
|
|
|
|
|
|
# result = [item] * (len(lst) * 2 - 1)
|
|
|
|
|
|
# result[0::2] = lst
|
|
|
|
|
|
# return result
|
|
|
|
|
|
# return intersperse(list(map(
|
|
|
|
|
|
# lambda x: {'t': 'Str', 'c': x},
|
|
|
|
|
|
# list(filter(lambda x: x != '', re.split('[\t\n\r ]', str_to_pandoc))))),
|
|
|
|
|
|
# {'t': 'Space'})
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
|
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# def upper_first_token(tokens):
|
|
|
|
|
|
# for token in tokens:
|
|
|
|
|
|
# if token['t'] == 'Str':
|
|
|
|
|
|
# token['c'] = token['c'][0].upper() + token['c'][1:]
|
|
|
|
|
|
# break
|
|
|
|
|
|
# return tokens
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# def append_reference (mb_text_block, name, section0, num):
|
|
|
|
|
|
# if mb_text_block['t'] == 'Div':
|
|
|
|
|
|
# mb_text_block = mb_text_block['c'][-1][0]
|
|
|
|
|
|
# if mb_text_block['t'] == 'Para':
|
|
|
|
|
|
# for token in mb_text_block['c'][::-1]:
|
|
|
|
|
|
# if token['t'] == 'Str':
|
|
|
|
|
|
# token['c'] = token['c'].rstrip('.?!…\t ')
|
|
|
|
|
|
# break
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# mb_text_block['c'] += [{'t' : 'Space'}] # a space after a paragraph and...
|
|
|
|
|
|
# + upper_first_token(str2pd(f'({name} {section0}.{num}):'))
|
|
|
|
|
|
# return True
|
|
|
|
|
|
# return False
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# #for i, b in enumerate(blocks):
|
|
|
|
|
|
# i = 0
|
|
|
|
|
|
# image, formula, table, code, section = 0, 0, 0, 0, [0, 0, 0]
|
|
|
|
|
|
# E, W = "ОШИБКА: ", "ПРЕДУПРЕЖДЕНИЕ: "
|
|
|
|
|
|
# while i < len(blocks):
|
|
|
|
|
|
# b = blocks[i]
|
|
|
|
|
|
# btype = b['t']
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# if btype == 'Table':
|
|
|
|
|
|
# if not append_reference(blocks[i-1], 'Таблица', section[0], table):
|
|
|
|
|
|
# eprint(E+"перед таблицей", b['c'],"нет абзаца, в который можно встроить ссылку на таблицу!")
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# blocks[i+1] = {'t':'Div', 'c': [["",[],[['custom-style', 'aftertable']]], [blocks[i+1]]]}
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# if btype == 'Figure':
|
|
|
|
|
|
# if not append_reference(blocks[i-1], 'Рисунок', section[0], image):
|
|
|
|
|
|
# eprint(E+"перед рисунком", b['c'], "нет абзаца, в который можно встроить ссылку на рисунок!")
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# if btype == 'CodeBlock':
|
|
|
|
|
|
# if len(b['c'][0][2]) == 0:
|
|
|
|
|
|
# eprint(E+"нет подписи у листинга:\n", b['c'][1], "\nЧТОБЫ ДОБАВИТЬ ПОДПИСЬ, используйте ключ caption:\n~~~{.lang caption=\"Hello world\"}")
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# if not('caption' in dict(b['c'][0][2])):
|
|
|
|
|
|
# eprint(E+"нет подписи у листинга:\n", b['c'][1], "\nЧТОБЫ ДОБАВИТЬ ПОДПИСЬ, используйте ключ caption:\n~~~{.lang caption=\"Hello world\"}")
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# code += 1
|
|
|
|
|
|
# caption = f'Листинг {section[0]}.{code} — ' + dict(b['c'][0][2])['caption']
|
|
|
|
|
|
# if not append_reference(blocks[i-1], 'Листинг', section[0], code):
|
|
|
|
|
|
# eprint(E+"перед листингом", b['c'], "нет абзаца, в который можно встроить ссылку на листинг!")
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# blocks.insert(i, {"t":"Div","c":[["",[],[["custom-style","Code Caption"]]], [{"t":"Para","c":str2pd(caption)}]]})
|
|
|
|
|
|
# i += 1
|
|
|
|
|
|
# blocks[i+1] = {'t':'Div', 'c': [["",[],[['custom-style', 'aftertable']]], [blocks[i+1]]]}
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# i += 1
|
2025-02-12 21:12:27 +03:00
|
|
|
|
|
2025-02-15 02:42:21 +03:00
|
|
|
|
# body['blocks'] = blocks
|
|
|
|
|
|
# print(json.dumps(body))
|