docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.9 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| Pages.ру | guide |
|
|
|
Инструкция по созданию справки HTML для приложений > Локальная справка для приложений > База данных соответствия номеров команд и страниц справки
#!/usr/bin/python
-- coding: utf-8 --
from xml.dom import minidom import argparse import sqlite3 as sqlite import sys con = None try:
Получение аргументов командной строки
ap = argparse.ArgumentParser(description="Формирование базы данных по связи идентификатора и html страницы")
ap.add_argument("--outfile", "-o", type = str, default = 'pages.db',
help = "Путь к результирующему файлу базы данных")
ap.add_argument("--hhfile", "-hh", type = str, default = 'KOMPAS.hh',
help = "Путь к hh-файлу КОМПАС")
ap.add_argument("--hhafile", "-hha", type = str, default = 'KOMPAS.hha', \
help = "Путь к hha-файлу КОМПАС")
args = ap.parse_args() print("HH-file: %s, HHA-file: %s, output file: %s\n" % (args.hhfile, args.hhafile, args.outfile))
print("HH-file: %s, output file: %s\n" % (args.hhfile, args.outfile))
con = sqlite.connect(args.outfile) cur = con.cursor() print("==> Clean up (1 of 3)")
Удалить таблицу с соответствием идентификаторов из hh c html страницами
cur.execute("DROP TABLE IF EXISTS Page") cur.execute("CREATE TABLE Page(Id INTEGER, Page TEXT)") print("<== Clean up\n")
Составляем словарь псевдонимов идентификаторов
print("==> Reading aliases (2 of 3)") err_count_hha = 0 aliases = { } with open(args.hhafile) as hha: for line in hha:
Trim comments and whitespace
s = line.split(';')[0].strip()
Split by "="
parts = s.split('=', 1)
Обработать ошибочную ситуацию
if len(parts) == 1 and len(parts[0]) > 0: print("[ERROR] Invalid line format!") err_count_hha = err_count_hha + 1
Запомнить псевдоним
if len(parts) == 2: print("[OK] %s=%s" % (parts[0], parts[1])) aliases[parts[0]] = parts[1] print("<== Reading aliases (ERRORS: %d)\n" % err_count_hha) print("==> Creating Page table (3 of 3)") with open(args.hhfile) as hh: for line in hh: words = line.split() if len(words) >= 3: identifier = int(words[2]) name = words[1] if name in aliases: name = aliases[name] else: name = name + ".html" cur.execute("INSERT INTO Page VALUES(%d, '%s')" % (identifier, name)) cur.execute("CREATE INDEX page_id_index ON Page(Id)") con.commit()
Общий отчёт о результате
print("===DONE (ERRORS: %d)===" % int(err_count_hha)) except sqlite.Error as e: print("ERROR: %s!" % e.args[0]) sys.exit(1) finally: if con: con.close()