Как добавить каноническую ссылку в шестнадцатеричный блог?

Я настроил шестнадцатеричный блог и настроил два домена верхнего уровня, указывающих на один и тот же экземпляр e.g. domain.com and domain.org

Я хочу установить канонический URL для всего сайта. Для этого есть плагин, но я не могу понять, что делать, так как не знаю не знаю Джейд или Эйс.

Есть ли способ сделать это с изменением тем или без них?


person pr4bh4sh    schedule 29.09.2016    source источник


Ответы (1)


Нет, это невозможно без модификации темы (или с темой, которая ее уже поддерживает).

Тема — это своего рода шаблон для ваших страниц, при генерации сайта обрабатывается тема и вставляется ваш контент, результат сохраняется в виде .html файла. Тему легко настроить, просто включив каноническую ссылку.

Поскольку я не знаю, какую тему вы используете, я выберу tranquilpeak как пример. В исходнике темы найдите layout/_partial/head.ejs, этот файл отвечает за создание раздела <head> каждого HTML-файла в вашем блоге. В этом файле после тега <head> вы поместите помощник плагина <%- autoCanonical(config, page) %>.

EJS здесь — это язык шаблонов. То, что помещено в тег <% %>, будет обработано при генерации сайта, и его результат будет помещен в окончательный HTML-файл. Упомянутый вами плагин имеет вспомогательную функцию под названием autoCanonical, которая будет оцениваться препроцессором Hexo EJS, и все, что она возвращает, будет передано в HTML.

ИЗМЕНИТЬ:

Использование темы https://github.com/tufu9441/maupassant-hexo (шаблоны Jade)

Эта тема основана на шаблонах Jade, вы должны добавить вспомогательный плагин где-то в строка 26 файла base.jade, а также аналогичная модификация это место в файле base-without-sidebar.jade

| !{ autoCanonical(config, page) }

будет делать свое дело.

person JrBenito    schedule 18.10.2016
comment
Нашел место, обратите внимание, что в каталоге макетов в тематическом проекте есть все макеты для вашего блога hexo. Например, пост использует макет поста и хранится на post.jade. Его содержимое расширяется внутри блочного содержимого базового нефритового макета. Таким образом, base.jade имеет базовый HTML-шаблон, а другие макеты используются для заполнения пробелов (нижние колонтитулы, заголовки, боковые панели и т. д.). - person JrBenito; 19.10.2016