<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.2.1">Jekyll</generator><link href="http://cloudcannon.com/feed.xml" rel="self" type="application/atom+xml" /><link href="http://cloudcannon.com/" rel="alternate" type="text/html" /><updated>2017-01-06T17:48:49+13:00</updated><id>http://cloudcannon.com/</id><title>CloudCannon</title><subtitle>The Cloud CMS for Jekyll. Build static or Jekyll websites, have your team and clients update inline with the CloudCannon GUI.</subtitle><entry><title>7 Free Jekyll Templates</title><link href="http://cloudcannon.com/announcements/2016/12/05/free-jekyll-templates/" rel="alternate" type="text/html" title="7 Free Jekyll Templates" /><published>2016-12-05T00:00:00+13:00</published><updated>2016-12-05T00:00:00+13:00</updated><id>http://cloudcannon.com/announcements/2016/12/05/free-jekyll-templates</id><content type="html" xml:base="http://cloudcannon.com/announcements/2016/12/05/free-jekyll-templates/">&lt;p&gt;Starting a new Jekyll site from scratch can be a pain. It’s often easier to start with an existing site and modify for your use case. To help get you started on your next project we’ve created seven high quality Jekyll templates for common use cases. Even better they’re all optimised for use with &lt;a href=&quot;https://cloudcannon.com&quot;&gt;CloudCannon&lt;/a&gt;. The templates are licensed under MIT so you’re free to use and modify them however you’d like.&lt;/p&gt;

&lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;/css/lightslider.css&quot; /&gt;

&lt;link rel=&quot;stylesheet&quot; href=&quot;https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css&quot; /&gt;

&lt;style&gt;

&lt;/style&gt;

&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;

&lt;p&gt;To use the new templates in CloudCannon, create a new site and select the “Choose a Template” option.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/7-free-jekyll-templates/choose.jpeg&quot; alt=&quot;Choose a jekyll template&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From here you can browse through the templates and select your favourite.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/7-free-jekyll-templates/templates.jpeg&quot; alt=&quot;List of jekyll templates&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These templates also work without CloudCannon, just fork the template repository on GitHub or download a zip.&lt;/p&gt;

&lt;p&gt;Some of you may be wondering why we didn’t use the new Jekyll theme functionality for the templates. We may convert them to themes in the future, for now we want to encourage people to look through and modify the source code on their site.&lt;/p&gt;

&lt;h2 id=&quot;the-templates&quot;&gt;The Templates&lt;/h2&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/urban-jekyll-template&quot;&gt;Urban&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://teal-worm.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/CloudCannon/urban-jekyll-template&quot;&gt;Urban&lt;/a&gt; is the perfect starting point for your Agency website.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Show off your latest work on the portfolio page.&lt;/li&gt;
  &lt;li&gt;Talk about the latest trends in the industry on the blog.&lt;/li&gt;
  &lt;li&gt;Get new business through the contact form.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/urban1.jpeg&quot; alt=&quot;Urban Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/urban2.jpeg&quot; alt=&quot;Urban Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/urban3.jpeg&quot; alt=&quot;Urban Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/urban4.jpeg&quot; alt=&quot;Urban Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/urban5.jpeg&quot; alt=&quot;Urban Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/justice-jekyll-template&quot;&gt;Justice&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://grey-grouse.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/CloudCannon/justice-jekyll-template&quot;&gt;Justice&lt;/a&gt; is a law firm themed template for Jekyll which can be modified to fit any local business.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Show testimonials to add credibility to the business.&lt;/li&gt;
  &lt;li&gt;Your clients post advice on their blog.&lt;/li&gt;
  &lt;li&gt;Inbound leads get in touch on the contact form.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/justice1.jpeg&quot; alt=&quot;Justice Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/justice2.jpeg&quot; alt=&quot;Justice Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/justice3.jpeg&quot; alt=&quot;Justice Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/justice4.jpeg&quot; alt=&quot;Justice Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/justice5.jpeg&quot; alt=&quot;Justice Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/cause-jekyll-template&quot;&gt;Cause&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://clean-oryx.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/CloudCannon/cause-jekyll-template/tree/master&quot;&gt;Cause&lt;/a&gt; is the perfect way for a non-profit  to get started with Jekyll.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Build a community through a mailing list.&lt;/li&gt;
  &lt;li&gt;Accept donations from around the world.&lt;/li&gt;
  &lt;li&gt;Post the latest milestones to your community.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/cause1.jpeg&quot; alt=&quot;Cause Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/cause2.jpeg&quot; alt=&quot;Cause Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/cause3.jpeg&quot; alt=&quot;Cause Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/cause4.jpeg&quot; alt=&quot;Cause Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/cause5.jpeg&quot; alt=&quot;Cause Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/frisco-jekyll-template&quot;&gt;Frisco&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://brave-submarine.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;Build a marketing site for your app with &lt;a href=&quot;https://github.com/CloudCannon/frisco-jekyll-template/tree/master&quot;&gt;Frisco&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add your team and write your company story.&lt;/li&gt;
  &lt;li&gt;Write about your latest release and findings in the blog.&lt;/li&gt;
  &lt;li&gt;Get customers using your app.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/frisco1.jpeg&quot; alt=&quot;Frisco Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/frisco2.jpeg&quot; alt=&quot;Frisco Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/frisco3.jpeg&quot; alt=&quot;Frisco Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/frisco4.jpeg&quot; alt=&quot;Frisco Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/frisco5.jpeg&quot; alt=&quot;Frisco Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/malt-jekyll-template&quot;&gt;Malt&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://whispering-boat.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/CloudCannon/malt-jekyll-template/tree/master&quot;&gt;Malt&lt;/a&gt; is a great starting point for an event website.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;List featured brands or speakers.&lt;/li&gt;
  &lt;li&gt;Embed Eventbrite so attendees can book tickets directly on the site.&lt;/li&gt;
  &lt;li&gt;Show photos from previous years in the photo gallery.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/malt1.jpeg&quot; alt=&quot;Malt Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/malt2.jpeg&quot; alt=&quot;Malt Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/malt3.jpeg&quot; alt=&quot;Malt Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/malt4.jpeg&quot; alt=&quot;Malt Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/malt5.jpeg&quot; alt=&quot;Malt Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/hydra-jekyll-template&quot;&gt;Hydra&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://proud-alligator.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;Market your product or SaaS business with &lt;a href=&quot;https://github.com/CloudCannon/hydra-jekyll-template/tree/master&quot;&gt;Hydra&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Show your pricing in an easy-to-read table.&lt;/li&gt;
  &lt;li&gt;Write about your industry in the blog.&lt;/li&gt;
  &lt;li&gt;Have potential customers get in touch on the contact page.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/hydra1.jpeg&quot; alt=&quot;Hydra Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/hydra2.jpeg&quot; alt=&quot;Hydra Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/hydra3.jpeg&quot; alt=&quot;Hydra Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/hydra4.jpeg&quot; alt=&quot;Hydra Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/hydra5.jpeg&quot; alt=&quot;Hydra Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3&gt;
	&lt;a href=&quot;https://github.com/CloudCannon/edition-jekyll-template&quot;&gt;Edition&lt;/a&gt;
	&lt;small&gt;&lt;a href=&quot;https://long-pig.cloudvent.net/&quot; target=&quot;_blank&quot;&gt;live demo &lt;i class=&quot;fa fa-external-link&quot; aria-hidden=&quot;true&quot;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/small&gt;
