【问题标题】:jekyll plugin not work on githubjekyll 插件在 github 上不起作用
【发布时间】:2013-12-20 14:05:33
【问题描述】:

我想使用 jekyll-plugins / weighted_pages.rb from here 更改导航栏中的页面顺序。

这个插件在我的 localhost 但 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 属性添加到pages (like weight: 1) 的前面,并在循环中使用site.weighted_pages 而不是site.pages

【问题讨论】:

    标签: ruby github jekyll


    【解决方案1】:

    Github 页面不支持插件。来自jekyll's documentation

    GitHub Pages 由 Jekyll 提供支持,但是出于安全原因,所有 Pages 站点都是使用 --safe 选项禁用自定义插件生成的。不幸的是,这意味着如果您要部署到 GitHub Pages,您的插件将无法工作。

    相同的文档页面也为您提供了一种解决方法:

    您仍然可以使用 GitHub Pages 发布您的网站,但您需要在本地转换网站并将生成的静态文件推送到您的 GitHub 存储库,而不是 Jekyll 源文件。

    【讨论】:

    • 但是_site floder 无法上传,怎么办?
    • 你可以上传_site文件夹的内容。这样,您只需推送静态站点。一种简单的方法是将您的.git/ 文件夹移动到_site 文件夹,提交并推送这些更改。之后,您将照常生成您的站点,然后将更改从 _site 文件夹推送到 github。
    • 是的。很抱歉忘记及时查看答案。非常感谢。
    【解决方案2】:

    目前,Github 页面不支持部分自定义插件。

    如果你想让 Jekyll 网站像本地一样运行,比如让自定义插件正常工作,这里有一个非常方便的方法来构建和部署Jekyll 站点到 Github 页面。

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

    通过这个动作,我认为你的问题可以完美解决。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 2020-11-29
      • 2019-06-24
      • 2017-10-16
      • 2017-07-10
      • 2017-06-30
      相关资源
      最近更新 更多