2015-07-18 4 views
3

В source/_posts У меня есть post.md и post/ каталог для хранения активов для post.md.Как я могу сказать Hexo игнорировать файл при создании сообщений?

В post/ У меня есть js/main.min.js, который используется в post.md, чтобы проиллюстрировать что-то.

Hexo собирает main.min.js и создает для него сообщение. Как я могу обойти это?

ответ

4

Единственное решение, которое я нашел, должно было включать каталог для сообщения под source i.e. source/post (снаружи/рядом source/_posts).

Затем вы можете разместить свои активы и обратиться к ним в файле md, например.

<script src="/post/js/main.min.js"></script>

Кстати, я попытался с помощью _config.yml «ы skip_render:

skip_render: 
    - "**/*.js" 
    - "*/*.js" 
    - "_posts/post/js/main.min.js" 

и других вариантов, но все они приводят к main.min.js визуализируемым как пост.

1

Я думаю Hexo будет игнорировать любой файл, который имеет подчеркивание, так что вам нужно переименовать файл .js в _main.min.js

+0

Правда, я пробовал это, и Хексо не создавал сообщение. Однако я не смог связать файл js с моим .md. Возможно, я не играл достаточно с ним и набрал нужный URL для него. Он работает так, как он настроен, вне _posts /, поэтому я склонен так держать. Спасибо за подсказку, хотя! – justin

+0

глупое предложение, но вам также нужно переименовать файл с подчеркиванием, где вы ссылаетесь на него в своем .md-файле. Предположим, вы это сделали? Самый простой способ проверить URL-адрес - посмотреть в общей папке и посмотреть, находится ли ваш файл js –

+0

lol np. Да, я изменил ссылку. Я забыл о 'hexo generate', чтобы увидеть общедоступный каталог (просто служил от' hexo server' - это было какое-то время). Последнее не генерирует общественность. В любом случае, когда js filename является префиксом нижнего подчеркивания, он не копируется в общедоступном каталоге и поэтому нет возможности связать его (и не создается файл .html для него - исходная проблема). Неудивительно, что я не смог угадать URL. .png и .svg файлы скопированы отлично. – justin

4

У меня была аналогичная проблема, но это было с JSon файлов. В моем случае все json-файлы будут превращены в страницы, и я не хочу, чтобы они были. Итак, в итоге я создал файл extend.js и разместил его внутри папки сценариев в моей теме. Затем я включил этот бит кода.

hexo.extend.filter.register('after_init', function() { 
    // Remove json files being inserted to db.json -> Pages 

    var listSync = hexo.extend.renderer.list(true), 
     listAsync = hexo.extend.renderer.list(); 

    delete listSync.json; 
    delete listAsync.json; 
}); 

Возможные объекты, которые вы можете удалить это, htm, html, css, js, json, swig, yml, yaml. Надеюсь, это поможет.

+0

Спасибо! Я не пробовал, но, безусловно, посмотрю, если я столкнусь с подобными проблемами позже. – justin

+0

Отлично, это работает как ожидалось! Спасибо! – Pwdr

 Смежные вопросы

  • Нет связанных вопросов^_^