Skip to content

Commit 6a346da

Browse files
Merge pull request #45 from htmlacademy/feature/work-images
Добавляет работу над картинками
2 parents ede5a8d + be4fb3a commit 6a346da

File tree

6 files changed

+257
-189
lines changed

6 files changed

+257
-189
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ node_modules
33
build
44
.idea
55
.DS_Store
6+
source/.raw/
7+
!source/.raw/**/README.md

README.md

Lines changed: 140 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,138 @@
1-
# Сборка для HTML-курсов в HTML Academy
2-
Сборка работает на gulp 4 версии
1+
# Сборка для HTML-курсов в HTML Academy
2+
3+
Сборка работает на gulp 4 версии
34

45
## Начало
5-
Для работы с репозиторием на вашем компьютере потребуется Git и Node.js (18.x.x). Перед началом работы убедитесь, что все программы работают. Для этого в терминале введите:
6-
- для git
7-
```bash
8-
git --version
9-
```
10-
git примерно ответит
11-
```bash
12-
git version 2.42.0.windows.1
13-
```
146

15-
![проверка версии git](assets/git.png)
7+
Для работы с репозиторием на вашем компьютере потребуется _Git_ и _Node.js_. Перед началом работы убедитесь, что все программы работают. Для этого в терминале введите:
168

17-
версия не важна. Главное, что git отреагировал и написал ответ
9+
- для _Git_
1810

19-
- для node.js
20-
```bash
21-
node -v
22-
```
23-
node.js примерно ответит
24-
```bash
25-
v18.18.0
26-
```
11+
```shell
12+
git --version
13+
```
14+
15+
_Git_ примерно ответит
16+
17+
```shell
18+
git version 2.42.0.windows.1
19+
```
20+
21+
![проверка версии git](assets/git.png)
22+
23+
версия не важна. Главное, что git отреагировал и написал ответ
24+
25+
- для _Node.js_
26+
27+
```shell
28+
node -v
29+
```
30+
31+
_Node.js_ примерно ответит
32+
33+
```shell
34+
v18.18.0
35+
```
36+
37+
![проверка версии node.js](assets/node.png)
38+
39+
важно, чтобы была действующая LTS версия (первое число — чётное), то есть не ниже 20.9 или не ниже 18.18.
40+
41+
## Установка
42+
43+
1. Клонируйте репозиторий:
44+
45+
```shell
46+
git clone git@github.com:htmlacademy/html2-basic-template.git
47+
```
48+
49+
2. Установите зависимости проекта:
2750

28-
![проверка версии node.js](assets/node.png)
51+
```shell
52+
npm ci
53+
```
2954

30-
важно, чтобы версия была 18.x.x.
55+
3. Начните работу (должен запуститься браузер):
3156

32-
# Установка
33-
1. Клонируйте репозиторий `git clone git@github.com:htmlacademy/html2-basic-template.git`
34-
2. Установите зависимости проекта `npm ci`
35-
3. Начните работу `npm start` // должен запуститься браузер
57+
```shell
58+
npm start
59+
```
3660

3761
## Структура папок
38-
В каждой папке есть Readme.md файл, который имеет более полное описание по работе с папкой
3962

40-
```
41-
├── .github/ # Специальная папка для github
42-
│ └── workflows/ # Автоматизация для github actions
43-
│ ├── check.yml # Запускает линтеры на Гитхабе
44-
│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект
63+
В каждой папке есть `README.md` файл, который имеет более полное описание по работе с папкой
64+
65+
```shell
66+
├── .github/ # Специальная папка для github
67+
│ └── workflows/ # Автоматизация для github actions
68+
│ ├── check.yml # Запускает линтеры на Гитхабе
69+
│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект
4570
├── source/ # Исходники проекта
46-
│ ├── fonts/ # Папка для шрифтов
47-
│ ├── images/ # Папка для хранения картинок
48-
│ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack)
71+
│ ├── fonts/ # Папка для шрифтов
72+
│ ├── images/ # Папка для хранения картинок
73+
│ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack)
4974
│ ├── js # Скрипты
5075
│ │ └── script.js # Главный скрипт
51-
│ ├── sass/ # Папка для препроцессорных файлов sass
76+
│ ├── sass/ # Папка для препроцессорных файлов sass
5277
│ │ └── blocks/ # Стили БЭМ-блоков
53-
│ │ └── header.scss # Стили для конкретного БЭМ-блока
54-
│ │ └── global # Файл для подключения стилей библиотек из папки
55-
│ │ ├── fonts.scss # Подключение шрифтов к проекту
78+
│ │ └── header.scss # Стили для конкретного БЭМ-блока
79+
│ │ └── global # Файл для подключения стилей библиотек из папки
80+
│ │ ├── fonts.scss # Подключение шрифтов к проекту
5681
│ │ ├── global.scss # Глобальные стили, которые касаются всего проекта
57-
│ │ └── variables.scss # Переменные для всего проекта
58-
│ ├── vendor # Папка для сторонних бибилотек
59-
│ └── index.html # HTML-файл для главной страницы
82+
│ │ └── variables.scss # Переменные для всего проекта
83+
│ ├── vendor # Папка для сторонних бибилотек
84+
│ └── index.html # HTML-файл для главной страницы
6085
└── .editorconfig # Настройки форматирования текстовых файлов
61-
└── .gitignore # Настройки игнорирования файлов для git
62-
└── .stylelintrc # Правила для stylelint
63-
└── gulpfile.js # Автоматизация для Gulp
86+
└── .gitignore # Настройки игнорирования файлов для git
87+
└── .stylelintrc # Правила для stylelint
88+
└── gulpfile.js # Автоматизация для Gulp
6489
└── package.json # Зависимости проекта, скрипты, настройки проекта
6590
└── package-lock.json # Зависимости проекта
6691
└── README.md # Документация
6792
```
6893

6994
## Основные команды
70-
- `npm start` - запускает сборку с сервером для разработки проекта
71-
- `npm run build` - создаёт папку `build` с оптимизированными файлами для продакшена
95+
96+
- `npm start` - запускает сборку с сервером для разработки проекта
97+
- `npm run build` - создаёт папку `build` с оптимизированными файлами для продакшена
7298

7399
## Дополнительные команды
74-
- `npm run preview` - посмотреть результат работы prod-версии сборки
75-
- `npm run lint` - запустить все проверки. Занимает длительное время
76-
- `npm run lint:bem` - проверить правильно использования БЭМ
77-
- `npm run lint:markup` - проверить HTML-разметку через W3C-валидатор
78-
- `npm run lint:styles` - проверить проект на совместимость с stylelint
79-
- `npm run lint:spaces` - проверить отступы с помощью editorConfig
80-
- `npm run lint:html` - проверить разметку по правилам linthtml
81-
82-
## Работа с разметкой
83-
Все HTML-файлы с разметкой складывайте в папку `source/`.
84-
85-
```bash
100+
101+
- `npm run optimizeImages` - создаёт оптимизированные изображения в `source/images/`
102+
- `npm run preview` - позволяет посмотреть результат работы prod-версии сборки
103+
- `npm run lint` - запускает все проверки (занимает длительное время)
104+
- `npm run lint:bem` - проверяет правильное использование БЭМ в разметке
105+
- `npm run lint:markup` - проверяет HTML-разметку через W3C-валидатор
106+
- `npm run lint:styles` - проверяет проект на совместимость с stylelint
107+
- `npm run lint:spaces` - проверяет отступы с помощью editorConfig
108+
- `npm run lint:html` - проверяет разметку по правилам linthtml
109+
- `npm run lint:js` - проверяет скрипты по правилам eslint
110+
111+
## Работа с разметкой
112+
113+
Все HTML-файлы с разметкой складывайте в папку `source/`.
114+
115+
```shell
86116
├── source/
87117
│ ├── index.html
88118
│ ├── catalog.html
89119
│ └── form.html
90120
```
91121

92-
из папки `source/` сборка переносит файлы в папку `build/`.
122+
Из папки `source/` сборка переносит файлы в папку `build/`.
93123

94-
```bash
124+
```shell
95125
├── build/
96126
│ ├── index.html
97127
│ ├── catalog.html
98128
│ └── form.html
99129
```
100130

101-
## Работа со стилями
102-
Все стили находятся в папке `source/sass/`.
131+
## Работа со стилями
103132

104-
```bash
133+
Все стили находятся в папке `source/sass/`.
134+
135+
```shell
105136
├── source/
106137
│ ├── sass
107138
│ │ └── blocks/
@@ -112,9 +143,8 @@ v18.18.0
112143
│ │ └── variables.scss
113144
```
114145

115-
Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/sass/styles.scss`.
146+
Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/sass/styles.scss`.
116147

117-
_styles.scss_
118148
```scss
119149
/* GLOBAL */
120150
@import "global/variables";
@@ -125,43 +155,52 @@ _styles.scss_
125155
@import "blocks/header";
126156
```
127157

128-
БЭМ-блоки импортируйте в секцию `/* BLOCKS */`.
158+
БЭМ-блоки импортируйте в секцию `/* BLOCKS */`.
129159

130160
Все препроцессорные файлы сборка обработает и превратит в `styles.css`. Файл `styles.css` сборка перенесёт в
131161

132-
```bash
162+
```shell
133163
├── build/
134164
│ └── css/
135165
│ └── styles.css
136166
```
137167

138-
## Работа с графикой
139-
Абсолютно всю графику складывайте в `source/images`.
168+
## Работа с графикой
169+
170+
Абсолютно всю растровую графику с двухкратной плотностью из макета складывайте в `source/.raw`. Здесь графика игнорируется гитом.
140171

141-
Векторную графику для спрайта складывайте в `source/images/icons/`. Автоматизация создаст из иконок файл `stack.svg`.
172+
После того как добавите графику сразу запускайте команду `npm run optimizeImages` для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте.
142173

143-
```bash
174+
Новая оптимизированная графика разной плотностью и суффиксами плотности в именах файлов появится в `source/images`. Эту, уже оптимизированную графику нужно коммитить.
175+
176+
Векторную графику для спрайта складывайте в `source/images/icons/`. Автоматизация создаст из иконок файл `stack.svg`.
177+
178+
```shell
144179
├── source/
180+
│ ├── .raw/
145181
│ ├── images/
146182
│ │ └── icons/
147183
```
148184

149-
Всю графику автоматизация перенесёт в `build/images/`.
185+
Всю графику автоматизация перенесёт в `build/images/`.
150186

151-
```bash
187+
```shell
152188
├── build/
153189
│ └── images/
154-
│ └── icons # папка для спрайта
155-
│ └── stack.svg # спрайт
190+
│ └── icons # папка для спрайта
191+
│ └── stack.svg # спрайт
156192
│ ├── bg.jpg
193+
│ ├── bg.webp
157194
│ ├── hero.png
195+
│ ├── hero.webp
158196
│ └── burger.svg
159197
```
160198

161-
## Работа со шрифтами
162-
Все шрифтовые файлы лежат в `source/fonts/`. Сборка переносит их в `build/fonts/`.
199+
## Работа со шрифтами
200+
201+
Все шрифтовые файлы лежат в `source/fonts/`. Сборка переносит их в `build/fonts/`.
163202

164-
```bash
203+
```shell
165204
├── build/
166205
│ └── fonts/
167206
│ ├── open-sans.woff2
@@ -170,54 +209,60 @@ _styles.scss_
170209
│ └── open-sans-bold.woff
171210
172211
```
173-
## Работа со скриптами
174-
Все скрипты лежат в `source/script/`.
175212

176-
```bash
213+
## Работа со скриптами
214+
215+
Все скрипты лежат в `source/script/`.
216+
217+
```shell
177218
├── source/
178219
│ ├── js
179220
│ │ ├── script.js
180221
│ │ └── modal.js
181222
```
182223

183-
Сборка переносит их в `build/script/`.
184-
```bash
224+
Сборка переносит их в `build/script/`.
225+
226+
```shell
185227
├── build/
186228
│ ├── js
187229
│ │ ├── script.js
188230
│ │ └── modal.js
189231
```
190232

191-
## Работа со сторонними библиотеками
192-
Для удобства внесения сторонних библиотек в ваш проект, вы можете использовать папку vendor. В этой папке вы можете размещать любые файлы, связанные с внешними библиотеками.
233+
## Работа со сторонними библиотеками
234+
235+
Для удобства внесения сторонних библиотек в ваш проект, вы можете использовать папку `source/vendor/`. В этой папке вы можете размещать любые файлы, связанные с внешними библиотеками.
193236

194-
Например, предположим, что вы хотите добавить в проект библиотеку, которая включает в себя как стилевой файл library.css, так и скрипты library.js. Чтобы интегрировать их в ваш проект, следуйте этим шагам:
237+
Например, предположим, что вы хотите добавить в проект библиотеку, которая включает в себя как стилевой файл `library.css`, так и скрипты `library.js`. Чтобы интегрировать их в ваш проект, следуйте этим шагам:
195238

196-
Положите файлы библиотеки в папку vendor, как показано ниже:
239+
Положите файлы библиотеки в папку `source/vendor/`, как показано ниже:
197240

198-
```bash
241+
```shell
199242
├── source/
200243
│ └── vendor/
201244
│ ├── library.css
202245
│ └── library.js
203246
```
204247

205-
Если у вас есть несколько библиотек с разными файлами, вы можете группировать файлы одной библиотеки в ее собственную подпапку. Например:
206-
```bash
248+
Если у вас есть несколько библиотек с разными файлами, вы можете группировать файлы одной библиотеки в ее собственную подпапку. Например:
249+
250+
```shell
207251
├── source/
208252
│ └── vendor/
209253
│ └── library/
210254
│ ├── library.css
211255
│ └── library.js
212256
```
213257

214-
При сборке вашего проекта, все файлы из папки vendor будут включены в папку build, сохраняя их структуру. Например:
215-
```bash
258+
При сборке вашего проекта, все файлы из папки `source/vendor/` будут включены в папку `build/vendor/`, сохраняя их структуру. Например:
259+
260+
```shell
216261
├── build/
217262
│ └── vendor/
218263
│ └── library/
219264
│ ├── library.css
220265
│ └── library.js
221266
```
222267

223-
Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке vendor.
268+
Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке `source/vendor/`.

0 commit comments

Comments
 (0)