mirror of
http://shenjack.top:5100/ARS/ARS-docs.git
synced 2024-11-23 11:21:06 +08:00
继续解析
This commit is contained in:
parent
be9bbcb884
commit
a14628d674
|
@ -23,18 +23,18 @@ def get_all_iter(
|
||||||
if not func(node):
|
if not func(node):
|
||||||
continue
|
continue
|
||||||
yield i, node
|
yield i, node
|
||||||
return -1, {}
|
yield -1, {}
|
||||||
|
|
||||||
|
|
||||||
def get_text(ast: ast_type) -> str:
|
def get_text(ast: ast_type) -> str:
|
||||||
"""
|
"""
|
||||||
返回第一个找到的字符串
|
返回第一个找到的字符串
|
||||||
"""
|
"""
|
||||||
ast = ast[0]
|
|
||||||
if ast['type'] == 'text':
|
if ast['type'] == 'text':
|
||||||
return ast['raw']
|
return ast['raw']
|
||||||
elif ast['type'] in ('link', 'block_text'):
|
elif ast['type'] in ('link', 'block_text', 'list_item', 'list'):
|
||||||
return get_text(ast['children'])
|
return get_text(ast['children'][0])
|
||||||
|
print('unkown type', ast['type'], ast)
|
||||||
|
|
||||||
|
|
||||||
class TagParser(Options):
|
class TagParser(Options):
|
||||||
|
@ -120,21 +120,30 @@ class TagParser(Options):
|
||||||
if item.get("type") == "list_item"
|
if item.get("type") == "list_item"
|
||||||
]
|
]
|
||||||
# 顺手过滤一下
|
# 顺手过滤一下
|
||||||
# pprint(tag_ast)
|
|
||||||
# self.logger.info(tag_ast)
|
|
||||||
for tag in tag_ast:
|
for tag in tag_ast:
|
||||||
# self.logger.debug([(item['type'], item['children']) for item in tag])
|
# self.logger.debug([(item['type'], item['children']) for item in tag])
|
||||||
this_tag = get_text(tag)
|
this_tag = get_text(tag[0])
|
||||||
if len(tag) == 1:
|
if len(tag) == 1:
|
||||||
# 只有一个 tag, 无别名
|
# 只有一个 tag, 无别名
|
||||||
self.tag_map[this_tag] = [this_tag]
|
self.tag_map[this_tag] = [this_tag]
|
||||||
self.logger.info(f'添加 tag {this_tag}')
|
self.logger.debug(f'添加 tag {this_tag}')
|
||||||
# len > 1
|
# len > 1
|
||||||
elif len(tag) >= 1:
|
elif len(tag) >= 1:
|
||||||
# 寻找 "别名"
|
# 寻找 "别名"
|
||||||
self.logger.debug(tag)
|
tag_names = tag[1]['children']
|
||||||
pprint(tag)
|
tag_list_start = get_all_iter(tag_names, 'list_item', lambda ast: get_text(ast) == '别名')
|
||||||
|
tag_list_start, node = next(tag_list_start)
|
||||||
|
if tag_list_start == -1:
|
||||||
|
continue
|
||||||
|
sub_names = []
|
||||||
|
for sub_name in node['children'][1]['children']:
|
||||||
|
sub_names.append(get_text(sub_name))
|
||||||
|
self.logger.debug(f"添加 tag {this_tag} 和别名 {sub_names}")
|
||||||
|
self.tag_map[this_tag] = sub_names
|
||||||
# 获取 tag 列表
|
# 获取 tag 列表
|
||||||
|
self.logger.info(f'可用 tag: {self.tag_map}')
|
||||||
|
with open('./tags/tag.toml', 'w', encoding='utf-8') as file:
|
||||||
|
file.write(dumps(self.tag_map))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -33,3 +33,4 @@
|
||||||
- 只是用来测试的
|
- 只是用来测试的
|
||||||
- 别名
|
- 别名
|
||||||
- 测试1
|
- 测试1
|
||||||
|
- 测试2
|
||||||
|
|
Loading…
Reference in New Issue
Block a user