aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/0001-Add-an-install_bs3-command.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0001-Add-an-install_bs3-command.patch')
-rw-r--r--debian/patches/0001-Add-an-install_bs3-command.patch180
1 files changed, 180 insertions, 0 deletions
diff --git a/debian/patches/0001-Add-an-install_bs3-command.patch b/debian/patches/0001-Add-an-install_bs3-command.patch
new file mode 100644
index 0000000..2a12989
--- /dev/null
+++ b/debian/patches/0001-Add-an-install_bs3-command.patch
@@ -0,0 +1,180 @@
+From d5075664c8ed6ca24a4f020484d60b2e22040d11 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Chris=20=E2=80=9CKwpolska=E2=80=9D=20Warrick?=
+ <kwpolska@gmail.com>
+Date: Thu, 23 Jan 2014 19:07:26 +0100
+Subject: [PATCH] Add an install_bs3 command for Debian.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Chris “Kwpolska” Warrick <kwpolska@gmail.com>
+---
+ nikola/conf.py.in | 2 +
+ nikola/plugins/command/init.py | 2 +-
+ nikola/plugins/command/install_bs3.plugin | 10 +++
+ nikola/plugins/command/install_bs3.py | 110 ++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletion(-)
+ create mode 100644 nikola/plugins/command/install_bs3.plugin
+ create mode 100644 nikola/plugins/command/install_bs3.py
+
+diff --git a/nikola/conf.py.in b/nikola/conf.py.in
+index d487ed1..4834468 100644
+--- a/nikola/conf.py.in
++++ b/nikola/conf.py.in
+@@ -285,6 +285,8 @@ COMPILERS = ${COMPILERS}
+ # the main (the newest) index page (index.html)
+
+ # Name of the theme to use.
++# WARNING: With this Nikola package, the bootstrap3 theme must be installed
++# separately. In order to do this, use: nikola install_bs3
+ THEME = "${THEME}"
+
+ # Color scheme to be used for code blocks. If your theme provides
+diff --git a/nikola/plugins/command/init.py b/nikola/plugins/command/init.py
+index 96caad8..dc5ca2d 100644
+--- a/nikola/plugins/command/init.py
++++ b/nikola/plugins/command/init.py
+@@ -64,7 +64,7 @@ class CommandInit(Command):
+ 'BLOG_EMAIL': "joe@demo.site",
+ 'BLOG_DESCRIPTION': "This is a demo site for Nikola.",
+ 'DEFAULT_LANG': "en",
+- 'THEME': 'bootstrap3',
++ 'THEME': 'bootstrap',
+
+ 'POSTS': """(
+ ("posts/*.rst", "posts", "post.tmpl"),
+diff --git a/nikola/plugins/command/install_bs3.plugin b/nikola/plugins/command/install_bs3.plugin
+new file mode 100644
+index 0000000..1773a07
+--- /dev/null
++++ b/nikola/plugins/command/install_bs3.plugin
+@@ -0,0 +1,10 @@
++[Core]
++Name = install_bs3
++Module = install_bs3
++
++[Documentation]
++Author = Roberto Alsina, Chris Warrick
++Version = 0.1
++Website = http://getnikola.com
++Description = Install the bootstrap3 theme into the current site.
++
+diff --git a/nikola/plugins/command/install_bs3.py b/nikola/plugins/command/install_bs3.py
+new file mode 100644
+index 0000000..4060aef
+--- /dev/null
++++ b/nikola/plugins/command/install_bs3.py
+@@ -0,0 +1,110 @@
++# -*- coding: utf-8 -*-
++
++# Copyright © 2012-2014 Roberto Alsina, Chris Warrick and others.
++
++# Permission is hereby granted, free of charge, to any
++# person obtaining a copy of this software and associated
++# documentation files (the "Software"), to deal in the
++# Software without restriction, including without limitation
++# the rights to use, copy, modify, merge, publish,
++# distribute, sublicense, and/or sell copies of the
++# Software, and to permit persons to whom the Software is
++# furnished to do so, subject to the following conditions:
++#
++# The above copyright notice and this permission notice
++# shall be included in all copies or substantial portions of
++# the Software.
++#
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
++# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
++# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
++# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
++# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++from __future__ import print_function
++import os
++import json
++import shutil
++from io import BytesIO
++
++try:
++ import requests
++except ImportError:
++ requests = None # NOQA
++
++from nikola.plugin_categories import Command
++from nikola import utils
++
++LOGGER = utils.get_logger('install_theme', utils.STDERR_HANDLER)
++
++
++# Stolen from textwrap in Python 3.3.2.
++def indent(text, prefix, predicate=None): # NOQA
++ """Adds 'prefix' to the beginning of selected lines in 'text'.
++
++ If 'predicate' is provided, 'prefix' will only be added to the lines
++ where 'predicate(line)' is True. If 'predicate' is not provided,
++ it will default to adding 'prefix' to all non-empty lines that do not
++ consist solely of whitespace characters.
++ """
++ if predicate is None:
++ def predicate(line):
++ return line.strip()
++
++ def prefixed_lines():
++ for line in text.splitlines(True):
++ yield (prefix + line if predicate(line) else line)
++ return ''.join(prefixed_lines())
++
++
++class CommandInstallThemeBS3(Command):
++ """Install a theme. Bootstrap 3, to be precise."""
++
++ name = "install_bs3"
++ doc_usage = ""
++ doc_purpose = "install bootstrap3 into the current site"
++ output_dir = 'themes'
++ cmd_options = []
++
++ def _execute(self, options, args):
++ """Install theme into current site."""
++ if requests is None:
++ utils.req_missing(['requests'], 'install the bootstrap3 theme')
++
++ url = 'http://themes.getnikola.com/bs3/v6.3.0/bs3.json'
++ name = 'bootstrap3'
++
++ data = requests.get(url).text
++ data = json.loads(data)
++ installstatus = self.do_install(name, data)
++ if installstatus:
++ LOGGER.notice('Remember to set THEME="bootstrap3" in conf.py if you want to use it.')
++
++ def do_install(self, name, data):
++ if name in data:
++ utils.makedirs(self.output_dir)
++ LOGGER.notice('Downloading: ' + data[name])
++ zip_file = BytesIO()
++ zip_file.write(requests.get(data[name]).content)
++ LOGGER.notice('Extracting: {0} into themes'.format(name))
++ utils.extract_all(zip_file)
++ dest_path = os.path.join('themes', name)
++ else:
++ try:
++ theme_path = utils.get_theme_path(name)
++ except:
++ LOGGER.error("Can't find theme " + name)
++ return False
++
++ utils.makedirs(self.output_dir)
++ dest_path = os.path.join(self.output_dir, name)
++ if os.path.exists(dest_path):
++ LOGGER.error("{0} is already installed".format(name))
++ return False
++
++ LOGGER.notice('Copying {0} into themes'.format(theme_path))
++ shutil.copytree(theme_path, dest_path)
++ return True
+--
+1.8.5.3
+