javascript - Jekyll 在 JavaScript 中添加空字符

标签 javascript ruby vagrant jekyll

我正在尝试使用 this theme与杰基尔。但是,我生成的 JavaScript 附加了非法字符,导致页面渲染时出现错误。

特别是,一旦渲染到 _site 中,js/init.js 似乎就会在其末尾添加两个字符。在 Sublime Text 中它们显示为 NUL,在 vi 中它们显示为 ^@

我从 Trusty Vagrant VM 运行 Jekyll,源存储库是到我的 Windows 主机的映射卷。我目前尚未编辑任何文件,因此我看不出它与行结尾有任何关系。

有什么想法吗?

最佳答案

(我知道,这是一个非常古老的问题。)

TL;DR:解决方案:将 frontmatter 应用到 Javascript 文件

在几个月的时间里,我一直遇到这个问题,并且在搜索中没有找到解决方案。终于今天,我想我已经解决了我自己的问题......

事实证明,Jekyll 正在尝试将该文件(至少在我的情况下出现)作为页面文档进行处理,因此它会查找 frontmatter,并且由于某种原因无法在文件丢失时呈现该文件。

在我的脚本中添加一些 frontmatter 后,即使它本身破坏了文件的 Javascript 兼容性,Jekyll 似乎也能很好地处理它,而且我不再看到尾随的 ^@字符(等)。

带有 frontmatter 的示例脚本

这种策略还有一些辅助功能......

---
some_variable: "yourvalue"
---
// access the value from the frontmatter within your script.
document.body.getElementById("mydiv").innerHTML = "{{some_variable}}";

关于javascript - Jekyll 在 JavaScript 中添加空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30077976/

相关文章:

php - 基于网络更改PHP PDO MySQL连接的IP

javascript - 如何为按钮着色并保持状态?

javascript - 使用按钮更新图表和文本 (D3.js)

ruby-on-rails - find_or_create 在 Rails 中不起作用

ruby - 为 DataMapper 安装 do_sqlite3 时出现问题

linux - 在 ubuntu 中不使用 sudo 的 Shell 脚本

javascript - 当我想使用 Ember.js 时应该选择哪个版本?

javascript - 如何修改此代码以在 ES6 中启用尾调用优化?

mysql - 获取 PostgreSQL 中所有序列的最大 ID

vagrant - Vagrant 的首选后备网络接口(interface)?