' for f in news_files])
with open('public/news.html', 'w', encoding='utf-8') as f:
f.write(TEMPLATE.format(title="Новости", content=f"
Последние новости
{news_links}
"))
for md_file in news_files:
build_page(md_file, Path(f'public/news/{md_file.stem}.html'), md_file.stem.replace('-', ' ').title())
# 3. Страница сотрудников (с группировкой!)
staff_by_lab = {}
unassigned = []
for md_file in sorted(Path('content/staff').glob('*.md')):
with open(md_file, 'r', encoding='utf-8') as f:
meta, _ = parse_front_matter(f.read())
name = meta.get('name', md_file.stem.replace('-', ' ').title())
degree = meta.get('degree', '')
position = meta.get('position', '')
lab = meta.get('lab', 'Без подразделения')
details = []
if degree: details.append(degree)
if position: details.append(position)
details_str = ", ".join(details)
person_html = f'
{name}
{details_str}
'
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))
# Создаем индивидуальные страницы для каждого сотрудника
for md_file in Path('content/staff').glob('*.md'):
build_page(md_file, Path(f'public/staff/{md_file.stem}.html'), meta.get('name', md_file.stem))
print("✅ Сайт успешно собран! Сотрудники сгруппированы.")
if __name__ == '__main__':
main()