pr4bh4sh pr4bh4sh - 1 month ago 16
Jade Question

How to add canonical link in hexo blog?

I have setup a hexo blog and configure two top level domain pointing to same instance

e.g. domain.com and domain.org


I want to set canonical URL for the entire site. There is plugin for this but I'm not able to understand what to do as I don't know jade or ejs.

Is there any way I can do this with or without modifying the themes?

Answer

No, there is no way to this without modifying the theme (or with a theme that already support it).

Theme is a kind of template for your pages, during site generation the theme is processed and your content is inserted, the result is saved is a .html file. It is easy to customize a theme for just include canonical link.

Since I don´t know what theme are you using, I will pick the tranquilpeak as example. In the theme source find out layout/_partial/head.ejs, this file is responsible for generate the <head> section of every HTML file in your blog. In this file, after <head> tag you will put the plugin helper <%- autoCanonical(config, page) %>.

EJS here, is a template language. What is put inside tag <% %> will be processed during site generation and its result will be put into final HTML file. The plugin you mentioned has a helper function called autoCanonical that will be evaluated by Hexo´s EJS pre processor and whatever it returns will go to the HTML.

EDIT:

Using theme https://github.com/tufu9441/maupassant-hexo (Jade templates)

This theme it is based on Jade templates, you shall add the plugin helper somewhere around Line 26 of base.jade file and also a similar modification to this place on base-without-sidebar.jade file

| !{ autoCanonical(config, page) }

will do the trick.