веб-ui: знак «jb» стал единым для шапки, иконки вкладки и превью ссылки
- логотип сведён в web/static/logo.svg (буквы геометрией, оптическая центровка); прежний favicon с «play» убран - <head> шести страниц свёрнут в партиал head с og-мета; адреса абсолютные, база берётся из запроса, хост из недоверенного заголовка проверяется - растровые ассеты og-cover.jpg и apple-touch-icon.png собирает `task brand` из исходников web/*.html
This commit is contained in:
@@ -189,3 +189,19 @@ htmx по умолчанию **не свопит DOM на ответы 4xx/5xx**
|
||||
`task build`/`task run` зависят от `task assets`.
|
||||
- Шрифты и скрипты — **self-hosted**, без внешних хостов: бинарь самодостаточен,
|
||||
внешних ресурсов времени выполнения нет.
|
||||
|
||||
## Знак и превью ссылки
|
||||
|
||||
- Знак один на все места — `web/static/logo.svg`: иконка вкладки (`rel="icon"`),
|
||||
логотип в шапке (`<img class="logo">`) и карточка превью собираются из него.
|
||||
Второй картинки «для favicon» не заводим: она молча разъезжается с шапкой.
|
||||
- Буквы «jb» заданы геометрией, а не текстом: favicon рендерится браузером без
|
||||
наших шрифтов, и `<text>` в нём взял бы чужой.
|
||||
- Растровые ассеты (`og-cover.jpg` 1200×630 для превью ссылки,
|
||||
`apple-touch-icon.png` 180×180) в PNG/JPEG не правятся руками: исходники —
|
||||
`web/og-cover.html` и `web/touch-icon.html`, пересборка — `task brand`
|
||||
(нужны `chromium` и `magick`, в сборку и гейт не входит).
|
||||
- `<head>` страниц собирает единственный партиал `head` (`partials/head.html`);
|
||||
адреса для `og:*` абсолютные, база берётся из запроса — `pageMeta`
|
||||
(`internal/httpapi/page.go`). Хост приходит из недоверенного заголовка, поэтому
|
||||
форма проверяется, а на непохожем значении база пустеет до относительной.
|
||||
|
||||
Reference in New Issue
Block a user