mirror of
https://github.com/bpmbpm/doc.git
synced 2026-10-19 15:43:52 +00:00
Create geoff1run1.md
This commit is contained in:
parent
e2c8745842
commit
c2e8fc44ee
1 changed files with 125 additions and 0 deletions
125
LD2/ZK/ver1/geoff1run1.md
Normal file
125
LD2/ZK/ver1/geoff1run1.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue