Вебсайт лабораторії флуоресцентної візуалізації. Website of the Fluorescence Imaging Laboratory.
🌐 Live site: https://fluoimlab.github.io
- Структура проєкту
- Як розгорнути сайт
- Як редагувати контент
- Як додавати зображення
- Як додати нову сторінку
- Як змінити навігацію
- Довідка з Markdown
- Технічні деталі
fluoimlab.github.io/
├── index.html ← Головна HTML-сторінка (не змінювати без потреби)
├── style.css ← Стилі оформлення
├── script.js ← Логіка сайту (навігація, мови, рендеринг)
├── assets/
│ ├── marked.min.js ← Бібліотека для рендерингу Markdown
│ └── logo.png ← Логотип лабораторії
├── about/ ← Розділ "Про лабораторію"
│ ├── content_uk.md ← Контент українською
│ ├── content_en.md ← Контент англійською
│ └── img/ ← Зображення цього розділу
├── equipment/ ← Розділ "Обладнання"
│ ├── content_uk.md
│ ├── content_en.md
│ └── img/
├── services/ ← Розділ "Послуги"
│ ├── content_uk.md
│ ├── content_en.md
│ └── img/
├── team/ ← Розділ "Колектив"
│ ├── content_uk.md
│ ├── content_en.md
│ └── img/
├── research/ ← Розділ "Наукова робота"
│ ├── content_uk.md
│ ├── content_en.md
│ └── img/
└── events/ ← Розділ "Заходи"
├── content_uk.md
├── content_en.md
└── img/
Ключовий принцип: Весь контент знаходиться у файлах content_uk.md та content_en.md у відповідних папках. Для оновлення тексту на сайті достатньо відредагувати ці файли.
- Створіть репозиторій на GitHub з назвою
fluoimlab.github.io(або використайте існуючий) - Завантажте файли в репозиторій:
git add . git commit -m "Initial website" git push origin main
- Увімкніть GitHub Pages:
- Перейдіть до Settings → Pages у вашому репозиторії
- У розділі Source оберіть гілку
mainі папку/ (root) - Натисніть Save
- Через 1-2 хвилини сайт буде доступний за адресою
https://fluoimlab.github.io
Після кожного git push в гілку main, GitHub Pages автоматично оновить сайт протягом 1-2 хвилин.
# Після внесення змін:
git add .
git commit -m "Опис змін"
git push origin mainДля перегляду сайту локально перед публікацією потрібен простий HTTP-сервер (Markdown-файли не завантажуються при відкритті index.html напряму у браузері через обмеження безпеки).
Спосіб 1 — Python (рекомeндований):
cd fluoimlab.github.io
python3 -m http.server 8000
# Відкрийте http://localhost:8000 у браузеріСпосіб 2 — Node.js:
npx -y serve .Кожна сторінка сайту має два файли контенту:
content_uk.md— українська версіяcontent_en.md— англійська версія
Наприклад, щоб відредагувати сторінку "Про лабораторію", відкрийте файл about/content_uk.md.
Контент написаний у форматі Markdown — простий текстовий формат розмітки. Ви можете редагувати ці файли:
- На GitHub — перейдіть до файлу в репозиторії, натисніть іконку олівця (✏️), внесіть зміни і натисніть Commit changes
- Локально — у будь-якому текстовому редакторі (VS Code, Notepad++, навіть Блокнот)
Якщо ви редагували на GitHub — зміни з'являться автоматично через 1-2 хвилини.
Якщо локально — зробіть git add, git commit і git push.
Покладіть файл зображення у папку img/ відповідного розділу. Наприклад:
equipment/img/microscope.jpg
У файлі content_uk.md або content_en.md додайте рядок:
- Формати: JPG, PNG, WebP
- Розмір: Рекомендована ширина 600–1200 пікселів
- Назви файлів: Використовуйте латинські літери, без пробілів (замість пробілів —
_або-) - Оптимізація: Стискайте зображення перед завантаженням для швидкого завантаження сайту
Створіть нову папку в кореневій директорії проєкту:
mkdir -p new_section/imgСтворіть два файли:
new_section/content_uk.mdnew_section/content_en.md
Відредагуйте файл script.js. Знайдіть масив SECTIONS на початку файлу і додайте новий запис:
const SECTIONS = [
// ... існуючі розділи ...
{
id: 'new_section', // назва папки (має збігатися з назвою директорії)
icon: '📌', // емодзі-іконка для бічного меню
label: {
uk: 'Нова сторінка', // назва пункту меню українською
en: 'New Page', // назва пункту меню англійською
},
},
];Навігація визначається в файлі script.js у масиві SECTIONS. Кожен запис має:
| Поле | Опис | Приклад |
|---|---|---|
id |
Назва папки з контентом | 'about' |
icon |
Емодзі для відображення в меню | '🏛' |
label.uk |
Назва пункту меню українською | 'Про лабораторію' |
label.en |
Назва пункту меню англійською | 'About' |
Порядок пунктів у масиві = порядок пунктів у меню.
Видалення пункту: просто видаліть відповідний об'єкт з масиву.
# Заголовок першого рівня
## Заголовок другого рівня
### Заголовок третього рівня**Жирний текст**
*Курсив*
~~Закреслений~~
`Код у рядку`- Пункт 1
- Пункт 2
- Підпункт
1. Нумерований пункт 1
2. Нумерований пункт 2[Текст посилання](https://example.com)
| Колонка 1 | Колонка 2 |
|-----------|-----------|
| Значення | Значення |> Це цитата або примітка---<!-- Цей текст не буде видно на сайті -->Сайт є повністю статичним, без серверної частини чи процесу збірки:
- HTML:
index.html— єдина HTML-сторінка, яка слугує оболонкою для всього сайту - CSS:
style.css— всі стилі оформлення - JavaScript:
script.js— логіка маршрутизації (URL-хеш), генерація бічного меню, перемикач мови та теми, завантаження та рендеринг Markdown - Markdown: бібліотека marked.js конвертує
.mdфайли в HTML на стороні браузера
Навігація працює через URL-хеш: #about, #equipment, #services, #team, #research, #events. Це дозволяє:
- Створювати прямі посилання на розділи
- Працювати кнопкам "Назад" та "Вперед" у браузері
- Не потребувати розгорнення серверу
Обрана мова зберігається в localStorage браузера і автоматично відновлюється при наступних відвідуваннях.
Сайт підтримує світлу та темну теми. Перемикач знаходиться внизу бічного меню (☀️ / 🌙). Обрана тема зберігається в localStorage і застосовується автоматично при повторних відвідуваннях. Тема працює через CSS-змінні та атрибут data-theme на елементі <html>.
- Google Fonts — шрифт Inter (завантажується з CDN)
- marked.js — вбудована копія (файл
assets/marked.min.js), не потребує CDN
MIT License. Дивіться файл LICENSE.