'''
if lab == 'Без подразделения' or not lab:
unassigned.append(person_html)
else:
if lab not in staff_by_lab:
staff_by_lab[lab] = []
staff_by_lab[lab].append(person_html)
# Формируем HTML для страницы сотрудников
staff_html = "
Наши сотрудники
"
lab_order = [
"Лаборатория математики и телекоммуникаций",
"Лаборатория теоретической и вычислительной физики",
"Лаборатория экспериментальной физики"
]
for lab in lab_order:
if lab in staff_by_lab:
staff_html += f"
{lab}
"
for p in staff_by_lab[lab]:
staff_html += p
for lab, people in staff_by_lab.items():
if lab not in lab_order:
staff_html += f"
{lab}
"
for p in people:
staff_html += p
if unassigned:
staff_html += "
Сотрудники (без привязки к лаборатории)
"
for p in unassigned:
staff_html += p
with open('public/staff.html', 'w', encoding='utf-8') as f:
f.write(TEMPLATE.format(title="Сотрудники", content=staff_html))
# 4. Создаем индивидуальные страницы для каждого сотрудника
for md_file in Path('content/staff').glob('*.md'):
with open(md_file, 'r', encoding='utf-8') as f:
meta, body = parse_front_matter(f.read())
name = meta.get('name', md_file.stem.replace('-', ' ').title())
# Добавляем ссылку "Назад к списку" в начало страницы
full_content = f'← Назад к списку сотрудников\n{body}'
html_content = markdown.markdown(full_content, extensions=['fenced_code', 'tables'])
with open(Path(f'public/staff/{md_file.stem}.html'), 'w', encoding='utf-8') as f:
f.write(TEMPLATE.format(title=name, content=html_content))
# 5. Копирование статических файлов (картинки)
if Path('static').exists():
shutil.rmtree('public/static', ignore_errors=True)
shutil.copytree('static', 'public/static')
print("✅ Статические файлы скопированы")
print("✅ Сайт успешно собран! Сотрудники сгруппированы и кликабельны.")
if __name__ == '__main__':
main()