Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites.

Overview

Jekyll

Gem Version Linux Build Status Windows Build status Security Backers on Open Collective Sponsors on Open Collective

Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind GitHub Pages, which you can use to host sites right from your GitHub repositories.

Philosophy

Jekyll does what you tell it to do — no more, no less. It doesn't try to outsmart users by making bold assumptions, nor does it burden them with needless complexity and configuration. Put simply, Jekyll gets out of your way and allows you to concentrate on what truly matters: your content.

See: https://jekyllrb.com/philosophy

Getting Started

Diving In

Need help?

If you don't find the answer to your problem in our docs, or in the troubleshooting section, ask the community for help.

Code of Conduct

In order to have a more open and welcoming community, Jekyll adheres to a code of conduct adapted from the Ruby on Rails code of conduct.

Please adhere to this code of conduct in any interactions you have in the Jekyll community. It is strictly enforced on all official Jekyll repositories, websites, and resources. If you encounter someone violating these terms, please let one of our core team members know and we will address it as soon as possible.

Credits

Sponsors

Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. Become a sponsor! Jekyll Sponsor 0 Jekyll Sponsor 1 Jekyll Sponsor 2 Jekyll Sponsor 3 Jekyll Sponsor 4 Jekyll Sponsor 5 Jekyll Sponsor 6 Jekyll Sponsor 7 Jekyll Sponsor 8 Jekyll Sponsor 9

Contributors

This project exists thanks to all the people who contribute. Jekyll Contributors

Backers

Thank you to all our backers! 🙏 Become a backer

Jekyll Backers

License

See the LICENSE file.

Comments
  • Jekyll 4.0 Ideas

    Jekyll 4.0 Ideas

    :wave: Hello everyone! Summer is coming, and so is the implementation period for Jekyll 4.0. That's right, it's time to get some breaking changes in. To accommodate for this, we're opening this issue to collect interesting ideas that people would like to see implemented in 4.0. Keep in mind that even if an idea receives a lot of support, there's no guarantee that it'll get implemented — that depends on if someone is free to actually implement it. We're all volunteers here, keep that in mind.

    Feel free to revive old feature requests, too, just not something that we've explicitly rejected.

    For an organized view of how we're consolidating ideas and features, check out our Project board: https://github.com/jekyll/jekyll/projects/2

    pinned help-wanted frozen-due-to-age 
    opened by ghost 113
  • State of Jekyll

    State of Jekyll

    I propose that we get together and hold a town hall meeting to discuss the current state of Jekyll and its future. Google Hangouts is a great solution to do something like this, since it offers the ability to record and publish the entire meeting to YouTube instantly and for free. We could have them weekly, bi-weekly, monthly, or whatever makes sense.

    Thoughts?

    team frozen-due-to-age 
    opened by troyswanson 110
  • Add Appveyor testing

    Add Appveyor testing

    ~~https://ci.appveyor.com/project/jekyll/jekyll~~ https://ci.appveyor.com/project/XhmikosR/jekyll

    TODO:

    • [x] Use the proper badge (/CC @parkr so that I can update my patch)
    • [x] Rename the AppVeyor account to jekyll in https://ci.appveyor.com/account
    • [x] Enable gems caching. ~~We need to make all the tests pass first, in order for this to take effect~~
    • [x] ~~See why gem update --system seems to make the whole process halt~~ See here for a workaround
    • [ ] Fix tests to pass!!
    windows frozen-due-to-age 
    opened by XhmikosR 97
  • Add LiveReload functionality to Jekyll.

    Add LiveReload functionality to Jekyll.

    Invoke using jekyll serve --livereload. The Serve command will inject some necessary JavaScript links into pages. When loaded in a browser, this JavaScript opens a connection over port 35729 using WebSockets to an EventMachine reactor listening to that port in a separate thread.

    When Jekyll finishes rendering a page, --livereload hooks create a JSON message with the relative URL of the refreshed page. This message is then pushed to the browser over the WebSockets connection. The client-side JavaScript then reloads the page if the URL in the message matches the URL of the current page.

    Implements #4644

    frozen-due-to-age 
    opened by awood 92
  • prototype of jekyll hooks, encapsulated

    prototype of jekyll hooks, encapsulated

    This is a second attempt at #3498 (adding hooks to Jekyll). In my last attempt @envygeeks had some complaints about the lack of encapsulation. This PR is an attempt to address those concerns and try out a new idea. This is definitely not ready to merge, but I wanted to get some eyes on it before I implement and write tests for the whole thing. The hooks concept is inspired by, but in this instance not perfectly compatible with octopress-hooks, so it's a bit of a departure from #3392 by @parkr, but I think it nicely encapsulates the hook logic.

    Here's a practical example of how you could use one of these hooks to do something useful: https://github.com/stevecrozz/featherblade

    feature frozen-due-to-age 
    opened by stevecrozz 85
  • support data sources

    support data sources

    Data Source enables you to load data, serialized as YAML, from a directory in Jekyll's source: _data.

    Here's an example to illustrate:

    In my _data directory, I have members.yml, which contains the following:

    - name: Ben Balter
      company: GitHub
      location: Washington D.C.
    - name: Parker Moore
      location: "Ithaca, NY"
    

    Jekyll loads this data (in this case, an Array of Hashes) into site.data.members (note that the namespace is based on the filename) which can be used in Liquid thusly:

    {% for member in site.data.members %}
      <p>
        {{ member.name }} lives in {{ member.location }}
        {% if member.company %} and works for {{ member.company }}{% endif %}
      </p>
    {% endfor  %}
    

    This allows us to input arbitrary data into our templates without the use of _config.yml and it is re-read each time a file changes when running jekyll with --watch.

    • [x] Implement
    • [x] Tests
    • [x] Figure out best namespace: site.data, or data?
    frozen-due-to-age 
    opened by liufengyun 79
  • Jekyll serve fails on Ruby 3.0

    Jekyll serve fails on Ruby 3.0

    My Environment

    | Software | Version(s) | | ---------------- | ---------- | | Operating System | Ubuntu 20.04 | | Ruby | 3.0.0 | | jekyll | 4.2.0 | | github-pages | No |


    Expected Behaviour

    bundle exec jekyll serve runs on Ruby 3.0.

    Current Behavior

    bundle exec jekyll serve fails with the following stack trace:

    /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve/servlet.rb:3:in `require': cannot load such file -- webrick (LoadError)
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve/servlet.rb:3:in `<top (required)>'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:179:in `require_relative'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:179:in `setup'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:100:in `process'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `each'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
    	from /home/argilo/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
    	from /home/argilo/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
    	from /home/argilo/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
    	from /home/argilo/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
    	from /home/argilo/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
    	from /home/argilo/.gem/ruby/3.0.0/gems/jekyll-4.2.0/exe/jekyll:15:in `<top (required)>'
    	from /home/argilo/.gem/ruby/3.0.0/bin/jekyll:23:in `load'
    	from /home/argilo/.gem/ruby/3.0.0/bin/jekyll:23:in `<top (required)>'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:63:in `load'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:63:in `kernel_load'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:28:in `run'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:497:in `exec'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:30:in `dispatch'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:24:in `start'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/bundler-2.2.3/libexec/bundle:49:in `block in <top (required)>'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/friendly_errors.rb:130:in `with_friendly_errors'
    	from /home/argilo/.rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/bundler-2.2.3/libexec/bundle:37:in `<top (required)>'
    	from /home/argilo/.rubies/ruby-3.0.0/bin/bundle:23:in `load'
    	from /home/argilo/.rubies/ruby-3.0.0/bin/bundle:23:in `<main>'
    

    This happens because webrick is no longer a bundled gem in Ruby 3.0. From https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/:

    The following libraries are no longer bundled gems or standard libraries. Install the corresponding gems to use these features.

    • sdbm
    • webrick
    • net-telnet
    • xmlrpc

    Adding gem "webrick" to my Gemfile solves the problem, but Jekyll should include it in its gemspec.

    has-pull-request 
    opened by argilo 77
  • Incremental regeneration

    Incremental regeneration

    Almost complete implementation of incremental regeneration (#380 and #3060) between as well as within a process. Currently handles file content changes and dependency changes (layouts and includes only). This implementation takes a few things from @mattr-'s implementation in #1761.

    Here is what happens on each build:

    1. The Metadata class is initialized and reads in metadata from .jekyll-metadata (metadata is not read if the --clean flag is set).
    2. Jekyll performs reset, read, and generate as it did before.
    3. In the render step, all documents, pages, and posts are checked for modifications to itself or its dependencies. A document/page/post is also marked as modified if it has regenerate: true in its front-matter.
    4. cleanup is performed if the --clean flag is set.
    5. Modified files, as well as the new .jekyll-metadata, are written in write.

    Remarks:

    • Although initial (no metadata present) build times went up a tiny bit, builds with metadata are super quick (here are the results from the jekyllrb.com site)
    • Dependencies in the form of referencing posts/pages/collections/data in Liquid with site.x are not resolved. (This is why I included the regenerate front-matter override.) Any ideas on how we can make this work?
    • The metadata file is currently YAML (loaded with SafeYAML). Is this optimal, or would another serialization method work better?

    Todo:

    • [x] Implement behaviour
    • [x] Fix failing tests
    • [x] Add tests (cucumber & unit)
    • [x] Add more unit tests!
    frozen-due-to-age 
    opened by alfredxing 68
  • Jekyll 4.0 Wishlist

    Jekyll 4.0 Wishlist

    Hi!

    We have no plans for a 4.0 but I wanted to collect a potential "wishlist" of changes we'd like to see happen in a potential 4.0.

    • Remove Jekyll::Convertible in favor of Jekyll::Renderer

    Anything that is a breaking change that you can't see Jekyll without?

    pinned discussion frozen-due-to-age 
    opened by parkr 54
  • Add relativize_url

    Add relativize_url

    Added a filter called relativize_url which generates URLs relative to the current page.

    See discussion here: https://github.com/jekyll/jekyll/issues/6360

    I'd be happy to add tests and docs, but would first like to hear if maintainers find this a worthwhile addition.

    Personally I find it incredibly useful as I no longer have to care about the path of the directory from which the content of _site is served (as is the case when using for instance relative_url). Also, I don't need to mess with different baseUrl in development and production. Resulting HTML is "self-contained" and can even be viewed directly on disk (file://...). Granted, it's easy for users to put this filter in the _plugins directory manually.

    wont-fix frozen-due-to-age 
    opened by aioobe 52
  • jekyll 2.0.3 | Error:  invalid byte sequence in US-ASCII

    jekyll 2.0.3 | Error: invalid byte sequence in US-ASCII

    I want to start my jekyll blog locally, while this error get up. I googled, but no solution can fixed this. I also check my locale:

    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=
    

    My environments: debian 7 ruby 2.0.0 gem 2.2.2 jekyll 2.0.3 here is the entire log:

    Deprecation: The 'pygments' configuration option has been renamed to 'highlighter'. Please update your config file accordingly. The allowed values are 'rouge', 'pygments' or null.
    Source: /home/albert/codes/beyondalbert.github.com
    Destination: /home/albert/codes/beyondalbert.github.com/_site
    Generating... 
    jekyll 2.0.3 | Error:  invalid byte sequence in US-ASCII
    

    ps: In my posts, I have chinese charaters!

    frozen-due-to-age 
    opened by beyondalbert 52
  • Update dependency constraint to allow for rubocop v1.42.0

    Update dependency constraint to allow for rubocop v1.42.0

    Hey there! :wave:

    I noticed that the constraint you have for rubocop doesn't allow for the latest version to be used.

    The constraint I found was ~> 1.38.0, and the latest version available is 1.42.0.

    Can you look into updating that constraint so our users can use the latest and greatest version? Thanks! :revolving_hearts:

    dependency help-wanted 
    opened by jekyllbot 0
  • [Bug]: Jekyll can't include files in subdirectory of _includes in gem

    [Bug]: Jekyll can't include files in subdirectory of _includes in gem

    Operating System

    macOS 13.1

    Ruby Version

    ruby 3.1.2p20

    Jekyll Version

    jekyll 4.2.2

    GitHub Pages Version

    No response

    Expected Behavior

    I created a subdirectory named landing in the _includes folder of my theme gem as a way to organize the templates for the various content sections of the landing page. I expected Jekyll to be able find templates in that subdirectory when rendering a site using this theme gem.

    For example, if the gem contains a file at the path

    _includes/landing/cta.html

    and the index.md file of a site using the gem contains the code

    {% include landing/cta.html %}

    I expect Jekyll to render the template on the index page.

    Current Behavior

    Instead of rendering the site, Jekyll reports an error:

    Liquid Exception: Could not locate the included file 'cta.html' in any of [location of the site's _includes folder]

    This works as expected when cta.html is placed in the _includes/landing/ in the site's file structure. It also works if the file is included by a layout within the gem. It appears Jekyll is not checking subdirectories of the _includes directory in the gem when asked to do so by a site using that gem.

    Relevant log output

    No response

    Code Sample

    No response

    opened by dcsjapan 0
  • Update macOS Installation Instructions & Update Jekyll docs to have Ruby 3.2 support

    Update macOS Installation Instructions & Update Jekyll docs to have Ruby 3.2 support

    Summary

    • I updated docs/_data/ruby.yml to have ruby version 3.1.3
    • I updated docs/_docs/installation/macos.md to explicitly say that Jekyll has support for Ventura (macOS 13)

    Context

    I was installing jeykll on my Mac and noticed the Ruby version was incorrect in chruby, so I made this PR

    opened by 0x8ff 1
  • Add GitHub Pages helpful notes

    Add GitHub Pages helpful notes

    This is a 🔦 documentation change.

    Summary

    Adds a helpful setup note for people publishing with GitHub Pages.

    Context

    GitHub Pages will build your project using the github-pages gem and without any regard for your repository's Gemfile.lock file. This PR adds such a note to documentation and advises how you might work with that.

    opened by fulldecent 0
  • [Bug]: serve --detach doesn't detach

    [Bug]: serve --detach doesn't detach

    Operating System

    macOS 12.6.2

    Ruby Version

    ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

    Jekyll Version

    jekyll 4.3.1

    GitHub Pages Version

    No response

    Expected Behavior

    I expected following commands to work after jekyll detaches:

    bundle exec jekyll serve --detach && echo "jekyll detached"
    

    Current Behavior

    Jekyll keeps using terminal's stdin, stdout.

    $ bundle exec jekyll serve --detach && echo "jekyll detached"
    Configuration file: /path/to/site/_config.yml
    To use retry middleware with Faraday v2.0+, install `faraday-retry` gem
                Source: /path/to/site
           Destination: /path/to/site/_site
     Incremental build: disabled. Enable with --incremental
          Generating...
                        done in 1.411 seconds.
     Auto-regeneration: disabled when running server detached.
        Server address: http://127.0.0.1:4000/
    Server detached with pid '77748'. Run `pkill -f jekyll' or `kill -9 77748' to stop the server.
    

    If I press Ctrl-C, jekyll produces fatal crash:

    Relevant log output

    No response

    Code Sample

    No response

    opened by yous 0
  • [Bug]:

    [Bug]:

    Operating System

    Ubuntu 22.04

    Ruby Version

    ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]

    Jekyll Version

    jekyll 3.9.2

    GitHub Pages Version

    No response

    Expected Behavior

    I am able to serve a basic Jekyll site with bundle exec jekyll serve

    Current Behavior

    "Liquid Exception: undefined method untaint' for "Welcome to Jekyll!":String in /_layouts/post.html jekyll 3.9.2 | Error: undefined methoduntaint' for "Welcome to Jekyll!":String /home/thuston/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/standardfilters.rb:42:in escape': undefined methoduntaint' for "Welcome to Jekyll!":String (NoMethodError)"

    I tried to update my blog after ignoring it for some time and was unable to do so, every time I tried to Jekyll Serve I would get the error "Liquid Exception: undefined method `tainted?' for "Code":String in /_layouts/page.html"

    Wasn't able to find an immediate fix so I removed Ubuntu from WSL, installed 22.04, re-installed Jekyll and everything, got the same error. So then I created a new Jekyll site with just jekyll new test, tried to serve that, and for the error listed above.

    So fresh Linux install, fresh Jekyll install, fresh site. Any ideas?

    Relevant log output

    No response

    Code Sample

    No response

    opened by TaylorHuston 14