&lt;/h3&gt;

&lt;p&gt;Write documentation for your product using &lt;a href=&quot;https://github.com/CloudCannon/edition-jekyll-template/tree/master&quot;&gt;Edition&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Clearly document how you use your product.&lt;/li&gt;
  &lt;li&gt;Fully integrated search allows your customers to find the content they’re looking for.&lt;/li&gt;
  &lt;li&gt;Write a change log to keep customers up-to-date with the latest changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul class=&quot;photo-gallery&quot;&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/edition1.jpeg&quot; alt=&quot;Edition Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/edition2.jpeg&quot; alt=&quot;Edition Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/edition3.jpeg&quot; alt=&quot;Edition Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/edition4.jpeg&quot; alt=&quot;Edition Jekyll template&quot; /&gt;&lt;/li&gt;
	
		&lt;li&gt;&lt;img class=&quot;screenshot&quot; src=&quot;/img/blog/7-free-jekyll-templates/edition5.jpeg&quot; alt=&quot;Edition Jekyll template&quot; /&gt;&lt;/li&gt;
	
&lt;/ul&gt;

&lt;h3 id=&quot;what-do-you-need&quot;&gt;What do you need?&lt;/h3&gt;

&lt;p&gt;We really enjoyed making these templates and we hope they’re useful for you. We’d love to hear how you’re using them!&lt;/p&gt;

&lt;p&gt;We’ll be making more templates in the future. Let us know what type of templates would be valuable for you in the comments below.&lt;/p&gt;

&lt;script src=&quot;/js/lightslider.js&quot;&gt;&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function () {
		$(&quot;.photo-gallery img&quot;).each(function() {
			var $this = $(this);
			var src = $this.attr('src');
			$this.parent().attr('data-thumb', src);
			$this.parent().attr('data-src', src);
		});

		$(&quot;.photo-gallery&quot;).lightSlider({
			gallery: true,
			item: 1,
			loop: true,
			thumbItem: 5,
			thumbMargin: 20,
			slideMargin: 0,
			enableDrag: false,
			currentPagerPosition: &quot;left&quot;,
		});
	});
&lt;/script&gt;</content><author><name>mike</name></author><category term="Announcements" /><summary>Starting a new Jekyll site from scratch can be a pain. It’s often easier to start with an existing site and modify for your use case. To help get you started on your next project we’ve created seven high quality Jekyll templates for common use cases. Even better they’re all optimised for use with CloudCannon. The templates are licensed under MIT so you’re free to use and modify them however you’d like.</summary></entry><entry><title>Officially Out of Jekyll Beta</title><link href="http://cloudcannon.com/announcements/2016/08/31/officially-out-of-jekyll-beta/" rel="alternate" type="text/html" title="Officially Out of Jekyll Beta" /><published>2016-08-31T00:00:00+12:00</published><updated>2016-08-31T00:00:00+12:00</updated><id>http://cloudcannon.com/announcements/2016/08/31/officially-out-of-jekyll-beta</id><content type="html" xml:base="http://cloudcannon.com/announcements/2016/08/31/officially-out-of-jekyll-beta/">&lt;p&gt;Today marks a huge milestone for CloudCannon. We’ve finished the Jekyll beta, making Jekyll and plugins available to all users on every plan. The latest release also includes some requested features and more Jekyll configuration.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/officially-out-of-jekyll-beta/logos.png&quot; alt=&quot;CloudCannon and Jekyll logos&quot; srcset=&quot;/img/blog/officially-out-of-jekyll-beta/logos.png 800w, /img/blog/officially-out-of-jekyll-beta/logos@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;plugins&quot;&gt;Plugins&lt;/h4&gt;

&lt;p&gt;Every new site created on CloudCannon from today is automatically built with Jekyll and supports custom plugins. To prevent breaking changes, existing sites need to create a &lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; for CloudCannon to build with Jekyll. New and existing static sites that do not use Jekyll are still supported in full.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;extension&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/building/plugins/&quot;&gt;Full documentation for Jekyll plugins&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;versions&quot;&gt;Versions&lt;/h4&gt;

&lt;p&gt;We’ve added support for all the latest versions of Jekyll, and have consolidated the way versions are set. The version is now set through a &lt;code class=&quot;highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt;. The default version for new Jekyll sites is &lt;strong&gt;3.2.1&lt;/strong&gt;. You can always check what version of Jekyll is active on the &lt;em&gt;Status&lt;/em&gt; section.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;history&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/building/versions/&quot;&gt;Full documentation for Jekyll versions&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;configuration&quot;&gt;Configuration&lt;/h4&gt;

&lt;p&gt;Jekyll has a number of command line options for builds. Setting these in the new &lt;em&gt;Site Settings&lt;/em&gt; / &lt;em&gt;Build&lt;/em&gt; section gives you more control and helps reproduce your local environment. The existing CloudCannon Optimisations and Jekyll Environment options have been moved to this section.&lt;/p&gt;

&lt;p&gt;The most notable options are &lt;code class=&quot;highlighter-rouge&quot;&gt;baseurl&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;source&lt;/code&gt;, and Jekyll’s other custom directory options. These options are now supported in full as command line options and specified in &lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;. The CloudCannon editing interface reads the &lt;code class=&quot;highlighter-rouge&quot;&gt;baseurl&lt;/code&gt; and custom directories and reacts seamlessly.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;settings&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/building/configuration/#image-elements&quot;&gt;Full documentation for build configuration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/officially-out-of-jekyll-beta/configuration.png&quot; alt=&quot;Site Settings Build Interface&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/officially-out-of-jekyll-beta/configuration.png 800w, /img/blog/officially-out-of-jekyll-beta/configuration@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h4 id=&quot;additional-features&quot;&gt;Additional Features&lt;/h4&gt;

&lt;p&gt;To complement Jekyll’s custom directories, we’ve created &lt;code class=&quot;highlighter-rouge&quot;&gt;uploads_dir&lt;/code&gt; to change the location that images uploaded in the editor are stored. By default it’s set to &lt;strong&gt;uploads&lt;/strong&gt;. For consistency with Jekyll, the path is relative to the Jekyll &lt;code class=&quot;highlighter-rouge&quot;&gt;source&lt;/code&gt; if set.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;photo&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/editable-regions/#image-elements&quot;&gt;Full documentation for image editable regions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For those of you battling targeted spam email, we’ve added Google reCAPTCHA support in addition to our honeypot prevention.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;email&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/hosting/contact-forms/&quot;&gt;Full documentation for contact forms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/officially-out-of-jekyll-beta/captcha.gif&quot; alt=&quot;reCAPTCHA Example&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thank you to everyone who provided feedback over the beta, you’ve shaped many of the features in our Jekyll support. We have plenty of new features and improvements planned and look forward to your continued feedback.&lt;/p&gt;</content><author><name>ross</name></author><category term="Announcements" /><summary>Today marks a huge milestone for CloudCannon. We’ve finished the Jekyll beta, making Jekyll and plugins available to all users on every plan. The latest release also includes some requested features and more Jekyll configuration.</summary></entry><entry><title>New and Improved Front Matter Interfaces</title><link href="http://cloudcannon.com/features/2016/08/09/new-and-improved-front-matter-interfaces/" rel="alternate" type="text/html" title="New and Improved Front Matter Interfaces" /><published>2016-08-09T00:00:00+12:00</published><updated>2016-08-09T00:00:00+12:00</updated><id>http://cloudcannon.com/features/2016/08/09/new-and-improved-front-matter-interfaces</id><content type="html" xml:base="http://cloudcannon.com/features/2016/08/09/new-and-improved-front-matter-interfaces/">&lt;p&gt;CloudCannon is committed to bringing the best editing experience to static and Jekyll sites. We provide world-class interfaces for your clients to update their front matter, a core offering of Jekyll.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/new-and-improved-front-matter-interfaces/front-matter-example.png&quot; alt=&quot;Example front matter in CloudCannon&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/new-and-improved-front-matter-interfaces/front-matter-example.png 800w, /img/blog/new-and-improved-front-matter-interfaces/front-matter-example@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are more front matter interfaces available in CloudCannon than ever before. We’ve recently added more interfaces and ways to customise them.&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;rich-text&quot;&gt;Rich Text&lt;/h3&gt;

&lt;p&gt;Front matter is often useful for sections of text outside the main content of a page. Give clients control of formatting with this new interface. The &lt;code class=&quot;highlighter-rouge&quot;&gt;_html&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;_markdown&lt;/code&gt; conventions set what format the text is saved in. Markdown values need to be run through the &lt;code class=&quot;highlighter-rouge&quot;&gt;markdownify&lt;/code&gt; filter to render with formatting.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;format_size&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#rich-text&quot;&gt;Full documentation for rich text&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;colour&quot;&gt;Colour&lt;/h3&gt;

&lt;p&gt;Giving your clients access to colour doesn’t always bode well for a design’s longevity, but there are some good use cases. CloudCannon supports &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#colour&quot;&gt;colour in front matter&lt;/a&gt; by providing a unified selector that outputs to a number of formats. You control the format, the client controls the colour.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;color_lens&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#colour&quot;&gt;Full documentation for colour&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;multiselect&quot;&gt;Multiselect&lt;/h3&gt;

&lt;p&gt;If you’ve ever needed an interface for clients to select a subset of items from a predefined set of values, this is for you. CloudCannon populates values from arrays or objects defined in &lt;code class=&quot;highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;, and collection items. Clients add collection items to create additional values in the set.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;view_list&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#multiselect&quot;&gt;Full documentation for multiselect&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;social&quot;&gt;Social&lt;/h3&gt;

&lt;p&gt;There’s a undeniable link between social media and websites, and your editing interfaces are now aware of it. Social interfaces are text fields for URLs and IDs. Profile pictures are displayed alongside, validating for clients they have the correct URL and adding detail to an otherwise plain text field.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;person&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#social&quot;&gt;Full documentation for social&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;documents-and-images&quot;&gt;Documents and Images&lt;/h3&gt;

&lt;p&gt;The file selector based on the &lt;code class=&quot;highlighter-rouge&quot;&gt;_path&lt;/code&gt; convention has been incredibly popular in sites on CloudCannon, especially for images. The new &lt;code class=&quot;highlighter-rouge&quot;&gt;_image_path&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;_document_path&lt;/code&gt; conventions now allow you to restrict the files to images or documents only. Using a more specific type provides a better editing experience and reduces potential mistakes from clients.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;description&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#file&quot;&gt;Full documentation for files&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;number&quot;&gt;Number&lt;/h3&gt;

&lt;p&gt;Take advantage of the HTML5 number input and store client-entered values numerically.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;casino&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#number&quot;&gt;Full documentation for numbers&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;comments&quot;&gt;Comments&lt;/h3&gt;

&lt;p&gt;Comments provide instructional or guide text for any interface. Use this heavily requested feature to remind clients of specific details for each interface when a title or key just isn’t enough.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;comment&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#comment&quot;&gt;Full documentation for comments&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;array-defaults&quot;&gt;Array Defaults&lt;/h3&gt;

&lt;p&gt;When clients create new items in an array, the keys and interface types are created from the previous item to ensure a consistent interface. You can now &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#array-defaults&quot;&gt;provide the starting values for the new item&lt;/a&gt; as well.&lt;/p&gt;

&lt;p&gt;Set starting values for variables to the most likely value, and set starting images to placeholders (retaining the path when the client selects another)&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;library_add&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/#array-defaults&quot;&gt;Full documentation for array defaults&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;full-width-editor&quot;&gt;Full Width Editor&lt;/h3&gt;

&lt;p&gt;Collection items are often files containing only front matter. Dedicating most of the editor to the content isn’t the best experience in this scenario. Hide the content area by setting &lt;code class=&quot;highlighter-rouge&quot;&gt;_hide_content: true&lt;/code&gt; in your front matter.&lt;/p&gt;

&lt;p class=&quot;list-item-with-icon&quot;&gt;&lt;i class=&quot;material-icons&quot;&gt;edit&lt;/i&gt; &lt;a href=&quot;https://docs.cloudcannon.com/editing/content-editor/#hiding-the-content-area&quot;&gt;Full documentation for full width editor&lt;/a&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The &lt;a href=&quot;https://docs.cloudcannon.com/editing/front-matter/&quot;&gt;full documentation for front matter&lt;/a&gt; has details and examples to get you set up with any of these interfaces and customise them further.&lt;/p&gt;

&lt;p&gt;We have more interfaces planned, keep track of all the changes in CloudCannon in &lt;a href=&quot;https://docs.cloudcannon.com/changelog/&quot;&gt;the change log&lt;/a&gt;. As always, we are keen to hear your feedback on the new features and look forward to seeing what you build with them.&lt;/p&gt;</content><author><name>ross</name></author><category term="Features" /><summary>CloudCannon is committed to bringing the best editing experience to static and Jekyll sites. We provide world-class interfaces for your clients to update their front matter, a core offering of Jekyll.</summary></entry><entry><title>Plugins and SSL Private Beta</title><link href="http://cloudcannon.com/features/2016/05/17/plugins-and-ssl-private-beta/" rel="alternate" type="text/html" title="Plugins and SSL Private Beta" /><published>2016-05-17T00:00:00+12:00</published><updated>2016-05-17T00:00:00+12:00</updated><id>http://cloudcannon.com/features/2016/05/17/plugins-and-ssl-private-beta</id><content type="html" xml:base="http://cloudcannon.com/features/2016/05/17/plugins-and-ssl-private-beta/">&lt;p&gt;This week we are excited to announce the beginning of two features: the ability to use Jekyll plugins and SSL support. Both features are in private beta, &lt;a href=&quot;mailto:support@cloudcannon.com&quot;&gt;contact support&lt;/a&gt; to request early access.&lt;/p&gt;

&lt;h2 id=&quot;plugins-private-beta&quot;&gt;Plugins Private Beta&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/plugins/filetypes.png&quot; alt=&quot;Ruby and Gemfiles are now supported within CloudCannon&quot; srcset=&quot;/img/blog/plugins/filetypes.png 800w, /img/blog/plugins/filetypes@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Plugins support allows you to add custom plugins to any site and CloudCannon executes the custom code. Add plugins using a Gemfile or with Ruby files directly within the &lt;code class=&quot;highlighter-rouge&quot;&gt;_plugins&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Plugins are used for:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reducing the repetition across sites&lt;/li&gt;
  &lt;li&gt;Connecting to external data sources&lt;/li&gt;
  &lt;li&gt;Adding additional liquid tags&lt;/li&gt;
  &lt;li&gt;Generating pages from data files&lt;/li&gt;
  &lt;li&gt;And much more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy the editing of CloudCannon with the full power of Jekyll. &lt;a href=&quot;mailto:support@cloudcannon.com&quot;&gt;Get in touch&lt;/a&gt; If you want to try Jekyll plugins on CloudCannon.&lt;/p&gt;

&lt;h2 id=&quot;ssl-private-beta&quot;&gt;SSL Private Beta&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/plugins/https.png&quot; alt=&quot;Add HTTPS to your CloudCannon Site&quot; srcset=&quot;/img/blog/plugins/https.png 800w, /img/blog/plugins/https@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Dozens of users are already using our SSL Support. This allows you to serve any traffic on your site over SSL. Simply upload your cert and connect it to your site. This enables HTTPS for any traffic to your site.&lt;/p&gt;

&lt;p&gt;Optionally, any site can be configured to force SSL. This redirects any HTTP traffic to HTTPS.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For a full list of changes check out &lt;a href=&quot;https://docs.cloudcannon.com/changelog/&quot;&gt;the changelog&lt;/a&gt;. If you want to help us in this early stage of either feature &lt;a href=&quot;mailto:support@cloudcannon.com&quot;&gt;get in touch&lt;/a&gt;. We are extremely excited to see what you build with the new features.&lt;/p&gt;</content><author><name>george</name></author><category term="Features" /><summary>This week we are excited to announce the beginning of two features: the ability to use Jekyll plugins and SSL support. Both features are in private beta, contact support to request early access.</summary></entry><entry><title>Inline Editing of Markdown Pages</title><link href="http://cloudcannon.com/features/2016/04/11/inline-editing-of-markdown-pages/" rel="alternate" type="text/html" title="Inline Editing of Markdown Pages" /><published>2016-04-11T00:00:00+12:00</published><updated>2016-04-11T00:00:00+12:00</updated><id>http://cloudcannon.com/features/2016/04/11/inline-editing-of-markdown-pages</id><content type="html" xml:base="http://cloudcannon.com/features/2016/04/11/inline-editing-of-markdown-pages/">&lt;p&gt;This week we announce a long awaited feature, inline editing of Markdown files. This feature means that posts, collection items or pages written in Markdown are editable in the Visual Editor automatically. The ability to edit posts in context has been requested since the introduction of blogging.&lt;/p&gt;

&lt;p&gt;This feature works for all existing and new sites. The only requirement of this feature is that the &lt;code class=&quot;highlighter-rouge&quot;&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;err&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;/code&gt; block is the only child of its parent element. For example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;{{ content }}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The controls available to the editable region are decided by the parent element. &lt;code class=&quot;highlighter-rouge&quot;&gt;span&lt;/code&gt; has less controls than a &lt;code class=&quot;highlighter-rouge&quot;&gt;p&lt;/code&gt; which has less controls than a &lt;code class=&quot;highlighter-rouge&quot;&gt;div&lt;/code&gt;. See our &lt;a href=&quot;https://docs.cloudcannon.com/editing/editable-regions/&quot;&gt;Editable Regions documentation&lt;/a&gt; for more information.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/inline-editing/markdown-editable.png&quot; alt=&quot;CloudCannon inline editing of our blog&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/inline-editing/markdown-editable.png 800w, /img/blog/inline-editing/markdown-editable@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Content Editor is still available for sites that are not set up for inline editing. Existing sites need to trigger a build to access the new feature.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;If you need help or have any feedback you can always contact support.
Alternatively, let us know in the comments below.&lt;/p&gt;</content><author><name>george</name></author><category term="Features" /><summary>This week we announce a long awaited feature, inline editing of Markdown files. This feature means that posts, collection items or pages written in Markdown are editable in the Visual Editor automatically. The ability to edit posts in context has been requested since the introduction of blogging.</summary></entry><entry><title>Deploy Jekyll sites anywhere using jekyll-hook</title><link href="http://cloudcannon.com/tutorial/2016/01/26/deploy-jekyll-sites-anywhere-with-jekyll-hook/" rel="alternate" type="text/html" title="Deploy Jekyll sites anywhere using jekyll-hook" /><published>2016-01-26T00:00:00+13:00</published><updated>2016-01-26T00:00:00+13:00</updated><id>http://cloudcannon.com/tutorial/2016/01/26/deploy-jekyll-sites-anywhere-with-jekyll-hook</id><content type="html" xml:base="http://cloudcannon.com/tutorial/2016/01/26/deploy-jekyll-sites-anywhere-with-jekyll-hook/">&lt;p&gt;&lt;a href=&quot;http://cloudcannon.com/tutorial/2016/01/21/deploy-jekyll-sites-to-s3-using-travis-ci/&quot;&gt;In the last tutorial&lt;/a&gt;, we used &lt;a href=&quot;https://travis-ci.org&quot;&gt;Travis CI&lt;/a&gt; to deploy a Jekyll site to Amazon S3. This tutorial covers using &lt;a href=&quot;https://github.com/developmentseed/jekyll-hook&quot;&gt;jekyll-hook&lt;/a&gt; to automatically deploy changes from GitHub/CloudCannon to your own server.&lt;/p&gt;

&lt;h3 id=&quot;what-is-jekyll-hook&quot;&gt;What is jekyll-hook?&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/developmentseed/jekyll-hook&quot;&gt;jekyll-hook&lt;/a&gt; is a Node.js program which runs on a server. It listens for new commits on a GitHub repository using &lt;a href=&quot;https://developer.github.com/webhooks/&quot;&gt;webhooks&lt;/a&gt;. When there is a commit, jekyll-hook pulls the latest source code, builds the site with Jekyll, then deploys the built site to a directory.&lt;/p&gt;

&lt;h3 id=&quot;setup&quot;&gt;Setup&lt;/h3&gt;

&lt;p&gt;I’m using Ubuntu 14.04 so adjust the instructions for your operating system.&lt;/p&gt;

&lt;p&gt;Install Git, Node.js, Ruby and Jekyll:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;sudo apt-get update
&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;sudo apt-get install git nodejs ruby ruby1.9.1-dev npm
&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;sudo gem install jekyll -v 2.4.0&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Symlink &lt;code class=&quot;highlighter-rouge&quot;&gt;nodejs&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;node&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Clone the jekyll-hook repo from GitHub:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;git clone https://github.com/developmentseed/jekyll-hook.git&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Install the dependencies:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;jekyll-hook
&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;npm install&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;configuration&quot;&gt;Configuration&lt;/h3&gt;

&lt;p&gt;Copy the sample configuration to &lt;code class=&quot;highlighter-rouge&quot;&gt;config.json&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;cp config.sample.json config.json&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Open &lt;code class=&quot;highlighter-rouge&quot;&gt;config.json&lt;/code&gt; in a text editor.&lt;/p&gt;

&lt;p&gt;With this script you can configure jekyll-hook to listen to a particular server, run special build scripts for a particular Git branch or send an email every time there’s a build. The default &lt;code class=&quot;highlighter-rouge&quot;&gt;config.json&lt;/code&gt; get us most of the way there, we just need to ensure changes can be pulled in from our account.&lt;/p&gt;

&lt;p&gt;Change &lt;code class=&quot;highlighter-rouge&quot;&gt;accounts&lt;/code&gt; to your GitHub account or organisation.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;nano config.json&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Here’s my complete &lt;code class=&quot;highlighter-rouge&quot;&gt;config.json&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;gh_server&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;github.com&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;temp&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/home/ubuntu/jekyll-hook&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;public_repo&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;#default&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;s2&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;./scripts/build.sh&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;s2&quot;&gt;&quot;publish&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;./scripts/publish.sh&quot;&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;secret&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;email&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;isActivated&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;password&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;host&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;ssl&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;accounts&quot;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;

    &lt;span class=&quot;s2&quot;&gt;&quot;cloudcannon&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;mneumegen&quot;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;As you can see from the configuration, jekyll-hook is going to run &lt;code class=&quot;highlighter-rouge&quot;&gt;./scripts/build.sh&lt;/code&gt; when it detects a change. The default build script pulls the latest commits to the local repository and runs &lt;code class=&quot;highlighter-rouge&quot;&gt;jekyll build&lt;/code&gt;. We don’t need to change anything in this file.&lt;/p&gt;

&lt;p&gt;Here’s my &lt;code class=&quot;highlighter-rouge&quot;&gt;./scripts/build.sh&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt; -e

&lt;span class=&quot;c&quot;&gt;# This script is meant to be run automatically&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# as part of the jekyll-hook application.&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# https://github.com/developmentseed/jekyll-hook&lt;/span&gt;

&lt;span class=&quot;nv&quot;&gt;repo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;branch&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;owner&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$3&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;giturl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$4&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$5&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;build&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$6&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Check to see if repo exists. If not, git clone it&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; ! -d &lt;span class=&quot;nv&quot;&gt;$source&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
    &lt;/span&gt;git clone &lt;span class=&quot;nv&quot;&gt;$giturl&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$source&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;fi&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# Git checkout appropriate branch, pull latest code&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$source&lt;/span&gt;
git checkout &lt;span class=&quot;nv&quot;&gt;$branch&lt;/span&gt;
git pull origin &lt;span class=&quot;nv&quot;&gt;$branch&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; -

&lt;span class=&quot;c&quot;&gt;# Run jekyll&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$source&lt;/span&gt;
jekyll build -s &lt;span class=&quot;nv&quot;&gt;$source&lt;/span&gt; -d &lt;span class=&quot;nv&quot;&gt;$build&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; -&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After the build finishes, jekyll-hook, runs &lt;code class=&quot;highlighter-rouge&quot;&gt;./scripts/publish.sh&lt;/code&gt;. This script moves the built site to your web server directory.&lt;/p&gt;

