
GitHub pages is now running Jekyll 3 - richerlariviere
https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
======
Animats
OK, a standard dialect of Markdown.

In the beginning was RUNOFF from MIT, which originally had about the power of
Markdown. More features were added, and it became nroff, then troff, the
ditrofff, and macro systems were added on top of it. It became too hard to use
for casual work.

Then there was TeX, which was a saner approach to what troff did. Macro
systems were added on top of it. It became too hard to use for casual work.

Then there was HTML, which started out with about the power of Markdown. More
features were added. It became too hard to use for casual work.

Then there was BBcode, which started out with about the power of original
HTML. It didn't gain many features, and is still widely used.

Then there was Markdown, which started out with about the power of original
HTML. More features were added. Macros have been added by at least five
people, but haven't quite gone mainstream yet. When Markdown gets macros, it,
too, will be too hard to use for casual work.

Next!

~~~
kevin_thibedeau
That's why I prefer ReST. More powerful syntax out of the box with a standard
extension scheme so you don't end up with the mess of all the different
incompatible Markdown implementations. With the internal structure exposed as
an XML format (rst2xml) it is easy to transform documentation into a wide
variety of formats that docutils or Sphinx don't handle directly.

~~~
avn2109
A lot of that sounds good but you lost me at XML.

~~~
kevin_thibedeau
The XML dump exposes the parsed document structure so you aren't forced to use
the usually limited output options of the native ReST or Markdown tools.
Instead of generating the lackluster output from latexpdf you can transform
from ReST -> Docbook -> XSL-FO -> PDF, or other targets like HTML, WordML,
DocX, or ODF. Manipulating documents is what XML is really for. It gets a bad
rap because it is abused so much for storing data, scripting, and other silly
stuff.

------
bigmanwalter
I just found out about Lektor the other day.
[https://www.getlektor.com/](https://www.getlektor.com/) It's like Jekyll
meets WordPress, written in Python by Armin Ronacher. He's the guy who wrote
the extremely popular Python microframework, Flask.

It's a static site generator with a slick React powered admin interface
intended for editors (non-programmers) to use. It runs locally like any good
static site generator should and runs on Windows, OSX and Linux. With the
click of a save button, it'll upload your statically generated site to any ftp
or rsync server you choose ;)

Took me only 2 hours to have it building a page with a nav menu, localization,
and a slick admin interface even though I had never even used Python before!!

All you do is declare your models, place references to them in your templates,
and it handles the rest for you automatically.

The project is still a little rough around the edges as it was only released
in December, but I'm already falling in love with it and I'm really excited to
see how it changes the web once it gets built out a bit more.

Non-programmer editable static sites is a huge deal!!!!

~~~
julianz
Lektor looks really cool. For the life of me I don't understand why it's only
in Python 2.7 though.

~~~
jsmthrowaway
Armin has historically been one of the most vocal of those critical of Python
3, and has even compared it to XHTML. He was pressured into porting Jinja2 and
it cooled him on Python, if you read older posts of his. The answer should be
pretty clear when you notice that Lektor fails on a print() not having
parentheses (and not, say, a dependency).

Unicode in Python 3 is his problem, and there was one post I can't find on
mobile where he started ranting about POSIX and Unix for some unclear reason.
I can't follow him on a lot of it, as much as I respect his work, because if
you read objectively it's pretty clear the reasoning is often there to support
a predisposition. Meanwhile, my whole stack is Python 3 and I'm having a grand
old time less the pieces where I had to sub in shittier libraries, and not a
single problem Armin has ever raised about Python 3 has hit us. Not one. Most
of it boils down to Unicode issues that have been issues outside of Python for
20 years.

This isn't to say Python 3 is perfect. (Far from it.)

He also often writes what I like to call the "Alex Gaynor Conclusion," which
is tediously enumerating in the conclusion why you're going to call him wrong
in his opinions which somewhat minimizes effectively disagreeing with him.
There is a subculture of people who do this, and it mildly bugs me. Nothing
against him; just an observation.

Anyway, port it and drop a patch, and I'll buy you scotch. I know better than
to make any request other than that, and it's cooled _me_ on using Armin's
software in general (to my disappointment; Armin's Web stack has been a
trusted friend through four different employers, from Werkzeug on up, and it's
a massive bummer to see Lektor confirm suspicion).

------
tdicola
Is there a list of new features in Jekyll 3 vs. 2? I looked at Jekyll's docs
and can't seem to find anything. It has a nice guide of how to move from 2 to
3, but is there any succinct list of what new stuff you can do in 3, if
anything?

edit: Actually, this looks promising:
[https://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/](https://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/)

~~~
kmfrk
The incremental building of the site is big, because it was beginning to
become a concern just how well you could manage a large site with many posts
and contributors.

On top of that, Liquid is finally being updated to 3.0, which comes with a
couple of neat features.

It’s also nice to finally see an end to the Markdown discussion.

------
Relys
Absolutely love Jekyll and GitHub Pages for hosting project documentation and
personal websites. Just wish GH Pages would support SSL. :(

~~~
tunesmith
I don't know much about GitHub Pages, but if it's only for static pages, then
why do you need SSL? I mean if you're not going to be sending sensitive
dynamic data. Is it so people can't snoop the contents of your pages over
request/response on a network?

~~~
bdcravens
Google uses https as a signal of quality, and Chrome will start shaming sites
that aren't:

[http://motherboard.vice.com/read/google-will-soon-shame-
all-...](http://motherboard.vice.com/read/google-will-soon-shame-all-websites-
that-are-unencrypted-chrome-https)

------
geraldbauer
Great news. Congratulations. If anyone is interested in learning more about
Jekyll I've put together a link collection called Awesome Jekyll @ Planet
Jekyll [1] - it also includes a section on the history (evolution) of GitHub
Pages. Cheers. [1] [https://github.com/planetjekyll/awesome-
jekyll](https://github.com/planetjekyll/awesome-jekyll)

~~~
hk__2
Why are you using a README to display this list instead of GitHub Pages?

~~~
minimaxir
You can't easily do pull requests on a GitHub Pages static file. (You'd have
to edit the source.)

~~~
benbalter
They work just like any other Markdown file, and you can include a link in the
rendered site to edit. See [http://ben.balter.com/2015/09/13/github-pages-
edit-button/](http://ben.balter.com/2015/09/13/github-pages-edit-button/).

~~~
minimaxir
Ah, I am referring to the use case where the site is rendered clientside via
Jekyll, then uploaded to the _x_.github.io repo. (which lets you use plugins,
among other things, which is why I thought that was the more frequent use
case). Not the loading-markdown-directly workflow.

------
nomided
> Starting May 1st, 2016, GitHub Pages will only support Kramdown

Kramdown has strange behavior.
[http://stackoverflow.com/questions/23751917/how-do-you-
disab...](http://stackoverflow.com/questions/23751917/how-do-you-disable-
tables-in-kramdown)

------
programminggeek
Jekyll 3 is pretty great. If you need any help getting your site hosted, I'm
working on a hosting setup that is way easier than S3 or any other option out
there.

[http://www.statichosting.co](http://www.statichosting.co)

We are in private beta and are looking for people to try it out and give us
feedback. We think it's great and are looking for early adopters who want an
awesome static hosting experience.

~~~
kjaer
Pretty cool! If you can set up some sort of integration with Travis (which
itself integrates nicely with GitHub), _and_ you set up SSL, HTTP/2, good
caching policies etc., you're golden.

~~~
programminggeek
I'll add that to the list of features.

Our focus is on simplicity and there are only two of us, so adding features in
a way that fit our limited resources and vision is a bit tough.

We are working on SSL and making sure we have good caching policies by
default. Travis and GitHub integration are things we haven't looked at yet,
but will.

If you are looking for something right away before we have all those features,
you might check out netlify. They already support a lot of those features and
might be a better fit in the short term.

------
tylercubell
Shameless plug: Once you're on Jekyll 3, check out
[http://jekyllthemes.io](http://jekyllthemes.io) to upgrade your theme too.

~~~
geraldbauer
For more (alternative) Jekyll themes see the Dr. Jekyll's Themes directory [1]
it also includes a command line package manager and setup wizard. Cheers.

PS: The site is build - of course - with Jekyll and GitHub Pages ;-) and open
source [2]. Did you know that you can even use git submodules with GitHub
Pages? Works great.

[1] [http://drjekyllthemes.github.io](http://drjekyllthemes.github.io) [2]
[https://github.com/drjekyllthemes/drjekyllthemes.github.io](https://github.com/drjekyllthemes/drjekyllthemes.github.io)

------
scrollaway
Hmm, I hate to be a downer but this is a bit of a disappointing announcement
for a major upgrade - basically, one very minor addition and a bunch of
features removed - not that they were needed/widely used, but there's nothing
else to show for it. Am I missing something?

Also it's a bit unfortunate there's still no easy way to do site translation
in Jekyll.

Anyway, well done on the upgrade. Love jekyll.

~~~
WorldMaker
A lot of the Jekyll 3 changes [1] thus far are focused on making the
development life easier: faster (incremental) local builds and a lighter,
easier to install stack with fewer dependencies (no more native library
dependencies out of the box, no more dependencies on Python and Node by
default).

Correct, nothing really mind blowing if you have all of it already set up and
a relatively small Jekyll site, but big news for new users (especially on
Windows where the native libraries and multi-language support have been bigger
hurdles) and for people with large sites both in locally developing and
debugging them and also in Github deployment times.

[1]
[https://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/](https://jekyllrb.com/news/2015/10/26/jekyll-3-0-released/)

------
tedkimble
Good news. We're using Jekyll 3 at Static Website Manager [1], but we're
moving to support older specific versions as well as custom Gemfiles.

[1]:
[https://www.staticwebsitemanager.com](https://www.staticwebsitemanager.com)

Are there any features the community would love to see offered in a Jekyll-
based CMS?

~~~
technion
My Jekyll work flow tends to involve: Write a blog. Publish. Recognise horrid
markdown bugs. Go and fix already published blog.

I appreciate there are better workflows, but as a Windows user I'm not going
to install Jekyll to publish locally and test, nor is my blog big enough to
justify a test environment.

The "drafts" feature basically just takes a draft and publishes it. What would
really make life easier is it the drafts feature would "publish this blog, but
don't update the front page to link it". I could look at it knowing the URL,
and get it right first.

~~~
tedkimble
That's my main use case. I've got my personal blog [1] setup as a Static
Website Manager repository and connected to my personal AWS S3 bucket.

Whenever I need to make a little change I can edit locally in my editor of
choice, commit and push to SWM where I can preview the changes before merging
to my production bucket (all without installing Jekyll locally).

If I don't have my machine, I can also just login, edit the text and then
follow the same preview/merge to deploy workflow.

[1]: [http://www.theodorekimble.com](http://www.theodorekimble.com)

------
smartial_arts
Frankly, Github did a very poor job at communication this breaking change.

I only recently discovered that most of my post got broken.

Apparently it's no longer legit to use "#Title", you need to "# Title" (and
god knows what else).

Linking is broken too - in Jekyll 2 there was no difference if a URL ended in
"/" or not - you were just taken to the page, now this is a massive, although
fixable pain (see
[https://github.com/jekyll/jekyll/issues/4440](https://github.com/jekyll/jekyll/issues/4440))

As a result my site experienced 500% drop in organic search referrals from
Google.

I got no single email from then announcing this change. Very unhappy with how
github handled it.

------
chown
Shameless plug: LightPaper has some nice support for Jekyll rendering:
[http://lightpaper.42squares.in/?ref=hkj](http://lightpaper.42squares.in/?ref=hkj)
among other great features.

------
slantedview
With this change, Github has made Rouge the only (and mandatory?) highlighter
supported. This is a problem for sites that disable Jekyll highlighting in
favor of using something like highlight.js. It appears right now that there is
no way to disable Rouge which is causing conflicts with my sites that use
javascript highlighting.

~~~
geraldbauer
FYI: You can disable Rouge - just set the Kramdown highlighter to nothing in
the Jekyll _config.yml. That's all.

~~~
slantedview
Attempting to disable the highlighter gets you a page build warning:

 _You are attempting to use the 'none' highlighter, which is currently
unsupported on GitHub Pages. Your site will use 'rouge' for highlighting
instead._

------
yakshaving_jgt
Fun fact: GH Pages changed the way trailing slashes work, so all links to my
site dotted around the Internet broke as soon as I made a change. I had to
update all the permalinks in my post to explicitly include the trailing slash.

Thanks GH Pages!

------
z1mm32m4n
I was a little surprised to see that GitHub is essentially playing favorites
with Markdown rendering engines. Is there a discussion somewhere that outlines
some of the reasoning behind this pick?

~~~
benbalter
> Is there a discussion somewhere that outlines some of the reasoning behind
> this pick?

Yes. The decisions was actually made on the open source GitHub Pages Gem repo,
based on both user feedback and actual usage stats:
[https://github.com/github/pages-
gem/issues/179](https://github.com/github/pages-gem/issues/179).

------
edem
Does this mean that I can generate github pages from the Wiki pages as well? I
think that would be the most needed feature.

------
zammu
For everyone who's thinking "It would be great if Github Pages supported X", I
am building
[https://zammu.in/?invitation_code=HACKERNEWS](https://zammu.in/?invitation_code=HACKERNEWS)
. It currently supports Middleman, Hugo, Hexo, Octopress and Jekyll. I am
planning to add more to the list.

For every Git push to the master branch it builds and deploys the generated
site to Github Pages.

------
tuananh
Recently tried Hugo. The speed is amazingly fast. Much much faster than
jekyll.

~~~
geraldbauer
FYI: I've put together a static site showcase called Stay Static [1] that
builds the same site (w/ pages, posts and links) for easy comparision with
Jekyll, Middleman, Hugo [2], etc.

Hugo is great. The Go template language is somewhat unconventional and does
not yet support nested layouts (as do Jekyll, Middleman, etc.), for example.
Cheers.

[1] [http://staystatic.github.io](http://staystatic.github.io) [2]
[https://github.com/staystatic/hugo](https://github.com/staystatic/hugo)

~~~
tuananh
nice. the theme looks good too. i think will fork it to rebuild my site.

------
smaili
Slightly off topic but is RoR still the web framework of choice for
developers? Could be just me but it seems most unicorns still continue to use
it, even with all of the Python/Node/PHP frameworks out there.

~~~
teen
If I were to guess I'd say no, with the majority being Node.js, then a mixture
of Rails, Python, Go, and Erlang for the rest. As a note, Jekyll isn't using
Rails, it's just using Ruby.

------
kevinSuttle
Figures I just switched my site to Ghost.

~~~
wanda
Ghost is a great platform, very easy to extend and you can host it for free on
Openshift[1].

You can use ghost-render[2] to publish the blog as a static site if you want
to stick your blog on Github Pages.

[1]: [https://github.com/openshift-quickstart/openshift-ghost-
quic...](https://github.com/openshift-quickstart/openshift-ghost-quickstart)

[2]: [https://github.com/mixu/ghost-render](https://github.com/mixu/ghost-
render)

------
hitlin37
are there any sample pages running with Jekyll 3 to see?

