Jekyll插件在GitHub上无法工作。

7
我希望通过使用这里jekyll-plugins/weighted_pages.rb来改变导航栏中页面的顺序。
这个插件在我的本地环境下运行得非常好,但是在GitHub上无法正常工作。
我发现GitHub主机上的导航栏是空的,似乎这个插件没有起作用。
我该如何解决这个问题?
我复制了weighted_pages.rb的代码如下:
# Generates a copy of site.pages as site.weighted_pages
# with pages sorted by weight attribute. Pages with no
# weight specified are placed after the pages with specified weight.

module Jekyll

  class WeightedPagesGenerator < Generator
    safe true

    def generate(site)
      site.config['weighted_pages'] = site.pages.sort_by { |a| 
        a.data['weight'] ? a.data['weight'] : site.pages.length }
    end

  end

end

在你的页面的前置数据中添加weight属性(例如weight: 1),并在循环中使用site.weighted_pages代替site.pages

2个回答

8
Github pages不支持插件。根据jekyll的文档
“GitHub Pages由Jekyll提供动力,但是为了安全起见,所有Pages站点都使用--safe选项生成以禁用自定义插件。不幸的是,这意味着如果您部署到GitHub Pages,则您的插件将无法工作。”
同一文档页面还提供了解决方法:
“您仍然可以使用GitHub Pages发布站点,但需要在本地转换站点,并将生成的静态文件推送到GitHub存储库,而不是Jekyll源文件。”

但是 _site 文件夹无法上传,我该怎么办? - Mithril
5
你可以直接上传 _site 文件夹的内容,这样你就可以简单地推送静态站点。一种简单的方法是将 .git/ 文件夹移动到 _site 文件夹中,提交并推送这些更改。之后,按照通常的方式生成网站,然后从 _site 文件夹中推送更改到 GitHub。 - Andión
是的,没错。非常抱歉我忘记及时检查答案。非常感谢。 - Mithril

2

目前,Github页面不支持一些自定义插件。

如果您想让Jekyll网站运行得像本地一样,例如使自定义插件正常工作,这里有一种非常方便的方式可以构建和部署Jekyll网站到Github Pages。

jekyll-deploy-action - 一个Github Action,方便地为GitHub Pages部署Jekyll网站。 https://github.com/jeffreytse/jekyll-deploy-action

使用此操作,我认为您的问题可以完美解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接