Releases(v4.3.1)
  • v4.3.1(Oct 26, 2022)

    Bug Fixes

    • Respect user-defined name attribute in documents (#9167)
    • Revert "Incrementally rebuild when a data file is changed" (#9170)

    Documentation

    • Release post for v4.3.1 (#9171)
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Oct 20, 2022)

    Minor Enhancements

    • Add webrick as a dependency (#8524)
    • Regenerate supported mime types (#8542)
    • Update include tag to be more permissive (#8618)
    • Optimize Jekyll::Utils.parse_date (#8425)
    • Update rubocop from 1.12 to 1.18 and min ruby from 2.4 to 2.5 (#8741)
    • Always hide cache-dir contents from Git (#8798)
    • Remove the warning about auto-regeneration on Windows (#8821)
    • Propagate _data folder from theme (#8815)
    • Support both tzinfo v1 and v2 alongwith non-half hour offsets. (#8880)
    • Run vendor-mimes to update mime.types (#8940)
    • Expose collection static files via site.static_files (#8961)
    • Expose basename from document.rb as name to Liquid templates (#8761)
    • Allow Configurable Converters on CSV (#8858)
    • Introduce theme drop to expose theme-gem details (#9129)
    • Relax version constraint to allow Rouge 4.x (#9134)
    • Incrementally rebuild when a data file is changed (#8771)
    • Support jekyll-sass-converter 3.x (#9132)

    Bug Fixes

    • fix: pin rubocop to 1.12 due to error with ruby 2.4 (#8651)
    • Load Jekyll plugins from BUNDLE_GEMFILE location (#8585)
    • fix(security): CVE-2021-28834 (#8680)
    • Inject livereload script using location.protocol instead of http: (#8718)
    • Respect collections_dir config within include tag (#8756)
    • Fix regression in Convertible module from v4.2.0 (#8786)
    • Revert #7253: "Don't reset site.url to localhost:4000 by default" (#8620)
    • Improve readability of CI logs (#8877)
    • Fix deprecation message for missing doc method (#8960)
    • Fix response header for content served via jekyll serve (#8965)
    • Trigger livereload in sites without pages (#8337)
    • Only enable BOM encoding option on UTF encodings (#8363)
    • Ensure theme config is a Jekyll::Configuration object (#8988)
    • Remove misleading totals row from --profile table (#9039)
    • Unlock Psych dependency (#9135)
    • Fix false positive conflicts for static files in a collection (#9141)

    Development Fixes

    • style: enable new cops (#8538)
    • Allow dependabot to keep github actions up-to-date (#8540)
    • Update actions/cache requirement to v2.1.3 (#8543)
    • Pin rubocop version (#8564)
    • style: add rubocop 1.9 cops (#8567)
    • Cross Version Testing Locally and Faster CI (#8610)
    • Use official Ruby setup GH action (#8614)
    • Spell check action for markdown documentation (#8675)
    • Update expect to cover docs/_posts (#8677)
    • Bump check-spelling/check-spelling from 0.0.18 to 0.0.19 (#8740)
    • Enable Rubocop accessor grouping, fix existing offenses (#8293)
    • Tags:Highlight: Decomposed HTMLLegacy formatter (#8623)
    • Relax Rubocop Dependency (#8831)
    • Add a workflow to build gems consistently (#8830)
    • Fix random test failures in TestExcerpt #to_liquid (#8884)
    • Lock gem psych to v3.x (#8918)
    • Fix typo in Bug Report template (#8951)
    • Check symlink outside site_source without Pathutil (#9015)
    • Stop testing with Rubies older than 2.7 on non-Windows (#8955)
    • Bump actions/checkout from 2 to 3 (#8986)
    • Remove git.io shortlinks from repo (#9045)
    • Bump rubocop to 1.32 (#9093)
    • Bump RuboCop to 1.36.x (#9125)
    • Use check-spelling/[email protected] (#9111)
    • Disable pending cops when running rubocop (#9136)
    • Relax RDoc version dependency (#9142)

    Documentation

    • typo - do instead of don't (#8518)
    • Document support for TSV files consistently (#8488)
    • Add a disclaimer to tutorials involving Ruby code (#8525)
    • Improve documentation on developing generators (#8527)
    • Fixes typo in layouts_dir documentation (#8532)
    • Fix i.e. typos in collections.md (#8529)
    • Remove GitHub Pages content which is in GitHub docs (#8533)
    • Step By Step Instructions Review (#8399)
    • Fix typo in migrating from 3.0 to 4.0 page (#8572)
    • Fix for important missing step in macOS Installation Docs: Add the Homebrew gems directory to the PATH (#8496)
    • Use latest Jekyll-action configuration (#8579)
    • docs: troubleshoot macOS with ARM64 architecture (#8560)
    • docs: add overview of .jekyll-cache dir (#8648)
    • docs: clarify where .jekyll-metadata comes from (#8646)
    • Razorops cicd added (#8656)
    • Specify default port and host for serve commands in docs (#8624)
    • Update third-party.md (#8652)
    • Add documentation for Sass configuration options (#8587)
    • Add formcarry to forms section (#8471)
    • Add step to set SDKROOT (#8478)
    • Improve the "Markdown Options" Docs (#8681)
    • Add 'webrick' warning note to "Quickstart" Docs (#8727)
    • Update windows.md (#8701)
    • IRC networks - Libera, Freenode (#8706)
    • Improve GitHub Flavored Markdown Docs (#8684)
    • Fixing URL in MacOS install for rbenv-doctor (#8693)
    • Fix adjective in troubleshooting.md document (#8777)
    • Goodbye Frank. We'll miss you. 💔 (#8807)
    • Update index.html: Grammar fix. (#8803)
    • Prefer Libera. Remove Freenode. (#8811)
    • Update feature_request.md (#8797)
    • Remove AWS Amplify from the showcase (#8812)
    • Move Frank to Emeritus Core Team Members (#8813)
    • Release post for v4.2.1 (#8818)
    • Update CircleCI example (#8829)
    • Fix typo (#8835)
    • Added docs for running locally (#8852)
    • Linting README.markdown (#8900)
    • Remove text on GITHUB_TOKEN which is now built-in (#8907)
    • Add Security Policy document (#8823)
    • Manage repository meta documents consistently (#8908)
    • docs: add Layer0 deployment guide (#8915)
    • docs: Update REAMDE generated by jekyll new-theme (#8919)
    • Update resources.md (#8925)
    • Rewrite documentation on installing plugins (#8921)
    • Improve maintainers guide on releasing a new version (#8928)
    • Fix link for "CloudSh" (#8934)
    • Recommend using actions/cache in GitHub Actions documentation (#8948)
    • Remove references to EOL hakiri.io service (#8946)
    • Release post for v4.2.2 (#8982)
    • Document releasing off *-stable branches (#8984)
    • Update document by fix yaml syntax error (#8991)
    • Enhance option's case for Jekyll configuration (#8992)
    • Fix typo in _docs/deployment/manual.md (#8997)
    • Add quiet/verbose options (#8996)
    • Update README.markdown re IRC Pointer (#9005)
    • Remove Aerobatic (#9007)
    • Add Jekyll 3.9.2 release post to 'master' branch (#9013)
    • Simplify macOS installation docs (#8993)
    • Improve document about Github Actions section (#8853)
    • Update permalinks.md (#9017)
    • Add clarity to docs on permalinks placeholders and builtins (#8995)
    • Remove Ionic Framework site from showcase (#9057)
    • Windows: describe which option to choose (#9049)
    • Improve links (http -> https) (#9064)
    • Update ruby version for macos guide (#9086)
    • Update posts.md (#9151)
    • Release post for v4.3.0 (#9157)

    Site Enhancements

    • Improvements to CSS (#7834)
    • Slightly update lang sh code-block styling (#8857)
    Source code(tar.gz)
    Source code(zip)
  • v3.9.2(Mar 28, 2022)

    Bug Fixes

    • Lock http_parser.rb gem to v0.6.x on JRuby (#8943)
    • Backport #8756 for v3.9.x: Respect collections_dir config within include tag (#8795)
    • Backport #8965 for v3.9.x: Fix response header for content served via jekyll serve (#8976)

    Development Fixes

    • Update and fix CI for 3.9-stable on Ruby 3.x (#8942)
    • Fix CI for commits to 3.9-stable branch (#8788)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.2(Mar 3, 2022)

    Bug Fixes

    • Lock http_parser.rb gem to v0.6.x on JRuby.

    Development Fixes

    • Backport #8830 for v4.2.x: Add a workflow to build gems consistently (#8869)
    • Lock rubocop-performance to v1.11.x.
    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Sep 27, 2021)

    Bug Fixes

    • Backport #8620 for v4.2.x: Revert #7253: "Don't reset site.url to localhost:4000 by default" (#8808)
    • Backport #8756 for v4.2.x: Respect collections_dir config within include tag (#8794)
    • Backport #8786 for v4.2.x: Fix regression in Convertible module from v4.2.0 (#8793)
    Source code(tar.gz)
    Source code(zip)
  • v3.9.1(Apr 8, 2021)

  • v4.2.0(Dec 14, 2020)

    Minor Enhancements

    • Warn on command-line with permalink conflict (#8342)
    • Supress warning issued for redirect pages (#8347)
    • Enhance detection of conflicting destination URLs (#8459)
    • Add :post_convert hook to modify HTML content before layout (#8368)
    • Allow triggering :post_convert events atomically (#8465)
    • Debug reading Page and Layout objects (#8100)
    • Do not reset site.url to http://localhost:4000 by default (#7253)
    • Add custom debug strings for Jekyll objects (#8473)
    • Debug reading data files in a site (#8481)

    Bug Fixes

    • Replace nested conditional with guard clauses (#8294)
    • Fix: security bump (#8349)
    • Fix path matching regex in post_url Liquid tag (#8375)
    • Enable Performance/ChainArrayAllocation cop (#8404)
    • Enable Lint/NoReturnInBeginEndBlocks Cop (#8457)
    • Generate items from site.include list only once (#8463)
    • Explicitly return nil after site process phase (#8472)

    Optimization Fixes

    • Implement custom delegators for drop methods (#8183)
    • Handle nil argument to Jekyll.sanitized_path (#8415)
    • Cache Jekyll.sanitized_path (#8424)
    • Memoize array of drop getter method names (#8421)
    • Reduce string allocations from the link tag (#8387)
    • Optimize parsing of parameters in include tag (#8192)
    • Stash documents write? attribute in a variable (#8389)
    • Reduce string allocations from generating doc URLs (#8392)
    • Check if site is in incremental mode optimally (#8401)
    • Utilize flexibility of Site#in_dest_dir (#8403)
    • Reduce allocations from rendering item as liquid (#8406)
    • Compute relative_path of pages using PathManager (#8408)
    • Reduce allocation from normalize_whitespace filter (#8400)
    • Use Regexp#match? when MatchData is not required (#8427)
    • Check default front matter scope against symbols (#8393)
    • Stash frequently used Drop setter keys for reuse (#8394)
    • Memoize defaults computed for Convertibles (#8451)
    • Reduce array allocations from merging categories (#8453)
    • Memoize destination of pages, documents and staticfiles (#8458)
    • Reduce allocations from computing item property (#8485)
    • Optimize Page#dir with a private method (#8489)
    • Stash attribute hash for Liquid computed for pages (#8497)

    Development Fixes

    • Update cucumber gem to version 4.1 (#8278)
    • Move permalink styles data to constant (#8282)
    • Update rubocop gem to 0.87.1 (#8287)
    • Update RuboCop to-do file (#8296)
    • Fix rake console generating LoadError (#8312)
    • Configure Performance cops (#8369)
    • Update rubocop gem to 0.90.0 (#8313)
    • Refactor Jekyll::Utils::Platforms (#7236)
    • Bump RuboCop to v0.91.x (#8391)
    • Add workflow to build and profile third-party repo (#8398)
    • Bump RuboCop to v0.92.x
    • Update cucumber gem version to 5.1.2 (#8413)
    • Fix test suite compatibility with JRuby (#8418)
    • chore(deps): bump Rubocop to 0.93.0 (#8430)
    • Use Ruby 2.7.1 in GitHub Actions (#8444)
    • Test that Liquid expressions are not deeply evaled (#8292)
    • Test rendering arbitrary Liquid variables by default (#7414)
    • Migrate TravisCI jobs to GitHub Actions (#8492)

    Documentation

    • Update pointer to special permalink variables for collections (#8274)
    • Fix special treatment for 'page 1' in docs of pagination (#8230)
    • Add Formcake to forms section (#8283)
    • Add a note on the rendering process in the docs (#8291)
    • Add refactoring type to PULL_REQUEST_TEMPLATE (#8297)
    • Update resources.md (#7864)
    • Extra apostrophes in an URL (#8319)
    • Clarify target of subordinate clause (#8320)
    • Cherry-pick commits from conflicting branch docs-40
    • Update documentation on third party site (#8352)
    • Update default.md with info requested in #8314 (#8353)
    • Clarify description of safe option (#8354)
    • Simplifying the Git post-receive hook-example (#8358)
    • Add missing doc for build and serve commands (#8365)
    • Docs Review: Getting Started (#8372)
    • Add note about rebooting system after installation (#8359)
    • Use data file to render table at /docs/configuration/options/#global-configuration (#8377)
    • Use data file(s) to render table(s) at /docs/configuration/options/ (#8380)
    • Improve maintainability of config option data (#8383)
    • Remove CircleCI v1 docs (#8410)
    • Remove NOKOGIRI_USE_SYSTEM_LIBRARIES from Travis CI docs (#8409)
    • Add links to all Jekyll themes on GitHub tagged with #jekyll-theme (#8447)
    • Document initializing project Gemfile from scratch (#8450)
    • Document installation of additional dependencies for installing Jekyll on Fedora (#8456)
    • Improve documentation on Hooks in Jekyll (#8467)
    • Build docs site with GitHub Actions (#8201)
    • Add link to Assets page from _sass section in _docs/structure.md (#8486)

    Site Enhancements

    • Fix rendering of showcase images (#8504)
    Source code(tar.gz)
    Source code(zip)
  • v3.9.0(Aug 5, 2020)

  • v4.1.1(Jun 24, 2020)

    • Fix grammar in documentation section (#8265)

    Development Fixes

    • Bump RuboCop to v0.85.x (#8223)
    • Expect drive letter only on vanilla windows (#8227)

    Bug Fixes

    • Disable page excerpts by default (#8222)
    • Revert introduction of PageDrop (#8221)
    • Don't generate excerpts for non-html pages (#8234)
    • Make page excerpts consistent with doc excerpts (#8236)

    Documentation

    • Replace deprecated 'show' command with 'info' (#8235)
    • Change name to ▲Vercel (#8247)
    • Add language and examples to describe how to use the configuration op… (#8249)
    • Fix missing yaml front matter colon and adjust/add clarifying language. (#8250)
    • correct typo (#8261)
    • Allow hyperlinks to specific filter documentation (#8231)
    • Update link to Netlify step-by-step guide (#8264)

    Site Enhancements

    • Including correct Sketch website (#8241)
    • Release post for v4.1.1 (#8243)
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(May 27, 2020)

    Minor Enhancements

    • serve: add support for ECC certificates (#7768)
    • Update item_property to recognize integers (#7878)
    • Include _config.yml in a new theme's gemspec (#7865)
    • Add an option to easily disable disk-cache (#7928)
    • Optimize markdown parsing with Kramdown by reusing the options and parser objects (#8013)
    • Add PageDrop to provide Liquid templates with data (#7992)
    • Optimize Kramdown::JekyllDocument#to_html calls (#8041)
    • Reduce Jekyll::Renderer instances during a build (#7570)
    • Configure default language for syntax-highlighting (#8035)
    • Remove dev dependencies from new theme-gem gemspec (#8042)
    • Allow disabling import of theme configuration (#8131)
    • Allow excerpts to be generated for Page objects (#7642)
    • Profile various stages of a site's build process (#6760)
    • Add find filters to optimize where-first chains (#8171)
    • Make number_of_words respect CJK characters (#7813)
    • Initialize static files' data hash only if needed (#8188)

    Bug Fixes

    • Memoize absolute_url and relative_url filters (#7793)
    • Fix documentation comment for Jekyll::Converters::Identity (#7883)
    • Optimize Jekyll::Filters#item_property (#7696)
    • Allow multiple binary operators in where_exp filter (#8047)
    • Fix documents custom-ordering logic (#8028)
    • Use layout.path when rendering the Liquid layout (#8069)
    • Reduce array allocations from StaticFile#path (#8083)
    • Simplify Jekyll::Renderer#validate_layout (#8064)
    • Add static file's basename to its url_placeholder (#7908)
    • Clear cached Liquid template scope before render (#7967)
    • Add slugified_categories URL placeholder (#8094)
    • Cache URLFilter results of string inputs per site (#7990)
    • Use platforms instead of install_if (#8140)
    • Config include trailing slash (#8113)
    • Allow extensionless document in a strict site (#7950)
    • Improve path normalization in liquid_renderer (#8075)
    • Switch slugify regex to support more Unicode character groups (#8167)
    • Check if entry is a directory once per enumerator (#8177)
    • Filter out exclusively excluded entries sooner (#7482)
    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(May 8, 2020)

    Bug Fixes

    • Prevent console warnings with Ruby 2.7 (#8124)
    • Clear cached Liquid template scope before render (#8141)
    • Add static file's basename to its url_placeholder (#8142)
    • Update item_property to recognize integers (#8160)

    Development Fixes

    • Fix Kramdown converter based tests for v4.0.x (#8143)
    Source code(tar.gz)
    Source code(zip)
  • v3.8.7(May 8, 2020)

  • v4.0.0(Aug 20, 2019)

    Major Enhancements

    • Drop ruby 2.3 (#7454)
    • Drop support for Ruby 2.1 and 2.2 (#6560)
    • Drop support for older versions of Rouge (#6978)
    • Drop support for pygments as syntax-highlighter (#7118)
    • Drop support for Redcarpet (#6987)
    • Drop support for rdiscount (#6988)
    • Drop support for jekyll-watch-1.4.0 and older (#7287)
    • Incorporate relative_url filter in link tag (#6727)
    • Upgrade kramdown dependency to v2.x (#7492)
    • Upgrade jekyll-sass-converter to v2.x - Sassc + sourcemaps (#7778)
    • Upgrade i18n to v1.x (#6931)
    • Add Jekyll::Cache class to handle caching on disk (#7169)
    • Cache converted markdown (#7159)
    • Cache: Do not dump undumpable objects (#7190)
    • Cache matched defaults sets for given parameters (#6888)
    • Ignore cache directory (#7184)
    • Add Site#in_cache_dir helper method (#7160)
    • Remove 'cache_dir' during jekyll clean (#7158)
    • Cache parsed Liquid templates in memory (#7136)
    • Only read layouts from source_dir or theme_dir (#6788)
    • Allow custom sorting of collection documents (#7427)
    • Always exclude certain paths from being processed (#7188)
    • Remove Jekyll::Utils#strip_heredoc in favor of a Ruby > 2.3 built in (#7584)
    • Incorporate relative_url within post_url tag (#7589)
    • Remove patch to modify config for kramdown (#7699)

    Minor Enhancements

    • Enhance --blank scaffolding (#7310)
    • Use jekyll-compose if installed (#6932)
    • Disable Liquid via front matter (#6824)
    • Configure cache_dir (#7232)
    • ISO week date drops (#5981)
    • Fix custom 404 page for GitHub pages (#7132)
    • Load config file from within current theme-gem (#7304)
    • Suggest re-running command with --trace on fail (#6551)
    • Support for binary operators in where_exp filter (#6998)
    • Automatically load _config.toml (#7299)
    • Add vendor folder to a newly installed site's .gitignore (#6968)
    • Output Jekyll Version while debugging (#7173)
    • Memoize computing excerpt's relative_path (#6951)
    • Skip processing posts that can not be read (#7302)
    • Memoize the return value of Site#documents (#7273)
    • Cache globbed paths in front matter defaults (#7345)
    • Cache computed item property (#7301)
    • Cleanup Markdown converter (#7519)
    • Do not process Liquid in post excerpt when disabled in front matter (#7146)
    • Liquefied link tag (#6269)
    • Update item_property to return numbers as numbers instead of strings (#6608)
    • Use .markdown extension for page templates (#7126)
    • Add support for *.xhtml files (#6854)
    • Allow i18n v0.9.5 and higher (#7044)
    • Ignore permission error of /proc/version (#7267)
    • Strip extra slashes via Jekyll.sanitized_path (#7182)
    • Site template: remove default config for markdown (#7285)
    • Add a custom inspect string for StaticFile objects (#7422)
    • Remind user to include gem in the Gemfile on error (#7476)
    • Search Front matter defaults for Page objects with relative_path (#7261)
    • Lock use of tzinfo gem to v1.x (#7521, #7562)
    • Utilize absolute paths of user-provided file paths (#7450)
    • Detect nil and empty values in objects with where filter (#7580)
    • Initialize mutations for Drops only if necessary (#7657)
    • Reduce Array allocations via Jekyll::Cleaner (#7659)
    • Encode and unencode urls only as required (#7654)
    • Reduce string allocations with better alternatives (#7643)
    • Reduce allocations from Jekyll::Document instances (#7625)
    • Add type attribute to Document instances (#7406)
    • Reduce allocations from where-filter (#7653)
    • Memoize SiteDrop#documents to reduce allocations (#7697)
    • Add PathManager class to cache interim paths (#7732)
    • Remove warnings and fixes for deprecated config (#7440)
    • Delegate --profile tabulation to terminal-table (#7627)

    Bug Fixes

    • Security: fix include bypass of EntryFilter#filter symlink check (#7226)
    • Theme gems: ensure directories aren't symlinks (#7419)
    • Add call to unused method validate_options in commands/serve.rb (#7122)
    • Check if scope applies to type before given path (#7263)
    • Document two methods, simplify one of the methods (#7270)
    • Check key in collections only if it isn't "posts" (#7277)
    • Interpolate Jekyll::Page subclass on inspection (#7203)
    • Measure the no. of times a template gets rendered (#7316)
    • Reduce array traversal in Jekyll::Reader (#7157)
    • Re-implement handling Liquid blocks in excerpts (#7250)
    • Documents should be able to render their date (#7404)
    • Fix Interpreter warning from Jekyll::Renderer (#7448)
    • Loggers should accept both numbers and symbols (#6967)
    • Replace regex arg to :gsub with a string arg (#7189)
    • Dont write static files from unrendered collection (#7410)
    • Excerpt handling of custom and intermediate tags (#7382)
    • Change future post loglevel to warn to help user narrow down issues (#7527)
    • Handle files with trailing dots in their basename (#7315)
    • Fix unnecessary allocations via StaticFileReader (#7572)
    • Don't check if site URL is absolute if it is nil (#7498)
    • Avoid unnecessary duplication of pages array (#7272)
    • Memoize Site#post_attr_hash (#7276)
    • Memoize Document#excerpt_separator (#7569)
    • Optimize Document::DATE_FILENAME_MATCHER to match valid filenames (#7292)
    • Escape valid special chars in a site's path name (#7568)
    • Replace name in Page#inspect with relative_path (#7434)
    • Log a warning when the slug is empty (#7357)
    • Push Markdown link refs to excerpt only as required (#7577)
    • Fix broken include_relative usage in excerpt (#7633)
    • Initialize and reset glob_cache only as necessary (#7658)
    • Revert memoizing Site#docs_to_write and #documents (#7684)
    • Backport #7684 for v3.8.x: Revert memoizing Site#docs_to_write and refactor #documents (#7689)
    • Backport #7213 and #7633 for v3.8.x: Fix broken include_relative usage in excerpt (#7690)
    • Don't read symlinks in site.include in safe mode (#7711)
    • Replace String#=~ with String#match? (#7723)
    • Update log output for an invalid theme directory (#7679)
    • Remove configuration of theme sass files from Core (#7290)
    • Actually conditionally include liquid-c (#7792)
    • Test number_like regex on stringified property (#7788)

    Development Fixes

    • Upgrade liquid-c to v4.0 (#7375)
    • Bump RuboCop to v0.71.0 (#7687)
    • Target Ruby 2.4 syntax (#7583)
    • Fix: RuboCop offenses (#7769)
    • Use communicative method parameters (#7566)
    • Scan assert_equal methods and rectify any offenses with a custom RuboCop cop (#7130)
    • CI: Test with Ruby 2.6 (#7438)
    • CI: Test with Ruby 2.6 on AppVeyor (#7518)
    • CI: Update RuboCop config (#7050)
    • CI: Add a script to profile docs (#7540)
    • CI(Appveyor): shallow clone with 5 last commits (#7312)
    • CI: Test with oldest and latest Ruby only (#7412)
    • CI: Update excludes for CodeClimate Analyses (#7365)
    • CI: Lock Travis to Bundler-1.16.2 (#7144)
    • CI: Bump tested version of JRuby to 9.2.7.0 (#7612)
    • CI: Do not install docs on updating gems on Travis (#7706)
    • Update gemspec (#7425)
    • deps: relax version constraint on classifier-reborn gem (#7471)
    • deps: update yajl-ruby (#7278)
    • deps: bump yajl-ruby to v1.4.0 (#6976)
    • Create symlink only if target is accessible (#7429)
    • Switch to :install_if for wdm gem (#7372)
    • Add cucumber feature to test include_relative tag (#7213)
    • Small benchmark refactoring (#7211)
    • Fix incorrectly passed arguments to assert_equal (#7134)
    • fix up refute_equal call (#7133)
    • Fix RuboCop offences in test files (#7128)
    • Use assert_include (#7093)
    • Remember to release docs gem (#7066)
    • Useless privates removed (#6768)
    • Load Rouge for TestKramdown (#7007)
    • Update instructions for releasing docs Gem (#6975)
    • We are not using Ruby 2.2 anymore (#6977)
    • Remove unnecessary Jekyll::Page constant (#6770)
    • Remove unused error class (#6511)
    • Add a Cucumber feature for post_url tag (#7586)
    • Generate a "TOTAL" row for build-profile table (#7614)
    • Refactor Jekyll::Cache (#7532)
    • Store list of expected extnames in a constant (#7638)
    • Profile allocations from a build session (#7646)
    • Update small typo in contributing.md (#7671)
    • Remove override to Jekyll::Document#respond_to? (#7695)
    • Update TestTags in sync with Rouge v3.4 (#7709)
    • Use regexp to filter special entries (#7702)
    • Reduce Array objects generated from utility method (#7749)
    • Update mime.types (#7756)
    • Replace redundant Array#map with Array#each (#7761)
    • Reduce allocations by using #each_with_object (#7758)
    • Memoize fallback_data for Drop (#7728)
    • Use String#end_with? to check if entry is a backup (#7701)

    Documentation

    • Refactor docs (#7205)
    • Add a link to Giraffe Academy's tutorial (#7325)
    • Do not advise users to install Jekyll outside of Bundler (#6927)
    • Remove documentation for using Redcarpet (#6990)
    • Install Docs that Work on MacOS 10.14 (#7561)
    • Add Installation Instructions for Ubuntu (#6925)
    • Don't prompt for sudo when installing with Ubuntu WSL (#6781)
    • Installation instructions for Fedora (#7198)
    • Update Windows install docs (#6926)
    • List all standard liquid filters (#7333)
    • List all static files variables (#7002)
    • Improve how to include Rouge stylesheets (#7752)
    • Mention CommonMark plugins (#7418)
    • Add TSV to list of supported _data files. (#7168)
    • How to deploy using pre-push git hook (#7179)
    • Hosting with AWS Amplify (#7510)
    • CircleCI deployment through CircleCI v2 (#7024)
    • GitHub Pages: use themes from other repos (#7112)
    • Document page.dir and page.name (#7373)
    • Document custom tag blocks (#7359)
    • Document converter methods (#7289)
    • Document {{ page.collection }} (#7430)
    • Document Jekyll Filters with YAML data (#7335)
    • Document where Jekyll looks for layouts in a site (#7564)
    • plugin: liquid tag jekyll-flickr (#6946)
    • plugin: jekyll-target-blank (#7046)
    • plugin: json-get. (#7086)
    • plugin: jekyll-info (#7091)
    • plugin: jekyll-xml-source (#7114)
    • plugin: jekyll-firstimage filter (#7127)
    • plugin: CAT (#7011)
    • Resources: Statictastic (#7593)
    • Resources: Bonsai Search (#7543)
    • Resources: Formspark (#7601)
    • Resources: Jekpack(#7598)
    • Resources: formX (#7536)
    • Resources: 99inbound's Jekyll post (#7348)
    • Resources: CloudSh (#7497)
    • Community: DEV Community's Jekyll tag (#7139)
    • Showcase: developer.spotify.com (#7217)
    • Showcase: Isomer (#7300)
    • Add version number for group_by_exp doc (#6956)
    • Updated nginx configuration for custom-404-page documentation (#6994)
    • Clarify definition of 'draft' (#7037)
    • _drafts need to be contained within the custom collection directory (#6985)
    • Updated to supported version (#7031)
    • Add Hints for some Improved Travis Config in Doc (#7049)
    • Update travis-ci.md to point out "this is an example Gemfile" (#7089)
    • Instructions to view theme’s files under Linux (#7095)
    • Use a real theme in the example (#7125)
    • Update docs about post creation (#7138)
    • Initialize upgrading doc for v4.0 (#7140)
    • Add version badge for date filters with ordinal (#7162)
    • Corrected sample usage of postfiles (#7181)
    • Resolve "Unable to locate package ruby2.4" error (#7196)
    • Correct stylesheet url in tutorial step 7 (#7210)
    • Removes quotes from markdown for assets (#7223)
    • Clarified front matter requirement (#7234)
    • Explicit location of where to create blog.html (#7241)
    • Reference the build command options that allows multiple config files (#7266)
    • Add more issue template(s) and pull request template (#7269)
    • Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
    • Fix broken Contributors link in README.markdown (#7200)
    • Add title tag to item in RSS template (#7282)
    • Add link tag to item in RSS template (#7291)
    • Remove redundant instruction comment (#7342)
    • Textile is only supported through a converter plugin (#7003)
    • Add recursive navigation tutorial (#7720)
    • Remove installation instructions with Homebrew (#7381)
    • Fix dead link and misleading prose (#7383)
    • Fix content management section (#7385)
    • Apply ruby official guide documents (#7393)
    • Fix group_by_exp filter example (#7394)
    • Remove alt attribute from a tags (#7407)
    • Fix BASH code-block in ubuntu.md (#7420)
    • zlib is missing (#7428)
    • Fixed unnecessary aticles and pronouns (#7466)
    • Store SSL key and cert in site source (#7473)
    • Fix typo in tutorial for converting existing site (#7524)
    • Check if var exists before include tag (#7530)
    • Clarify docs on collections regarding the need for front matter (#7538)
    • Fix incorrect Windows path in themes.md (#7525)
    • Addresses bundle not found. (#7351)
    • Update the contribution docs for draft pull requests (#7619)
    • Data file section adds TSV (#7640)
    • Indicate where the _sass folder is by default (#7644)
    • Docs: add version tags to new placeholders (#5981) for permalinks (#7647)
    • Solve "GitHub Page build failure" in 10-deployment.md (#7648)
    • fix link to Site Source config (#7708)
    • Introduce frontmatter in step 2 (#7704)
    • Add @ashmaroli to Core Team listing (#7398)
    • Lnk to Tidelift in site's footer (#7377)
    • Link to OpenCollective backing (#7378
    • Link to sponsor listing in README (#7405)
    • Adjust team page listings (#7395)
    • Updates to CODE OF CONDUCT (v1.4.0) (#7105)
    • More inclusive writing (#7283)
    • Update Ruby version used in Travis-CI example (#7783)
    • Documentation for binary operators in where_exp (#7786)
    • Adding SmartForms as Forms service (#7794)

    Site Enhancements

    • Better Performance (#7388)
    • Add some minor improvements to image loading in Showcase page (#7214)
    • Simplify assigning classname to docs' aside-links (#7609)
    • Simplify couple of includes in the docs site (#7607)
    • Avoid generating empty classnames (#7610)
    • Minimize rendering count (#7343)

    Release

    • Release post for v4.0.0 beta1 (#7716)
    • Release post for v4.0.0.pre.alpha1 (#7574)
    • Release post for v3.8.0 (#6849)
    • Release post for v3.6.3, v3.7.4 and v3.8.4 (#7259)
    • Post: v4.0 development (#6934)
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0.pre.beta1(Aug 4, 2019)

    Major Enhancements

    • Drop ruby 2.3 (#7454)
    • Drop support for Ruby 2.1 and 2.2 (#6560)
    • Drop support for older versions of Rouge (#6978)
    • Drop support for pygments as syntax-highlighter (#7118)
    • Drop support for Redcarpet (#6987)
    • Drop support for rdiscount (#6988)
    • Drop support for jekyll-watch-1.4.0 and older (#7287)
    • Incorporate relative_url filter in link tag (#6727)
    • Upgrade kramdown dependency to v2.x (#7492)
    • Upgrade i18n to v1.x (#6931)
    • Add Jekyll::Cache class to handle caching on disk (#7169)
    • Cache converted markdown (#7159)
    • Cache: Do not dump undumpable objects (#7190)
    • Cache matched defaults sets for given parameters (#6888)
    • Ignore cache directory (#7184)
    • Add Site#in_cache_dir helper method (#7160)
    • Remove 'cache_dir' during jekyll clean (#7158)
    • Cache parsed Liquid templates in memory (#7136)
    • Only read layouts from source_dir or theme_dir (#6788)
    • Allow custom sorting of collection documents (#7427)
    • Always exclude certain paths from being processed (#7188)
    • Remove Jekyll::Utils#strip_heredoc in favor of a Ruby > 2.3 built in (#7584)
    • Incorporate relative_url within post_url tag (#7589)
    • Remove patch to modify config for kramdown (#7699)

    Bug Fixes

    • Security: fix include bypass of EntryFilter#filter symlink check (#7226)
    • Theme gems: ensure directories aren't symlinks (#7419)
    • Add call to unused method validate_options in commands/serve.rb (#7122)
    • Check if scope applies to type before given path (#7263)
    • Document two methods, simplify one of the methods (#7270)
    • Check key in collections only if it isn't "posts" (#7277)
    • Interpolate Jekyll::Page subclass on inspection (#7203)
    • Measure the no. of times a template gets rendered (#7316)
    • Reduce array traversal in Jekyll::Reader (#7157)
    • Re-implement handling Liquid blocks in excerpts (#7250)
    • Documents should be able to render their date (#7404)
    • Fix Interpreter warning from Jekyll::Renderer (#7448)
    • Loggers should accept both numbers and symbols (#6967)
    • Replace regex arg to :gsub with a string arg (#7189)
    • Dont write static files from unrendered collection (#7410)
    • Excerpt handling of custom and intermediate tags (#7382)
    • Change future post loglevel to warn to help user narrow down issues (#7527)
    • Handle files with trailing dots in their basename (#7315)
    • Fix unnecessary allocations via StaticFileReader (#7572)
    • Don't check if site URL is absolute if it is nil (#7498)
    • Avoid unnecessary duplication of pages array (#7272)
    • Memoize Site#post_attr_hash (#7276)
    • Memoize Document#excerpt_separator (#7569)
    • Optimize Document::DATE_FILENAME_MATCHER to match valid filenames (#7292)
    • Escape valid special chars in a site's path name (#7568)
    • Replace name in Page#inspect with relative_path (#7434)
    • Log a warning when the slug is empty (#7357)
    • Push Markdown link refs to excerpt only as required (#7577)
    • Fix broken include_relative usage in excerpt (#7633)
    • Initialize and reset glob_cache only as necessary (#7658)
    • Revert memoizing Site#docs_to_write and #documents (#7684)
    • Backport #7684 for v3.8.x: Revert memoizing Site#docs_to_write and refactor #documents (#7689)
    • Backport #7213 and #7633 for v3.8.x: Fix broken include_relative usage in excerpt (#7690)
    • Don't read symlinks in site.include in safe mode (#7711)
    • Replace String#=~ with String#match? (#7723)
    • Update log output for an invalid theme directory (#7679)

    Minor Enhancements

    • Enhance --blank scaffolding (#7310)
    • Fix custom 404 page for GitHub pages (#7132)
    • Load config file from within current theme-gem (#7304)
    • Use jekyll-compose if installed (#6932)
    • Suggest re-running command with --trace on fail (#6551)
    • Support for binary operators in where_exp filter (#6998)
    • Automatically load _config.toml (#7299)
    • Add vendor folder to a newly installed site's .gitignore (#6968)
    • Output Jekyll Version while debugging (#7173)
    • Memoize computing excerpt's relative_path (#6951)
    • Skip processing posts that can not be read (#7302)
    • Memoize the return value of Site#documents (#7273)
    • Cache globbed paths in front matter defaults (#7345)
    • Cache computed item property (#7301)
    • Cleanup Markdown converter (#7519)
    • Disable Liquid via front matter (#6824)
    • Do not process Liquid in post excerpt when disabled in front matter (#7146)
    • Liquefied link tag (#6269)
    • Update item_property to return numbers as numbers instead of strings (#6608)
    • Use .markdown extension for page templates (#7126)
    • Add support for *.xhtml files (#6854)
    • Allow i18n v0.9.5 and higher (#7044)
    • Ignore permission error of /proc/version (#7267)
    • Strip extra slashes via Jekyll.sanitized_path (#7182)
    • Site template: remove default config for markdown (#7285)
    • Add a custom inspect string for StaticFile objects (#7422)
    • Remind user to include gem in the Gemfile on error (#7476)
    • Search Front matter defaults for Page objects with relative_path (#7261)
    • Configure cache_dir (#7232)
    • Lock use of tzinfo gem to v1.x (#7521, #7562)
    • Utilize absolute paths of user-provided file paths (#7450)
    • ISO week date drops (#5981)
    • Detect nil and empty values in objects with where filter (#7580)
    • Initialize mutations for Drops only if necessary (#7657)
    • Reduce Array allocations via Jekyll::Cleaner (#7659)
    • Encode and unencode urls only as required (#7654)
    • Reduce string allocations with better alternatives (#7643)
    • Reduce allocations from Jekyll::Document instances (#7625)
    • Add type attribute to Document instances (#7406)
    • Reduce allocations from where-filter (#7653)
    • Memoize SiteDrop#documents to reduce allocations (#7697)
    • Add PathManager class to cache interim paths (#7732)
    • Remove warnings and fixes for deprecated config (#7440)

    Development Fixes

    • Use communicative method parameters (#7566)
    • Scan assert_equal methods and rectify any offenses with a custom RuboCop cop (#7130)
    • Add a script to profile docs with CI (#7540)
    • Test with Ruby 2.6 on AppVeyor (#7518)
    • Update gemspec (#7425)
    • Upgrade liquid-c to v4.0 (#7375)
    • Bump RuboCop to v0.63.x (#7489)
    • Bump RuboCop to v0.62.x (#7449)
    • Bump RuboCop to v0.61.x (#7401)
    • Bump RuboCop to v0.60.x (#7338)
    • Bump RuboCop to v0.59.0 (#7237)
    • Bump RuboCop to v0.57.x (#7078)
    • Relax version constraint on classifier-reborn gem (#7471)
    • Test with Ruby v2.6 (#7438)
    • Create symlink only if target is accessible (#7429)
    • Test with oldest and latest Ruby only (#7412)
    • Switch to :install_if for wdm gem (#7372)
    • Update excludes for CodeClimate Analyses (#7365)
    • CI(Appveyor): shallow clone with 5 last commits (#7312)
    • update yajl-ruby (#7278)
    • Add cucumber feature to test include_relative tag (#7213)
    • Small benchmark refactoring (#7211)
    • Lock Travis to Bundler-1.16.2 (#7144)
    • Fix incorrectly passed arguments to assert_equal (#7134)
    • fix up refute_equal call (#7133)
    • Fix RuboCop offences in test files (#7128)
    • Use assert_include (#7093)
    • Remember to release docs gem (#7066)
    • Update RuboCop's config (#7050)
    • Useless privates removed (#6768)
    • Load Rouge for TestKramdown (#7007)
    • yajl-ruby update to v1.4.0 (#6976)
    • Update instructions for releasing docs Gem (#6975)
    • We are not using Ruby 2.2 anymore (#6977)
    • Remove unnecessary Jekyll::Page constant (#6770)
    • Remove unused error class (#6511)
    • Add a Cucumber feature for post_url tag (#7586)
    • Bump tested version of JRuby to 9.2.7.0 (#7612)
    • Generate a "TOTAL" row for build-profile table (#7614)
    • Target Ruby 2.4 syntax in RuboCop scans (#7583)
    • Bump RuboCop to v0.68.x (#7637)
    • Refactor Jekyll::Cache (#7532)
    • Store list of expected extnames in a constant (#7638)
    • Bump RuboCop to v0.69.x (#7656)
    • Profile allocations from a build session (#7646)
    • Update small typo in contributing.md (#7671)
    • Bump RuboCop to v0.70.x (#7678)
    • Remove override to Jekyll::Document#respond_to? (#7695)
    • Do not install docs on updating gems on Travis (#7706)
    • Update TestTags in sync with Rouge v3.4 (#7709)
    • Bump RuboCop to v0.71.0 (#7687)
    • Use regexp to filter special entries (#7702)
    • Reduce Array objects generated from utility method (#7749)
    • Update mime.types (#7756)
    • Replace redundant Array#map with Array#each (#7761)
    • Fix: rubocop offenses (#7769)

    Documentation

    • Add Installation Instructions for Ubuntu (#6925)
    • add liquid tag jekyll-flickr (#6946)
    • Updated copy - fixed casing of SaaS on resources page. (#6949)
    • Do not advise users to install Jekyll outside of Bundler (#6927)
    • Don't prompt for sudo when installing with Ubuntu WSL (#6781)
    • Fix typo (#6969)
    • Add version number for group_by_exp doc (#6956)
    • Update Windows install docs (#6926)
    • Remove documentation for using Redcarpet (#6990)
    • Updated nginx configuration for custom-404-page documentation (#6994)
    • List all static files variables (#7002)
    • Document that _drafts need to be contained within the custom collection directory (#6985)
    • Change for passive voice. (#7005)
    • Added the CAT plugin to the plugin list (#7011)
    • Updated to supported version (#7031)
    • Clarify definition of 'draft' (#7037)
    • Listed the jekyll-target-blank plugin in plugins list. (#7046)
    • Typo (#7058)
    • Add Hints for some Improved Travis Config in Doc (#7049)
    • Added plugin json-get. (#7086)
    • Update travis-ci.md to point out "this is an example Gemfile" (#7089)
    • Adding jekyll-info plugin (#7091)
    • GitHub enables you to use themes from other repos (#7112)
    • Updates to CODE OF CONDUCT (v1.4.0) (#7105)
    • Instructions to view theme’s files under Linux (#7095)
    • Add jekyll-xml-source (#7114)
    • Add the jekyll-firstimage filter plugin (#7127)
    • Use a real theme in the example (#7125)
    • Update docs about post creation (#7138)
    • Add DEV Community's Jekyll tag to community page (#7139)
    • Initialize upgrading doc for v4.0 (#7140)
    • Add version badge for date filters with ordinal (#7162)
    • Add closing tags for <a> (#7163)
    • Add TSV to list of supported _data files. (#7168)
    • Corrected sample usage of postfiles (#7181)
    • Add missing html end tag for code example in section 'For loops' (#7199)
    • Resolve "Unable to locate package ruby2.4" error (#7196)
    • Installation instructions for Fedora (#7198)
    • New docs (#7205)
    • List all standard liquid filters (#7333)
    • Correct stylesheet url in tutorial step 7 (#7210)
    • Add some minor improvements to image loading in Showcase page (#7214)
    • Fix minor grammatical error (#7215)
    • Add developer.spotify.com to the Jekyll Showcase (#7217)
    • Removes quotes from markdown for assets (#7223)
    • Clarified front matter requirement (#7234)
    • Minor whitespace fixes (#7238)
    • Explicit location of where to create blog.html (#7241)
    • Fix a small grammar error/typo in the docs (#7260)
    • Reference the build command options that allows multiple config files (#7266)
    • Update 10-deployment.md (#7268)
    • Add more issue template(s) and pull request template (#7269)
    • Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
    • Fix broken Contributors link in README.markdown (#7200)
    • Add title tag to item in RSS template (#7282)
    • More inclusive writing (#7283)
    • Document converter methods (#7289)
    • Add link tag to item in RSS template (#7291)
    • Add Isomer to showcase (#7300)
    • Added missing semicolon (#7306)
    • "This restricts you..." to "This restricts your" (#7307)
    • Add a link to Giraffe Academy's tutorial (#7325)
    • Grammar correction (#7327)
    • Document Jekyll Filters with YAML data (#7335)
    • Remove redundant instruction comment (#7342)
    • Minimize rendering count (#7343)
    • Update posts.md (#7360)
    • Add info how to deploy using pre-push git hook (#7179)
    • Textile is only supported through a converter plugin (#7003)
    • Add documentation for custom tag blocks (#7359)
    • Added 99inbound's Jekyll post to form resources (#7348)
    • Document page.dir and page.name (#7373)
    • Remove installation instructions with Homebrew (#7381)
    • Fix dead link and misleading prose (#7383)
    • Fix content management section (#7385)
    • Proposed re-wording of Sass note. :) (#7392)
    • Apply ruby official guide documents (#7393)
    • Fix group_by_exp filter example (#7394)
    • Adjust team page listings (#7395)
    • Update resources.md (#7396)
    • Update resources.md (#7397)
    • Remove alt attribute from a tags (#7407)
    • Fix grammatical error in permalinks.md (#7409)
    • Fix BASH code-block in ubuntu.md (#7420)
    • zlib is missing (#7428)
    • Include docs for {{ page.collection }} (#7430)
    • Permalink docs typo fixes (#7459)
    • Fixed unnecessary aticles and pronouns (#7466)
    • Grammatical correction (#7464)
    • Update resources.md (#7472)
    • Store SSL key and cert in site source (#7473)
    • Minor doc fixes (#7495)
    • Changed order of steps (#7503)
    • Hosting with AWS Amplify (#7510)
    • Fix typo in tutorial for converting existing site (#7524)
    • Add CloudSh to resource page. (#7497)
    • Check if var exists before include tag (#7530)
    • Added formX to form-backend resources (#7536)
    • Clarify docs on collections regarding the need for front matter (#7538)
    • Fix incorrect Windows path in themes.md (#7525)
    • Document where Jekyll looks for layouts in a site (#7564)
    • Mention CommonMark plugins (#7418)
    • Addresses bundle not found. (#7351)
    • Example of CircleCI deployment through CircleCI v2 (#7024)
    • v4.0 development post (#6934)
    • Release post for v3.8.0 (#6849)
    • Release Post for v3.6.3, v3.7.4 and v3.8.4 (#7259)
    • Adds Statictastic to the list of resources (#7593)
    • Update 07-assets.md (#7599)
    • Fix link space (#7600)
    • Added Formspark to form resources (#7601)
    • Simplify couple of includes in the docs site (#7607)
    • Avoid generating empty classnames (#7610)
    • Install Docs that Work on MacOS 10.14 (#7561)
    • Update the contribution docs for draft pull requests (#7619)
    • Doc: Data file section adds TSV (#7640)
    • Indicate where the _sass folder is by default (#7644)
    • Docs: add version tags to new placeholders (#5981) for permalinks (#7647)
    • Solve "GitHub Page build failure" in 10-deployment.md (#7648)
    • Fix typo from 'Github' to 'GitHub' (#7691)
    • fix link to Site Source config (#7708)
    • Add Jekpack to resources page (#7598)
    • Introduce frontmatter in step 2 (#7704)
    • Add recursive navigation tutorial (#7720)
    • Fix misspelling of "additional" (#7764)
    • docs: improve how to include rouge stylesheets (#7752)

    Site Enhancements

    • Add @ashmaroli to Core Team listing (#7398)
    • Lnk to Tidelift in site's footer (#7377)
    • Link to OpenCollective backing (#7378
    • Link to sponsor listing in README (#7405)
    • Better Performance (#7388)
    • Simplify assigning classname to docs' aside-links (#7609)

    release

    • Release v4.0.0.pre.alpha1 (#7574)
    • Prepare Jekyll 4.0.0 beta1 (#7716)
    Source code(tar.gz)
    Source code(zip)
  • v3.8.6(Jul 2, 2019)

    Bug Fixes

    • Update log output for an invalid theme directory (#7734)
    • Memoize SiteDrop#documents to reduce allocations (#7722)
    • Excerpt handling of custom and intermediate tags (#7467)
    • Escape valid special chars in a site's path name (#7573)
    • Revert memoizing Site#docs_to_write and refactor #documents (#7689)
    • Fix broken include_relative usage in excerpt (#7690)
    • Install platform-specific gems as required (3c06609406)

    Security Fixes

    • Theme gems: ensure directories aren't symlinks (#7424)
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0.pre.alpha1(Mar 19, 2019)

    Major Enhancements

    • Drop ruby 2.3 (#7454)
    • Drop support for Ruby 2.1 and 2.2 (#6560)
    • Drop support for older versions of Rouge (#6978)
    • Drop support for pygments as syntax-highlighter (#7118)
    • Drop support for Redcarpet (#6987)
    • Drop support for rdiscount (#6988)
    • Drop support for jekyll-watch-1.4.0 and older (#7287)
    • Incorporate relative_url filter in link tag (#6727)
    • Refactor highlight tag to behave like the raw tag (#6821)
    • Upgrade kramdown dependency to v2.x (#7492)
    • Upgrade i18n to v1.x (#6931)
    • Add Jekyll::Cache class to handle caching on disk (#7169)
    • Cache converted markdown (#7159)
    • Cache: Do not dump undumpable objects (#7190)
    • Cache matched defaults sets for given parameters (#6888)
    • Ignore cache directory (#7184)
    • Add Site#in_cache_dir helper method (#7160)
    • Remove 'cache_dir' during jekyll clean (#7158)
    • Cache parsed Liquid templates in memory (#7136)
    • Only read layouts from source_dir or theme_dir (#6788)
    • Allow custom sorting of collection documents (#7427)
    • Always exclude certain paths from being processed (#7188)

    Bug Fixes

    • Security: fix include bypass of EntryFilter#filter symlink check (#7226)
    • Theme gems: ensure directories aren't symlinks (#7419)
    • Add call to unused method validate_options in commands/serve.rb (#7122)
    • Check if scope applies to type before given path (#7263)
    • Document two methods, simplify one of the methods (#7270)
    • Check key in collections only if it isn't "posts" (#7277)
    • Interpolate Jekyll::Page subclass on inspection (#7203)
    • Measure the no. of times a template gets rendered (#7316)
    • Reduce array traversal in Jekyll::Reader (#7157)
    • Re-implement handling Liquid blocks in excerpts (#7250)
    • Documents should be able to render their date (#7404)
    • Fix Interpreter warning from Jekyll::Renderer (#7448)
    • Loggers should accept both numbers and symbols (#6967)
    • Replace regex arg to :gsub with a string arg (#7189)
    • Dont write static files from unrendered collection (#7410)
    • Excerpt handling of custom and intermediate tags (#7382)
    • Change future post loglevel to warn to help user narrow down issues (#7527)
    • Handle files with trailing dots in their basename (#7315)
    • Fix unnecessary allocations via StaticFileReader (#7572)
    • Don't check if site URL is absolute if it is nil (#7498)
    • Avoid unnecessary duplication of pages array (#7272)
    • Memoize Site#post_attr_hash (#7276)
    • Memoize Document#excerpt_separator (#7569)
    • Optimize Document::DATE_FILENAME_MATCHER to match valid filenames (#7292)
    • Escape valid special chars in a site's path name (#7568)
    • Replace name in Page#inspect with relative_path (#7434)
    • Log a warning when the slug is empty (#7357)
    • Push Markdown link refs to excerpt only as required (#7577)

    Minor Enhancements

    • Enhance --blank scaffolding (#7310)
    • Fix custom 404 page for GitHub pages (#7132)
    • Load config file from within current theme-gem (#7304)
    • Use jekyll-compose if installed (#6932)
    • Suggest re-running command with --trace on fail (#6551)
    • Support for binary operators in where_exp filter (#6998)
    • Automatically load _config.toml (#7299)
    • Add vendor folder to a newly installed site's .gitignore (#6968)
    • Output Jekyll Version while debugging (#7173)
    • Memoize computing excerpt's relative_path (#6951)
    • Skip processing posts that can not be read (#7302)
    • Memoize the return value of Site#documents (#7273)
    • Cache globbed paths in front matter defaults (#7345)
    • Cache computed item property (#7301)
    • Cleanup Markdown converter (#7519)
    • Disable Liquid via front matter (#6824)
    • Do not process Liquid in post excerpt when disabled in front matter (#7146)
    • Liquefied link tag (#6269)
    • Update item_property to return numbers as numbers instead of strings (#6608)
    • Use .markdown extension for page templates (#7126)
    • Add support for *.xhtml files (#6854)
    • Allow i18n v0.9.5 and higher (#7044)
    • Ignore permission error of /proc/version (#7267)
    • Strip extra slashes via Jekyll.sanitized_path (#7182)
    • Site template: remove default config for markdown (#7285)
    • Add a custom inspect string for StaticFile objects (#7422)
    • Remind user to include gem in the Gemfile on error (#7476)
    • Search Front matter defaults for Page objects with relative_path (#7261)
    • Configure cache_dir (#7232)
    • Lock use of tzinfo gem to v1.x (#7521, #7562)
    • Utilize absolute paths of user-provided file paths (#7450)

    Development Fixes

    • Use communicative method parameters (#7566)
    • Scan assert_equal methods and rectify any offenses with a custom RuboCop cop (#7130)
    • Add a script to profile docs with CI (#7540)
    • Test with Ruby 2.6 on AppVeyor (#7518)
    • Update gemspec (#7425)
    • Upgrade liquid-c to v4.0 (#7375)
    • Bump RuboCop to v0.63.x (#7489)
    • Bump RuboCop to v0.62.x (#7449)
    • Bump RuboCop to v0.61.x (#7401)
    • Bump RuboCop to v0.60.x (#7338)
    • Bump RuboCop to v0.59.0 (#7237)
    • Bump RuboCop to v0.57.x (#7078)
    • Relax version constraint on classifier-reborn gem (#7471)
    • Test with Ruby v2.6 (#7438)
    • Create symlink only if target is accessible (#7429)
    • Test with oldest and latest Ruby only (#7412)
    • Switch to :install_if for wdm gem (#7372)
    • Update excludes for CodeClimate Analyses (#7365)
    • CI(Appveyor): shallow clone with 5 last commits (#7312)
    • update yajl-ruby (#7278)
    • Add cucumber feature to test include_relative tag (#7213)
    • Small benchmark refactoring (#7211)
    • Lock Travis to Bundler-1.16.2 (#7144)
    • Fix incorrectly passed arguments to assert_equal (#7134)
    • fix up refute_equal call (#7133)
    • Fix RuboCop offences in test files (#7128)
    • Use assert_include (#7093)
    • Remember to release docs gem (#7066)
    • Update RuboCop's config (#7050)
    • Useless privates removed (#6768)
    • Load Rouge for TestKramdown (#7007)
    • yajl-ruby update to v1.4.0 (#6976)
    • Update instructions for releasing docs Gem (#6975)
    • We are not using Ruby 2.2 anymore (#6977)
    • Remove unnecessary Jekyll::Page constant (#6770)
    • Remove unused error class (#6511)

    Documentation

    • Add Installation Instructions for Ubuntu (#6925)
    • add liquid tag jekyll-flickr (#6946)
    • Updated copy - fixed casing of SaaS on resources page. (#6949)
    • Do not advise users to install Jekyll outside of Bundler (#6927)
    • Don't prompt for sudo when installing with Ubuntu WSL (#6781)
    • Fix typo (#6969)
    • Add version number for group_by_exp doc (#6956)
    • Update Windows install docs (#6926)
    • Remove documentation for using Redcarpet (#6990)
    • Updated nginx configuration for custom-404-page documentation (#6994)
    • List all static files variables (#7002)
    • Document that _drafts need to be contained within the custom collection directory (#6985)
    • Change for passive voice. (#7005)
    • Added the CAT plugin to the plugin list (#7011)
    • Updated to supported version (#7031)
    • Clarify definition of 'draft' (#7037)
    • Listed the jekyll-target-blank plugin in plugins list. (#7046)
    • Typo (#7058)
    • Add Hints for some Improved Travis Config in Doc (#7049)
    • Added plugin json-get. (#7086)
    • Update travis-ci.md to point out "this is an example Gemfile" (#7089)
    • Adding jekyll-info plugin (#7091)
    • GitHub enables you to use themes from other repos (#7112)
    • Updates to CODE OF CONDUCT (v1.4.0) (#7105)
    • Instructions to view theme’s files under Linux (#7095)
    • Add jekyll-xml-source (#7114)
    • Add the jekyll-firstimage filter plugin (#7127)
    • Use a real theme in the example (#7125)
    • Update docs about post creation (#7138)
    • Add DEV Community's Jekyll tag to community page (#7139)
    • Initialize upgrading doc for v4.0 (#7140)
    • Add version badge for date filters with ordinal (#7162)
    • Add closing tags for <a> (#7163)
    • Add TSV to list of supported _data files. (#7168)
    • Corrected sample usage of postfiles (#7181)
    • Add missing html end tag for code example in section 'For loops' (#7199)
    • Resolve "Unable to locate package ruby2.4" error (#7196)
    • Installation instructions for Fedora (#7198)
    • New docs (#7205)
    • List all standard liquid filters (#7333)
    • Correct stylesheet url in tutorial step 7 (#7210)
    • Add some minor improvements to image loading in Showcase page (#7214)
    • Fix minor grammatical error (#7215)
    • Add developer.spotify.com to the Jekyll Showcase (#7217)
    • Removes quotes from markdown for assets (#7223)
    • Clarified front matter requirement (#7234)
    • Minor whitespace fixes (#7238)
    • Explicit location of where to create blog.html (#7241)
    • Fix a small grammar error/typo in the docs (#7260)
    • Reference the build command options that allows multiple config files (#7266)
    • Update 10-deployment.md (#7268)
    • Add more issue template(s) and pull request template (#7269)
    • Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
    • Fix broken Contributors link in README.markdown (#7200)
    • Add title tag to item in RSS template (#7282)
    • More inclusive writing (#7283)
    • Document converter methods (#7289)
    • Add link tag to item in RSS template (#7291)
    • Add Isomer to showcase (#7300)
    • Added missing semicolon (#7306)
    • "This restricts you..." to "This restricts your" (#7307)
    • Add a link to Giraffe Academy's tutorial (#7325)
    • Grammar correction (#7327)
    • Document Jekyll Filters with YAML data (#7335)
    • Remove redundant instruction comment (#7342)
    • Minimize rendering count (#7343)
    • Update posts.md (#7360)
    • Add info how to deploy using pre-push git hook (#7179)
    • Textile is only supported through a converter plugin (#7003)
    • Add documentation for custom tag blocks (#7359)
    • Added 99inbound's Jekyll post to form resources (#7348)
    • Document page.dir and page.name (#7373)
    • Remove installation instructions with Homebrew (#7381)
    • Fix dead link and misleading prose (#7383)
    • Fix content management section (#7385)
    • Proposed re-wording of Sass note. :) (#7392)
    • Apply ruby official guide documents (#7393)
    • Fix group_by_exp filter example (#7394)
    • Adjust team page listings (#7395)
    • Update resources.md (#7396)
    • Update resources.md (#7397)
    • Remove alt attribute from a tags (#7407)
    • Fix grammatical error in permalinks.md (#7409)
    • Fix BASH code-block in ubuntu.md (#7420)
    • zlib is missing (#7428)
    • Include docs for {{ page.collection }} (#7430)
    • Permalink docs typo fixes (#7459)
    • Fixed unnecessary aticles and pronouns (#7466)
    • Grammatical correction (#7464)
    • Update resources.md (#7472)
    • Store SSL key and cert in site source (#7473)
    • Minor doc fixes (#7495)
    • Changed order of steps (#7503)
    • Hosting with AWS Amplify (#7510)
    • Fix typo in tutorial for converting existing site (#7524)
    • Add CloudSh to resource page. (#7497)
    • Check if var exists before include tag (#7530)
    • Added formX to form-backend resources (#7536)
    • Clarify docs on collections regarding the need for front matter (#7538)
    • Fix incorrect Windows path in themes.md (#7525)
    • Document where Jekyll looks for layouts in a site (#7564)
    • Mention CommonMark plugins (#7418)
    • Addresses bundle not found. (#7351)
    • Example of CircleCI deployment through CircleCI v2 (#7024)
    • v4.0 development post (#6934)
    • Release post for v3.8.0 (#6849)
    • Release Post for v3.6.3, v3.7.4 and v3.8.4 (#7259)

    Site Enhancements

    • Add @ashmaroli to Core Team listing (#7398)
    • Lnk to Tidelift in site's footer (#7377)
    • Link to OpenCollective backing (#7378
    • Link to sponsor listing in README (#7405)
    • Better Performance (#7388)

    release

    • Release v4.0.0.pre.alpha1 (#7574)
    Source code(tar.gz)
    Source code(zip)
  • v3.8.5(Nov 4, 2018)

  • v3.8.4(Sep 18, 2018)

  • v3.7.4(Sep 7, 2018)

  • v3.8.3(Jun 5, 2018)

  • v3.8.2(May 19, 2018)

  • v3.8.1(May 1, 2018)

  • v3.8.0(Apr 19, 2018)

    Development Fixes

    • Move duplicate code to a single private method (#6593)
    • Test against Ruby 2.5 on AppVeyor (#6668)
    • Replace simple regex with a native Ruby method (#6732)
    • Codeclimate: exclude livereload.js (#6776)
    • Add a cucumber feature to test link tag (#6777)
    • Fix theme gem feature (#6784)
    • Replace simple regex with equivalent Ruby methods (#6736)
    • Rewrite script/rubyprof as a Ruby script (#6813)
    • Add debug output to theme rendering (#5195)
    • Fix minitest deprecation warning in test (#6839)
    • Memoize Site#site_data (#6809)
    • Memoize document output extension (#6814)
    • Access document permalink attribute efficiently (#6740)
    • Minimize array allocations in the where filter (#6860)
    • Bump JRuby (#6878)
    • Assert existence of <collection>.files (#6907)
    • Bump Rubocop to 0.54.x (#6915)
    • Regenerate unconditionally unless its an incremental build (#6917)
    • Centralize require statements (#6910)
    • Bump to Rubocop 0.55 (#6929)
    • Refactor private method HighlightBlock#parse_options (#6822)

    Minor Enhancements

    • Two massive performance improvements for large sites (#6730)
    • Cache the list of documents to be written (#6741)
    • Allow Jekyll Doctor to detect stray posts dir (#6681)
    • Excerpt relative-path should match its path (#6597)
    • Remind user to resolve conflict in jekyll new with --force (#6801)
    • Memoize helper methods in site-cleaner (#6808)
    • Compute document's relative_path faster (#6767)
    • Create a single instance of PostReader per site (#6759)
    • Allow date filters to output ordinal days (#6773)
    • Change regex to sanitize and normalize filenames passed to LiquidRenderer (#6610)
    • Allow passing :strict_variables and :strict_filters options to Liquid's renderer (#6726)
    • Debug writing files during the build process (#6696)
    • Improve regex usage in Tags::IncludeTag (#6848)
    • Improve comment included in the starter index.md (#6916)
    • Store and retrieve converter instances for Jekyll::Filters via a hash (#6856)
    • Implement a cache within the where filter (#6868)
    • Store regexp in a constant (#6887)
    • Optimize computing filename in LiquidRenderer (#6841)

    Documentation

    • Adding the jekyll-algolia plugin to the list of plugins (#6737)
    • Added Premonition plugin to list of plugins (#6750)
    • Add document on releasing a new version (#6745)
    • Mention Talkyard, a new commenting system for Jekyll and others. (#6752)
    • Add 'jekyll-fontello' to plugins (#6757)
    • Install dh-autoreconf on Windows (#6765)
    • Fix common typos (#6764)
    • Fix documentation for {{ page.excerpt }} (#6779)
    • Update docs on permalink configuration (#6775)
    • Propose fix some typos (#6785)
    • Post: Say hello to Jekyll's New Lead Developer (#6790)
    • Add reference to Liquid to plugin docs (#6794)
    • Draft a release post for v3.7.3 (#6803)
    • Add missing step for gem-based theme conversion (#6802)
    • Update windows.md to explain an issue with jekyll new. (#6838)
    • Add Bundler Installation Instructions (#6828)
    • Describe difference between tags and categories (#6882)
    • Add jekyll-random plugin to docs (#6833)
    • Fixed typo in description of categories and tags (#6896)
    • Add missing ul-tag (#6897)
    • Add liquid tag plugin jekyll-onebox for html previews (#6898)
    • Add jekyll-w2m to plugins (#6855)
    • Fix tutorials navigation HTML (#6919)
    • Arch Linux installation troubleshoot (#6782)
    • Docs: Install Jekyll on macOS (#6881)
    • Fix CodeClimate badges [ci skip] (#6930)
    • Update index.md (#6933)

    Site Enhancements

    • Remove links to Gists (#6751)
    • Always load Google Fonts over HTTPS (#6792)
    • Always load analytics.js over HTTPS (#6807)

    Bug Fixes

    • Append appropriate closing tag to Liquid block in an excerpt ### -minor (#6724)
    • Bypass rendering via Liquid unless required (#6735)
    • Delegated methods after private keyword are meant to be private (#6819)
    • Improve handling non-default collection documents rendering and writing (#6795)
    • Fix passing multiline params to include tag when using the variable syntax (#6858)
    • include_relative tag should find related documents in collections gathered within custom collections_dir (#6818)
    • Handle liquid tags in excerpts robustly (#6891)
    • Allow front matter defaults to be applied properly to documents gathered under custom collections_dir (#6885)
    Source code(tar.gz)
    Source code(zip)
  • v3.8.0.pre.rc2(Apr 12, 2018)

  • v3.8.0.pre.rc1(Apr 3, 2018)

  • v3.7.3(Feb 25, 2018)

  • v3.7.2(Jan 25, 2018)

    Development Fixes

    • CI: Test against Ruby 2.5.0 (#6664)
    • Bump rdoc to 6.0 (#6600)
    • Lint file and bump theme dependencies (#6698)
    • Write a Rubocop Cop to ensure no #p or #puts calls get committed to master. (#6615)
    • Remove redgreen gem (#6720)

    Site Enhancements

    • Display latest version in header (#6676)
    • Update version in config.yml via YAML load / dump (#6677)

    Documentation

    • Fix: Add note about posts in context of collections_dir (#6680)
    • Update deploy-script in documentation (#6666)
    • Add note about naming of collections_dir (#6703)
    • Update installation.md (#6694)
    • Add jekyll-html to plugins. (#6654)
    • Update plugins.md (#6716)
    • Release v3.7.1 (#6695)

    Bug Fixes

    • inform that symlinks are not allowed in safe mode (#6670)
    • Glob scope path only if configured with a pattern (#6692)
    • Add gem "wdm" to all newly generated Gemfiles (#6711)
    • Fix timezone incosistencies between different ruby version (#6697)
    • Refactor collections_dir feature for consistency (#6685)

    Minor Enhancements

    • Require external library only if necessary (#6596)
    Source code(tar.gz)
    Source code(zip)
  • v3.7.0(Jan 2, 2018)

    Minor Enhancements

    • Add LiveReload functionality to Jekyll. (#5142)
    • Add Utils::Internet.connected? to determine whether host machine has internet connection. (#5870)
    • Disable default layouts for Pages with a layout: none declaration (#6182)
    • Scope path glob (#6268)
    • Allow the user to set collections_dir to put all collections under one subdirectory (#6331)
    • Upgrade to Rouge 3 (#6381)
    • Allow URL filters to work directly with documents (#6478)
    • filter relative_url should keep absolute urls with scheme/authority (#6490)
    • .sass-cache doesn't always land in options[&#39;source&#39;] (#6500)
    • Allow plugins to modify the obsolete files. (#6502)
    • Add latin mode to slugify (#6509)
    • Log Kramdown warnings if log level is WARN (#6522)
    • Add an option to configure kramdown warning output (#6554)
    • Add json extension to list of directory indices (#6550)
    • Dependency: Bump jekyll-watch to 2.0 (#6589)
    • Remove paginate check (#6606)
    • update classifier-reborn to 2.2.0 (#6631)
    • Switch to an actively-maintained TOML parser. (#6652)
    • Do not coerce layout paths in theme-gem to the source directory (#6603)

    Bug Fixes

    • Raise when theme root directory is not available (#6455)
    • Avoid block parser warning in SmartyPants (#6565)
    • Fail gracefully if "sass" gem cannot be loaded (#6573)
    • return correct file in dir if dir has same name as file (#6569)
    • Register reload hooks in Server#process (#6605)
    • Memoize path to metadata file (#6602)
    • Use require_relative to load Jekyll classes (#6609)

    Development Fixes

    • Added direct collection access to future collection item feature test(#6151)
    • add failing test for non-utf8 encoding (#6339)
    • Upgrade to Cucumber 3.0 (#6395)
    • Provide a better default hash for tracking liquid stats (#6417)
    • Add configuration for first-timers bot (#6431)
    • Do not linkify escaped characters as PRs in History (#6468)
    • Rely on jekyll-mentions for linking usernames (#6469)
    • Update first-timers-issue-template.md (#6472)
    • Enable Lint/RescueWithoutErrorClass Cop (#6482)
    • Clean up Rubocop config (#6495)
    • Use Gem to discover the location of bundler (#6499)
    • Remove unnecessary encoding comment (#6513)
    • Suggest using Rubocop to automatically fix errors (#6514)
    • Assert raising Psych::SyntaxError when&#34;strict_front_matter&#34;=&gt;true (#6520)
    • Use Kernel#Array instead of explicit Array check (#6525)
    • RuboCop: Enable Style/UnneededCapitalW cop (#6526)
    • Refactor method to reduce ABC Metric size (#6529)
    • Remove parentheses around arguments to raise (#6532)
    • Use double-quotes around gem name (#6535)
    • Dependencies: upgrade to toml 0.2.0 (#6541)
    • Lock to cucumber 3.0.1 on Ruby 2.1 (#6546)
    • Bump JRuby version in Travis config (#6561)
    • Rescue from Psych::SyntaxError instead of SyntaxError after parsing YAML(#5828)
    • Drop forwarding to private methods by exposing those methods as public(#6577)
    • Upgrade pygments to v1.x (#5937)
    • Bump yajl-ruby (#6582)
    • Cleanup test_redcarpet.rb (#6584)
    • Add PageWithoutAFile class from jekyll plugins (#6556)
    • Cleanup LiveReloadReactor (#6607)

    Documentation

    • Add formester to the list of saas form backend (#6059)
    • GitHub Pages instructions (#6384)
    • Improve documentation for theme-gem installation (#6387)
    • Fix diff syntax-highlighting (#6388)
    • Update instructions (#6396)
    • Fix code-block highlighting in docs (#6398)
    • Filtering Posts with categories, tags, or other variables (#6399)
    • Fixes formatting on pre-formatted text. (#6405)
    • Added new tutorial to tutorials section on docs (#6406)
    • Updates (#6407)
    • Fix collections_dir example (#6408)
    • Renaming duplicate of "Scenario 6" to "Scenario 7" (#6411)
    • Mark collection_dir as unreleased (#6412)
    • Fix link to SUPPORT (#6415)
    • Fix list appearance by adding missing ol tag (#6421)
    • Explain how to override output collection index page (#6424)
    • Added github-cards to the list of plugins (#6425)
    • CoC violation correspondants (#6429)
    • Add a note about Liquid and syntax highlighting (#6466)
    • Remove sudo from macOS troubleshooting instructions (#6486)
    • Add a note on :jekyll_plugins group in the docs (#6488)
    • Updated custom-404-page.md (#6489)
    • Fix a few minor issues in the docs (#6494)
    • Add jekyll-pwa-plugin (#6533)
    • Remove Jekyll-Smartify from plugins directory (#6548)
    • Updated Jekyll-Pug listing to include official website (#6555)
    • Remove link to severly outdated asset plugin (#6613)
    • Default time zone depends upon server (#6617)
    • Add disqus-for-jekyll to plugins. (#6618)
    • Update "Requirements" for Ruby version (#6623)
    • Fix: Update link to i18n_filter plugin (#6638)
    • Correct WordPress capitalization (#6645)
    • Add Tweetsert, Stickyposts, Paginate::Content (#6651)
    • Post: Jekyll 3.7.0 released (#6634)

    Site Enhancements

    • Add special styling for code-blocks run in shell (#6389)
    • Add post about diversity (#6447)
    • Update list of files excluded from Docs site (#6457)
    • Update site History (#6460)
    • Add default twitter card image (#6476)
    • Update normalize.css to v7.0.0 (#6491)
    • Optimize images (#6519)
    • Back to original main navigation (#6544)
    • Styles: mobile-docs select element (#6545)
    • Search with DocSearch by @Algolia (#6557)
    • Site header redesign (#6567)
    • Move logo above site navigation on small screens (#6570)
    • Docs: Include version badge for latest features (#6574)
    • Use version-badge on an existing feature intro (#6575)
    • Add jekyll-category-pages plugin (#6632)
    • Improve docs styling for code to be run in shell (#6641)
    • Fix permalink icon markup in news-item layout (#6639)
    Source code(tar.gz)
    Source code(zip)
  • v3.6.2(Oct 21, 2017)

    Development Fixes

    • Update Rubocop to 0.51.0 (#6444)
    • Add test for layout as string (#6445)

    Bug Fixes

    • Problematic UTF+bom files (#6322)
    • Always treat data.layout as a string (#6442)
    Source code(tar.gz)
    Source code(zip)
  • v3.6.1(Oct 21, 2017)

    Documentation

    • Doc y_day in docs/permalinks (#6244)
    • Update frontmatter.md (#6371)
    • Elaborate on excluding items from processing (#6136)
    • Style lists in tables (#6379)
    • Remove duplicate "available" (#6380)

    Development Fixes

    • Bump rubocop to use v0.50.x (#6368)
    Source code(tar.gz)
    Source code(zip)
Owner
Jekyll
Jekyll is a blog-aware, static site generator in Ruby.
Jekyll
A Python media index

pyvideo https://pyvideo.org is simply an index of Python-related media records. The raw data being used here comes out of the pyvideo/data repo. Befor

pyvideo 235 Dec 24, 2022
Tinkerer is a blogging engine/static website generator powered by Sphinx.

Tinkerer What is Tinkerer? Tinkerer is a blogging engine/static website generator powered by Sphinx. It allows blogging in reStructuredText format, co

Vlad Riscutia 307 Dec 06, 2022
A Python Static Website Generator

Version 0.8.9 Overview Hyde starter kit by merlinrebrovic is a really nice way to get started with hyde. Hyde layout for bootstrap by auzigog is also

Hyde - Static Website Generator 1.6k Jan 01, 2023
Hobby Project. A Python Library to create and generate static web pages using just python.

PyWeb 🕸️ 🐍 Current Release: 0.1 A Hobby Project 🤓 PyWeb is a small Library to generate customized static web pages using python. Aimed for new deve

Abhinav Sinha 2 Nov 18, 2021
A static website generator for people who enjoy the simpler things in life.

A static website generator for people who enjoy the simpler things in life.

Darren Mulholland 93 Dec 22, 2022
Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites.

Jekyll Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS,

Jekyll 45.8k Dec 31, 2022
A static website and blog generator

Nikola, a Static Site and Blog Generator In goes content, out comes a website, ready to deploy. Why Static Websites? Static websites are safer, use fe

Nikola, a static site generator 2.4k Jan 05, 2023
a static website generator to make beautiful customizable pictures galleries that tell a story

Prosopopee Prosopopee. Static site generator for your story. Make beautiful customizable pictures galleries that tell a story using a static website g

Bram 259 Dec 19, 2022
Kaktos is a python static site generator

Python static site generator κάκτος Kaktos is a python static site generator. The idea is create a simple static site generator for people that don't

Paulo Coutinho 4 Sep 21, 2022
AutoLoader is a plugin for Pelican, a static site generator written in Python.

AutoLoader AutoLoader is a plugin for Pelican, a static site generator written in Python. AutoLoader is designed to autoload the other Pelican plugins

2 Nov 07, 2022
The lektor static file content management system

Lektor Lektor is a static website generator. It builds out an entire project from static files into many individual HTML pages and has a built-in admi

Lektor CMS 3.6k Dec 29, 2022
Simple Static Site Inductor Made in Python

sssimp 🐍 Simple Static Site Inductor Made in Python How to use Create a folder called input, inside create a folder called content and an empty file

Tina 11 Oct 09, 2022
Makes dynamic linked shit "static". Amazing

static.py What does it do? You give it a dynamically linked binary and it will make a directory that has all the dependencies (recursively). It also f

Stephen Tong 24 Dec 16, 2022
Minimal Static Blog Generator in Python

Minimal Static Blog Generator in Python Simple static blog generator, written in Python, with the top Lighthouse scores. Missing 'Best Practices' and

Danial Goodwin 1 Apr 20, 2022
Static site generator for designers. Uses Python and Django templates.

News Cactus 3 is out! We're happy to announce Cactus 3. It brings a set of great new features like asset fingerprinting, an asset pipeline, pretty url

3.4k Jan 01, 2023
A python-based static site generator for setting up a CV/Resume site

ezcv A python-based static site generator for setting up a CV/Resume site Table of Contents What does ezcv do? Features & Roadmap Why should I use ezc

Kieran Wood 5 Oct 25, 2022
Create a simple static website using python and jinja templates.

Simple Static Create a simple static website using python and jinja templates. Simple Static has four pieces: A build command that renders jinja templ

Hartley Brody 6 Sep 05, 2022
A declarative website generator designed for high-quality websites, with a focus on easy maintenance and localization.

Grow Grow is a declarative tool for rapidly building, launching, and maintaining high-quality static HTML. Easy installation Jinja template engine Con

Grow 385 Dec 03, 2022
barely is a lightweight, but highly extensible static site generator written in pure python.

barely is a lightweight, but highly extensible static site generator. Explore the docs » Quickstart · See available Plugins · Report Bug · Request Fea

40 Dec 01, 2022
Project documentation with Markdown.

MkDocs Project documentation with Markdown. View the MkDocs documentation. Project release notes. Visit the MkDocs wiki for community resources, inclu

MkDocs 15.6k Jan 05, 2023