Как я могу сказать Hexo игнорировать файл при создании сообщений?

В source/_posts у меня есть каталоги post.md и post/ для хранения ресурсов для post.md.

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

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


person justin    schedule 18.07.2015    source источник


Ответы (3)


Единственное решение, которое я нашел, заключалось в том, чтобы включить каталог для сообщения под source, то есть 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 отображается как сообщение.

person justin    schedule 19.07.2015
comment
Я пробовал skip_render для пропуска файлов js, он должен работать после того, как вы сделали очистку hexo clean - person fatfatson; 04.07.2018

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

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. Надеюсь, это поможет.

person cnotethegr8    schedule 11.02.2016
comment
Спасибо! Я не пробовал, но обязательно посмотрю, если позже столкнусь с подобными проблемами. - person justin; 13.02.2016

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

person Gaz_Edge    schedule 15.11.2015
comment
Правда, я пробовал это, и Hexo не сгенерировал пост. Однако мне не удалось сослаться на файл js в моем .md. Может быть, я недостаточно наигрался с ним и нажал правильный URL-адрес. Он работает так, как он настроен, вне _posts/, поэтому я склонен оставить его таким. Спасибо за подсказку! - person justin; 16.11.2015
comment
глупое предложение, но вам также нужно переименовать файл с подчеркиванием, когда вы ссылаетесь на него в своем файле .md. Предположим, вы это сделали? Самый простой способ проверить URL-адрес — заглянуть в общую папку и посмотреть, находится ли там ваш файл js. - person Gaz_Edge; 16.11.2015
comment
лол нп. Да, я изменил ссылку. Я забыл о hexo generate, чтобы увидеть общедоступный каталог (только что обслуживал от hexo server - это было давно). Последний не генерирует паблик. В любом случае, когда имя файла js имеет префикс подчеркивания, оно не копируется в общедоступный каталог, и поэтому нет возможности связать его (и для него не создается файл .html - исходная проблема). Неудивительно, что я не смог угадать URL. Однако файлы .png и .svg копируются нормально. - person justin; 18.11.2015