Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Chris Warrick <kwpolska@gmail.com>
- Loading branch information
Showing
6 changed files
with
238 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
.. title: Friendly CLI | ||
.. slug: cli | ||
.. date: 2015-07-10 15:39:26 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
Write your page here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
.. title: Components | ||
.. slug: compoments | ||
.. date: 2015-07-10 15:39:05 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
Write your page here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
.. title: Fast | ||
.. slug: fast | ||
.. date: 2015-07-10 15:38:40 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
Write your page here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
.. title: Input Formats | ||
.. slug: formats | ||
.. date: 2015-07-10 15:38:52 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
Write your page here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
.. title: Features | ||
.. slug: index | ||
.. date: 2015-07-10 15:34:49 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
.. class:: alert alert-info | ||
.. contents:: | ||
|
||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-static pull-left"> | ||
<a href="/features/static.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-server fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Static sites | ||
============ | ||
|
||
Static websites are safer, use fewer resources, and avoid vendor and platform | ||
lock-in. You can host a Nikola website on any web server, big or small. It’s | ||
just a bunch of HTML files and assets. | ||
|
||
`Explore in depth » </features/static.html>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-fast pull-left"> | ||
<a href="/features/fast.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-bolt fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Incremental builds | ||
================== | ||
|
||
Nikola is fast. We use `doit <http://pydoit.org/>`_, which provides incremental | ||
rebuilds — in other words, we rebuild only the pages that need rebuilding, | ||
saving CPU time, wall clock time and upload bandwidth. | ||
|
||
`Explore in depth » </features/fast.rst>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-input pull-left"> | ||
<a href="/features/input.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-file-text fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Multiple input formats | ||
====================== | ||
|
||
Nikola will take input in many formats. Out of the box, we support | ||
reStructuredText, Markdown, IPython (Jupyter) Notebooks and HTML, and have | ||
plugins for many other formats. | ||
|
||
`Explore in depth » </features/input.html>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-components pull-left"> | ||
<a href="/features/components.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-cubes fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Built-in components | ||
=================== | ||
|
||
Nikola comes with everything you need to build a modern website: blogs (with | ||
comments, tags, categories, archives, RSS/Atom feeds), multilingual support, | ||
easy image galleries, and code listings. | ||
|
||
`Explore in depth » </features/components.html>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-extensible pull-left"> | ||
<a href="/extending.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-code fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Extensible | ||
========== | ||
|
||
Nikola is extensible. You can write a plugin to add any feature you want in a | ||
few lines of Python, or write your own theme in Mako or Jinja2. Or find | ||
something in the `Plugin <https://plugins.getnikola.com/>`__ and `Theme <http://themes.getnikola.com/>`__ Indexes. | ||
|
||
`Read the extending documentation » </extending.html>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-cli pull-left"> | ||
<a href="/features/cli.html"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-terminal fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Friendly CLI | ||
============ | ||
|
||
Nikola has a friendly user interface that gets you up and running quickly and | ||
simplifies your work. You do not need to memorize headers just to create a post | ||
— we’ll write them for you. | ||
|
||
`Explore in depth » </features/cli.html>`__ | ||
|
||
.. raw:: html | ||
|
||
<div class="feature-icon feature-icon-coil pull-left"> | ||
<a href="https://coil.readthedocs.org/"><span class="fa-stack fa-3x"> | ||
<i class="fa fa-circle fa-stack-2x"></i> | ||
<i class="fa fa-users fa-stack-1x fa-inverse"></i> | ||
</span></a></div> | ||
|
||
Coil CMS — a CMS for Nikola | ||
=========================== | ||
|
||
If you want to use Nikola for a website that has content authored by people who | ||
do not like command-line interfaces or who would prefer to use a WYSIWYG | ||
editor, we have a solution for you. | ||
|
||
Coil CMS is a basic CMS (with user management and a WYSIWYG HTML editor), which | ||
uses Nikola to generate the pages, combining the best of both worlds: you (or | ||
your editors) can easily create content, while the site is based on resilient | ||
static pages. Users don’t even have to know what Nikola, Python or static websites | ||
are. They just write their content. The only difference is that they (or | ||
someone with the necessary permissions) need to click a *Rebuild* button to | ||
make their changes show up on the website. | ||
|
||
`Read Coil CMS documentation » <https://coil.readthedocs.org/>`__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
.. title: Static | ||
.. slug: static | ||
.. date: 2015-07-10 15:38:32 UTC | ||
.. tags: | ||
.. category: | ||
.. link: | ||
.. description: | ||
.. type: text | ||
Most "modern" websites are *dynamic* in the sense that the contents of the site | ||
live in a database, and are converted into presentation-ready HTML only when a | ||
user wants to see the page. That's great. However, it presents some minor issues | ||
that static site generators try to solve. | ||
|
||
In a static site, the whole site, every page, *everything*, is created before | ||
the first user even sees it and uploaded to the server as a simple folder full | ||
of HTML files (and images, CSS, etc). | ||
|
||
So, let's see some reasons for using static sites: | ||
|
||
Security | ||
Dynamic sites are prone to experience security issues. The solution for that | ||
is constant vigilance, keeping the software behind the site updated, and | ||
plain old good luck. The stack of software used to provide a static site, | ||
like those Nikola generates, is much smaller (Just a web server). | ||
|
||
A smaller software stack implies less security risk. | ||
|
||
Obsolescense | ||
If you create a site using (for example) WordPress, what happens when WordPress | ||
releases a new version? You have to update your WordPress. That is not optional, | ||
because of security and support issues. If I release a new version of Nikola, and | ||
you don't update, *nothing* happens. You can continue to use the version you | ||
have now forever, no problems. | ||
|
||
Also, in the longer term, the very foundations of dynamic sites shift. Can you | ||
still deploy a blog software based on Django 0.96? What happens when your | ||
host stops supporting the php version you rely on? And so on. | ||
|
||
You may say those are long term issues, or that they won't matter for years. Well, | ||
I believe things should work forever, or as close to it as we can make them. | ||
Nikola's static output and its input files will work as long as you can install | ||
a Python 2.7/3.3 or newer under Linux, Windows, or OS X and can find a server | ||
that sends files over HTTP. That's probably 10 or 15 years at least. | ||
|
||
Also, static sites are easily handled by the Internet Archive. | ||
|
||
Cost and Performance | ||
On dynamic sites, every time a reader wants a page, a whole lot of database | ||
queries are made. Then a whole pile of code chews that data, and HTML is | ||
produced, which is sent to the user. All that requires CPU and memory. | ||
|
||
On a static site, the highly optimized HTTP server reads the file from disk | ||
(or, if it's a popular file, from disk cache), and sends it to the user. You could | ||
probably serve a bazillion (technical term) pageviews from a phone using | ||
static sites. | ||
|
||
Lock-in | ||
On server-side blog platforms, sometimes you can't export your own data, or |