Установка на сайт подсветки кода с помощью подключения библиотеки highlight.js

В предыдущих статьях было рассмотрено то, как установить подсветку кода с помощью подключения библиотеки highlight.js со стороннего сайта и то, как собрать и скачать файлы для установки highlight.js на сайт. Но так как нет ничего вечного, плюс никто не знает, сколько будет поддерживаться проект highlight.js его разработчиком и сколько времени ещё будут доступны файлы этой библиотеки на стороннем сервере, то в этой статье разберём, как установить (железобетонно) это полезное расширение к себе на сервер и подключить подсветку кода к себе на сайт, используя локальные файлы, которые никто не утащит и не потрёт.

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Какие файлы highlight.js нужны для установки подсветки кода у себя на сайте

Итак, у нас есть скаченный архив, но из него для работы highlight.js нужно всего лишь два файла:

  1. highlight.pack.js — лежит в корне архива и содержит библиотеку для подсветки кода на страницах сайта
  2. CSS-файл из папки styles — какой конкретно, зависит от того, какой конкретно шаблон был выбран.

Куда положить файл highlight.pack.js у себя на сервере

Сначала разберёмся с первым файлом. Он содержит JavaScript-библиотеку с тем набором языков, который был выбран при формировании архива на сайте разработчика. Он уже оптимизирован и его можно выложить на сервер в папку сайта так, как он есть в архиве. Куда конкретно его положить? Я его положил в папку js шаблона сайта. Не имеет особого значения, куда  его положить, главное, чтобы он был доступен из браузера. И конечно нужно знать путь до него, так, чтобы при его вызове он открывался. Так, например у меня, он лежит по этому адресу:

https://mb4.ru/templates/protostar/js/highlight.pack.js

Где взять оптимизированный css-файл со стилями шаблона highlight.js

С файлами css с шаблоном цветовой подсветки немного сложнее. В архиве хранятся не оптимизированные css-файлы. В интернете есть масса он-лайн сервисов, которые уберут лишние пробелы из этих файлов и оптимизируют его размер для того, чтобы выложить их на сайт, но можно взять этот оптимизированный файл с файлового хранилища разработчика. Узнать путь до этого файла можно так, как описано в статье по первой ссылке во вступлении.

Можно конечно выложить и не оптимизированный css-файл шаблона, но всякие Google Page Speed будут по этому поводу ругаться. Но при этом всё будет работать. В общем, для SEO полезнее выкладывать ужатый файл. Дальше — каждый решает за себя сам.

CSS-файл шаблона нужно также залить на сервер так, как было описано выше про js-файл. Я у себя его положил в папку css шаблона сайта. Там ему самое место:

https://mb4.ru/templates/protostar/css/shades-of-purple.css

Как подключить библиотеку highlight.js для подсветки кода на сайте

После того, как оба файла загружены на сервер в папку сайта, нужно прописать пару строчек в код страниц сайта (скорее всего в файл index.php шаблона сайта, но всё зависит от того, на чём написан и работает сайт). Я использовал такой код для подключения библиотеки highlight.js для подсветки кода у себя на сайте:

<link rel="stylesheet" href="/templates/protostar/css/shades-of-purple.css">
<link rel="preload" href="/templates/protostar/js/highlight.pack.js" as="script">
<script src="/templates/protostar/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
  • 1-я строка — подключение css-стилей шаблона
  • 2-я строка — предзагрузка js-библиотеки (для оптимизации скорости отображения страницы в браузере пользователя)
  • 3-я строка — подключение js-библиотеки
  • 4-я строка — включение (активация) библиотеки для подсветки кода на странице

Резюме

Таким образом можно скачать файлы с сайта разработчика, найти оптимизированный код css-файла (или самим его оптимизировать), залить файлы на сервер и подключить их в шапке сайта до закрывающего тега </head> в коде страниц сайта.

Как видно на этой странице — всё замечательно работает!

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню