Operating System
macOS 13.1
Ruby Version
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-darwin22]
Jekyll Version
jekyll 4.3.1
GitHub Pages Version
Latest
Expected Behavior
After initializing a blank Jekyll scaffold using jekyll new . --blank, the resultant files generated should be directly compilable using jekyll serve with no errors.
This is expected behavior because the default option (generating using Minimal), jekyll new . creates a set of files that can be immediately run with jekyll serve and produce a working website scaffold on localhost with placeholder pages.
Current Behavior
Currently, running jekyll new . --blank, then immediately jekyll serve without modifying any files results in the error:
Error: expected "{".
╷
4 │ @import "main";
│ ^
╵
/project_dir/assets/css/main.scss 4:15 @import
/project_dir/assets/css/main.scss 1:9 root stylesheet
Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
expected "{".
After much digging, it turns out this is due to a naming conflict of the _sass/main.scss and assets/css/main.scss files that were generated when running jekyll new . --blank, as per this Stack Overflow question. The workaround is to rename either _sass/main.scss or assets/css/main.scss to a different name, e.g. style.scss.
That said, while the error persists on my machine, running it on other environments such as GitHub Pages yields no such error and the scaffold website compiles as expected. There doesn't appear to be anything wrong with my installation; to test the bug, I reinstalled Jekyll by the book based on the official documentation.
To clarify, the bug is to do with the template files created by jekyll new. I know that of course it's easy to rename the files, but having the command create a non-working scaffold (at least on some environments) is very frustrating for beginners, so minimally the template files should be renamed as suggested above.
Relevant log output
Configuration file: project_dir/_config.yml
Source: project_dir
Destination: project_dir/_site
Incremental build: disabled. Enable with --incremental
Generating...
Error: expected "{".
╷
4 │ @import "main";
│ ^
╵
project_dir/assets/css/main.scss 4:15 @import
project_dir/assets/css/main.scss 1:9 root stylesheet
Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
expected "{".
------------------------------------------------
Jekyll 4.3.1 Please append `--trace` to the `serve` command
for any additional information or backtrace.
------------------------------------------------
/Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:175:in `rescue in convert': expected "{". (Jekyll::Converters::Scss::SyntaxError)
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:159:in `convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:105:in `block in convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `reduce'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:84:in `render_document'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:63:in `run'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:578:in `render_regenerated'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:570:in `block in render_pages'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `render_pages'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:211:in `render'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:80:in `process'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:28:in `process_site'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:65:in `build'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:36:in `process'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/exe/jekyll:15:in `<top (required)>'
from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `load'
from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `<main>'
/Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded/protofier.rb:16:in `from_proto_compile_response': expected "{". (Sass::CompileError)
from /Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded.rb:208:in `compile_string'
from /Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded.rb:47:in `compile_string'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:160:in `convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:105:in `block in convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `reduce'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `convert'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:84:in `render_document'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:63:in `run'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:578:in `render_regenerated'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:570:in `block in render_pages'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `render_pages'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:211:in `render'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:80:in `process'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:28:in `process_site'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:65:in `build'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:36:in `process'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/exe/jekyll:15:in `<top (required)>'
from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `load'
from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `<main>'
Code Sample
(all the default files and directories created when you run jekyll new . --blank, unmodified)
The important ones:
assets/css/main.scss
_sass/main.scss
$backgroundColor: #ffffff;
$bodyColor: #000000;
$bodyFont: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
body {
background: $backgroundColor;
color: $bodyColor;
font-family: $bodyFont;
}
Operating System
macOS 13.1
Ruby Version
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-darwin22]
Jekyll Version
jekyll 4.3.1
GitHub Pages Version
Latest
Expected Behavior
After initializing a blank Jekyll scaffold using
jekyll new . --blank, the resultant files generated should be directly compilable usingjekyll servewith no errors.This is expected behavior because the default option (generating using Minimal),
jekyll new .creates a set of files that can be immediately run withjekyll serveand produce a working website scaffold on localhost with placeholder pages.Current Behavior
Currently, running
jekyll new . --blank, then immediatelyjekyll servewithout modifying any files results in the error:After much digging, it turns out this is due to a naming conflict of the
_sass/main.scssandassets/css/main.scssfiles that were generated when runningjekyll new . --blank, as per this Stack Overflow question. The workaround is to rename either_sass/main.scssorassets/css/main.scssto a different name, e.g.style.scss.That said, while the error persists on my machine, running it on other environments such as GitHub Pages yields no such error and the scaffold website compiles as expected. There doesn't appear to be anything wrong with my installation; to test the bug, I reinstalled Jekyll by the book based on the official documentation.
To clarify, the bug is to do with the template files created by
jekyll new. I know that of course it's easy to rename the files, but having the command create a non-working scaffold (at least on some environments) is very frustrating for beginners, so minimally the template files should be renamed as suggested above.Relevant log output
Configuration file: project_dir/_config.yml Source: project_dir Destination: project_dir/_site Incremental build: disabled. Enable with --incremental Generating... Error: expected "{". ╷ 4 │ @import "main"; │ ^ ╵ project_dir/assets/css/main.scss 4:15 @import project_dir/assets/css/main.scss 1:9 root stylesheet Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss': expected "{". ------------------------------------------------ Jekyll 4.3.1 Please append `--trace` to the `serve` command for any additional information or backtrace. ------------------------------------------------ /Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:175:in `rescue in convert': expected "{". (Jekyll::Converters::Scss::SyntaxError) from /Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:159:in `convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:105:in `block in convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `reduce' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:84:in `render_document' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:63:in `run' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:578:in `render_regenerated' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:570:in `block in render_pages' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `render_pages' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:211:in `render' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:80:in `process' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:28:in `process_site' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:65:in `build' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:36:in `process' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/exe/jekyll:15:in `<top (required)>' from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `load' from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `<main>' /Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded/protofier.rb:16:in `from_proto_compile_response': expected "{". (Sass::CompileError) from /Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded.rb:208:in `compile_string' from /Users/username/.gem/ruby/3.1.3/gems/sass-embedded-1.57.1-x86_64-darwin/lib/sass/embedded.rb:47:in `compile_string' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:160:in `convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:105:in `block in convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `reduce' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:104:in `convert' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:84:in `render_document' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/renderer.rb:63:in `run' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:578:in `render_regenerated' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:570:in `block in render_pages' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:569:in `render_pages' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:211:in `render' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/site.rb:80:in `process' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:28:in `process_site' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:65:in `build' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/build.rb:36:in `process' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `each' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go' from /Users/username/.gem/ruby/3.1.3/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program' from /Users/username/.gem/ruby/3.1.3/gems/jekyll-4.3.1/exe/jekyll:15:in `<top (required)>' from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `load' from /Users/username/.gem/ruby/3.1.3/bin/jekyll:25:in `<main>'Code Sample
(all the default files and directories created when you run
jekyll new . --blank, unmodified)The important ones:
assets/css/main.scss_sass/main.scss