Verified Commit 296f6168 authored by Maxim Lebedev's avatar Maxim Lebedev 🔀

Merge branch 'release/v0.3.0'

parents 23df0479 4a07ce16
Pipeline #135494161 passed with stage
in 24 seconds
---
patreon: toby3d
# github: [toby3d] # TODO(toby3d): I'm too lazy to fill out forms on dozens of fields
custom:
- 'https://toby3d.me/donate'
- 'https://tulpawiki.org/donate'
public/
resources/
......@@ -17,7 +17,7 @@ test:
pages:
stage: deploy
script: hugo -e production
script: hugo
artifacts:
paths:
- public
......
......@@ -2,19 +2,24 @@
## Введение
В первую очередь, я хочу поблагодарить вас за внимание и желание помочь этому проекту. Без вашего участия этого проекта
бы не существовало.
В первую очередь, я хочу поблагодарить вас за внимание и желание помочь этому
проекту. Без вашего участия этого бы не существовало.
Следование этим рекомендациям должно помочь вам проявить уважение ко времени других разработчиков, управляющих этим
проектом с открытым исходным кодом. В свою очередь, другие должны ответить тем же уважением при рассмотрении ваших
Следование этим рекомендациям должно помочь вам проявить уважение ко времени
других разработчиков, управляющих этим проектом с открытым исходным кодом. В
свою очередь, другие должны ответить тем же уважением при рассмотрении ваших
проблем, оценке изменений и оказании помощи в решении ваших запросов.
TulpaWiki - проект с открытым исходным кодом и мы любим получать вклады от вас, нашего сообщества. Есть много способов
как вы можете внести свой вклад: публикации в соц.сетях и блогах, улучшение документации, отправки отчётов об ошибках и
запросов новых функций, контент, а также написание кода, который впоследствии будет включён в сам TulpaWiki.
TulpaWiki - проект с открытым исходным кодом и мы любим получать вклады от
вас, нашего сообщества. Есть много способов как вы можете внести свой вклад:
публикации в соц.сетях и блогах, улучшение документации, отправки отчётов об
ошибках и запросов новых функций, контент, а также написание кода, который
в последствии будет включён в сам TulpaWiki.
Пожалуйста, не используйте систему отслеживания проблем для вопросов не связанных с исходным кодом и/или контентом
TulpaWiki. Проверьте, может ли [сервер в Discord](https://discord.gg/dv5kpGs) или [группа в Telegram](https://t.me/joinchat/AkuYY0ExBslQKlt2CRDazA)
Пожалуйста, не используйте систему отслеживания проблем для вопросов не
связанных с исходным кодом и/или контентом TulpaWiki. Проверьте, может ли
[сервер в Discord](https://discord.gg/dv5kpGs) или
[группа в Telegram](https://t.me/joinchat/AkuYY0ExBslQKlt2CRDazA)
помочь с вашей проблемой.
## Ключевые правила
......@@ -26,10 +31,11 @@ TulpaWiki. Проверьте, может ли [сервер в Discord](https:/
## Ваш первый вклад
Не знаете с чего начать? Обратитесь к списку открытых issues помеченных следующими ярлыками:
Не знаете с чего начать? Обратитесь к списку открытых issues помеченных
ярлыками:
* [good first issue](https://gitlab.com/TulpaWiki/tulpawiki.gitlab.io/issues?label_name%5B%5D=good+first+issue) - несрочные задачи, для которых требуются минимум кода;
* [help wanted](https://gitlab.com/TulpaWiki/tulpawiki.gitlab.io/issues?label_name%5B%5D=help+wanted) - задачи, которые могут быть немного сложнее чем задачи для новичков;
* [help wanted](https://gitlab.com/groups/TulpaWiki/-/issues?label_name%5B%5D=%F0%9F%91%8B+help+wanted) - задачи, которые могут быть немного сложнее чем задачи для новичков;
* [change::minor](https://gitlab.com/groups/TulpaWiki/-/merge_requests?label_name%5B%5D=change%3A%3Aminor) - запросы на небольшие (менее 64-х строк) изменения, которые могут быть проверены любым желающим;
Количество комментариев является не идеальным, но разумным показателем воздействия, которые окажут описанные изменения.
......@@ -41,15 +47,18 @@ TulpaWiki. Проверьте, может ли [сервер в Discord](https:/
* Создайте собственный форк (Fork) проекта;
* Внесите необходимые изменения в ваш форк;
* Откройте Merge Request вашего форка в ветку `develop` оригинального репозитория;
* Откройте Merge Request вашего форка в ветку `master` оригинального репозитория;
### Маленькие изменения
Небольшие изменения, вроде исправления опечаток или форматирования, которые достаточно малы чтобы не влиять на общую
стабильность проекта, могут быть приняты как патч без дополнительных проверок.
Небольшие изменения, вроде исправления опечаток или форматирования, которые
достаточно малы чтобы не влиять на общую стабильность проекта, могут быть
приняты как патч без дополнительных проверок.
Как правило, изменения являются очевидными исправлениями, если они не привносят никакой новой функциональности или
творческого мышления. Пока эти изменения не влияют на функциональность, некоторые примеры могут включать следующее:
Как правило, изменения являются очевидными исправлениями, если они не
привносят никакой новой функциональности или творческого мышления. Пока эти
изменения не влияют на функциональность, некоторые примеры могут включать
следующее:
* Исправление орфографии / грамматики;
* Исправления опечаток, пробелов и форматирования;
......@@ -61,18 +70,20 @@ TulpaWiki. Проверьте, может ли [сервер в Discord](https:/
## Как сообщить об ошибке
Любые вопросы безопасности должны быть отправлены в виде электронных писем на [[email protected]](mailto:[email protected]).
В случае если вы не уверены в том, связана ли ваша проблема с безопасностью, задайте себе следующие два вопроса:
Любые вопросы безопасности должны быть отправлены в виде электронных писем на
[[email protected]](mailto:[email protected]).
В случае если вы не уверены в том, связана ли ваша проблема с безопасностью,
задайте себе следующие два вопроса:
* Могу ли я получить доступ к чему-либо, что мне не принадлежит или к тому, к чему у меня не должно быть доступа?
* Могу ли я отключить/сломать что-либо для других людей?
Если ответ на оба этих вопроса утвердительный, то вы имеете дело с проблемой безопасности. Помните, что даже в случае
отрицательного ответа на оба этих вопроса вы всё ещё можете иметь дело с проблемой безопасности, так что, даже если вы
сомневаетесь, просто отправьте письмо на [[email protected]](mailto:[email protected]).
Если ответ на оба этих вопроса утвердительный, то вы имеете дело с проблемой
безопасности. Помните, что даже в случае отрицательного ответа на оба этих
вопроса вы всё ещё можете иметь дело с проблемой безопасности, так что, даже
если вы сомневаетесь, просто отправьте письмо на [[email protected]](mailto:[email protected]).
Для гарантии защиты вашего письма от чтения третьими лицами вы можете дополнительно зашифровать его содержимое
[публичным GPG-ключом](https://keybase.io/toby3d/pgp_keys.asc?fingerprint=7d6280b458ec5c47f90e57c0f8978f46ff0ffa4f).
Для гарантии защиты вашего письма от доступа третьих лиц вы можете дополнительно зашифровать его содержимое [публичным GPG-ключом](https://keybase.io/toby3d/pgp_keys.asc?fingerprint=7d6280b458ec5c47f90e57c0f8978f46ff0ffa4f).
Публикуя обычное сообщение об ошибке, пожалуйста, укажите следующее:
......@@ -82,58 +93,66 @@ TulpaWiki. Проверьте, может ли [сервер в Discord](https:/
4. Опишите **какой результат вы получили**;
5. Дополните описание информацией об вашей ОС, браузере, версии компилятора `hugo` если это применимо;
Скриншоты, видео, GIF и иные, наглядно демонстрирующие ошибку, материалы только приветствуются!
Скриншоты, видео, GIF и иные, наглядно демонстрирующие ошибку, медиа только
приветствуются!
## Как предложить улучшение
Философия TulpaWiki заключается в простом и доступном предоставлении информации о тульповодстве/тульпофорсинге в одном
месте из сотен-тысяч различных источников. TulpaWiki не развлекательный ресурс или агрегатор, а библиотека и площадка
для исследований феномена.
Философия TulpaWiki заключается в простом и доступном предоставлении
информации о тульповодстве/тульпофорсинге в одном месте из сотен-тысяч
различных источников. TulpaWiki не развлекательный ресурс или агрегатор, а
библиотека и площадка для исследований феномена.
Если вы обнаружили, что нуждаетесь в чём-то, чего нет в TulpaWiki, то, вероятно, вы не одиноки. Возможно, у других
пользователей имеются аналогичные потребности в том, в чём нуждаетесь вы. Многие вещи, которые есть в TulpaWiki уже
сегодня, были добавлены, потому что пользователи увидели в них необходимость. Откройте issue в соответствующем разделе
на GitLab, в котором будет подробно описано что вы хотели бы увидеть, насколько оно важно, зачем оно нужно и как оно
должно работать.
Если вы обнаружили, что нуждаетесь в чём-то, чего нет в TulpaWiki, то,
вероятно, вы не одиноки. Возможно, у других пользователей имеются аналогичные
потребности в том, в чём нуждаетесь вы. Многие вещи, которые есть в TulpaWiki
уже сегодня, были добавлены, потому что пользователи увидели в них
необходимость. Откройте issue в соответствующем разделе на GitLab, в котором
будет подробно описано что вы хотели бы увидеть, насколько оно важно, зачем
оно нужно и как оно должно работать.
## Процесс проверки изменений
Всем желающим предложить свои изменения требуется сделать три шага:
* Форкнуть (Fork) репозиторий и внести желаемые изменения;
* Открыть запрос на слияние вашего форка с веткой `develop` оригинального репозитория;
* Открыть запрос на слияние вашего форка с веткой `master` оригинального репозитория;
* Пройти проверку владельцев и кураторов оригинального репозитория;
В первую очередь, рассматриваются исправления ошибок, затем - улучшения. Их приоритет определяется через
[таблицу Эйзенхауэра](https://habr.com/ru/post/451354/).
В первую очередь, рассматриваются исправления ошибок, затем - улучшения. Их
приоритет определяется через [таблицу Эйзенхауэра](https://habr.com/ru/post/451354/).
### Требования
Вне зависимости от размера и типа изменений они должны соответствовать следующим условиям:
Вне зависимости от размера и типа изменений они должны соответствовать
следующим условиям:
* Ваш форк должен указывать в ветку `develop`;
* Ваш форк должен успешно компилироваться без ошибок;
* Ваш форк должен указывать в ветку `master`;
* Ваш форк должен успешно компилироваться без ошибок ("зелёный тест");
* Ваш код должен соответствовать [рекомендациям стиля кода](https://codeguide.academy/);
### Процесс
Когда вы откроете запрос на изменения, владелец и одобренные участники репозитория проверят ваш код и оставят отзыв,
если у них возникнут вопросы и/или замечания. Процесс заключается в следующем:
Когда вы откроете запрос на изменения, владелец и одобренные участники
репозитория проверят ваш код и оставят отзыв, если у них возникнут вопросы
и/или замечания. Процесс заключается в следующем:
* Вам необходимо разрешить все дискуссии, если они имеют место быть;
* Вам требуется набрать как минимум два одобрения 👍 от сопровождающих репозитория;
* Ваш код будет включён в кодовую базу ветки `develop`;
* Вам требуется набрать как минимум одно одобрение 👍 от сопровождающих репозитория;
* Ваш код будет включён в кодовую базу ветки `master`;
Запрос может быть отменён или закрыт если он не обновлялся более двух недель.
### Политика очевидных исправлений
Очевидные исправления могут быть включены в основную кодовую базу без дополнительных проверок. Пожалуйста, указывайте в описании о том, что ваши изменения являются очевидными исправлениями.
Очевидные исправления могут быть включены в основную кодовую базу без
дополнительных проверок. Пожалуйста, указывайте в описании о том, что ваши
изменения являются очевидными исправлениями.
## Сообщество
Если у вас есть вопросы или вы просто хотите пообщаться с другими участниками сообщества, то проверьте следующие
ссылки:
Если у вас есть вопросы или вы просто хотите пообщаться с другими участниками
сообщества, то проверьте следующие ссылки:
* [Discord](https://discord.gg/dv5kpGs)
* [Telegram](https://t.me/joinchat/AkuYY0ExBslQKlt2CRDazA)
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.
# Unlicense (Public Domain)
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to http://unlicense.org/
# TulpaWiki
Главный русскоязычный информационный ресурс в вики-формате о тульповодстве в целом и тульпафорсинге в частности.
Главный русскоязычный информационный ресурс в вики-формате о тульповодстве в
целом и тульпафорсинге в частности.
## Приступая к работе
......@@ -8,9 +9,12 @@
### Предварительные условия
Прежде чем приступить к работе, необходимо иметь в наличии компилятор статических сайтов [Hugo](https://gohugo.io/getting-started/installing/), браузер для визуальной отладки и любой текстовый редактор.
Прежде чем приступить к работе, необходимо иметь в наличии компилятор
статических сайтов [Hugo](https://gohugo.io/getting-started/installing/),
браузер для визуальной отладки и любой текстовый редактор.
Перед началом работы с проектом убедитесь, что у вас установлена последняя стабильная версия Hugo.
Перед началом работы с проектом убедитесь, что у вас установлена последняя
стабильная версия Hugo.
### Установка
......@@ -26,17 +30,24 @@ git clone https://gitlab.com/TulpaWiki/tulpawiki.gitlab.io.git
hugo serve -e development
```
При отсутствии ошибок проект будет собран и размещён по адресу `https://127.0.0.1:1313/` в режиме "горячей перезагрузки" изменений.
При отсутствии ошибок проект будет собран и размещён по адресу
`https://127.0.0.1:1313/` в режиме "горячей перезагрузки" изменений.
О [дополнительных опциях](https://gohugo.io/getting-started/usage/), [структуре проекта](https://gohugo.io/getting-started/directory-structure/), возможностях и инструментах Hugo [читайте в документации](https://gohugo.io/documentation/).
О [дополнительных опциях](https://gohugo.io/getting-started/usage/),
[структуре проекта](https://gohugo.io/getting-started/directory-structure/),
возможностях и инструментах Hugo [читайте в документации](https://gohugo.io/documentation/).
## Развёртывание
Для сборки готового к развёртыванию проекта достаточно запустить Hugo в корневой директории без указания аргументов. При отсутствии ошибок готовый проект будет размещён в директории `public/`, для развёртывания достаточно разместить на любом веб-сервере только содержимое этой директории.
Для сборки готового к развёртыванию проекта достаточно запустить Hugo в
корневой директории без указания аргументов. При отсутствии ошибок готовый
проект будет размещён в директории `public/`, для развёртывания достаточно
разместить на любом веб-сервере содержимое только этой директории.
## Внесение правок
Прочтите [CONTRIBUTING.md](CONTRIBUTING.md), чтобы получить подробную информацию о правилах и процессе запросов на включение правок.
Прочтите [CONTRIBUTING.md](CONTRIBUTING.md), чтобы получить подробную
информацию о правилах и процессе запросов на включение правок.
## Авторы
......@@ -44,7 +55,8 @@ hugo serve -e development
## Лицензия
Этот проект лицензируется в соответствии с лицензией Unlicense -- см. подробности в файле [LICENSE.md](LICENSE.md).
Этот проект лицензируется в соответствии с лицензией Unlicense -- см.
подробности в файле [LICENSE](LICENSE).
## Благодарности
......
......@@ -3,5 +3,5 @@
font-family: 'Inter';
font-style: normal;
font-weight: 400;
src: url('/fonts/inter.ttf') format('truetype');
src: url('{{ (resources.Get "fonts/inter.ttf").RelPermalink }}') format('truetype');
}
lite-vimeo {
font-size: 10px;
background-color: #000;
position: relative;
display: block;
contain: content;
background-position: center center;
background-size: cover;
cursor: pointer;
}
/* gradient, vimeo doesn't have this */
/*lite-vimeo::before {
content: '';
display: block;
position: absolute;
top: 0;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);
background-position: top;
background-repeat: repeat-x;
height: 60px;
padding-bottom: 50px;
width: 100%;
transition: all 0.2s cubic-bezier(0, 0, 0.2, 1);
}*/
/* responsive iframe with a 16:9 aspect ratio
thanks https://css-tricks.com/responsive-iframes/
*/
lite-vimeo::after {
content: "";
display: block;
padding-bottom: calc(100% / (16 / 9));
}
lite-vimeo > iframe {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
/* play button */
lite-vimeo > .ltv-playbtn {
width: 6.5em;
height: 4em;
background: rgba(23,35,34,.75);
z-index: 1;
opacity: 0.8;
border-radius: .5em; /* TODO: Consider replacing this with YT's actual svg. Eh. */
transition: all 0.2s cubic-bezier(0, 0, 0.2, 1);
outline: 0;
border: 0;
cursor: pointer;
}
lite-vimeo:hover > .ltv-playbtn {
background-color: rgb(0, 173, 239);
opacity: 1;
}
/* play button triangle */
lite-vimeo > .ltv-playbtn::before {
content: '';
border-style: solid;
border-width: 10px 0 10px 20px;
border-color: transparent transparent transparent #fff;
}
lite-vimeo > .ltv-playbtn,
lite-vimeo > .ltv-playbtn::before {
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0);
}
/* Post-click styles */
lite-vimeo.ltv-activated {
cursor: unset;
}
lite-vimeo.ltv-activated::before,
lite-vimeo.ltv-activated > .ltv-playbtn {
opacity: 0;
pointer-events: none;
}
......@@ -21,3 +21,9 @@ img:not([src*=".svg"]) {
.button_type_theme-switcher:hover {
background-color: hsl(0, 0%, 5%);
}
@media (prefers-color-scheme: dark) {
:root {
--filter: 100;
}
}
/**
* Add a <link rel={preload | preconnect} ...> to the head
*/
function addPrefetch(kind, url, as) {
const linkElem = document.createElement('link');
linkElem.rel = kind;
linkElem.href = url;
if (as) {
linkElem.as = as;
}
linkElem.crossorigin = true;
document.head.appendChild(linkElem);
}
function canUseWebP() {
var elem = document.createElement('canvas');
if (elem.getContext && elem.getContext('2d')) {
// was able or not to get WebP representation
return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;
}
// very old browser like IE 8, canvas not supported
return false;
}
/**
* Get the thumbnail dimensions to use for a given player size.
*
* @param {Object} options
* @param {number} options.width The width of the player
* @param {number} options.height The height of the player
* @return {Object} The width and height
*/
function getThumbnailDimensions({ width, height }) {
let roundedWidth = width;
let roundedHeight = height;
// If the original width is a multiple of 320 then we should
// not round up. This is to keep the native image dimensions
// so that they match up with the actual frames from the video.
//
// For example 640x360, 960x540, 1280x720, 1920x1080
//
// Round up to nearest 100 px to improve cacheability at the
// CDN. For example, any width between 601 pixels and 699
// pixels will render the thumbnail at 700 pixels width.
if (roundedWidth % 320 !== 0) {
roundedWidth = Math.ceil(width / 100) * 100;
roundedHeight = Math.round((roundedWidth / width) * height);
}
return {
width: roundedWidth,
height: roundedHeight
};
}
/**
* Ported from https://github.com/paulirish/lite-youtube-embed
*
* A lightweight vimeo embed. Still should feel the same to the user, just MUCH faster to initialize and paint.
*
* Thx to these as the inspiration
* https://storage.googleapis.com/amp-vs-non-amp/youtube-lazy.html
* https://autoplay-youtube-player.glitch.me/
*
* Once built it, I also found these:
* https://github.com/ampproject/amphtml/blob/master/extensions/amp-youtube (👍👍)
* https://github.com/Daugilas/lazyYT