&lt;p&gt;By default jekyll-hook deploys the site to &lt;code class=&quot;highlighter-rouge&quot;&gt;/usr/share/nginx/html/$repo&lt;/code&gt;. &lt;code class=&quot;highlighter-rouge&quot;&gt;$repo&lt;/code&gt; is one of the variables jekyll-hook makes available to use in the path. You can also use  &lt;code class=&quot;highlighter-rouge&quot;&gt;$branch&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;$owner&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;$giturl&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;$source&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;$build&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Change &lt;code class=&quot;highlighter-rouge&quot;&gt;site&lt;/code&gt; to your desired location.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;scripts&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;publish&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;sh&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Here’s my complete &lt;code class=&quot;highlighter-rouge&quot;&gt;scripts/publish.sh&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;cp&quot;&gt;#!/bin/bash
&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;e&lt;/span&gt;

&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;This&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;script&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;meant&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;be&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;run&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;automatically&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;part&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;jekyll&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;hook&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;https&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;c1&quot;&gt;//github.com/developmentseed/jekyll-hook&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;repo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$1&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;branch&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$2&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;owner&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$3&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;giturl&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$4&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$5&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;build&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;$6&lt;/span&gt;

&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Set&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;hosted&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;site&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;site&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/home/ubuntu/$repo&quot;&lt;/span&gt;

&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Remove&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;old&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;site&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;move&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ones&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;place&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;On&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;amazon&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;EC2&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;nginx&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;forlder&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;has&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;root&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ownership&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;rf&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;$site&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Jekyll-hook is set up to listen for changes from GitHub. When there is a change it will build the site and deploy it to a folder.&lt;/p&gt;

&lt;h3 id=&quot;webhook&quot;&gt;Webhook&lt;/h3&gt;

&lt;p&gt;Now we need GitHub to send jekyll-hook a webhook when there’s a commit to the repository.&lt;/p&gt;

&lt;p&gt;Open your repository on GitHub. Then go to Settings -&amp;gt; Webhooks &amp;amp; services.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/jekyll-hook/github.png&quot; alt=&quot;GitHub webhooks&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Click Add webhook. Set the Payload URL to point at your jekyll-hook server &lt;code class=&quot;highlighter-rouge&quot;&gt;http://example.org:8080/hooks/jekyll/:branch&lt;/code&gt; where &lt;code class=&quot;highlighter-rouge&quot;&gt;:branch&lt;/code&gt; is the branch you want to publish. The rest of the defaults are fine, press Add webhook.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/jekyll-hook/github-webhook.png&quot; alt=&quot;GitHub webhook&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;deploying-the-site&quot;&gt;Deploying the site&lt;/h3&gt;

&lt;p&gt;Run jekyll-hook. It listens for changes on port 8080:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$ &lt;/span&gt;./jekyll-hook.js&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;If you’re running this on EC2 remember you’ll need to open port 8080 in your security group.&lt;/p&gt;

&lt;p&gt;Make a change in the repository and you’ll see logs appear in your jekyll-hook program. If nothing happens have a look at your webhook logs on GitHub.&lt;/p&gt;

&lt;p&gt;Check the deployment directory to see a built version of your Jekyll site. Now you just need to configure your webserver to serve the site.&lt;/p&gt;</content><author><name>mike</name></author><category term="Tutorial" /><summary>In the last tutorial, we used Travis CI to deploy a Jekyll site to Amazon S3. This tutorial covers using jekyll-hook to automatically deploy changes from GitHub/CloudCannon to your own server.</summary></entry><entry><title>Editor Links</title><link href="http://cloudcannon.com/features/2016/01/25/editor-links/" rel="alternate" type="text/html" title="Editor Links" /><published>2016-01-25T00:00:00+13:00</published><updated>2016-01-25T00:00:00+13:00</updated><id>http://cloudcannon.com/features/2016/01/25/editor-links</id><content type="html" xml:base="http://cloudcannon.com/features/2016/01/25/editor-links/">&lt;p&gt;Editor Links are a new CloudCannon feature to add in-app navigation around the editing interface.
Use them to create edit buttons on blog posts and collections items in the editor for your clients.&lt;/p&gt;

&lt;p&gt;The links are anchor tags with an &lt;code class=&quot;highlighter-rouge&quot;&gt;href&lt;/code&gt; attribute specific to CloudCannon.
The &lt;code class=&quot;highlighter-rouge&quot;&gt;href&lt;/code&gt; is prefixed with &lt;em&gt;cloudcannon&lt;/em&gt;, followed by a colon and the URL you wish to link to.
For example, the following links to the &lt;em&gt;Posts&lt;/em&gt; page for your clients:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;cloudcannon:collections/_posts&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Open Posts&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This link navigates to &lt;em&gt;https://app.cloudcannon.com/editor#/site/123/&lt;strong&gt;collections/_posts&lt;/strong&gt;&lt;/em&gt;, the interface for managing blog posts.&lt;/p&gt;

&lt;h3 id=&quot;generating-editor-links&quot;&gt;Generating Editor Links&lt;/h3&gt;

