aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2014-02-28 09:26:00 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2014-02-28 09:26:00 -0300
commit55744f61abf98f56619746a0b28b0ebbc0a5bf6f (patch)
tree482115accaee8f1d33be79f011d34fe89e7be135
parent0f1e24f7888ba16fe5629c57fd00f0deacb63e5e (diff)
Add the awesome patch by Chris "kwpolska" Warrick (add install_bs3 command) (Closes: #734613)
-rw-r--r--debian/patches/0001-Add-an-install_bs3-command.patch180
-rw-r--r--debian/patches/0001-Making-bootstrap-as-default-theme-not-bootstrap3.patch21
-rw-r--r--debian/patches/0002-Remove-jquery-version-of-bundles.patch18
-rw-r--r--debian/patches/series2
4 files changed, 199 insertions, 22 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
+
diff --git a/debian/patches/0001-Making-bootstrap-as-default-theme-not-bootstrap3.patch b/debian/patches/0001-Making-bootstrap-as-default-theme-not-bootstrap3.patch
deleted file mode 100644
index 38f381e..0000000
--- a/debian/patches/0001-Making-bootstrap-as-default-theme-not-bootstrap3.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Agustin Henze <tin@sluc.org.ar>
-Date: Mon, 18 Nov 2013 19:05:59 -0300
-Subject: Making bootstrap as default theme, not bootstrap3
-
----
- nikola/plugins/command/init.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/nikola/plugins/command/init.py b/nikola/plugins/command/init.py
-index 1873ec4..59a27e0 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/debian/patches/0002-Remove-jquery-version-of-bundles.patch b/debian/patches/0002-Remove-jquery-version-of-bundles.patch
new file mode 100644
index 0000000..d018df9
--- /dev/null
+++ b/debian/patches/0002-Remove-jquery-version-of-bundles.patch
@@ -0,0 +1,18 @@
+From: Agustin Henze <tin@sluc.org.ar>
+Date: Thu, 21 Nov 2013 08:33:15 -0300
+Subject: Remove jquery version of bundles
+
+---
+ nikola/data/themes/bootstrap/bundles | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/nikola/data/themes/bootstrap/bundles b/nikola/data/themes/bootstrap/bundles
+index 14124a3..089b036 100644
+--- a/nikola/data/themes/bootstrap/bundles
++++ b/nikola/data/themes/bootstrap/bundles
+@@ -1,4 +1,4 @@
+ assets/css/all-nocdn.css=bootstrap.css,bootstrap-responsive.css,rst.css,code.css,colorbox.css,theme.css,custom.css
+ assets/css/all.css=rst.css,code.css,colorbox.css,theme.css,custom.css
+-assets/js/all-nocdn.js=jquery-1.10.2.min.js,bootstrap.min.js,jquery.colorbox-min.js
++assets/js/all-nocdn.js=jquery.min.js,bootstrap.min.js,jquery.colorbox-min.js
+ assets/js/all.js=jquery.colorbox-min.js
diff --git a/debian/patches/series b/debian/patches/series
index fe6bf15..d07eb8b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,2 @@
-0001-Making-bootstrap-as-default-theme-not-bootstrap3.patch
+0001-Add-an-install_bs3-command.patch
0002-Remove-jquery-version-of-bundles.patch