Sas*_*ota 7 ruby jekyll github-pages
事实证明,由于安全问题,自定义ruby插件无法在GitHub页面上运行.
我正在尝试将一个插件(这个)添加到_plugins我的Jekyll项目的文件夹中,但是当我将它部署到GitHub时,它会被忽略.
问题:有没有办法解决这个问题?有没有人找到解决方案?
注意:显然我可以在本地生成html文件并将它们提交到我的存储库.但这不是我想要的.
阅读时间脚本不需要插件。我创建了一组无需使用插件即可添加的脚本。您可以在此处找到它们。阅读时间脚本就是其中之一。
在这里你可以找到代码:
{% capture words %}
{{ content | number_of_words | minus: 180 }}
{% endcapture %}
{% unless words contains '-' %}
{{ words | plus: 180 | divided_by: 180 | append: ' minutes to read' }}
{% endunless %}
Run Code Online (Sandbox Code Playgroud)
请注意,此代码仅包含 Liquid 而没有 Ruby。因此,它可以在您的布局或包含(没有插件)中使用。
假设你有这样的事情:
<p>lorem ipsum</p>
<p>lorem ipsum</p>
<code>lorem ipsum</code>
<p>lorem ipsum</p>
<code>lorem ipsum</code>
<p>lorem ipsum</p>
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样删除上面的代码块:
{% assign preprocessed_content=post.content | replace: '<p>', '__p__' %}
{% assign preprocessed_content=preprocessed_content | replace: '</p>', '__/p__' %}
{% assign truncated_content=preprocessed_content | strip_html %}
{% assign cleaned_content=truncated_content | replace: '__p__', '<p>' %}
{% assign cleaned_content=cleaned_content | replace: '__/p__', '</p>' %}
Run Code Online (Sandbox Code Playgroud)
当然,这可以扩展以支持更多标签。
如果你真的想使用插件,你可以让你的本地机器或 CloudCannon 构建你的站点并将结果推送到 Github Pages。另见:https : //learn.cloudcannon.com/jekyll/using-jekyll-plugins/
如果您想使用自定义插件,则必须在本地“构建”站点,然后gh-pages自己将其作为 HTML、CSS 和其他文件(不再是 Markdown 文件)的集合部署到分支。您可能想尝试使用jgd命令行来帮助您自动完成这一切。只需安装它然后运行:
$ jgd
Run Code Online (Sandbox Code Playgroud)
该站点将被打包,然后部署到gh-pages您的存储库的分支。有关更多信息,请参阅我的这篇博文:将 Jekyll 部署到 GitHub Pages
您需要这些插件的替代品。
\n\n如“使用 Hugo 简码构建系列列表”中详细介绍的”中详细介绍的:
\n\nRuby 插件执行在 Github 页面上被完全禁用:
\n\n\n\n\nGitHub Pages 上的插件 GitHub Pages 由 Jekyll 提供支持。
\n\n
\n 但是,出于安全原因,所有页面站点都是使用禁用自定义插件的选项生成的-safe。不幸的是,这意味着如果您部署到 GitHub Pages,您的插件将无法工作。您仍然可以使用 GitHub Pages 来发布站点,但是您\xe2\x80\x99 需要在本地转换站点并将生成的静态文件推送到 GitHub 存储库,而不是 Jekyll 源文件。
\n
我理解你提到:
\n\n\n\n\n显然我可以在本地生成 html 文件并将它们提交到我的存储库。但这不是我想要的。
\n
尽管如此,还是有像Hugo这样的静态网站生成器(与 GitHub 页面兼容)在您的情况下仍应考虑
\n\nRJ洛里默补充道:
\n\n\n\n\nHugo 有Shortcodes的概念,它很像 Jekyll 中的 \xe2\x80\x9cLiquid Tags\xe2\x80\x9d 。
\n\n
\n 与 Jekyll 一样,您可以创建自定义短代码标签。然而,主要的区别在于,在 Hugo 中,您可以创建它们,而无需实际编写 Go 代码 - 请参阅创建您自己的短代码。
\n
\n 因为 Hugo 使用 Go 模板来渲染页面,所以短代码可以使用其中的任何和所有 Go 模板函数,以及添加的自定义 Hugo 函数的完整列表以提供帮助。这使得它可以说比液体模板解决方案更强大,但仍然位于可以轻松动态更新的模板文件中。
另外,Hugo 确实支持 MathJax,如本文所示。
\n\n2018 年 11 月更新:在Hugo 0.52中,此推文确认(引用此线程):
\n\n\n\n内联短代码类似于Jekyll 允许您在 Markdown 中使用 Liquid 标签的方式
\n