GitHub Action commited on
Commit
968fd34
·
1 Parent(s): a03d30e

Sync from GitHub with Git LFS

Browse files
scripts/AI_friendly.py CHANGED
@@ -6,6 +6,13 @@ import yaml
6
  # Корень репозитория — отталкиваемся от местоположения скрипта
7
  REPO_ROOT = Path(__file__).resolve().parent.parent
8
 
 
 
 
 
 
 
 
9
  ROOT_DIR = Path(".")
10
  STRUCTURED_DIR = ROOT_DIR / "structured_md"
11
  INDEX_FILE = STRUCTURED_DIR / "index.md"
@@ -122,10 +129,24 @@ def generate_json_ld(content, front_matter, ftype, title, rel_path):
122
  title=title, description=desc
123
  ).replace("}}", f',\n "url": "{url}"\n}}', 1)
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  def mirror_md_files():
126
  processed = []
127
  for path in REPO_ROOT.rglob("*.md"):
128
- # пропускаем всё внутри structured_md и index.md
129
  if "structured_md" in path.parts or path.name.lower() == "index.md":
130
  continue
131
 
@@ -136,14 +157,13 @@ def mirror_md_files():
136
  with path.open("r", encoding="utf-8") as f:
137
  content = f.read()
138
 
139
- # извлекаем существующий фронт-маттер
140
  front_matter, clean_content = extract_front_matter(content)
141
  ftype = detect_file_type(clean_content, front_matter)
142
  title = front_matter.get("title", path.stem)
143
  description = front_matter.get("description", clean_content[:100].replace("\n", " ") + "...")
144
- tags = front_matter.get("tags", [])
145
 
146
- # формируем YAML фронт-маттер для structured_md
147
  fm_dict = {
148
  "title": title,
149
  "description": description,
@@ -152,10 +172,13 @@ def mirror_md_files():
152
  }
153
  yaml_fm = "---\n" + yaml.safe_dump(fm_dict, sort_keys=False, allow_unicode=True) + "---\n\n"
154
 
 
 
 
155
  # формируем JSON-LD
156
  json_ld = generate_json_ld(clean_content, front_matter, ftype, title, rel_path)
157
 
158
- # пишем новый Markdown с фронт-маттер + оригинальный текст + JSON-LD
159
  with target_path.open("w", encoding="utf-8") as f:
160
  f.write(yaml_fm)
161
  f.write(clean_content.rstrip())
@@ -165,7 +188,7 @@ def mirror_md_files():
165
  processed.append(rel_path)
166
 
167
  return processed
168
-
169
  def generate_index(files):
170
  index_lines = ["# ИИ-дружелюбные версии файлов\n"]
171
  tree = {}
 
6
  # Корень репозитория — отталкиваемся от местоположения скрипта
7
  REPO_ROOT = Path(__file__).resolve().parent.parent
8
 
9
+ # теги по ключевым словам для автодобавления
10
+ KEYWORD_TAGS = [
11
+ "CCore", "CShell", "REPL", "Mesh", "Agent", "HMP",
12
+ "MeshConsensus", "CogSync", "GMP", "EGP",
13
+ "Ethics", "Scenarios", "JSON"
14
+ ]
15
+
16
  ROOT_DIR = Path(".")
17
  STRUCTURED_DIR = ROOT_DIR / "structured_md"
18
  INDEX_FILE = STRUCTURED_DIR / "index.md"
 
129
  title=title, description=desc
130
  ).replace("}}", f',\n "url": "{url}"\n}}', 1)
131
 
132
+ def add_index_link(content, file_path):
133
+ # относительный путь от текущего файла до structured_md/index.md
134
+ rel_path = os.path.relpath(STRUCTURED_DIR / "index.md", file_path.parent)
135
+ link_line = f"\n\n---\n> ⚡ [AI friendly version docs (structured_md)]({rel_path})\n"
136
+ if link_line.strip() not in content:
137
+ content += link_line
138
+ return content
139
+
140
+ def extract_tags(content, existing_tags):
141
+ tags = set(existing_tags or [])
142
+ for kw in KEYWORD_TAGS:
143
+ if kw.lower() in content.lower():
144
+ tags.add(kw)
145
+ return list(tags)
146
+
147
  def mirror_md_files():
148
  processed = []
149
  for path in REPO_ROOT.rglob("*.md"):
 
150
  if "structured_md" in path.parts or path.name.lower() == "index.md":
151
  continue
152
 
 
157
  with path.open("r", encoding="utf-8") as f:
158
  content = f.read()
159
 
 
160
  front_matter, clean_content = extract_front_matter(content)
161
  ftype = detect_file_type(clean_content, front_matter)
162
  title = front_matter.get("title", path.stem)
163
  description = front_matter.get("description", clean_content[:100].replace("\n", " ") + "...")
164
+ tags = extract_tags(clean_content, front_matter.get("tags", []))
165
 
166
+ # формируем YAML фронт-маттер
167
  fm_dict = {
168
  "title": title,
169
  "description": description,
 
172
  }
173
  yaml_fm = "---\n" + yaml.safe_dump(fm_dict, sort_keys=False, allow_unicode=True) + "---\n\n"
174
 
175
+ # добавляем ссылку на индекс
176
+ clean_content = add_index_link(clean_content, target_path)
177
+
178
  # формируем JSON-LD
179
  json_ld = generate_json_ld(clean_content, front_matter, ftype, title, rel_path)
180
 
181
+ # пишем новый Markdown
182
  with target_path.open("w", encoding="utf-8") as f:
183
  f.write(yaml_fm)
184
  f.write(clean_content.rstrip())
 
188
  processed.append(rel_path)
189
 
190
  return processed
191
+
192
  def generate_index(files):
193
  index_lines = ["# ИИ-дружелюбные версии файлов\n"]
194
  tree = {}
structured_md/README_ko.md CHANGED
@@ -410,7 +410,11 @@ OpenCog Hyperon과의 통합은 [HMP\_Hyperon\_Integration.md](docs/HMP_Hyperon_
410
  * 🤖 — AI 에이전트
411
  * 🧒 — 인간-AI 상호작용
412
  * ☁️ — 인프라스트럭처
413
- * 🧪 — 실험적 또는 개념적
 
 
 
 
414
 
415
 
416
  ```json
 
410
  * 🤖 — AI 에이전트
411
  * 🧒 — 인간-AI 상호작용
412
  * ☁️ — 인프라스트럭처
413
+ * 🧪 — 실험적 또는 개념적
414
+
415
+ ---
416
+
417
+ > ⚡ [AI friendly version docs (structured_md)](structured_md/index.md)
418
 
419
 
420
  ```json