Вариант 1. Иконка через ::before и CSS (правильный способ для Font Awesome)

Шаг 1. Подключаем Font Awesome

Самый простой и надежный способ — подключить через CDN в <head> страницы. Для WordPress это делается через плагин типа Insert Headers and Footers или WPCode (в секцию «Header Scripts»)

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.0/css/all.min.css">

Важно: Если ты уже подключаешь FA где‑то в теме или плагине — этот шаг пропусти. Но убедись, что версия не конфликтует.

Шаг 2. Пишем CSS для ::before

Чтобы иконка появилась через псевдоэлемент, нужно:

  1. Указать content с кодом иконки (Unicode).
  2. Задать font-family из FA.
  3. Задать размер и цвет.
  4. Позиционировать (обычно absolute внутри relative родителя).

Пример для всех <pre>:

Где брать код иконки (\f121)

  1. Зайди на сайт Font Awesome.
  2. Найди нужную иконку (например, code).
  3. В деталях иконки будет «Unicode» — это и есть значение для content (в CSS пишут как \f...).

Частые проблемы и решения

  • Вместо иконки — пустой квадрат. Скорее всего, не подключен CSS FA или font-family указан неверно. Проверь консоль браузера (F12 → Console) на ошибки загрузки файла.
  • Иконка обрезана. Проверь overflow у родителя. Если у какого‑то предка стоит overflow: hidden, иконка (которая позиционирована абсолютно) будет обрезана.
  • Иконка не появляется. Проверь специфичность селектора. Если какой‑то другой CSS перебивает твои стили, добавь !important временно для теста.

Вариант 2. Иконка через JS (если CSS не работает или нужно динамически)

Этот способ хорош, когда:

  • Не хочется возиться с ::before и overflow.
  • Блоки кода подгружаются динамически (AJAX, Gutenberg, infinite scroll).
  • Нужно точно контролировать, куда и как вставить иконку.

JS + Font Awesome (через тег <i>)

Куда вставлять: в плагин для скриптов (WPCode, Insert Headers and Footers) в секцию «Before </body>» или «Custom JS».

Условие: Font Awesome должен быть подключен (CSS), иначе классы fa-solid fa-code не сработают.

JS + SVG (самый надежный, вообще не зависит от FA)

Если не хочешь зависеть от шрифтов, используй SVG. Это полностью автономно.

Плюсы:

  • Работает всегда, даже если FA не подключен.
  • Не зависит от кэша шрифтов и блокировщиков рекламы.
  • Цвет и размер заданы прямо в SVG.

Что выбрать и когда

Ситуация Решение
Нужно быстро и «по‑правильному» CSS + ::before + FA
Есть проблемы с overflow или специфичностью JS + <i> или JS + SVG
Блоки кода подгружаются динамически JS (желательно с MutationObserver для новых элементов)
Хочется максимальной надежности и независимости JS + SVG

Продвинутый вариант: поддержка динамических блоков (MutationObserver)

Если блоки кода появляются после загрузки страницы (например, при переключении вкладок или ленивой подгрузке), обычный DOMContentLoaded не поможет. Используй «сторожа»:


Частые ошибки и как их избежать

  • Лишние отступы внутри <pre>. Если в HTML между <pre> и первой строкой кода есть переносы и табы, текст «уедет» вправо. Это не баг скрипта — это особенность тега <pre>. Убирай отступы в редакторе статьи.
  • Дублирование иконок. Если запускаешь скрипт несколько раз или добавляешь его в разные места — иконки могут появиться дважды. В примере с SVG я добавил проверку: если иконка уже есть — не добавлять.
  • Конфликт с подсветкой синтаксиса. Некоторые плагины подсветки сами добавляют обёртки и стили. Если иконка «ломает» верстку, попробуй уменьшить margin-right или использовать position: absolute в CSS вместо вставки в поток.

Практический совет

Для твоей задачи (иконка слева от блока кода) я рекомендую начать с JS + SVG (простой вариант без MutationObserver). Он сразу решает проблему с отсутствием шрифта и не зависит от overflow. Если позже понадобится более гибкая кастомизация — перейдешь на CSS с ::before.

 

sky.pro1 Документация по подключению библиотек через CDN
help.sweb.ru2 Спецификация псевдоэлементов и наследование шрифтов в CSS

