hexo server --draft 和 Livereload 的使用方法

How to use hexo server --draft and Livereload

我正在使用 hexo 撰写博文草稿。我运行的hexo server如下:

hexo server --draft

这会监视草稿文件夹中的变化并生成可以在 http://0.0.0.0:4000

查看的草稿帖子

问题是我在写草稿时不知道如何使用live-reload

我调用 livereload

live-reload --port 9091 public/

并在浏览器中使用 javascript 实现

<script type="text/javascript" src="//localhost:9091"></script> 

我明白为什么这不起作用,live-reload 正在寻找对 public 文件夹的更改。服务器 运行 处于草稿模式,我不知道 html 生成的草稿存储在哪个文件夹中。我搜索了我的项目结构,似乎看不到任何明显的东西。有什么想法吗?

查看 Github 中的 --draft 选项实现表明它仅将 post 处理器扩展到 _draft 文件夹。所以它放置草稿渲染文件的地方与放置已发布帖子的地方相同。

但是,hexo server 不会像问题所建议的那样将已发布的帖子保存在 public 目录中; public 目录仅由 hexo generate 命令填充。事实上,hexo server 不会保存临时文件,因为它会动态呈现它们。

我认为 live-reload 这样行不通。

hexo 服务器服务于 post 而非 public 版本的源代码版本。如果您将 livereload 设置为观看源文件夹,则 livereload 将起作用。我建议将 livereload 设置为在处理之前使用 1 秒左右的延迟,以便在尝试重新加载之前即时生成源代码。

Hexo 可以提供live-reload-like functionality via the'Browsersync-based' plugin, 'hexo-browsersync'。

其实还有一个hexo-livereload plugin, but the net, and hexo-browsersync's NPMJS rating, seem to favour the Browsersync Hexo plugin.

Christopher Martin 的博客 post“Getting Started with the Hexo Blogging Framework”概述了插件的安装和使用,以及许多其他有用的提示:

To install the hexo-browsersync plugin:

$ npm install hexo-browsersync --save
$ hexo server --draft --open #restart the server

这可能比接受的答案更适合 OP 的原始问题。

这就是我通常做这种事情的方式:

hexo generate --draft --watch & live-server --port=4000 public

这会在 public 文件夹中生成站点并监视更改,同时还提供具有自动更新功能的上述 public 文件夹。

没有完全回答具体问题,但也许有人会发现它有用。

注意:您需要全局安装 live-serverhexo-cli,或者如果 运行 通过 npm 脚本在本地安装。