jekyll / jekyll-sass-converter

A Sass converter for Jekyll.
http://rubygems.org/gems/jekyll-sass-converter
MIT License
187 stars 135 forks source link

bundle update error #145

Closed y377 closed 1 year ago

y377 commented 1 year ago

/usr/local/rvm/gems/ruby-2.7.2/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:175:inrescue in convert': expected "{". (Jekyll::Converters::Scss::SyntaxError)`

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.
                    ------------------------------------------------

Originally, my code was working fine, but I couldn’t start jekyll after bundle update. I couldn’t find the reason, but I’m sure it must have something to do with SCSS

After my hard work, I found a solution, please see the following code, uninstall gem uninstall sass-embedded, now you can start

[root@jekyll 20221119]# gem uninstall sass-embedded

You have requested to uninstall the gem:
        sass-embedded-1.57.1

jekyll-sass-converter-3.0.0 depends on sass-embedded (~> 1.54)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled sass-embedded-1.57.1
[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5 --port=4000 --trace
Configuration file: /root/20221119/_config.yml
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:
        Pagination:   Locale:
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
                    done in 1.653 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

this my Gemfile

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.7.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    rack (2.2.4)
    rack-protection (3.0.5)
      rack
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sassc (2.4.0)
      ffi (~> 1.9)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.3.0)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll (~> 4.3)
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap

BUNDLED WITH
   2.3.26
ntkme commented 1 year ago

In the end there is an issue in your scss code or its dependencies. The sass-embedded is not meant to be fully compatible with sassc, and the error you’re seeing is effectively just dart sass being more strict about syntax issues than sassc.

If you prefer to use sassc rather than fix the syntax issue, you should lock the version range in Gemfile, for example:

gem 'jekyll-sass-converter', '~> 2.2'
y377 commented 1 year ago

I came back at night to fix other parts of my website, and accidentally found the <head> part of _layouts/default.html, my custom <style> is indeed missing a }, let me complete this theme completely , I will verify again, and thank you for specifying!

ntkme commented 1 year ago

Please also check and see if this is a duplicate of #146.

y377 commented 1 year ago

I came back at night to fix other parts of my website, and accidentally found the <head> part of layouts/default.html, my custom <style> is indeed missing a }_, let me complete this theme completely , I will verify again, and thank you for specifying!

I came back at night to fix other parts of my website, and accidentally found the <head> part of layouts/default.html, my custom <style> is indeed missing a }_, let me complete this theme completely , I will verify again, and thank you for specifying!

jekyll new PATH --blank default name is main.scss

First I make sure there is no missing}, I find the solution is: change /assets/css/main.scss to /assets/css/style.scss, I wonder if it conflicts with_sass/main.scss because the cli mentions main, but I don't know why

ntkme commented 1 year ago

First I make sure there is no missing}, I find the solution is: change /assets/css/main.scss to /assets/css/style.scss, I wonder if it conflicts with_sass/main.scss because the cli mentions main, but I don't know why

This is why: https://github.com/jekyll/jekyll-sass-converter#dropped-support-of-importing-files-with-the-same-filename-as-their-parent-file

y377 commented 1 year ago

Jekyll or Jekyll Sass Converter(One party needs to fix this error), and the updated version does not build as fast as the old version

ntkme commented 1 year ago

Jekyll or Jekyll Sass Converter(One party needs to fix this error

This is intended behavior. It was never supposed to work, but somehow working in 2.x due to a bug. In 3.x (a new breaking major release), we have decided to bite the bullet to fix the behavior. So this will not be "fixed" as it is not a bug. If you want to know the background, please check https://github.com/jekyll/jekyll-sass-converter/pull/137.

the updated version does not build as fast as the old version

This is also expected to some degree. Without knowing how much slower performance you're seeing we cannot tell if it is really a problem or not. New implementation is running a separate progress in Dart VM, which will definitely be slower than a native C-ext based libsass. However, libsass has been deprecated for more than 2 years that Dart Sass is the current implementation.

y377 commented 1 year ago

Jekyll or Jekyll Sass Converter(One party needs to fix this error

This is intended behavior. It was never supposed to work, but somehow working in 2.x due to a bug. In 3.x (a new breaking major release), we have decided to bite the bullet to fix the behavior. So this will not be "fixed" as it is not a bug. If you want to know the background, please check #137.

the updated version does not build as fast as the old version

This is also expected to some degree. Without knowing how much slower performance you're seeing we cannot tell if it is really a problem or not. New implementation is running a separate progress in Dart VM, which will definitely be slower than a native C-ext based libsass. However, libsass has been deprecated for more than 2 years that Dart Sass is the current implementation.

At the same time, I support the renewal, creation is the soul of progress

Suppose I have a topic template for 21 posts. If sass2.0 is used, it takes 3 seconds to runbundle exec jekyll serve until the build is complete. If sas-embedded is used, it takes 5 seconds to run bundle exec jekyll serve until the build is complete. If I had 3000 posts, and other collections, I think the build time would multiply!

ntkme commented 1 year ago

The time to compile sass shouldn’t scale with number of posts.

y377 commented 1 year ago

Hopefully, as you said, I don't want it to be related, but if different posts or collections use different layouts, are they really not related? I will simulate 300 posts as soon as possible for comparison experiment! Now I need to finish anchor first, and I will follow up later!

Thanks again for your answer!

ntkme commented 1 year ago

There are two ways sass are complied:

  1. Any .sass/.scss with yaml front matter is compiled and should be compiled only once during site build (doesn’t matter how many times the result css is used in different layouts or pages).
  2. Via sassify/scssify - each of the invocation is a new compilation so in general these should be avoided from using in theme layout (cause tons of repeated complations), and used only if you have to in specific page.
ashmaroli commented 1 year ago

@y377 Is any of your layouts or include files using either of the sassify / scssify filter?

y377 commented 1 year ago

@y377 Is any of your layouts or include files using either of the sassify / scssify filter?

I didn't use sassify / scssify I don't even know how these two filters work

ashmaroli commented 1 year ago

@y377 Is your source directory publicly accessible? If yes, please share the link to the repository. I would like to clone it and see there is a reason why you think Sass conversion is taking longer with more posts. Technically, it may not even be the sass-converter at all but Jekyll itself but as a user, you do not have the means to objectively measure the time taken.

y377 commented 1 year ago

@ashmaroli example

Before unloading:

[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /root/20221119/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2023-01-11-tocbot目录生成.md
  Jekyll Spaceship: [TableProcessor] table_test.md
                    done in 9.347 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    gemoji (3.0.1)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-spaceship (0.10.2)
      gemoji (~> 3.0)
      jekyll (>= 3.6, < 5.0)
      nokogiri (~> 1.6)
      rainbow (~> 3.0)
    jekyll-timeago (0.14.0)
      mini_i18n (>= 0.8.0)
    jekyll-toc (0.17.1)
      jekyll (>= 3.9)
      nokogiri (~> 1.11)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.7.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    mini_i18n (0.9.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    nokogiri (1.13.10-x86_64-linux)
      racc (~> 1.4)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    racc (1.6.2)
    rack (2.2.5)
    rack-protection (3.0.5)
      rack
    rainbow (3.1.1)
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sassc (2.4.0)
      ffi (~> 1.9)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.4.2)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap
  jekyll-spaceship
  jekyll-timeago
  jekyll-toc

BUNDLED WITH
   2.3.26

After unloading:

[root@jekyll 20221119]# gem uninstall sass-embedded

You have requested to uninstall the gem:
        sass-embedded-1.57.1-x86_64-linux-gnu

jekyll-sass-converter-3.0.0 depends on sass-embedded (~> 1.54)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled sass-embedded-1.57.1-x86_64-linux-gnu
[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /root/20221119/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2023-01-11-tocbot目录生成.md
  Jekyll Spaceship: [TableProcessor] table_test.md
                    done in 8.636 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

bundle after uninstall:(And then run the bundle)

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    gemoji (3.0.1)
    google-protobuf (3.21.12-x86_64-linux)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-spaceship (0.10.2)
      gemoji (~> 3.0)
      jekyll (>= 3.6, < 5.0)
      nokogiri (~> 1.6)
      rainbow (~> 3.0)
    jekyll-timeago (0.15.0)
      mini_i18n (>= 0.8.0)
    jekyll-toc (0.17.1)
      jekyll (>= 3.9)
      nokogiri (~> 1.11)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.4)
    listen (3.8.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    mini_i18n (0.9.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    nokogiri (1.14.0-x86_64-linux)
      racc (~> 1.4)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    racc (1.6.2)
    rack (2.2.5)
    rack-protection (3.0.5)
      rack
    rainbow (3.1.1)
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sass-embedded (1.57.1-x86_64-linux-gnu)
      google-protobuf (~> 3.21)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.4.2)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap
  jekyll-spaceship
  jekyll-timeago
  jekyll-toc

BUNDLED WITH
   2.3.26

Let us witness the miracle:

image

9.347s - 3.874s ≈ 5.5s

ntkme commented 1 year ago

@y377 I think you made the mistake of not clearing jekyll build cache when you do the test so that later runs are always faster than first run. In my test, sass-embedded is actually consistently faster than sassc for your site:

$ git clean -dffx
Removing .jekyll-cache/
Removing _site/2023/01/11/
Removing _site/CNAME

$ cat Gemfile.lock | grep sass
      jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    sass-embedded (1.58.0-arm64-darwin)
  jekyll-sass-converter

$ bundle exec jekyll build
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /Users/ntkme/Developer/test/jekyll_better/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /Users/ntkme/Developer/test/jekyll_better
       Destination: /Users/ntkme/Developer/test/jekyll_better/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:              
        Pagination:   Locale:           
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [TableProcessor] _posts/2018-05-11-pwa-zh-preface.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-06-30-dreamer.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-09-27-avoiding-success-at-all-cost.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-10-06-vim-cn-im.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-09-03-vim-from-finder.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-11-19-is-pwa-dead-in-2019.md
  Jekyll Spaceship: [TableProcessor] _posts/2020-04-03-react-hooks-vue-composition.md
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
                    done in 1.23 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
$ git clean -dffx         
Removing .jekyll-cache/
Removing _site/2023/01/11/
Removing _site/CNAME

$ cat Gemfile.lock | grep sass
      jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    sassc (2.4.0)
  jekyll-sass-converter (~> 2.0)

$ bundle exec jekyll build    
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /Users/ntkme/Developer/test/jekyll_better/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /Users/ntkme/Developer/test/jekyll_better
       Destination: /Users/ntkme/Developer/test/jekyll_better/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:              
        Pagination:   Locale:           
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [TableProcessor] _posts/2018-05-11-pwa-zh-preface.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-06-30-dreamer.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-09-27-avoiding-success-at-all-cost.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-10-06-vim-cn-im.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-09-03-vim-from-finder.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-11-19-is-pwa-dead-in-2019.md
  Jekyll Spaceship: [TableProcessor] _posts/2020-04-03-react-hooks-vue-composition.md
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
                    done in 3.0 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
ntkme commented 1 year ago

@y377 Can you please retest and make sure you remove .jekyll-cache and _site folder before each run?

On my M1 Macbook Pro I consistently get the follow results:

y377 commented 1 year ago

remove .jekyll-cache and _site:

    jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    sass-embedded (1.57.1-x86_64-linux-gnu)

and

done in 6.94 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

I hope this issue first do not close, because I am busy with the theme build, for the time being first not jekyll-sass-converter to do a systematic comparison test, later when the theme's features are done, I will do a more detailed comparison test, I do is a large theme, a very large kind, either the number of articles or the number of pages, which can test the difference between the two, as one user said, when he had 2000 articles, the build takes 13 seconds to get to the next step

ntkme commented 1 year ago

@y377 Can you please also retest sassc?

y377 commented 1 year ago

@y377 Can you please also retest sassc?

[root@jekyll 20221119]# bundle exec jekyll serve
Could not find sass-embedded-1.58.0-x86_64-linux-gnu in locally installed gems
Run `bundle install` to install missing gems.
[root@jekyll 20221119]#
ntkme commented 1 year ago

@y377 Remove the Gemfile.lock, update Gemfile, and then rerun bundle - this is the correct way to change your dependency. Just removing the gem is not correct.

ashmaroli commented 1 year ago

Additionally, you need not remove .jekyll-cache after every build. Either use CLI switch --disable-disk-cache or set disable_disk_cache: true in your config file.

y377 commented 1 year ago

@y377 Remove the Gemfile.lock, update Gemfile, and then rerun bundle - this is the correct way to change your dependency. Just removing the gem is not correct.

image

If bundle, sass1.58 is installed again, how do you test the difference?

i need frist:

image

ntkme commented 1 year ago

With your sample repository, try paste these commands and see what you get:

For sass-embedded:

git clone https://github.com/y377/jekyll_better.git
cd jekyll_better
rm Gemfile.lock
sed -i -e '/gem "jekyll-sass-converter"/s/.*/  gem "jekyll-sass-converter"/' Gemfile
bundle
bundle exec jekyll build --disable-disk-cache

For sassc:

git clone https://github.com/y377/jekyll_better.git
cd jekyll_better
rm Gemfile.lock
sed -i -e '/gem "jekyll-sass-converter"/s/.*/  gem "jekyll-sass-converter", "~> 2.0"/' Gemfile
bundle
bundle exec jekyll build --disable-disk-cache
y377 commented 1 year ago

It seems that all gems versions are too high, no matter how to uninstall, as long as you run the bundle command, it will force the installation of [sass-embedded 1.58.0 (x86_64-linux-gnu)]

ashmaroli commented 1 year ago

@y377 I hope you're developing your site / theme via a Public GitHub repository. Then you can easily test two different versions using GitHub Actions.

Have the following in your Gemfile:

# Gemfile

gem "jekyll-sass-converter", ENV["SASS_CONVERTER_VERSION"]

Then supply two different versions via build matrix:


# GH Action workflow:

jobs:
  ci:
    strategy:
      matrix:
        sass_conv_version:
           - "~> 2.0"
           - "~> 3.0"
    steps:
      [...] # checkout, setup Ruby, etc..
      - run: bundle exec jekyll build --disable-disk-cache
        env:
          SASS_CONVERTER_VERSION: ${{ matrix.sass_conv_version }}
y377 commented 1 year ago

Just now some operations, it seems that sass3.0 is 6.995s, sassc2.4 is 12.67s

ashmaroli commented 1 year ago

Ultimately, I don't think sass-converter implementation is going to have a significant impact until your templates use sassify / scssify filters extensively; or if third-party plugins invoke site.process multiple times..

y377 commented 1 year ago

Just now some operations, it seems that sass3.0 is 6.995s, sassc2.4 is 12.67s

@ntkme @ashmaroli

In this way, thanks for your answers, this question will be put here for now, and I will do in-depth research after I improve the theme. After all, the theme keeps adding plug-ins and using more and more liquid 'if' statements. It is said that 'if' statements will consume extra construction time, so there will be errors. Revised most of the content, just the conclusion shows that sass3.0 is faster, I was a little lost

ntkme commented 1 year ago

Again, I think the problem is that your previous tests were done with disk cache enabled, which will have unpredictable outcome depends on whether the cache got invalidated or not. For this kind of benchmarking you must disable caching.

ashmaroli commented 1 year ago

I am going to close this issue since there's nothing to do at our end. Setting up GitHub Actions at your end will aid in development. Good Luck!

y377 commented 1 year ago

@ashmaroli hi,ashmaroli,One question to bother you here, I would like to react to the question about the abuse of power by community administrators, which will make more people afraid to send out honest comments on community posts, what do you think about this please? I've been dedicated to promoting Jekyll for so many years, and seeing such community administrators, I'll never dare to visit the community again! Deleted content

Reported Posts Removed by Administrators
Jul 22
9m ago

I'm sorry, but I don't know if I'm going to be able to do this.
1d
Hello.

This is an automated email from Jekyll Talk to notify you that Post 1 has been removed.

Your post was flagged as off-topic: the community feels it is not a good fit for the topic, as currently defined by the title and the first post.

This post was reported by the community and the administrators chose to remove it.

Do very beautiful, is to black tone, in order to life sciences as the content of the site, will let a person have a touch of horror, if this is a publicity to quit smoking site, the black tone is suitable, of course, this is only my first intuitive feeling!
Check out our Community Code 1 for details.

image

ashmaroli commented 1 year ago

Hello @y377 First of all, GitHub repository issues is not the place for discussing such stuff. It is via direct emails. Secondly, I am not an administrator of the community site, so I don't have full context behind your query. However, based on the screenshot you've posted, I feel the administration removed your post since it looked like spam. Why would you start / maintain a thread with CJK language on an English language forum? Thank you for the continued use of Jekyll and its community forum but I'm certain that the Community Guidelines are easily accessible and condemn spamming the forum with issues that do not benefit the community as a collective whole.

y377 commented 1 year ago

Hello @y377 First of all, GitHub repository issues is not the place for discussing such stuff. It is via direct emails. Secondly, I am not an administrator of the community site, so I don't have full context behind your query. However, based on the screenshot you've posted, I feel the administration removed your post since it looked like spam. Why would you start / maintain a thread with CJK language on an English language forum? Thank you for the continued use of Jekyll and its community forum but I'm certain that the Community Guidelines are easily accessible and condemn spamming the forum with issues that do not benefit the community as a collective whole.

Let me clarify, my participation in replying to the post was in English, the screenshot you see is just the i18 of my community site, it's not me following the post in Chinese, please don't misunderstand. Since you are not a community administrator, let this go, and I shouldn't distract you from my active participation in Jekyll coding itself. Thanks for your reply!