Create geoff1run1.md

This commit is contained in:
Dmitry 2026-09-23 14:33:15 +03:00 • committed by GitHub
parent e2c8745842
commit c2e8fc44ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

125
LD2/ZK/ver1/geoff1run1.md Normal file
View file

@ -0,0 +1,125 @@
## 1
## 🔄 Что происходит при изменении или добавлении файла
### Сценарий 1. Вы поменяли текст в существующей заметке
Например, отредактировали `content/hello.md` и вместо «Это моя первая семантическая заметка» написали «Обновлённый текст заметки».
**Что нужно сделать:**
1. Откройте `content/hello.md` в веб-интерфейсе GitHub.
2. Нажмите карандаш (Edit).
3. Внесите изменения.
4. Прокрутите вниз до раздела **Commit changes**.
5. Введите короткое сообщение коммита (например, `update hello note`).
6. Убедитесь, что выбрана ветка `main`.
7. Нажмите **Commit changes**.
**Что произойдёт дальше — автоматически:**
- GitHub Actions **сам запустится** (событие `push` в `main` — это триггер из вашего workflow).
- Виртуальная машина runner заново выполнит все шаги: `checkout`, `setup-node`, `install geoff`, `geoff build`, `upload artifact`, `deploy pages`.
- Через 1–2 минуты обновлённый сайт будет доступен по адресу `https://bpmbpm.github.io/geoff_test/`.
**Никаких ручных команд выполнять не нужно.** Вся сборка и деплой — автоматические.
### Сценарий 2. Вы добавили новую заметку
Например, хотите добавить `content/alice.md`.
**Что нужно сделать:**
1. Нажмите **Add file → Create new file**.
2. В поле имени введите `content/alice.md` (папка `content` уже существует, поэтому GitHub её подставит).
3. Вставьте содержимое заметки с TOML-frontmatter:
```markdown
+++
title = "Заметка Алисы"
type = "Note"
date = 2026-04-12
author = "Alice"
tags = ["alice", "example"]
related = "content/hello.md"
+++
# Заметка Алисы
Это новая заметка, добавленная в семантическую вики.
```
4. Нажмите **Commit new file**.
5. Введите сообщение коммита (например, `add alice note`).
6. Нажмите **Commit changes**.
**Что произойдёт дальше — автоматически:**
- GitHub Actions запустится по событию `push`.
- Geoff увидит новый файл в `content/`, распарсит его frontmatter, добавит RDF-триплеты в граф и сгенерирует HTML-страницу.
- В SPARQL-запросах на главной странице новая заметка появится автоматически (потому что запрос выбирает всё, что имеет `schema:author`).
- Сайт обновится через 1–2 минуты.
### Сценарий 3. Вы поменяли структуру или конфигурацию
Если вы меняете `geoff.toml`, `ontology/mappings.toml` или шаблоны — тот же самый процесс: коммит в `main`, автоматический пересбор и деплой.
## 🧩 Нужен ли `setup-node` в следующей итерации?
**Да, обязательно нужен.** Вот почему:
Шаг
```yaml
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
```
выполняется **на каждом запуске workflow** в **свежей виртуальной машине**. GitHub-hosted runners не сохраняют состояние между запусками — каждый `push` запускает чистый runner.
Более того, команда `npm install -g @chapeaux/geoff`, которая идёт следующим шагом, **требует, чтобы в `PATH` уже был `npm`**, а `npm` поставляется именно с Node.js. Без `setup-node`:
- Может использоваться версия Node.js, предустановленная на runner, которая отличается от нужной.
- Не будет кэширования зависимостей (сборка будет медленнее).
- В редких случаях `npm` может быть недоступен или иметь несовместимую версию.
Поэтому `setup-node` нужно оставлять в workflow **без изменений** — он будет работать при каждом коммите.
## 🛠️ Что делать, если что-то сломалось
Если после коммита сайт не обновился или отображается с ошибкой:
1. Перейдите на вкладку **Actions** в репозитории.
2. Найдите последний запуск workflow (он будет помечен вашим сообщением коммита).
3. Если он красный — откройте его и посмотрите, на каком шаге произошла ошибка.
4. Наиболее частые причины:
- **Ошибка в TOML-frontmatter** (например, забыли закрывающие `+++` или не поставили кавычки вокруг строки).
- **Ошибка в SPARQL-запросе** (опечатка в префиксе или имени свойства).
- **Неверный маппинг** в `ontology/mappings.toml` (поле frontmatter не соответствует ни одному маппингу — Geoff может его проигнорировать или выдать предупреждение).
5. Исправьте ошибку, сделайте новый коммит — workflow запустится снова.
## 📊 Сводная таблица действий
| Что вы хотите | Что нужно сделать | Что произойдёт |
|---|---|---|
| Изменить текст заметки | Отредактировать `.md` файл, закоммитить | Автопересбор и деплой |
| Добавить новую заметку | Создать `.md` файл в `content/`, закоммитить | Новая страница + триплеты в графе |
| Удалить заметку | Удалить `.md` файл, закоммитить | Страница исчезнет, триплеты удалятся |
| Изменить онтологию | Отредактировать `mappings.toml`, закоммитить | Новые маппинги применятся |
| Изменить конфигурацию | Отредактировать `geoff.toml`, закоммитить | Сайт пересоберётся с новыми настройками |
| Добавить шаблон | Создать файл в папке шаблонов | Новый шаблон станет доступен |
## 💎 Итог
Ваш ежедневный рабочий процесс сводится к трём шагам:
1. **Открыть файл** в веб-интерфейсе GitHub.
2. **Отредактировать** его (или создать новый).
3. **Нажать Commit changes**.
Всё остальное — сборка, выполнение SPARQL, генерация HTML, деплой — происходит **автоматически** благодаря GitHub Actions. Шаг `setup-node` остаётся в workflow и выполняется при каждом запуске, потому что каждый запуск происходит на чистой виртуальной машине.
## 🔗 Ссылки
- GitHub Actions: события, запускающие workflow — https://docs.github.com/en/actions/reference/events-that-trigger-workflows
- GitHub Actions: редактирование файлов через веб-интерфейс — https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files
- setup-node — https://github.com/actions/setup-node
- Geoff — https://github.com/chapeaux/geoff
- Oxigraph — https://github.com/oxigraph/oxigraph