Как я возвращал доступ к сайту после сбоя диска: Xubuntu + WordPress

Привет, это снова я. Сегодня расскажу про тот самый «страшный» случай, когда после сбоя диска сервер вроде бы ожил, а вот в админку WordPress попасть не получалось — вместо формы входа выдавало жёсткое Forbidden.

Если ты тоже однажды увидишь эту ошибку — не паникуй. Ниже пошаговый разбор, как я всё починил, с готовыми командами и пояснениями.

Продолжить »

Как создать цифровое искусство прямо из браузера за 3 клика

Когда работаешь над статьей (*например, в этом блоге*), часто хочется визуализировать идею. Но открывать нейросеть в новом окне, копировать ссылку и возвращаться обратно — долго.

В этой статье я покажу, как добавить кнопку генерации изображений прямо в ваш браузер. Вы вводите описание, нажимаете одну кнопку — и картинка появляется здесь же, в редакторе.

Продолжить »

Погодный информер для сайта на HTML/JS

Привет, друзья! Сегодня хочу поделиться не просто результатом, а целым этапом: я наконец-то вынес свой погодный информер из «локальной папки» на GitHub и оформил как полноценный проект. Еще пару дней назад этот виджет жил только у меня на компьютере. Я открывал index.html, менял пару строк в JS, проверял, как смотрится иконка при дожде — и закрывал. Это было удобно для тестов, но совершенно бесполезно для роста. Держать пет-проект «в столе» — значит не дать ему шанса стать чем-то большим.

Продолжить »

5 команд Linux для веб‑разработчика: шпаргалка, которая экономит часы

Когда я только начинал возиться с WordPress на сервере, каждая ошибка казалась катастрофой: сайт не грузится, картинки не загружаются, а я не понимаю, куда вообще смотреть. Потом я выучил 5 простых команд Linux — и они стали моими главными помощниками. В этой статье — только самое нужное: команды, примеры, типичные ошибки и как их избежать.

Продолжить »

Установка Ubuntu mini.iso + Xubuntu core

Установка Ubuntu mini.iso + Xubuntu core шаг
Установка Ubuntu mini + Xubuntu core
Я уже давненько хотел создать XbuntOS на 64 битной архитектуре, да всё как то откладывал. И вот в сегодняшней статье, установим мини образ Ubuntu с добавлением  Xubuntu core. На выходе получим, можно сказать пустую систему и главным инструментом для приведения  её в полноценный образ будет, терминал XFCE (консоль).
Наполнять и устанавливать программы, будем в следующих постах, а сегодня получится, что-то в виде галереи с пошаговыми картинками. Пояснения писать не стану, я постарался подробней изложить всё в картинках. Но если появятся вопросы, то пишите в комментариях, непременно отвечу.
  Добавлю, что мини образ можно скачать по адресу:
https://help.ubuntu.com/community/Installation/MinimalCD
А вес его всего-ничего, 67 МБ.
Ну, что… погнали!?

Установка Grub Customizer через терминал

  Grub Customizer — это программа, с помощью которой производиться настройка загрузчика системы. Я в основном пользуюсь ей когда GRUB при загрузки системы в меню, не выводит строку с Windows, и вот Grub Customizer прекрасно с этим справляется.  Это бывает редко, но бывает…
У меня постоянно уставновлена две ОСи, всё никак не получается научиться пользоваться только Линуксом. Даже с установленным Wine, некоторые вопросы приходятся решать на Винде. Немного ушел от темы…

Продолжить »

Подсветка синтаксиса кода — SyntaxHighlighter

Сегодня установил на блог JavaScript библиотеку для подсветки синтаксиса кода, который легко интегрируется с любыми сайтами и блогами. В нашем случае SyntaxHighlighter будем устанавливать в наш любимый Blogger.
SyntaxHighlighter
SyntaxHighlighter

Если не обновляется Chrome в Xubuntu

chrome update
 Часто встречается у меня такая проблема…. Хром пишет в верхнем правом углу, что нужно обновить хром, но при попытке обновить, пишет  — у вас установлена свежая версия….
Вот я и решил, зафиксировать это решение на страницах блога, чтобы потом долго не искать…

Продолжить »