Icarus User Guide - Other Plugins
This article covers other plugins supported by Icarus.
Gallery
Installation Guide
The gallery plugin of Icarus contains both lightGallery and
Justified Gallery extensions.
It is enabled by default: plugins > gallery is true in the configuration file generated by Icarus.
If your configuration file does not have this setting, add it to enable the plugin.
To disable it, set it to false.
1 | plugins: |
Additionally, in order to use Justified Gallery, wrap your images with the <div class="justified-gallery">
and </div> HTML tag pair.
Also, if you are using Markdown syntax to include images, add additional empty lines between the HTML tags and
Markdown tags.
For example, the Markdown code of the gallery preview below is
1 | <div class="justified-gallery"> |
Meanwhile, we can use pure HTML to create Justified Galleries as well. In this case, we will not need the empty lines between HTML tags.
1 | <div class="justified-gallery"> |
Note that the Markdown renderer adds your site’s root to Markdown image paths automatically, but it leaves
HTML <img> tags as they are.
If your site is in a subdirectory (root in _config.yml is not /), write the subdirectory in the src of
HTML images yourself, but not in the paths of Markdown images.
For example, this site uses root: /hexo-theme-icarus/, so the HTML version would use
/hexo-theme-icarus/gallery/animals/elephant.jpeg while the Markdown version uses /gallery/animals/elephant.jpeg.
Preview
Here is an image grid created by Justified Gallery. You can also view the full image using lightGallery by clicking on any image.

KaTeX
Installation Guide
You can use the KaTeX plugin to render \(\TeX\) expressions.
To enable KaTeX, please set plugins > katex to true in your theme configurations.
1 | plugins: |
Please also use \\( and \\) to wrap your inline expressions and $$ or \\[ and \\] pair to wrap
block expressions.
For example,
1 | This is an inline expression: \\(ax^2+bx+c=0\\). |
You can also write chemical equations with the \ce command, such as \\(\ce{H2O}\\).
Sometimes your \(\TeX\) syntax will be mistaken as Markdown syntax, which will result in rendering error.
For instance, the following equation will not work since it contains more than one _ (underscores),
which are mistaken for the italic text when processed by the Markdown renderer:
1 | $$ |
In this case, you can either escape every character that may cause confusion:
1 | $$ |
or simply wrap the whole equation with an additional pair of HTML tags:
1 | <div> |
MathJax
Installation Guide
You can use MathJax to render \(\TeX\) or MathML expressions.
To enable MathJax, please set plugins > mathjax to true in your theme configurations.
1 | plugins: |
When using the \(\TeX\) syntax, please use $ or \\( and \\) to wrap your inline expressions
and $$ or \\[ and \\] pair to wrap block expressions.
You can also use \(\LaTeX\) environments directly.
For example,
1 | This is an inline expression: \\(ax^2+bx+c=0\\). This is another inline expression: $ax^2+bx+c>0$. |
Or you can use MathML syntax. For example,
1 | When |
Sometimes your latex syntax will be mistaken as Markdown syntax, which will result in rendering error. Please refer to the KaTeX section for solutions to this.
Preview(\(\TeX\) & \(\LaTeX\))
This is an inline expression: \(ax^2+bx+c=0\). This is another inline expression: $ax^2+bx+c>0$.
This is a block expression: $$\displaystyle \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }$$
This is another block expression: \[f(x) = \int_{-\infty}^\infty\hat f(\xi)e^{2 \pi i \xi x}d\xi\]
Or use \(\LaTeX\) environment: \begin{equation} A = \begin{bmatrix} a & b \\ c & c \end{bmatrix} \end{equation}
Preview(MathML)
When , there are two solutions to and they are
Cookie Consent
Installation Guide
You can show a cookie consent dialog to your visitor by enabling the Cookie Consent plugin. Please refer to Download Cookie Consent and Documentation for the Cookie Consent plugin for details on each configuration setting. You can also disable the cookie consent dialog by commenting out the configurations.
type decides what the dialog does:
infoonly tells your visitors that your site uses cookies. This is the default.opt-inloads the web analytics plugins listed below only after the visitor allows cookies.opt-outloads the web analytics plugins listed below unless the visitor declines cookies.
opt-in and opt-out apply to the following plugins: baidu_analytics, busuanzi, cnzz,
google_analytics, hotjar, matomo, statcounter, twitter_conversion_tracking, umami, and
waline_pageview.
In these two modes, visitors can change their choice later with the Cookie Policy button.
1 | plugins: |
Outdated Browser
Installation Guide
You can use the Outdated Browser plugin to detect outdated browsers used by
your site’s visitors and remind them to upgrade their browsers.
It shows a warning above the navigation bar when the browser lacks CSS features that the layout and colors of
the theme need.
To enable it, please set plugins > outdated_browser to true in your theme configurations.
1 | plugins: |
Page Loading Animations
Installation Guide
Page Loading Animations are enabled by Icarus by default.
To disable it, please set plugins > animejs to false in your theme configurations.
1 | plugins: |
Also, to disable the page loading progressbar, please set plugins > progressbar to false in
your theme configurations.
1 | plugins: |
Back to Top Button
Installation Guide
Icarus shows a button that takes your visitors back to the top of the page after they scroll down.
It is enabled by default: plugins > back_to_top is true in the configuration file generated by Icarus.
To hide the button, set it to false in your theme configurations.
1 | plugins: |
PJAX
Installation Guide
With PJAX, clicking a link to another page of your site does not reload the
whole page.
Instead, Icarus fetches the new page in the background and only replaces the parts that change, such as the
navigation bar, the main content, and the sidebars, which makes moving between pages faster and smoother.
PJAX is enabled by default: plugins > pjax is true in the configuration file generated by Icarus.
If your configuration file does not have this setting, add it to enable PJAX.
To disable PJAX, set it to false in your theme configurations.
1 | plugins: |
Some notes on PJAX:
- If you add your own scripts that set up the page content, run them again on the
pjax:completeevent, not only onDOMContentLoaded. To clean up before the content is replaced, listen to thehexo:page:before-replaceevent. - The comment section is replaced together with the main content, and the scripts of the comment plugin run again, so the comments of each new page are loaded.
- MathJax typesets the expressions of each new page again.
- The scripts of web analytics plugins are not run again after a switch, so that a visit is not counted twice. Matomo, Umami, BuSuanZi, and the Waline page view counter count the pages that visitors switch to by themselves. Other analytics services may only count the first page that a visitor opens, unless they track page changes on their own.
Prefetch
Installation Guide
Icarus can prefetch the page of a link to your site while the pointer of a visitor rests on it, or as soon as
they touch it on a touch screen, so that the page opens faster when they click it.
To enable it, set plugins > prefetch to true in your theme configurations.
delay is how long, in milliseconds, the pointer has to rest on a link before its page is prefetched (65 by
default), so that moving the pointer across links does not prefetch all of them.
1 | plugins: |
Some notes on prefetching:
- Only the pages of your site are prefetched: not links to other sites, downloads, or files such as images
and feeds.
To leave a link out, add the
data-no-prefetchattribute to it. - Nothing is prefetched when the browser of the visitor asks to save data, or on a 2G connection.
- With PJAX, the switch to the page uses the prefetched page.
Without PJAX, browsers that support speculation rules use it for the navigation.
Other browsers prefetch it with
<link rel="prefetch">, which they only use if your host allows the page to be cached.
Icarus User Guide - Other Plugins
https://ppoffice.github.io/hexo-theme-icarus/Plugins/Other/icarus-user-guide-other-plugins/