&lt;p&gt;Jekyll generates the paths you need in a number of situations. Adding an edit button to each blog post in a list is as easy as:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;{% for post in site.posts %}
  ...
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;cloudcannon:collections/{{ post.path }}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Edit Post&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  ...
{% endfor %}&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This could generate &lt;em&gt;https://app.cloudcannon.com/editor#/site/123/&lt;strong&gt;collections/_posts/2016-01-16-my-blog-post.md&lt;/strong&gt;&lt;/em&gt;,
navigating to the editor for that blog post.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/editor-links/blog-posts.png&quot; alt=&quot;CloudCannon blog posts with edit buttons&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/editor-links/blog-posts.png 800w, /img/blog/editor-links/blog-posts@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our &lt;a href=&quot;https://docs.cloudcannon.com/editing/editor-links/&quot;&gt;documentation&lt;/a&gt; includes instructions for &lt;strong&gt;Editor Links on collection items&lt;/strong&gt; and &lt;strong&gt;hiding them in the live site&lt;/strong&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;One of our customers requested this feature to create buttons to edit products from the Visual Editor.
We’d love to hear how you use it in the comments below.&lt;/p&gt;</content><author><name>ross</name></author><category term="Features" /><summary>Editor Links are a new CloudCannon feature to add in-app navigation around the editing interface.
Use them to create edit buttons on blog posts and collections items in the editor for your clients.</summary></entry><entry><title>Deploy Jekyll sites to S3 using Travis CI</title><link href="http://cloudcannon.com/tutorial/2016/01/21/deploy-jekyll-sites-to-s3-using-travis-ci/" rel="alternate" type="text/html" title="Deploy Jekyll sites to S3 using Travis CI" /><published>2016-01-21T00:00:00+13:00</published><updated>2016-01-21T00:00:00+13:00</updated><id>http://cloudcannon.com/tutorial/2016/01/21/deploy-jekyll-sites-to-s3-using-travis-ci</id><content type="html" xml:base="http://cloudcannon.com/tutorial/2016/01/21/deploy-jekyll-sites-to-s3-using-travis-ci/">&lt;p&gt;CloudCannon consolidates editing and reliable hosting into a single package. Alternatively, you can use external hosting solutions and keep editing in CloudCannon. To demonstrate this workflow, we will use &lt;a href=&quot;http://aws.amazon.com/s3/&quot;&gt;Amazon S3&lt;/a&gt;, a great platform to host static and Jekyll websites. The uptime is &lt;a href=&quot;http://aws.amazon.com/s3/sla/&quot;&gt;99.9% guaranteed&lt;/a&gt;, it scales indefinitely and it’s cheap.&lt;/p&gt;

&lt;p&gt;This tutorial shows you how to automatically deploy changes from CloudCannon/GitHub to S3 using &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;

&lt;p&gt;To begin, &lt;a href=&quot;https://travis-ci.org/&quot;&gt;sign up for Travis CI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/travis-ci/travis-ci.png&quot; alt=&quot;Travis CI Homepage&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Travis CI requires access to your GitHub account.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/travis-ci/travis-auth.png&quot; alt=&quot;GitHub authentication&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Click the add button next to My Repositories.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/travis-ci/my-repo.png&quot; alt=&quot;Travis CI Dashboard&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Enable the repository with your Jekyll site.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/travis-ci/enable-repo.png&quot; alt=&quot;Repository list&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;scripts&quot;&gt;Scripts&lt;/h2&gt;

&lt;p&gt;Travis CI needs a &lt;a href=&quot;https://docs.travis-ci.com/user/customizing-the-build/&quot;&gt;configuration script&lt;/a&gt; in your repository describing how to build and deploy your site.&lt;/p&gt;

&lt;p&gt;The script will set up Ruby:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ruby&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;rvm&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;2.1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Install the &lt;code class=&quot;highlighter-rouge&quot;&gt;jekyll&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;s3_website&lt;/code&gt; gems. &lt;code class=&quot;highlighter-rouge&quot;&gt;s3_website&lt;/code&gt; copies the website files to S3.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;install&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;gem install jekyll -v 2.4.0 &amp;amp;&amp;amp; gem install s3_website&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Build the site using Jekyll:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;jekyll build&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then copy the generated site to S3:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;after_success&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;s3_website push&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Copy the script to &lt;code class=&quot;highlighter-rouge&quot;&gt;.travis.yml&lt;/code&gt; in your repository:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;ruby&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;rvm&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;pi&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;2.1&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;install&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;gem install jekyll -v 2.4.0 &amp;amp;&amp;amp; gem install s3_website&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;jekyll build&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;after_success&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;s3_website push&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;s3_website&lt;/code&gt; needs a configuration file describing how and where to deploy the site. Your S3 Secret Key is private so it’s a bad idea to put it in your public repository. Instead, you can set and use an environment variable in Travis CI.&lt;/p&gt;

&lt;p&gt;Copy the script to &lt;code class=&quot;highlighter-rouge&quot;&gt;s3_website.yml&lt;/code&gt; and change &lt;code class=&quot;highlighter-rouge&quot;&gt;s3_bucket&lt;/code&gt; to the name of your S3 bucket:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;s&quot;&gt;s3_id&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;lt;%= ENV['S3_ACCESS_KEY_ID'] %&amp;gt;&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;s3_secret&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;lt;%= ENV['S3_SECRET_KEY'] %&amp;gt;&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;s3_bucket&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;your.bucket.com&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;environment-variables&quot;&gt;Environment Variables&lt;/h2&gt;

&lt;p&gt;The final step is to set environment variables for the S3 Access Key and Secret Key.&lt;/p&gt;

