如何将Jekyll降级以与Github Pages兼容?

12
我认为我的主要问题是jekyll 4不受github pages支持。这对我来说没关系,但如何降级jekyll以使其正常工作呢?
我尝试按照这里的说明:https://github.com/github/pages-gem/issues/577,它基本上建议使用较旧版本的jekyll。我愿意这样做,但似乎bundle拒绝服从我,我不知道为什么或者我陷入了一个奇怪的循环,无法摆脱。
所以我遇到的主要错误是:
$ bundle
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
You have requested:
  jekyll ~> 3.8.5

The bundle currently has jekyll locked at 4.0.0.
Try running `bundle update jekyll`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`

但似乎我被锁定为4。我尝试解锁,但好像无法使其生效。我最近的尝试如下:

$ gem install jekyll -v 3.8.5
Fetching kramdown-1.17.0.gem
Fetching jekyll-3.8.5.gem
Fetching sass-listen-4.0.0.gem
Fetching sass-3.7.4.gem
Fetching jekyll-sass-converter-1.5.2.gem
Fetching i18n-0.9.5.gem
Successfully installed kramdown-1.17.0
Successfully installed sass-listen-4.0.0

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

Successfully installed sass-3.7.4
Successfully installed jekyll-sass-converter-1.5.2
Successfully installed i18n-0.9.5
Successfully installed jekyll-3.8.5
Parsing documentation for kramdown-1.17.0
Installing ri documentation for kramdown-1.17.0
Parsing documentation for sass-listen-4.0.0
Installing ri documentation for sass-listen-4.0.0
Parsing documentation for sass-3.7.4
Installing ri documentation for sass-3.7.4
Parsing documentation for jekyll-sass-converter-1.5.2
Installing ri documentation for jekyll-sass-converter-1.5.2
Parsing documentation for i18n-0.9.5
Installing ri documentation for i18n-0.9.5
Parsing documentation for jekyll-3.8.5
Installing ri documentation for jekyll-3.8.5
Done installing documentation for kramdown, sass-listen, sass, jekyll-sass-converter, i18n, jekyll after 8 seconds
6 gems installed

但是当我尝试使用命令 bundle 来打包我的 Gemfile 时,我遇到了以下错误:

$ gem install jekyll -v 3.8.5
Fetching kramdown-1.17.0.gem
Fetching jekyll-3.8.5.gem
Fetching sass-listen-4.0.0.gem
Fetching sass-3.7.4.gem
Fetching jekyll-sass-converter-1.5.2.gem
Fetching i18n-0.9.5.gem
Successfully installed kramdown-1.17.0
Successfully installed sass-listen-4.0.0

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

Successfully installed sass-3.7.4
Successfully installed jekyll-sass-converter-1.5.2
Successfully installed i18n-0.9.5
Successfully installed jekyll-3.8.5
Parsing documentation for kramdown-1.17.0
Installing ri documentation for kramdown-1.17.0
Parsing documentation for sass-listen-4.0.0
Installing ri documentation for sass-listen-4.0.0
Parsing documentation for sass-3.7.4
Installing ri documentation for sass-3.7.4
Parsing documentation for jekyll-sass-converter-1.5.2
Installing ri documentation for jekyll-sass-converter-1.5.2
Parsing documentation for i18n-0.9.5
Installing ri documentation for i18n-0.9.5
Parsing documentation for jekyll-3.8.5
Installing ri documentation for jekyll-3.8.5
Done installing documentation for kramdown, sass-listen, sass, jekyll-sass-converter, i18n, jekyll after 8 seconds
6 gems installed

好的,我会尝试更新并执行bundle update命令:

$ bundle update
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Bundler could not find compatible versions for gem "jekyll":
  In Gemfile:
    github-pages was resolved to 4, which depends on
      jekyll (= 1.1.2)

    jekyll-feed (~> 0.12) was resolved to 0.12.1, which depends on
      jekyll (>= 3.7, < 5.0)

Bundler could not find compatible versions for gem "jekyll-feed":
  In Gemfile:
    github-pages was resolved to 36, which depends on
      jekyll-feed (= 0.2.3)

    minima (~> 2.5) was resolved to 2.5.0, which depends on
      jekyll-feed (~> 0.9)

Bundler could not find compatible versions for gem "tzinfo":
  In Gemfile:
    tzinfo (~> 1.2)

    tzinfo-data was resolved to 1.2019.3, which depends on
      tzinfo (>= 1.0.0)

我卡在这里了...你们有什么想法吗?

我还尝试按照Gemfile中的指示操作,但没有成功:

$ bundle update github-pages
Could not find gem 'github-pages'.

我运行了他们说的命令,但是出现了错误:

$ bundle update github-pages
Could not find gem 'github-pages'.

我还运行了这个命令:bundle install

$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "jekyll-feed":
  In snapshot (Gemfile.lock):
    jekyll-feed (= 0.12.1)

  In Gemfile:
    github-pages was resolved to 36, which depends on
      jekyll-feed (= 0.2.3)

    minima (~> 2.5) was resolved to 2.5.1, which depends on
      jekyll-feed (~> 0.9)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "kramdown":
  In snapshot (Gemfile.lock):
    kramdown (= 2.1.0)

  In Gemfile:
    github-pages was resolved to 8, which depends on
      kramdown (= 1.0.2)

    minima (~> 2.5) was resolved to 2.5.1, which depends on
      jekyll-feed (~> 0.9) was resolved to 0.12.1, which depends on
        jekyll (>= 3.7, < 5.0) was resolved to 4.0.0, which depends on
          kramdown (~> 2.1)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Bundler could not find compatible versions for gem "minima":
  In snapshot (Gemfile.lock):
    minima (= 2.5.1)

  In Gemfile:
    minima (~> 2.5)

    github-pages was resolved to 94, which depends on
      minima (= 1.0.1)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

我也做了以下事情:
gem install github-pages

已安装的软件...不确定是否会使情况变得更糟...


我使用的资源:

但是,还没有解决我的问题。


但是当我尝试使用命令bundle捆绑我的Gemfile时,我遇到了以下错误,而您粘贴的确切文本块与先前显示的gem install输出相同,而不是来自bundle install - anothermh
@anothermh 更新了,抱歉我有点混淆了所有的命令。这样可以帮到你吗? - Charlie Parker
不行,因为你只说了“我也运行了这个bundle install”,但没有指明你在事件序列中何时运行它,并且你还留下了错误的信息,显示了你的gem install输出两次。 - anothermh
@anothermh 我知道这并没有帮助,但我已经以许多顺序运行了很多东西,所以我忘记了我做了什么。我很乐意重新写问题。我会搜索如何重新启动整个过程,除非你知道我怎么做 :) - Charlie Parker
一个问题如果没有明确说明它是如何到达当前状态的,并且要求我们自己去解决,那么很可能不会得到良好的回应。 - anothermh
2个回答

6
您的 Gemfile 应该长这样:
source 'https://rubygems.org'

# will install all gh-pages allowed gems
# see : https://pages.github.com/versions/
gem 'github-pages'

# comment out all other gems
# gem 'jekyll'
# gem 'jekyll-feed'
# gem ...

删除 Gemfile.lock

现在可以运行 bundle 命令安装所有需要的 gem,以便测试实际的 Github Pages 版本。


但是这里的指示 https://help.github.com/en/github/working-with-github-pages/creating-a-github-pages-site-with-jekyll#creating-your-site 建议执行以下操作:> 更新gem "github-pages"行,使该行看起来像这样,用当前github-pages依赖版本替换VERSION。有关更多信息,请参见GitHub Pages网站上的“依赖版本”。我尝试了以下操作,但失败了:gem "github-pages", "~> 3.8.5", group: :jekyll_plugins - Charlie Parker
"github-pages" 在 版本202。如果您始终想要最新版本,则无需添加版本号。 - David Jacquel
这个有效了,谢谢! - plijnzaad

5

当前版本的Github页面要求您使用Jekyll 3.8.5和github-pages 202。当我设置这个时,我还必须为jekyll feed设置一个特定的版本。以下是您在Gemfile中需要的相关行:

gem "jekyll", "~> 3.8.5"
gem "github-pages","~> 202" , group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
  gem "jekyll-feed", "~> 0.11.0"
end

接下来,请尝试删除您的Gemfile.lock并运行bundle install

我在这里有一个设置了最少版本的仓库。


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