<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webmaster-Source &#187; Ghost</title>
	<atom:link href="https://www.webmaster-source.com/tag/ghost/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.webmaster-source.com</link>
	<description>Useful Resources For Webmasters</description>
	<lastBuildDate>Thu, 24 Aug 2017 02:01:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Ghost 0.4 Drops, Plugin API Slated for 0.5 Release</title>
		<link>https://www.webmaster-source.com/2014/01/29/ghost-0-4-drops-plugin-api-slated-for-0-5-release/</link>
		<comments>https://www.webmaster-source.com/2014/01/29/ghost-0-4-drops-plugin-api-slated-for-0-5-release/#comments</comments>
		<pubDate>Wed, 29 Jan 2014 11:42:18 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Software & Scripts]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5277</guid>
		<description><![CDATA[Version 0.4 of Ghost, the lightweight Node.js blogging platform, went live this month. Some of the more interesting features include support for static pages, a new way to quickly edit posts by appending /edit to the URL, support for date-based permalinks (e.g. /2014/01/25/example-post instead of /example-post), support for uploading SVG images, and the ability to [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5201" alt="Ghost Logo" src="//www.webmaster-source.com/wp-content/uploads/2013/10/ghost-logo.png" width="196" height="135" /><a href="https://github.com/TryGhost/Ghost/wiki/Release-Notes:-0.4.0">Version 0.4</a> of <a href="http://ghost.org">Ghost</a>, the lightweight Node.js blogging platform, went live this month. Some of the more interesting features include support for static pages, a new way to quickly edit posts by appending <code>/edit</code> to the URL, support for date-based permalinks (e.g. <code>/2014/01/25/example-post</code> instead of <code>/example-post</code>), support for uploading SVG images, and the ability to put Ghost in a subdirectory.</p>
<p>With this update out of the way, we&#8217;re one closer to seeing the plugin API. That&#8217;s currently scheduled for version 0.5 (to be released <a href="https://github.com/TryGhost/Ghost/wiki/Roadmap">sometime this spring</a>).</p>
<p>The ability to extend Ghost is, in my opinion, what will make it a truly excellent platform. I really like the editor—which is reason enough to start using Ghost—but I can&#8217;t switch any of my sites over (not even my personal blog) until it&#8217;s possible for me to add in some features Ghost is missing. I do a bit of linkblogging on my personal blog (<a href="http://daringfireball.net/">Daring Fireball</a> style, with headlines that link to external sites), and Ghost doesn&#8217;t offer the ability to do that out of the box. I also have a couple posts on the blog that feature image galleries, originally with WordPress and later through <a href="https://github.com/redwallhp/JekyllGalleryTag">my Jekyll plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2014/01/29/ghost-0-4-drops-plugin-api-slated-for-0-5-release/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Installing Multiple Ghost Blogs Behind NGINX on Ubuntu 12.04</title>
		<link>https://www.webmaster-source.com/2013/11/06/installing-multiple-ghost-blogs-behind-nginx-on-ubuntu-12-04/</link>
		<comments>https://www.webmaster-source.com/2013/11/06/installing-multiple-ghost-blogs-behind-nginx-on-ubuntu-12-04/#comments</comments>
		<pubDate>Wed, 06 Nov 2013 15:15:16 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Software & Scripts]]></category>
		<category><![CDATA[DigitalOcean]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5236</guid>
		<description><![CDATA[Looking to set up a blog with Ghost? While it still has a few rough edges and missing features at the time of this writing, as it&#8217;s essentially in beta at this point (hence the &#8220;0.3&#8221; versioning), it definitely shows promise as a blogging platform. If you&#8217;re reading this, you&#8217;re probably aware that you can&#8217;t [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="//www.webmaster-source.com/wp-content/uploads/2013/10/ghost-logo.png" alt="Ghost Logo" width="196" height="135" class="alignright size-full wp-image-5201 imgborder" />Looking to set up a blog with <a href="http://ghost.org">Ghost?</a> While it still has a few rough edges and missing features at the time of this writing, as it&#8217;s essentially in beta at this point (hence the &#8220;0.3&#8221; versioning), it definitely <a href="http://www.webmaster-source.com/2013/10/02/ghost-the-new-blogging-platform-and-why-it-matters/">shows promise</a> as a blogging platform.</p>
<p>If you&#8217;re reading this, you&#8217;re <em>probably</em> aware that you can&#8217;t just FTP Ghost to a dinky shared host and expect it to run like your average PHP script. Ghost is a Node.js application, which works differently, and has yet to be adopted by services that generally cater to newbies. You&#8217;re going to need a <abbr title="Virtual Private Server">VPS</abbr> and command line access. I&#8217;m also going to assume a rudimentary knowledge of Linux commands. (You can pick up the basics pretty easily at <a href="http://linuxcommand.org/">linuxcommand.org</a> if need be.)</p>
<p>This tutorial aims to walk you through the process of installing one ore more instances of Ghost behind the NGINX server. NGINX is a fast and lightweight web server that, when configured in this manner, acts as a proxy, forwarding requests to the correct Ghost blog.</p>
<h3>DigitalOcean</h3>
<p>I&#8217;m a big fan of <a href="https://www.digitalocean.com/?refcode=b6711983671a">DigitalOcean</a>. I&#8217;ve been hosting my various web sites with them since this June, and their service has been of excellent quality. In addition to their rock-bottom price, their virtual machines have performed well and their staff has been competent and helpful. (You can find my review of DigitalOcean here.)</p>
<p>$5/month will get you a &#8220;Droplet&#8221; with 512MB of RAM, 20GB of storage on a solid state drive and plenty of data transfer. (It&#8217;s a soft cap with reasonable overages. You&#8217;re very, very unlikely to ever reach it, though. Unless you&#8217;re a popular podcaster or something, in which case you should be looking into a CDN&#8230;)</p>
<p>The figure that&#8217;s the most important is the RAM. Just like with the computer you&#8217;re using to read this, active applications reside in the system&#8217;s memory, and the amount they use varies depending on what the app is doing. Ghost, in my informal tests, doesn&#8217;t seem to be too memory-intense. So a 512MB Droplet could probably host a few Ghost blogs at once, depending on their popularity and how the system is configured.</p>
<p>There are plenty of options for a VPS, though. If you&#8217;re not too keen on DigitalOcean, <a href="https://www.linode.com/">Linode</a>, <a href="http://www.rackspace.com/">Rackspace</a>, <a href="http://aws.amazon.com/ec2/">Amazon EC2</a> and <a href="http://ramnode.com/">RamNode</a> are popular. If you want to give DigitalOcean a try, you can sign up with the promo code DIVEIN5 to get a $5 credit. You can also pay by the hour if you just want to fire up a VM for a few hours to experiment before making a decision.</p>
<h3>Initial Setup</h3>
<p>Once you&#8217;ve got your VPS, it&#8217;s time to start setting things up. For simplicity, I will assume you are running Ubuntu 12.04. You can follow along with any Linux distribution on any hosting provider, but some commands may be a little different.</p>
<p>First, if you haven&#8217;t already, use SSH to log in to your <abbr title="Virtual Machine">VM</abbr> as <code>root</code>, using the password your host gave you. Take this opportunity to change your password to something different, and reasonably strong, for security. Just run the <code>passwd</code> command and follow the on-screen instructions.</p>
<p>Now let the system update its package index by running the following command:</p>
<pre class="brush: bash; title: ; notranslate">apt-get update</pre>
<p>While you&#8217;re at it, install the <code>unzip</code> tool so you can unpack the Ghost archive later on.</p>
<pre class="brush: bash; title: ; notranslate">apt-get install unzip</pre>
<p><span id="more-5236"></span></p>
<h3>Installing Node.js</h3>
<p>Now we need to install <a href="http://nodejs.org/">Node.js</a>, the JavaScript platform that Ghost is built on. Ubuntu&#8217;s pre-made package probably isn&#8217;t new enough to run Ghost, so we&#8217;ll have to compile it ourselves.</p>
<p>First, install the Linux build tools through Ubuntu&#8217;s package manager. This will install the necessary compilers, as well as the <code>make</code> tool.</p>
<pre class="brush: bash; title: ; notranslate">apt-get install build-essential</pre>
<p>Now you need to change to your home folder, make a new directory to contain the source, and download Node.js.</p>
<pre class="brush: bash; title: ; notranslate">
cd
mkdir src
cd src
wget http://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz
</pre>
<p>If you run <code>ls</code>, you should see the archive in the src directory. If the file was successfully downloaded, you can unpack the archive and change to the resulting directory.</p>
<pre class="brush: bash; title: ; notranslate">
tar -zxvf node-v0.10.21.tar.gz
cd node-v0.10.21
</pre>
<p>Ready to compile? After you run the next two commands, be prepared to wait 5-10 minutes while the system works its magic and converts raw source code into an executable binary.</p>
<pre class="brush: bash; title: ; notranslate">
./configure
make
</pre>
<p>Once the messages stop scrolling by and the command prompt returns, you just need to run the installer.</p>
<pre class="brush: bash; title: ; notranslate">
make install
</pre>
<p>Congratulations, you&#8217;ve successfully compiled and installed a program from source! To verify that everything worked properly, run <code>node -v</code>. It should output the Node.js version, which in this case is v0.10.21. (Or a greater version if there is a newer one out by the time you read this.)</p>
<h3>Ghost Installation</h3>
<p>The next step is to install a copy of Ghost for each of your blogs. First, let&#8217;s make a place for them to reside in.</p>
<pre class="brush: bash; title: ; notranslate">
mkdir /var/ghost
cd /var/ghost
</pre>
<p>If you intend to use an FTP client to make it easier to upload themes or such, /var/ghost is the place where your blogs&#8217; files will be found. So it&#8217;s a good path to remember. (On a related note, the SSH process also doubles as a secure FTP server. If your FTP client supports SFTP, you can connect to the domain/IP and log in with a valid username and password.)</p>
<p>To add a copy of Ghost, just follow these steps:</p>
<pre class="brush: bash; title: ; notranslate">
mkdir myghostblog
cd myghostblog
wget https://ghost.org/zip/ghost-0.3.3.zip
unzip ghost-0.3.3.zip
rm ghost-0.3.3.zip
npm install --production
</pre>
<p>What you&#8217;re doing is:</p>
<ol>
<li>Creating a folder for the blog</li>
<li>Changing to that folder</li>
<li>Downloading Ghost</li>
<li>Unzipping Ghost</li>
<li>Removing the .zip file</li>
<li>Installing Ghost</li>
</ol>
<p>Before we can actually start Ghost up, there is some essential configuration that needs to be adjusted.</p>
<p>Copy the example configuration file to a new <code>config.js</code> file with <code>cp config.example.js config.js</code>. Open the <code>config.js</code> file in the <code>nano</code> text editor with <code>nano config.js</code>. Use the arrow keys to scroll down to where the &#8220;production&#8221; environment starts in the config. It looks something like this:</p>
<pre class="brush: jscript; title: ; notranslate">
production: {
    url: 'http://my-ghost-blog.com',
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },
    server: {
        host: '127.0.0.1',
        port: '2368'
    }
},
</pre>
<p>There are three things you need to change:</p>
<ol>
<li>The <code>url</code> field. Replace <code>http://my-ghost-blog.com</code> with <code>http://whatever-your-domain-is.com</code>.</li>
<li>The <code>port</code> field in the <code>server</code> block may need to be changed, depending on whether this is the first blog you&#8217;re setting up or not.</li>
</ol>
<p>To save the file, press control+o and, then control+x to exit.</p>
<p>Web browsers, by default, connect to HTTP port 80 when requesting a web page. The way we&#8217;re setting this up, NGINX will listen on port 80, waiting for requests, and forward them to the ports your Ghost blogs are listening on. So Blog A can listen on port 2368 and Blog B can listen on port 2369. NGINX will listen on port 80, figure out which domain name belongs to which blog, and route the requests to the appropriate port.</p>
<p>Repeat the relevant steps in this section to set up additional blogs. You can wait until after you&#8217;ve finished setting up the first, if you want.</p>
<h3>Upstart</h3>
<p>We need to make it easy to start and stop the Ghost processes, and ensure that they come back online automatically if the server is restarted. On Ubuntu, it&#8217;s super simple with a system known as Upstart.</p>
<p>First, create a new Upstart configuration file called <code>ghost.conf</code>.</p>
<pre class="brush: bash; title: ; notranslate">
cd /etc/init
nano ghost.conf
</pre>
<p>Now fill it with the following Upstart script, replacing <code>myghostblog</code> with the directory you created for your blog:</p>
<pre class="brush: plain; title: ; notranslate">
start on startup

script
    cd /var/ghost/myghostblog
    npm start --production
end script
</pre>
<p>If you have multiple Ghost blogs set up, you would do something like this:</p>
<pre class="brush: plain; title: ; notranslate">
start on startup

script
    cd /var/ghost/myghostblog
    npm start --production
    cd /var/ghost/myotherghostblog
    npm start --production
end script
</pre>
<h3>NGINX Installation</h3>
<pre class="brush: bash; title: ; notranslate">
apt-get install nginx
</pre>
<p>That was easy, wasn&#8217;t it?</p>
<h3>NGINX Configuration</h3>
<p>NGINX keeps its site configuration files in two directories within <code>/etc/nginx</code>:</p>
<ul>
<li><code>sites-available</code> — Each site gets its own configuration file in here</li>
<li><code>sites-enabled</code> — This directory contains <a href="http://en.wikipedia.org/wiki/Symbolic_link">symbolic links</a> pointing to the files in <code>sites-available</code>.</li>
</ul>
<p>Let&#8217;s create a new site configuration for <code>myghostblog</code>.</p>
<pre class="brush: bash; title: ; notranslate">
cd /etc/nginx/sites-available
nano myghostblog
</pre>
<p>A simple configuration that does nothing but pass traffic addressed to <code>my-awesome-ghost-blog.com</code> to the Ghost blog listening on port 2368 looks like this:</p>
<pre class="brush: plain; title: ; notranslate">
server {
    server_name my-awesome-ghost-blog.com;

    location / {
        proxy_pass http://127.0.0.1:2368;
    }
}
</pre>
<p>Of course, <a href="http://wiki.nginx.org/Main">NGINX</a> is a powerful and flexible piece of software that is capable of a lot more. This is just one of many things you can use it for.</p>
<p>As before, save the file by pressing control+o and quit nano with control+x. Next, move back up one directory level to /etc/nginx and create a symbolic link in <code>sites-enabled</code>, pointing to the file in <code>sites-available</code>.</p>
<pre class="brush: bash; title: ; notranslate">
cd ../
ln -s sites-available/myghostblog sites-enabled/myghostblog
</pre>
<h3>Fire it Up</h3>
<p>Now that you have everything configured, you can start (or stop) the processes with the <code>service</code> command.</p>
<pre class="brush: bash; title: ; notranslate">
service ghost start
service nginx start
</pre>
<p>You can replace <code>start</code> with <code>stop</code> to exit ghost or nginx if you have reason to do so, or <code>restart</code> if you need to reload one after making some sort of change. (e.g. editing Ghost&#8217;s <code>config.js</code> file requires that Ghost be restarted.) NGINX can reload its config files without doing a full restart of the process with <code>service nginx reload</code>, which takes less time and is useful when making edits.</p>
<p>If all went well, you should be able to open your Ghost blog in a browser.</p>
<h3>Managing Memory</h3>
<p>How much memory is Ghost using, you may wonder. And if you aren&#8217;t, you probably should. The enemy of performance on web servers is <a href="http://en.wikipedia.org/wiki/Paging">swapping</a>, which is where the system runs out of available RAM and starts copying things back and forth to the hard disk, causing major slowdowns. This is frequently referred to as &#8220;thrashing.&#8221; Even a fast solid state drive is orders of magnitude slower than RAM.</p>
<p>There are some useful tools for monitoring available RAM and inspecting active processes. The most commonly used ones are <code>free</code>, <code>top</code>, and <code>ps</code>.</p>
<p>The <code>free</code> command shows the system&#8217;s memory totals. If you run it with the <code>m</code> flag (<code>free -m</code>) to show the values in human-readable megabytes instead of plain bytes, you should see something like this:</p>
<pre class="brush: bash; title: ; notranslate">
root@DeepSpaceNine:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           369        129        239          0         11         51
-/+ buffers/cache:         67        302
Swap:          767          0        767
</pre>
<p>The most important line is the one labeled <code>-/+ buffers/cache</code>. Modern operating systems don&#8217;t waste memory. If nothing else is making use of it, the OS will make use of it until the space is needed. The <code>-/+</code> line shows the usage sans caches. In this example, there are 302MB of free memory with only 67 being in use. There is also nothing in swap, which is exactly what you want to see.</p>
<p>The <code>top</code> command shows a live-updated table of currently running processes, and statistics for them. By default, it&#8217;s sorted by CPU activity, but you can sort by memory usage by pressing shift+M.</p>
<p style="text-align: center;"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5237 imgborder" alt="The top command" src="//www.webmaster-source.com/wp-content/uploads/2013/11/ghost-top-cmd.png" width="600" height="381" /></p>
<p>Pressing control+C exits <code>top</code>.</p>
<p>Need to see a list of all running processes? Run <code>ps aux</code>. Be prepared for a huge list, as it will be full of system processes.</p>
<h3>Conclusion</h3>
<p>I hope this guide helps you get started with Ghost. I realize it is a bit technical, something the upcoming hosted service and DigitalOcean&#8217;s <a href="https://www.digitalocean.com/community/articles/how-to-use-the-digitalocean-ghost-application">one-click Ghost image</a> should help obviate, but hey, it&#8217;s new. It was harder to get up an running with WordPress back in 2003, too.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/11/06/installing-multiple-ghost-blogs-behind-nginx-on-ubuntu-12-04/feed/</wfw:commentRss>
		<slash:comments>242</slash:comments>
		</item>
		<item>
		<title>Solar Theme for Ghost Blogs</title>
		<link>https://www.webmaster-source.com/2013/10/17/solar-theme-for-ghost-blogs/</link>
		<comments>https://www.webmaster-source.com/2013/10/17/solar-theme-for-ghost-blogs/#comments</comments>
		<pubDate>Fri, 18 Oct 2013 02:34:56 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5219</guid>
		<description><![CDATA[Need a stylish new design for your Ghost blog? Looking for something that puts your content first, with an emphasis on reducing eye strain? Allow me to introduce my new theme (which is technically a port of the one I made for Jekyll), based on the Solarized color palette. It includes stylesheets for the default [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Need a stylish new design for your <a href="http://ghost.org">Ghost</a> blog? Looking for something that puts your content first, with an emphasis on reducing eye strain? Allow me to introduce my new theme (which is technically a port of <a href="http://www.webmaster-source.com/2013/06/19/solar-a-jekyll-theme-based-on-the-solarized-color-palette/">the one I made for Jekyll</a>), based on the <a href="http://ethanschoonover.com/solarized">Solarized</a> color palette. It includes stylesheets for the default light-on-dark version, and for the alternate dark-on-light one.</p>
<p style="text-align: center;"><a href="http://www.webmaster-source.com/wp-content/uploads/2013/10/solar-ghost.png"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-5220 imgborder" alt="Solar Theme for Ghost" src="//www.webmaster-source.com/wp-content/uploads/2013/10/solar-ghost-600x292.png" width="600" height="292" /></a></p>
<p>The theme is responsive, with a little bit of  JavaScript that collapses the left navigation into a &lt;select&gt; box on mobile-sized displays. It supports both uploadable logos (which replace them text-based heading at the top) and cover images, which appear at the very top of the page. Your author bio and profile picture appear in the sidebar when viewing a post page, as well.</p>
<h3>Installing the Theme</h3>
<ol>
<li><a href="https://github.com/mattvh/solar-theme-ghost/archive/master.zip">Download it here</a> (or clone it <a href="https://github.com/mattvh/solar-theme-ghost">on GitHub</a>)</li>
<li>Upload the <code>solar</code> directory to your Ghost blog&#8217;s <code>content/themes</code> folder.</li>
<li>Go to the Settings page of the Ghost backend and select <code>solar</code> from the Theme dropdown. Save the settings.</li>
</ol>
<p>Be sure to edit the <code>default.hbs</code> template to add or remove any links you want in the navigation list. You&#8217;ll probably want to insert the link to your own Twitter profile instead of leaving it as mine, and maybe add your other social networking profiles.</p>
<p><iframe src="http://ghbtns.com/github-btn.html?user=mattvh&amp;repo=solar-theme-ghost&amp;type=watch&amp;count=true&amp;size=large" height="30" width="170" frameborder="0" scrolling="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/10/17/solar-theme-for-ghost-blogs/feed/</wfw:commentRss>
		<slash:comments>167</slash:comments>
		</item>
		<item>
		<title>Export Your Markdown Posts from Jekyll to Ghost</title>
		<link>https://www.webmaster-source.com/2013/10/14/export-your-markdown-posts-from-jekyll-to-ghost/</link>
		<comments>https://www.webmaster-source.com/2013/10/14/export-your-markdown-posts-from-jekyll-to-ghost/#comments</comments>
		<pubDate>Mon, 14 Oct 2013 06:52:30 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Ghost]]></category>
		<category><![CDATA[Jekyll]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5210</guid>
		<description><![CDATA[Want to export your Markdown posts from Jekyll to a format that can be easily imported into Ghost, now that the new blogging platform has launched? By reverse-engineering the plugin the Ghost developers made for WordPress, I put together a Jekyll plugin that generates a JSON file that follows the same format. (This was all [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Want to export your Markdown posts from <a href="http://jekyllrb.com">Jekyll</a> to a format that can be easily imported into <a href="http://ghost.org">Ghost,</a> now that the new blogging platform has launched? By reverse-engineering the plugin the Ghost developers made <a href="http://wordpress.org/plugins/ghost/">for WordPress</a>, I put together a Jekyll plugin that generates a JSON file that follows the same format. (This was all done in advance of the public release, so it&#8217;s untested super-beta software. Hopefully it will work for you without issue!)</p>
<ol>
<li>Clone <a href="https://github.com/redwallhp/Jekyll-to-Ghost">the repo</a> and drop the <code>jekylltoghost.rb</code> file into your Jekyll site&#8217;s <code>_plugins</code> directory.</li>
<li>Run <code>jekyll build</code>.</li>
<li>There should now be a <code>ghost_export.json</code> file in your <code>_site</code> directory, which you can copy and import into Ghost.</li>
</ol>
<p>To import the JSON file, you just need to visit <code>http://example.org/ghost/debug/</code> in your browser and look for the Import section.</p>
<p>Of course, this plugin is fairly limited. Both because of the simplistic nature of the original WordPress plugin I used as a guide, and because Ghost itself is brand-new and has many unimplemented features. This is pretty much just the posts, tags/categories and standard YAML front matter. Enough to get your words into Ghost, with the same permalinks and publication dates. Images will have to be dealt with manually, at least for the time being. (Basically, you just need to copy them from your Jekyll site to the appropriate folder in your Ghost installation and manually fix the paths in the posts.) But, hey, it&#8217;s open source. <a href="https://github.com/redwallhp/Jekyll-to-Ghost">Fork it and hack away!</a></p>
<p><a href="https://github.com/redwallhp/Jekyll-to-Ghost">Jekyll-to-Ghost Exporter</a> [GitHub]</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/10/14/export-your-markdown-posts-from-jekyll-to-ghost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghost: The New Blogging Platform, and Why it Matters</title>
		<link>https://www.webmaster-source.com/2013/10/02/ghost-the-new-blogging-platform-and-why-it-matters/</link>
		<comments>https://www.webmaster-source.com/2013/10/02/ghost-the-new-blogging-platform-and-why-it-matters/#comments</comments>
		<pubDate>Thu, 03 Oct 2013 01:59:53 +0000</pubDate>
		<dc:creator><![CDATA[Matt]]></dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Ghost]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5200</guid>
		<description><![CDATA[Ghost is a new blogging platform that aims to do one thing and do it well: blogging. Its developers want to recapture the spirit of blogging that was present in the earlier days, when it was all about writing and publishing long-form content. A return to the blog&#8217;s roots. Ghost has no complex content management [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5201" alt="Ghost Logo" src="//www.webmaster-source.com/wp-content/uploads/2013/10/ghost-logo.png" width="196" height="135" /><a href="http://ghost.org">Ghost</a> is a new blogging platform that aims to do one thing and do it well: blogging. Its developers want to recapture the spirit of blogging that was present in the earlier days, when it was all about writing and publishing long-form content. A return to the blog&#8217;s roots. Ghost has no complex content management features that add bloat, and no Tumblr-like microblogging tools that encourage the reposted image echo-chamber that Tumblr has become. Just a minimalist, distraction-free writing environment, where you write in <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a>, with a live preview. (It also features a slick dashboard that resembles a classier version of Windows 8&#8217;s Metro UI.)</p>
<p>Ghost is simultaneously an attempt to mesh blogging&#8217;s roots with the state of the art. Eschewing PHP, Ghost is a Node.js app built upon the Express framework. All of the blogs I&#8217;ve visited thus far that are running Ghost have been very speedy, a feat that is difficult to pull off with WordPress, in my experience.<span id="more-5200"></span></p>
<h2>The Story</h2>
<p>Ghost is the brainchild of John O&#8217;Nolan, former Deputy Head of the WordPress UI team, who last year put together a <a href="http://john.onolan.org/ghost">series of wireframes</a> for a conceptual blogging platform that focused purely on writing and publishing, rather than enabling the management of any type of website under the sun.</p>
<blockquote><p>…it&#8217;s about publishing—which means writing—rather than mashing a few buttons to make sure that everyone can see and appreciate your latest funny picture/status, which is surely the most funny picture/status you&#8217;ve ever posted. — <em>John O&#8217;Nolan</em></p></blockquote>
<p>Just a few months later, the project was <a href="http://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform">announced on Kickstarter.</a> It raised over 196,000 pounds during the campaign, well over the 25,000 pound goal.</p>
<p>Fast forward to the present and Ghost is <a href="http://blog.ghost.org/launch/">finally nearing its public release.</a> If all goes well, it should launch on <strong>October 14, 2013.</strong> It&#8217;s still a work in progress, and some things like the dashboard aren&#8217;t fully implemented yet, but the public will finally get to kick the tires and participate in the development.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5202" alt="Ghost Editor" src="//www.webmaster-source.com/wp-content/uploads/2013/10/ghost-editor.png" width="600" height="344" /></p>
<h2>Why I&#8217;m Excited</h2>
<ul>
<li>I like Markdown. It&#8217;s a great way to write. I&#8217;ve tried <a href="http://jekyllrb.com/">Jekyll</a>, and while there&#8217;s a certain allure about <a href="http://www.webmaster-source.com/2012/05/09/full-circle-the-return-of-static-blog-generators/">static blogs,</a> there&#8217;s a slightly larger barrier to getting your post out than typing it in and pressing a button. I have a pretty good workflow set up for my <a href="http://matt.harzewski.com">personal blog,</a> but it&#8217;s still enough of a hassle to annoy me at times. Ghost has a beautiful editor that works exactly like <a href="http://mouapp.com/">Mou</a> the two-paned Markdown editor I wrote this post in.</li>
<li>I like the idea of a platform that is minimalistic, with plugins providing more functionality. It keeps the core leaner, which can only be good for performance.</li>
<li>Let&#8217;s face it, WordPress is full of <a href="http://en.wikipedia.org/wiki/Cruft">cruft</a>. The codebase is pretty clunky, mostly in the name of backwards compatibility with ancient (i.e. terrible) plugins that the core team doesn&#8217;t want to break. It has its own implementation of <a href="http://en.wikipedia.org/wiki/Magic_quotes">Magic Quotes</a> since recent versions of PHP ditched it, for crying out loud! The developers can redesign the interface all they want, but the kludgey codebase still lurks beneath.</li>
<li>While WordPress started out as a blogging tool, it&#8217;s become more like Drupal and other CMS frameworks that want to be the be-all, end-all tool used for managing complex websites. If you want a straight-up blog, it&#8217;s overkill. (Plus, I&#8217;m becoming more and more dissatisfied with PHP for various reasons.)</li>
<li>There are several major companies backing Ghost. Envato and WooThemes, to name the two that I find the most intriguing. There have been many upstarts in the blog platform arena over the year, but few have had major industry leaders backing them right out of the gate. That&#8217;s a pretty big deal.</li>
<li>It&#8217;s new, and I want to get under the hood and play with it!</li>
</ul>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5203" alt="Ghost Dashboard" src="//www.webmaster-source.com/wp-content/uploads/2013/10/ghost-dashboard.png" width="600" height="399" /></p>
<p>&nbsp;</p>
<h2>But…What About Shared Hosting?</h2>
<p>The biggest recurring criticism I&#8217;ve seen voiced about Ghost is that it&#8217;s built on Node, while most of those cheap shared hosting offers from places like HostGator, GoDaddy, and their ilk are PHP-only.</p>
<p>Here&#8217;s the thing: cheap, commodity PHP hosting is—or should be—a thing of the past. Why pay $5-10/month for space on a slow, oversold shared server? You can pay $5/month for a VPS from <a href="https://www.digitalocean.com/pricing">DigitalOcean</a> with 512MB of RAM and 20GB of storage on an SSD. $10/month will get you a gigabyte of RAM and 30GB of storage.</p>
<p>For equal pricing to shared hosting, you can get a virtual server with guaranteed resources and full control over the box. It&#8217;s a no-brainer.</p>
<p>Sure, some people might not be comfortable setting a VPS up, but</p>
<ul>
<li>They can learn. It&#8217;s not difficult. You just need to run a few commands to install packages, maybe edit a few config files, and you&#8217;re done. If you can learn to install WordPress and use it, you can learn how to <code>apt-get install [whatever]</code>. Or in the case of businesses, hire someone who does.</li>
<li>Someone else can do it for them. I imagine this is often the case with people using shared hosts, anyway. Some shared hosts even use things like &#8220;Fantastico&#8221; to automatically install popular PHP scripts on their customers&#8217; accounts. Such a thing could be offered for a JavaScript-centered hosting environment as well.</li>
<li>A user who doesn&#8217;t need the flexibility of a self-hosted system can use a hosted solution. Just like many WordPress users opt to use WordPress.com, so may Ghost users. O&#8217;Nolan plans for such a service to be offered, eventually.</li>
</ul>
<p>Mark your calendars!</p>
]]></content:encoded>
			<wfw:commentRss>https://www.webmaster-source.com/2013/10/02/ghost-the-new-blogging-platform-and-why-it-matters/feed/</wfw:commentRss>
		<slash:comments>137</slash:comments>
		</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/


Served from: www.webmaster-source.com @ 2026-04-29 11:42:12 by W3 Total Cache
-->