A hexo plugin to add tooltips to your blog posts using tippy.
This plugin differs from other similar ones by allowing full pandoc footnote definition, e.g.,
- allowing footnote identifiers other than just numbers (e.g., [^footnote])
- allowing rich text in footnote
This edition works with hexo-renderer-pandoc. Another edition named hexo-markdown-it-tippy works with hexo-renderer-markdown-it-plus.
Current version (0.1.0) works with the following packages. Newer/older versions may be compatible, but there is no test to guarantee that.
If you installed this package as described in [Getting Started](#Getting Started), npm should have automaticlly installed the above packages for you.
Further more, this plugin also requires:
- hexo: 3.4.3
- hexo-renderer-pandoc: 0.2.0
- pandoc: 184.108.40.206
- python: I use 3.6.2, but 2.7 may also work.
- Panflute: 1.10.6
You have to install the above yourself.
Assuming you have the required tools, otherwise see
Execute under root directory of your hexo blog:
npm install hexo-pandoc-tippy --save
Add to your
pandoc: # other options filters: - node_modules/hexo-pandoc-tippy/pandocFilter.py extra: - toc:
Also (Optionally) add to your
./_config.yml file, if you want customized theme.
tippy: theme_file: tippy-theme.css # css file containing the theme, relative to blog root directory theme_name: honeybee # theme name, see tippy docs
See tippy's instruction on creating themes
The above steps only need to be done once.
hexo to generate your blog and see the tooltips in effect.
Why Python Filter?
Firstly, as hexo uses node.js, any user uses hexo must already have node.js installed. Thus I agree js is the most approperate language to use.
However, as the node.js interface does not provide method to append to the AST, which this plugin must require, it is not yet possible to write the filter in js.
Therefore, I had to look elsewhere. And I found that panflute can be called as:
run_filter(action, prepare=prepare, finalize=finalize, doc=doc)
which is easy to use.
Also it is safer to assume that more users already have Python installed than have Haskell installed. If this assumption is not true, I think installing Python is much easier. (Truth being told, believeing me being the only user, I will just make myself convient)
This project starts off as a personal tool for my own blog, and thus is written with no consideration of any other user. Despite being functioning, the project is still very incomplete.
Also yet being a personal project, I would very happy if someone is interesting in using, or even improving it. Thus issue/pull request are greatly welcomed.
However, please bear in mind that, being yet a personal project, this plugin may not be stable during use, and I may not be able to accept pull requests, whether due to personal energy or taste.
The project is first published under the version 0.1.0. As improvements being made, I will keep incrementing the MINOR and PATCH verion, depending on the actual changes.
I will not increment the MAJOR version to
1 until the project
becomes satisfactory and ready to face massive users.
This project is licensed under the GNU General Public License v3.0 license.
See the LICENSE.md file for the full text.