Dev-заметки Кирилла Гусева

PHP, Laravel, Livewire
JS, Vue.js, Alpine.js
CSS, Tailwind CSS
Блог о жизни

Перенос строки в html-атрибуте

Проблема
Нужно вставить символ новой строки в html атрибут.

Решение
Можно вставить новую строку, добавив




к примеру вставим в placeholder:

<textarea placeholder="слово&#10;слово"></textarea>
 7   11 мес   html

Семь бед — один ресет

Проблема
Надо сбросить изменения, которые произошли на сервере.

Решение

git reset --hard && git clean -df
 6   11 мес   git

Install MeiliSearch

Проблема
Уставить MeiliSearch на Убунте в Forge

Решение

# Ставим MeiliSearch
curl -L https://install.meilisearch.com | sh

# Перемещаем бинарный файл meilisearch в файлы системы
mv ./meilisearch /usr/bin/

# Создаём файл службы
cat << EOF > /etc/systemd/system/meilisearch.service
[Unit]
Description=MeiliSearch
After=systemd-user-sessions.service

[Service]
Type=simple
ExecStart=/usr/bin/meilisearch --http-addr 127.0.0.1:7700 --env production --master-key some_master_key_here

[Install]
WantedBy=default.target
EOF

# Включаем и начинаем обслуживание
systemctl enable meilisearch

systemctl start meilisearch

systemctl status meilisearch

Удалить каталог из git, но не локально

Проблема
Надо удалить каталог из git, но оставить в файловой системе, локально.

Решение
Чтобы удалить этот каталог из git, но не физически:

git rm -r --cached data.ms
 3   11 мес   git

Семантическое Версионирование

Проблема
Не ясно, как правильно версионировать свои пакеты

Решение

Учитывая номер версии МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ, следует увеличивать:

  • МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
  • МИНОРНУЮ версию, когда вы добавляете новую функциональность, не нарушая обратной совместимости.
  • ПАТЧ-версию, когда вы делаете обратно совместимые исправления.

https://semver.org/lang/ru/

 10   11 мес   версионирование

Спецсимволы

Проблема

Разобраться, что за спецсимволы в логах вылезают.

Решение

&lt; это: <
&gt; это: >
&le; это: <=
&ge; это: >=
 4   1 год  

Извлечение классов в Tailwind CSS

Проблема
Тэйлвинд всем прекрасен, но всё же иногда такая декларативная вёрстка выглядит избыточно, особенно когда приходится повторять код. И тогда надо извлекать перечисления классов для создания объединённого класса.

Так можно вытащить большой повторяющийся кусок стилей.

Решение

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer components {
  .btn-primary {
    @apply py-2 px-4 bg-blue-500 text-white font-semibold rounded-lg shadow-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-400 focus:ring-opacity-75;
  }
}
 9   1 год   Tailwind CSS

Удалить index.lock

Проблема

fatal: Unable to create '/Users/kirillgusev/PhpstormProjects/fs3/.git/index.lock': File exists. Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier: remove the file manually to continue.

Решение

rm -f ./.git/index.lock
 6   1 год   git

Эмоджи в БД MySQL

Проблема
Когда надо применять эмоджи в БД, а MySQL сопротивляется.

Решение

# Для БД:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

# Для таблицы:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# Для  столбца (кастомизируется по св-вс столбца):
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 8   1 год   mysql   эмоджи

Wildcard SSL-сертификат

Проблема
Надо было создать поддомен. Я создал автоподдомен, отдельную папочку, всё как полагается, но SSL-сертификат на неё не распространялся.

Автоподдомены заимствуют настройки основного домена, в том числе и SSL-сертификат. Поэтому для работы автоподдоменов основного домена должен быть установлен сертификат, который включает в себя все имена автоподдоменов.

Решение
Чтобы это пофиксить запустил процесс выпуска такого сертификата. Чтобы не перевыпускать сертификаты каждый раз при создании нового поддомена, выбрал Wildcard сертификат. Он учитывает все поддомены третьего уровня.

Профит 👍

 5   1 год   ssl