Comments (36)
For those having this issue specifically with the academicpages template (evidenced potentially by specifically the 404.md file error), it turns out if you remove the excerpt line from 404.md, about.md, and non-menu-page.md, everything deploys properly.
academicpages/academicpages.github.io#1878
from jekyll.
Also running into this on gh pages, where you cannot specify the Jekyll version
from jekyll.
Second time a charm?
We sent pages-gem
v231 everywhere. It reverted (for now) jekyll-relative-links
to the previous release. Hopefully that clears up all the issues.
Let us know!
from jekyll.
Yes, sure, but I'm just talking about the built in gh pages functionality. I don't want to have to reconfigure the whole site because there appears to be an issue in one version of Jekyll.
Pinning the github-pages
version does not appear to work, the builder uses the versions it wants regardless with the message:
Warning: The github-pages gem can't satisfy your Gemfile's dependencies.
I think the gem is meant for easily replicating the builder environment on your local machine rather than telling the builder what to use.
from jekyll.
after hours of debugging I was able to fix it - ayrat555/ayrat555.github.io@eae9cdc
I added a custom workflow suggested in #9544 (comment)
had to modify gem and config files
also, had to modify the source of the github pages in config
from jekyll.
The root cause appears to be benbalter/jekyll-relative-links#65. It's using Jekyll::Excerpt with a Jekyll::Page which is not compatible. (It must be used with a Jekyll::Document.)
I am proposing a fix for Jekyll 3.9 in #9550. This will allow Excerpts to be created for Page objects, which I think is best.
from jekyll.
If you build your site with Actions (which is the majority of cases), your build should be fixed now. The change made it in https://github.com/actions/jekyll-build-pages/releases/tag/v1.0.11.
Still deploying the changes to Pages' legacy infrastructure now.
Thanks @parkr for patching Jekyll for us ❤ and sorry for all the troubles.
from jekyll.
@parkr @yoannchaudet I hate to be a pain, but 3.9.5 is broken for me with a new error:
/usr/local/bundle/gems/jekyll-3.9.5/lib/jekyll/excerpt.rb:91: warning: Jekyll::Excerpt#yaml_file? at /usr/local/lib/ruby/2.7.0/forwardable.rb:154 forwarding to private method Jekyll::Page#yaml_file?
Liquid Exception: undefined method `yaml_file?' for #<Jekyll::Page @name="dpa.md"> in /_layouts/empty.html
That error is from the Github pages build, and I see the same error locally with 3.9.5 on multiple sites. I don't think that's an issue with my setup, but for completeness, here is what those files look like for me:
/_layouts/empty.html is my basic layout, it has no front-matter
<!DOCTYPE html>
<html lang="en" class="no-js">
{% include head.html %}
<body class="{{ layout.body_class }} {{ page.body_class }} preload">
<script>document.documentElement.classList.remove("no-js");</script>
{{ content }}
{% include scripts.html %}
<script>document.body.classList.remove("preload");</script>
</body>
</html>
dpa.md is a regular page in my site. Here is the start of the file
---
layout: policy
title: Data Processing Agreement
excerpt: "Standard agreement for the processing of Customer Data"
permalink: /dpa/
download: "/assets/documents/requestmetrics-dpa-v3.0.pdf"
sitemap:
priority: 0.5
redirect_from:
- /gdpr/
---
# Data Processing Agreement
Revision 3.0
from jekyll.
I had the same issue. But I got it to work by rolling back to Jekyll 3.9.3.
from jekyll.
Also, even if you're still using the github-pages gem, you can specify the Jekyll version by specifying the github-pages gem version. For example, if you set the gem to version 228, it will use Jekyll 3.9.3: https://rubygems.org/gems/github-pages/versions/228
You can pin the version like this in your Gemfile:
gem "github-pages", "=228"
from jekyll.
I think I found an easy way of using the previous release of pages-build-deployment
workflow.
- Go to your repository
- Click
Action
menu - Press
New workflow
button - Search Jekyll
- Find the workflow named
GitHub Pages Jekyll
(notJekyll
) and click Configure button - Change line number 34 to use the previous release of actions/jekyll-build-pages as like:
from:
uses: actions/jekyll-build-pages@v1
to:
uses: actions/[email protected]
- Press Commit changes
- (maybe you need to configure Pages build and deployment source)
GitHub Pages Jekyll
and pages-build-deployment
are essentially same. The main difference of them is an additional report-build-status
stage in pages-build-deployment
.
You can find more information about 'GitHub Pages Jekyll` workflow at https://github.com/actions/jekyll-build-pages/pkgs/container/jekyll-build-pages
from jekyll.
I encountered the same issue. It seems an excerpt separator is now required for every excerpt, so I just defined one in my _config.yml file and added it at the end of every excerpt. The build is now OK with jekyll 3.9.4
I've spent more than a day on this. I tried all of the above to no avail (and encountered all sorts of other problems due to fiddling with things).
This sounds like a great solution, but can you provide the lines you added to the .yaml file please?
@AndrewWPhillips 2 lines in _config.yml:
posts:
excerpt_separator: <!--excerptEnd-->
I also had to override some layouts and includes in the Minimal Mistakes theme I am using so that the rendering is OK for the splash layout (it uses the excerpt keyword, which I had to replace: commit here).
from jekyll.
Thanks to @SatyajithBoyana suggestion I was able to fix this. Also mentioned in https://talk.jekyllrb.com/t/local-windows-dev-environment-for-github-pages-theme/8938
See dieghernan/chulapa@f508ba1
from jekyll.
I encountered the same issue. It seems an excerpt separator is now required for every excerpt, so I just defined one in my _config.yml file and added it at the end of every excerpt. The build is now OK with jekyll 3.9.4
from jekyll.
A simple way to work around this issue is defining a new workflow by copying
Jekyll
workflow:
- Go to your repository
- Click
Action
menu- Press
New workflow
button- Search
Jekyll
- Find the workflow named
Jekyll
and clickConfigure
button- Press
Commit changes
You may need to
pull
andpush
from your local repository to sync with the commit.The workflow seems designed for the latest stable Jekyll. It uses Jekyll 4.3.3.
If you were using GitHub Pages as the build and deployment source, you should do the following. If not, your changes will be accepted successfully, but you will run into errors because the site would still technically be configured to use GitHub pages.
- Change the repository from GitHub Pages to GitHub Actions
o Go to your repository
o Click Settings
o Click Pages
o Under Build and development...Source, change fromDeploy from a Branch
toGitHub Actions
I hope this helps someone :)
from jekyll.
I've spent a few hours debugging this as I have several sites hosted on Github pages that are all unable to deploy. Here's what I have found based on diving into a lot of the other comments.
GitHub Pages builds are failing with an error like this:
Error: undefined method `excerpt_separator' for #<Jekyll::Page @name="QuickStart.md">`
The file referenced is any Markdown file with a excerpt specified, which we do on lots and lots of files. This error starts in Jekyll 3.9.4, and I see it locally as well. Jekyll 3.9.3 works file. Seems like a bug that should be rolled back by Jekyll.
On Friday, Feb 9th, Github released a change to it's GitHub Pages default action that updates the github-pages gem to version 229. The main thing that 229 does is upgrade Jekyll to 3.9.4. Boom, broken.
Unfortunately, it doesn't seem like it's easy to override this. Specifying gem "github-pages", "=228"
in your own gemfile gets you this message:
Warning: The github-pages gem can't satisfy your Gemfile's dependencies. If you want to use a different Jekyll version or need additional dependencies, consider building Jekyll site with GitHub Actions: https://jekyllrb.com/docs/continuous-integration/github-actions/
I opened a bug with Github Actions as this seems like something we should be able to control and override.
The workaround that @QuantKang left works for me, but I don't like switching all my repos to custom actions just to point at an old version. I feel like this is going to be fixed in the next few days, so I'm not running to update all my pages repositories just yet.
Hopefully this helps the next person that comes looking for why their GitHub Pages are busted right now.
from jekyll.
(aside) I totally get "you should just use a GH Pages Action like so..." But the popularity - and simplicity! - of GH Pages "just working out of the box" is huge, and it was disappointing (on GH's part, really, not your's!) that this now suddenly is breaking deploys to GHPages sites people thought were zero maintenance.
In any case, thanks Jekyll peeps for building and maintaining such an awesome system! 🥰
from jekyll.
Thanks @yoannchaudet! I can confirm that this fixed the issue for me: remarkablemark/remarkablemark.github.io#71
from jekyll.
Experiencing the same error.
jekyll 3.9.4 | Error: undefined method `excerpt_separator" for #<Jekyll::Page @name="404.md">
/opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/excerpt.rb:135:in `extract_excerpt": undefined method `excerpt_separator" for #<Jekyll::Page @name="404.md"> (NoMethodError)
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/excerpt.rb:25:in `initialize"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:173:in `new"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:173:in `replace_relative_links_excerpt!"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:64:in `replace_relative_links!"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:44:in `block in generate"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:39:in `each"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:39:in `generate"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:175:in `block in generate"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:173:in `each"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:173:in `generate"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:70:in `process"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/command.rb:28:in `process_site"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:65:in `build"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:36:in `process"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program"
from /opt/build/cache/bundle/ruby/2.7.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute"
from /opt/build/cache/bundle/ruby/2.7.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each"
from /opt/build/cache/bundle/ruby/2.7.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute"
from /opt/build/cache/bundle/ruby/2.7.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go"
from /opt/build/cache/bundle/ruby/2.7.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program"
from /opt/build/cache/bundle/ruby/2.7.0/gems/jekyll-3.9.4/exe/jekyll:15:in `<top (required)>"
from /opt/build/cache/bundle/ruby/2.7.0/bin/jekyll:23:in `load"
from /opt/build/cache/bundle/ruby/2.7.0/bin/jekyll:23:in `<main>"
from /opt/build/cache/bundle/ruby/2.7.0/bin/ruby_executable_hooks:22:in `eval"
from /opt/build/cache/bundle/ruby/2.7.0/bin/ruby_executable_hooks:22:in `<main>"
from jekyll.
from jekyll.
I experience a similar problem building my own site. Anyone knows how to resolve this problem?
Jekyll Feed: Generating feed for posts
jekyll 3.9.4 | Error: undefined method `excerpt_separator' for #<Jekyll::Page @name="404.md">
/var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/excerpt.rb:135:in `extract_excerpt': undefined method `excerpt_separator' for #<Jekyll::Page @name="404.md"> (NoMethodError)
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/excerpt.rb:25:in `initialize'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:173:in `new'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:173:in `replace_relative_links_excerpt!'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:64:in `replace_relative_links!'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:44:in `block in generate'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:39:in `each'
from /var/lib/gems/3.0.0/gems/jekyll-relative-links-0.7.0/lib/jekyll-relative-links/generator.rb:39:in `generate'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:175:in `block in generate'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:173:in `each'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:173:in `generate'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/site.rb:70:in `process'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/command.rb:28:in `process_site'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:65:in `build'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:36:in `process'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
from /var/lib/gems/3.0.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
from /var/lib/gems/3.0.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
from /var/lib/gems/3.0.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
from /var/lib/gems/3.0.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
from /var/lib/gems/3.0.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
from /var/lib/gems/3.0.0/gems/jekyll-3.9.4/exe/jekyll:15:in `<top (required)>'
from /usr/local/bin/jekyll:25:in `load'
from /usr/local/bin/jekyll:25:in `<main>'
from jekyll.
You can definitely specify the Jekyll version on GitHub Pages, and even use Jekyll 4. The trick is to use GitHub Actions instead of the github-pages gem.
You can also try my guide, although it's a bit outdated: https://www.moncefbelyamani.com/making-github-pages-work-with-latest-jekyll/
from jekyll.
You're right. I forgot about that, and I even mention it in my guide. That's why I recommend using GitHub Actions since you have more control over the gem versions, and you can take advantage of Jekyll 4's improvements.
Alternatively, as mentioned in my guide, you can build your site locally with Jekyll 3.9.3, and then push the contents of the _site
folder to a branch called gh-pages
, and GitHub will serve the contents directly without building.
from jekyll.
A simple way to work around this issue is defining a new workflow by copying Jekyll
workflow:
- Go to your repository
- Click
Action
menu - Press
New workflow
button - Search
Jekyll
- Find the workflow named
Jekyll
and clickConfigure
button - Press
Commit changes
You may need to pull
and push
from your local repository to sync with the commit.
The workflow seems designed for the latest stable Jekyll. It uses Jekyll 4.3.3.
from jekyll.
It's not that simple if you've been dragging the same Jekyll site around for nearly a decade and it doesn't work on 4.x without some changes.
from jekyll.
I encountered the same issue. It seems an excerpt separator is now required for every excerpt, so I just defined one in my _config.yml file and added it at the end of every excerpt. The build is now OK with jekyll 3.9.4
I've spent more than a day on this. I tried all of the above to no avail (and encountered all sorts of other problems due to fiddling with things).
This sounds like a great solution, but can you provide the lines you added to the .yaml file please?
from jekyll.
@AndrewWPhillips see Jekyll document for the current implementation. If you do not need to use the excerpt function, just remove it from the front matter of any pages that use it.
from jekyll.
@AndrewWPhillips see Jekyll document for the current implementation. If you do not need to use the excerpt function, just remove it from the front matter of any pages that use it.
Thanks, I worked out where to add it, but it also did not resolve my issue.
But I finally got a solution using the last above comments from @QuantKang and @jamisonjcjohnson above. (Ie add a new workflow based on "Github page Jekyll", change to "jekyll-gh-pages.yml" to use actions/[email protected], then changed Build and Deployment to use "Github Actions" (rather than master branch).
BTW I can't modify the front matter as I am using a theme from another repo. that I can't modify.
from jekyll.
Hi, there are several approaches. Besides the approach based on the Github action specifying the build version, as many people like me compile locally, is it possible to wait until the bug is fixed by jekyll? Since this is the simplest one, we do not need any more actions than bundle updates. Is there any effort to fix the bugs inside jekyll or is this only a compatible problem between jekyll and academic pages?
from jekyll.
I had the same issue. But I got it to work by rolling back to Jekyll 3.9.3.
How can you roll back ?
from jekyll.
Posting a temp workaround here too: actions/jekyll-build-pages#115 (comment)
from jekyll.
I encountered the same issue. It seems an excerpt separator is now required for every excerpt, so I just defined one in my _config.yml file and added it at the end of every excerpt. The build is now OK with jekyll 3.9.4
I've spent more than a day on this. I tried all of the above to no avail (and encountered all sorts of other problems due to fiddling with things).
This sounds like a great solution, but can you provide the lines you added to the .yaml file please?@AndrewWPhillips 2 lines in _config.yml:
posts: excerpt_separator: <!--excerptEnd-->
I also had to override some layouts and includes in the Minimal Mistakes theme I am using so that the rendering is OK for the splash layout (it uses the excerpt keyword, which I had to replace: commit here).
This worked amazing for me and should be fine for anyone else using minimal mistakes. Just remember to change all instances of the excerpt command to "summary" or whatever you decide to rename it to, as well as put the "!-- excerpt-end --" within the parenthesis.
from jekyll.
I can confirm I am getting the same error as @toddhgardner after upgrading github-pages
to 230 in remarkablemark/remarkablemark.github.io#71 (comment)
from jekyll.
Not regretting my decision to spend 5 minutes moving to a custom GitHub action and controlling what version of Jekyll is used.
from jekyll.
@chadpav This is the way 🙈.
@toddhgardner Thanks for providing an example that trips the exception. I'll try and revert jekyll-relative-links
to 0.6.1. I suspect this is the root cause of the issues we are seeing (changelog).
from jekyll.
Yes, the pages are building now. Thanks for the fix.
from jekyll.
Related Issues (20)
- I initially had logic that was a lot more tolerant of `s`s. And then I ran into the [🥔 🐛 - potato bug](https://github.com/check-spelling/check-spelling/releases/tag/0.0.17-alpha) -- namely the plural of `potato` is not `potatos`. It was so embarrassing, since I learned the proper spelling in elementary school. It was also a big deal as a [Vice President suggested `potatoe` to a student](https://abcnews.go.com/Politics/video/june-15-1992-dan-quayle-misspells-potato-48017343).
- [Docs]:
- [Bug]: Unable to build website HOT 1
- [Bug]: `permalink_ext': undefined method `end_with?' for {}:Hash HOT 2
- [Bug]: error running "bundle exec jekyll s" HOT 4
- [Bug]: related_posts prefers longer articles
- [Bug]: Can't serve website due to sass-embedded version HOT 5
- [Bug]: Jekyll release v3.9.5 is missing from GitHub, only exists in ruby gems HOT 7
- feat:
- [Bug]: Obsolete nodeJS version HOT 2
- [Bug]: Empty include parameter when assign a forloop attribute to it.
- Unquoted language code "no" not recognized in _config.yml HOT 2
- [Bug]: pipe character to single row table priority unexpectedly high
- feat: Adding relative path to current URL support HOT 2
- [Bug]: Livereload don't work for project initiated with --blank flag HOT 1
- feat: XMPP: Post to PubSub HOT 2
- [Bug]: jekyll changes filenames when copying files to _site on build HOT 1
- feat: can you make a grapgic fenweator for instagram and youtube with jekyll with a javaacript or a webrtc based json , or even an encrypted json to a rest blob
- [Bug]: exclude broken for md files HOT 3
- SCSS class not found when i call to the function HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jekyll.