|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- Title: Обучение: 03. Сайт
- Date: 2019-06-25 00:00
- Category: Page
- Slug: education.03.site
- Lang: ru
-
- | < Назад | Начало | Далее > |
- |---|---|---|
- | [02. Зависимости][prev] | [Обучение][index] | [04. Язык][next] |
-
- </div><div class="contents">
-
- В этом документы мы создадим простой статический сайт с двумя страницами.
-
- Ожидаемое время завершения: 10 минут.
-
- **Содержание**
-
- * [01. Вдохновление](#inspiration)
- * [02. Изучите файл `pskov.cfg`](#cfg)
- * [03. Изучите файл `item.template`](#item)
- * [04. Изучите файлы `about.md` и `cv.md`](#md)
- * [05. Запустите ЛФСД](#lfsa)
- * [06. Сгенерируйте сайт](#gen)
- * [07. Проверьте сайт](#observe)
- * [08. Итог](#summary)
-
- <a name="inspiration"/>
-
- ## 01. Вдохновление
-
- Представьте, что вы являетесь выдающимся русским живописцем Валентином Серовым. Каждый раз, когда кто-либо хочет узнать о вас, он идёт на [Википедию][serov]. Сегодня утром вы просыпаетесь раньше обычного с отчётливым желанием создать свой собственный веб-сайт.
-
- Вы приступаете к созданию следующих страницы:
-
- * About me
- * Curriculum vitae (CV)
-
- Несколько позже в [директории вашего сайта][01-files] у вас оказываются следующие файлы:
-
- * pskov.cfg
- * item.template
- * about.md
- * cv.md
-
- Давайте взглянем на их содержимое.
-
- <a name="cfg"/>
-
- ## 02. Изучите файл `pskov.cfg`
-
- Файл `pskov.cfg` содержит следующее:
-
- ```
- input = .
- item = item.template
- ```
-
- `pskov.cfg` является [файлом настроек][ini-file] со следующими ключами:
-
- | Ключ | Описание |
- |---|---|
- | `input` | Указывает на директорию с файлом, на который ссылается ключ `item` |
- | `item` | Указывает на файл с шаблоном HTML, который используется для генерации файлов HTML из Markdown |
-
- В нашем случае файл `item.template` расположен рядом с `pskov.cfg`, поэтому мы используем `.` для обозначения текущей директории.
-
- <a name="item"/>
-
- ## 03. Изучите файл `item.template`
-
- Файл `item.template` содержит следующее:
-
- ```
- <!DOCTYPE html>
- <html>
- <meta charset="utf-8">
- <head>
- <style>
- - - - - Схлопнуто для краткости - - - -
- </style>
- <title>Serov</title>
- </head>
- <body>
- <div id="header">
- <strong>Serov</strong>
- <a href="about.html">About me</a>
- <a href="cv.html">CV</a>
- </div>
- <center>
- <h1>PSKOV_ITEM_TITLE</h1>
- <div class="contents">
- PSKOV_ITEM_CONTENTS
- </div>
- <div id="footer">
- This sample web site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>.
- </div>
- </center>
- </body>
- </html>
- ```
-
- **Внимание**: стиль схлопнут для краткости.
-
- Как видите, `item.template` представляет из себя обычный файл HTML с двумя константами **ПСКОВА**:
-
- | Константа ПСКОВА | Описание |
- |---|---|
- | `PSKOV_ITEM_TITLE` | Значение ключа `Title` из файла Markdown страницы |
- | `PSKOV_ITEM_CONTENTS` | Предоставляет содержимое HTML, сгенерированное из Markdown |
-
- **Замечания**:
-
- * другие константы **ПСКОВА** описаны позже
- * файл Markdown страницы описан ниже
-
- <a name="md"/>
-
- ## 04. Изучите файлы `about.md` и `cv.md`
-
- Файл `about.md` содержит следующее:
-
- ```
- Title: About me
- Slug: about
-
- Hi, my name is Valentin Serov. Here's my self-portrait:
-
- ![Valentin Serov self-portrait][serov-portrait]
-
- - - - - Схлопнуто для краткости - - - -
-
- Have a look at my [CV][cv] now.
-
- [serov]: https://en.wikipedia.org/wiki/Valentin_Serov
- [revolution]: https://en.wikipedia.org/wiki/Russian_Revolution
- [serov-portrait]: myself.jpg
- [serov-work]: mywork.jpg
- [girl-with-peaches]: https://en.wikipedia.org/wiki/Girl_with_Peaches
- [pskov]: http://opengamestudio.org/pskov
- [cv]: cv.html
- ```
-
- `about.md` начинается с так называемого заголовка:
-
- | Ключ заголовка | Описание |
- |---|---|
- | `Title` | Предоставляет значение для константы `PSKOV_ITEM_TITLE` во время генерации HTML из Markdown |
- | `Slug` | Сообщает **ПСКОВУ** о том, что этот файл должен быть сохранён как `<slug>.html` |
-
- В остальном содержимое `about.md` ничем не отличается от любых других файлов Markdown.
-
- **Внимание**: ссылка на страницу `cv` указана как `cv.html`, не `cv.md`
-
- Файл `cv.md` содержит следующее:
-
- ```
- Title: Curriculum vitae
- Slug: cv
-
- Here's my CV in case my paintings still interest you. I took a bit of a modern IT approach to structure my CV as key-value pairs of a dictionary (map), enjoy!
-
- | Key | Value |
- |---|---|
- | Name | Valentin Serov |
- | Age | 46 |
- | Marital status | Married |
- | Country | Russian Empire |
- | Alma mater | Imperial Academy of Arts |
- | Education | * Member Academy of Arts (1898) <br> * Full Member Academy of Arts (1903) |
- ```
-
- Как видите, в `cv.md` нет ничего нового за исключением таблицы Markdown.
-
- <a name="lfsa"/>
-
- ## 05. Запустите ЛФСД
-
- <video controls poster="../vid/education.03.site.launch-lfsa.w2k.poster.png">
- <source src="../vid/education.03.site.launch-lfsa.w2k.mp4" type ="video/mp4">
- <source src="../vid/education.03.site.launch-lfsa.w2k.webm" type ="video/webm">
- ОШИБКА Ваш браузер не поддерживает видео HTML5
- </video>
-
- Запустите [ЛФСД][lfsa] с указанием директории, содержащей только что рассмотренные файлы:
-
- ```
- $ /путь/до/lfsa_1.0.0.py /путь/до/директории/01.TwoPages
- ```
-
- Вы должны увидеть примерно такой вывод:
-
- ```
- DIR: '/Users/kornerr/p/site-pskov-sample/01.TwoPages'
- PORT: '8000'
- ```
-
- <a name="gen"/>
-
- ## 06. Сгенерируйте сайт
-
- <video controls poster="../vid/education.03.site.gen.w2k.poster+ru.png">
- <source src="../vid/education.03.site.gen.w2k+ru.mp4" type ="video/mp4">
- <source src="../vid/education.03.site.gen.w2k+ru.webm" type ="video/webm">
- ОШИБКА Ваш браузер не поддерживает видео HTML5
- </video>
-
- Перейдите на страницу [Инструмент][tool] и нажмите кнопку `Генерировать` для генерации файлов HTML рядом с файлами Markdown.
-
- <a name="observe"/>
-
- ## 07. Проверьте сайт
-
- <video controls poster="../vid/education.03.site.observe.w2k.poster.png">
- <source src="../vid/education.03.site.observe.w2k.mp4" type ="video/mp4">
- <source src="../vid/education.03.site.observe.w2k.webm" type ="video/webm">
- ОШИБКА Ваш браузер не поддерживает видео HTML5
- </video>
-
- Проверьте сгенерированный веб-сайт локально: откройте файл `about.html` и совершите переход между страницами.
-
- <a name="summary"/>
-
- ## 08. Итог
-
- Вы успешно сгенерировали веб-сайт с двумя страницами. [Проверьте результат][01-sample].
-
- Представлены константы **ПСКОВА**:
-
- | Константа ПСКОВА | Описание |
- |---|---|
- | `PSKOV_ITEM_TITLE` | Значение ключа `Title` из файла Markdown страницы |
- | `PSKOV_ITEM_CONTENTS` | Предоставляет содержимое HTML, сгенерированное из Markdown |
-
- Представлены ключи настроек:
-
- | Ключ | Описание |
- |---|---|
- | `input` | Указывает на директорию с файлом, на который ссылается ключ `item` |
- | `item` | Указывает на файл с шаблоном HTML, который используется для генерации файлов HTML из Markdown |
-
- Представлены ключи заголовка:
-
- | Ключ заголовка | Описание |
- |---|---|
- | `Title` | Предоставляет значение для константы `PSKOV_ITEM_TITLE` во время генерации HTML из Markdown |
- | `Slug` | Сообщает **ПСКОВУ** о том, что этот файл должен быть сохранён как `<slug>.html` |
-
- </div><div class="contents">
-
- | < Назад | Начало | Далее > |
- |---|---|---|
- | [02. Зависимости][prev] | [Обучение][index] | [04. Язык][next] |
-
- [index]: education.html
- [prev]: education.02.deps.html
- [next]: education.04.lang.html
-
- [01-files]: https://github.com/OGStudio/site-pskov-sample/tree/master/01.TwoPages
- [01-sample]: http://opengamestudio.org/pskov/sample/01.TwoPages/about.html
- [ini-file]: https://ru.wikipedia.org/wiki/.ini
- [serov]: https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%BE%D0%B2,_%D0%92%D0%B0%D0%BB%D0%B5%D0%BD%D1%82%D0%B8%D0%BD_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87
- [lfsa]: http://opengamestudio.org/lfsa/ru
- [tool]: http://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html
|