&lt;p&gt;Go to settings and add your Amazon S3 credentials:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/travis-ci/settings.png&quot; alt=&quot;Travis CI environment variables&quot; class=&quot;screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Every time you make a change to the repository in GitHub (including edits from &lt;a href=&quot;http://cloudcannon.com&quot;&gt;CloudCannon&lt;/a&gt;), Travis CI rebuilds the site and deploys it to S3.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt; is flexible enough to keep the easy-to-use editing in CloudCannon and host your site anywhere.&lt;/p&gt;</content><author><name>mike</name></author><category term="Tutorial" /><summary>CloudCannon consolidates editing and reliable hosting into a single package. Alternatively, you can use external hosting solutions and keep editing in CloudCannon. To demonstrate this workflow, we will use Amazon S3, a great platform to host static and Jekyll websites. The uptime is 99.9% guaranteed, it scales indefinitely and it’s cheap.</summary></entry><entry><title>Output Drafts and Collection Defaults</title><link href="http://cloudcannon.com/features/2015/12/17/drafts-and-collection-defaults/" rel="alternate" type="text/html" title="Output Drafts and Collection Defaults" /><published>2015-12-17T00:00:00+13:00</published><updated>2015-12-17T00:00:00+13:00</updated><id>http://cloudcannon.com/features/2015/12/17/drafts-and-collection-defaults</id><content type="html" xml:base="http://cloudcannon.com/features/2015/12/17/drafts-and-collection-defaults/">&lt;p&gt;This week we have a smaller release for some highly requested configuration. We added draft post compiling and defaults for creating collection items.&lt;/p&gt;

&lt;h3 id=&quot;output-draft-posts&quot;&gt;Output Draft Posts&lt;/h3&gt;

&lt;p&gt;CloudCannon users can now preview draft posts in staging environments before publishing to the live site. Configure this in the &lt;em&gt;Site Settings&lt;/em&gt; to add the &lt;code class=&quot;highlighter-rouge&quot;&gt;--drafts&lt;/code&gt; flag to any Jekyll build on that site. Enabling &lt;strong&gt;Output draft posts&lt;/strong&gt; will trigger a build and include drafts with posts.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/drafts-and-defaults/output-drafts-in-settings.png&quot; alt=&quot;Output draft posts option in Site Settings&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/drafts-and-defaults/output-drafts-in-settings.png 800w, /img/blog/drafts-and-defaults/output-drafts-in-settings@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition to the live site, you can preview drafts within the app. Just like posts, drafts now have the visual and markdown editor options. This will help keep you focused when writing blog posts.&lt;/p&gt;

&lt;h3 id=&quot;collection-defaults&quot;&gt;Collection Defaults&lt;/h3&gt;

&lt;p&gt;Before this release, new collection items were pre-populated with cleared data from another item. Developers can now create a file within the collection folder to control default values. This file is used to define new items by cloning both the contents and filetype into the new file. Since this file begins with an underscore Jekyll will not output the file to the live site. As an exception, draft posts will always read from &lt;code class=&quot;highlighter-rouge&quot;&gt;/_posts/&lt;/code&gt; rather than &lt;code class=&quot;highlighter-rouge&quot;&gt;/_drafts/&lt;/code&gt;. More details are available in &lt;a href=&quot;https://docs.cloudcannon.com/editing/collection-defaults/&quot;&gt;our documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/drafts-and-defaults/defaults-in-browser.png&quot; alt=&quot;Defaults in the File Browser&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/drafts-and-defaults/defaults-in-browser.png 800w, /img/blog/drafts-and-defaults/defaults-in-browser@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;These changes were inspired by your feedback. Syncing performance and reliability is the focus of our next release. If you need anything get in touch at &lt;a href=&quot;mailto:support@cloudcannon.com&quot;&gt;support@cloudcannon.com&lt;/a&gt; or send us a message in the app.&lt;/p&gt;</content><author><name>george</name></author><category term="Features" /><summary>This week we have a smaller release for some highly requested configuration. We added draft post compiling and defaults for creating collection items.</summary></entry><entry><title>Site Status and New User Flow</title><link href="http://cloudcannon.com/features/2015/12/10/site-status-and-new-user-flow/" rel="alternate" type="text/html" title="Site Status and New User Flow" /><published>2015-12-10T00:00:00+13:00</published><updated>2015-12-10T00:00:00+13:00</updated><id>http://cloudcannon.com/features/2015/12/10/site-status-and-new-user-flow</id><content type="html" xml:base="http://cloudcannon.com/features/2015/12/10/site-status-and-new-user-flow/">&lt;p&gt;Since our last release, we’ve focused on existing interfaces and adding features in our continuing effort to improve the CloudCannon experience. These improvements are driven by your feedback and support.&lt;/p&gt;

&lt;h3 id=&quot;site-status&quot;&gt;Site Status&lt;/h3&gt;

&lt;p&gt;Users were repeatedly missing our indicator for Jekyll build errors. We’ve made this much more prominent in the user interface by integrated everything related to the health, state and activity of your site in one section called &lt;em&gt;Status&lt;/em&gt;. The sidebar link for this section displays a quick status of your site and indicates if there is an error.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/site-status-and-new-user-flow/site-status.png&quot; alt=&quot;New Site Status section&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/site-status-and-new-user-flow/site-status.png 800w, /img/blog/site-status-and-new-user-flow/site-status@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;Status&lt;/em&gt; section displays the build progress for your site in real time as CloudCannon processes it. There are site statistics and a stacked bar graph displays your file composition. Suggestions are shown for your site, such as adding a site map file or making use of specific CloudCannon features. Trailing underneath is the redesigned site activity feed.&lt;/p&gt;

&lt;p&gt;We plan to improve this section over time. We will expand on the build progress, increase the useful errors and warnings shown, and add additional suggestions.&lt;/p&gt;

&lt;h3 id=&quot;empty-interfaces&quot;&gt;Empty Interfaces&lt;/h3&gt;

&lt;p&gt;Many of our interfaces were rather underwhelming when empty, preventing some users from progressing through the app. Some new users were creating accounts without adding files to their first site. To encourage users to progress, we’ve added guidance text and artwork to the empty &lt;em&gt;File Browser&lt;/em&gt; section.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/site-status-and-new-user-flow/empty-file-browser.png&quot; alt=&quot;Empty File Browser&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/site-status-and-new-user-flow/empty-file-browser.png 800w, /img/blog/site-status-and-new-user-flow/empty-file-browser@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Other sections will offer short descriptions and guide the user back to this section when there are no files present. We hope that these updates allow new users to discover the full potential of CloudCannon.&lt;/p&gt;

&lt;h3 id=&quot;new-create-menu&quot;&gt;New Create Menu&lt;/h3&gt;

&lt;p&gt;In addition to our &lt;em&gt;File Browser&lt;/em&gt; improvements, we’ve consolidated our file creation options into one menu. The commonly requested feature of creating a folder within the app is also available here.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/site-status-and-new-user-flow/create-menu.png&quot; alt=&quot;New Create Menu open&quot; class=&quot;screenshot&quot; srcset=&quot;/img/blog/site-status-and-new-user-flow/create-menu.png 800w, /img/blog/site-status-and-new-user-flow/create-menu@2x.png 1600w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The new create menu, and other &lt;em&gt;File Browser&lt;/em&gt; features are also available in the &lt;em&gt;Collections&lt;/em&gt; section. Among the most notable requests, folders can be created, files can be dragged into folders and new posts/collection items are automatically opened for editing when created.&lt;/p&gt;

&lt;p&gt;We plan to add an archive (&lt;code class=&quot;highlighter-rouge&quot;&gt;.zip&lt;/code&gt; or &lt;code class=&quot;highlighter-rouge&quot;&gt;.tar.gz&lt;/code&gt;) upload for browsers other than Chrome that don’t support folder upload.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks again for all the suggestions and feedback. Keep it coming by contacting us in the app or at &lt;a href=&quot;mailto:support@cloudcannon.com&quot;&gt;support@cloudcannon.com&lt;/a&gt;.&lt;/p&gt;</content><author><name>ross</name></author><category term="Features" /><summary>Since our last release, we’ve focused on existing interfaces and adding features in our continuing effort to improve the CloudCannon experience. These improvements are driven by your feedback and support.</summary></entry></feed>
