Skip to content

Instantly share code, notes, and snippets.

@imathis
Last active December 15, 2015 04:59
Show Gist options
  • Save imathis/e9c2ee2406e93c4269e8 to your computer and use it in GitHub Desktop.
Save imathis/e9c2ee2406e93c4269e8 to your computer and use it in GitHub Desktop.
A preview of what is coming for Octopress 3.0

Octopress Changelog

a work in progress

3.0 (prerelease)

The long awaited 2.1 will be 3.0 instead. Here's why.

Framework

New cascading configuration system

  • Rack, Rake, and Compass all read configurations from _config/ yaml files now.
  • User configurations are now separate from Octopress default configurations (_config.yml merge conficts are a thing of the past)
  • New Octopress default configurations live in _config/defaults/*.yml
  • User configurations override defaults and live in _config/site.yml and _config/deploy.yml.
  • Configs are merged and _config.yml is generated at runtime for Jekyll.
  • Compass's config.rb still maintains some of it's own configuration for requiring Compass plugins and other Compass related features.

New Guard watch/preview workflow

Now Jekyll, Compass/Sass, and Javascript assets are watched and compiled with Guard.

  • Only template changes trigger Jekyll compilation (md, markdown, textile, html, haml, slim, xml)
  • Jekyll ignores changes to static assets (any file extension not listed above). Changed asset files are copied over into the public directory by Guard.
  • Compass uses guard-compass to watch stylesheets

New modular Javascript system

  • Stitch.rb enables easy integration of modular and non-modular javascript
  • require-js.yml is where js dependencies and load order can be managed
  • In production, javascripts are concatenated, uglified and fingerprinted for cache busting.
  • In development, javascripts are only concatenated into an all.js file.
  • Coffeescript, Mustache, Eco, and Tmpl are also supported.
  • All of this is integrated into the new Guard workflow.

Plugins

New plugins

  • include - backwards compatible and way more powerful. Allows cascading includes and graceful failure, post conditional and ternary expressions.
  • capture - backwards compatible and way more powerful. Assigns and concatenates, supports post conditional and ternary expressions.
  • assign - backwards compatible and way more powerful. Assigns and concatenates, supports post conditional and ternary expressions.
  • return - like assign, but prints the result rather than assigning it to a varaiable.
  • wrap - like include, but it allows you to wrap templates with html if the include is successful.
  • config_tag - outputs configuration (from site.yml) to html tags for unobtrusive configuration of javascript plugins from yaml.
  • javascript_tag - outputs the script tag for the fingerprinted, concatenated, uglifed javascript file.

Read more about the new assign, capture, return, include and wrap tags.

Code highlighting

  • New options
    • mark - visually highlight any line or group of lines (all code plugins)
    • start - choose a starting line number for a code snippet (all code plugins)
    • end - choose a line to cut off a code snippet (include_code and gist_tag)
    • range - specify a start and end line for a code snippet (include_code and gist_tag)
  • All code plugins have been unified with more consistant options
  • Gist tag plugin now fetches raw code, parses with pygments and caches it locally instead embedding Gist JS

Other plugin updates

  • Added default support for guag.es analytics (#827)
  • Image tag adds support for relative urls
  • Video tag adds support for all HTML5 video formats (mp4, ogv, webm) as well as relative urls

Other framework updates

  • Improvements to SCSS which styles <sup> and <sub> tags (#426)
  • Added list of categories into atom.xml (#421)
  • rake preview binds to IP and HOST, which can be set through OCTOPRESS_IP and OCTOPRESS_HOST, respectively (#780)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment