2016-04-19 7 views
4

Я пытался вставлять сноски в мои сообщения Hexo (написанные в Markdown, если их язык разметки имеет значение). Я исхожу из опыта использования Jekyll для питания своих сайтов, и когда я использовал Jekyll, я бы добавил [^n] (где n - положительное целое число, то есть n ∈ {1,2,3, ...}) в тексте и что-то вроде :Как я могу более эффективно вставлять сноски в сообщение Hexo?

[^1]: footnote #1 
[^2]: footnote #2 
[^3]: footnote #3 
... 

в конце поста, где footnote #1, #2, #3, и т.д. заменяются своими фактическими примечаниями. Хотя с Hexo вещи кажутся немного более сложными. Я искал плагин сноски по адресу https://hexo.io/plugins/, безуспешно могу добавить, затем я использовал Google для поиска ответа и нашел этот смысл https://gist.github.com/kuanyui/d1728c2a526a615de56c. Я попытался использовать этот метод, добавив его в папку своего сайта Hexo script, но это не удалось (подробности о полной ошибке см. В gist, поскольку я прокомментировал детали там). Затем я попробовал трюк HTML, который я узнал, изучив сгенерированное содержимое моих сообщений Jekyll, в которых были добавлены сноски с помощью вышеупомянутого метода. А именно, добавив:

<sup id="fnref:n"><a href="#fn:n" class="footnote">n</a></sup> 

(где еще раз п положительное целое число) в тексте, где я хочу, чтобы мои сноски появляются и:

<ol> 
    <li id="fn:1">Footnote #1.<a href="#fnref:1" class="reversefootnote">↩</a></li> 
    <li id="fn:2">Footnote #2.<a href="#fnref:2" class="reversefootnote">↩</a></li> 
    <li id="fn:3">Footnote #3.<a href="#fnref:3" class="reversefootnote">↩</a></li> 
    ... 
</ol> 

в конце поста. Проблема в том, что этот метод, хотя и эффективен, также утомителен (т. Е. Для каждой сноски требуется гораздо больше ввода текста, чем хотелось бы), поэтому я попытался создать этот шаблон ejs (что соответствует текстовым сноскам), что я помещается в моей layouts папке под названием footnotes.ejs:

<sup id ="fnref:<%= n %>"><a href="#fn:<%= n %>"><%= n %></a></sup> 

и вставить это в мои посты с:

<%- include('layouts/footnotes', {n:1}); %> 

, но это тоже не удалось (неудачными я имею в виду, когда я создал свой сайт hexo это не- текст цитирования остался полностью неформатированным).

Итак, я здесь, чтобы попросить более эффективный способ вставки сносок в сообщения Hexo. А именно тот, который требует как можно большего набора текста для каждой сноски.

+0

Вы пробовали плагин [hexo-renderer-marked] (https://github.com/hexojs/hexo-renderer-marked)? Этот плагин использует [Marked] (https://github.com/chjj/marked) для разбора Markdown и Marked поддерживает сноски с помощью опции gfm (GitHub Flavored Markdown). – Waylan

+0

Существует также [hexo-renderer-markdown-it] (https://github.com/celsomiranda/hexo-renderer-markdown-it) плагин, в котором используется [Markdown-It] (https: // github. com/markdown-it/markdown-it) Паркер анализатора, а также поддерживает сноски. – Waylan

ответ

5

Я только что создал hexo-плагин для поддержки уценки сносок:

Таким образом, вы просто должны установить пакет с

npm install hexo-footnotes --save 

Если Hexo автоматически обнаруживает все плагины, вот и все.

Если это не так, зарегистрировать плагин в файле _config.yml:

plugins: 
    - hexo-footnotes 

Синтаксис:

basic footnote[^1] 
here is an inline footnote[^2](inline footnote) 
and another one[^3] 
and another one[^4] 

[^1]: basic footnote content 
[^3]: paragraph 
footnote 
content 
[^4]: footnote content with some [markdown](https://en.wikipedia.org/wiki/Markdown) 

Вот результат:

footnotes