diff --git a/LD2/ZK/ver1/geoff1run1.md b/LD2/ZK/ver1/geoff1run1.md new file mode 100644 index 00000000..deaa9b58 --- /dev/null +++ b/LD2/ZK/ver1/geoff1run1.md @@ -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