voce is a responsive theme for Pelican. It was templated on pelican-svbhack by Giulio Fidente. It is lightweight and suitable for text heavy articles.
You can see the theme in action on my site
- Clean, responsive design. Scales to fit any screen
- Fully usable without Javascript (although enabling it adds more functionality)
- Ability to hide email addresses from spambots
- Syntax highlighting for code blocks
- Integrated Google Analytics
- Custom sidebar links and social icons
- Fuzzy date display (ex: "Posted 2 days ago") using Javascript
- Automatically minifies and compresses Javascript and CSS
For automatic minification and compression of assets, this theme uses the
webassets package, along with cssmin
for
minifying css, slimit
for compressing Javascript, and libsass
for
compiling the SCSS styles.
- All these can be installed with
pip
by runningpip install -r requirements.txt
Additionally, to integrate the webassets
package into pelican, the pelican-assets plugin is required. It's included in this repo so it just needs to be activated in pelicanconf.py
. If you encounter any issues, you might need to download the latest version from the link above and replace the assets folder.
- Add
"<theme dir>/plugins"
to thePLUGIN_PATHS
list (oros.path.join("<theme dir>", "plugins")
if you're feeling Pythonic) - Add
"assets"
to thePLUGINS
list
- Clone this repository making sure to get the submodules (ex:
git clone --recursive <repo>
) - Install and configure the required dependencies (see above)
- Modify the
THEME
variable inpelicanconf.py
to point to the cloned theme location - Customize the theme using the options below
When developing locally, you may want to set SITEURL
to something like http://localhost:8000
This theme supports a number of custom variables:
GOOGLE_ANALYTICS_ID
: Your Google Analytics UA-XXXXXXXX-X code (None
to disable analytics).GOOGLE_ANALYTICS_PROP
: Your Google Analytics property name (None
to disable analytics).USER_LOGO_URL
: The image to display in the center of the page. Can be local or a remote URL.MANGLE_EMAILS
: If enabled, any emails in theSOCIAL
orLINKS
lists will be obfuscated in HTML and have their links generated by Javascript when the page loads.GLOBAL_KEYWORDS
: A list of strings that will be set as meta keywords for each page.FUZZY_DATES
: IfTrue
, uses lw-timeago to display fuzzy dates on articles (eg. 'Posted 3 months ago').
The following variables are required in pelicanconf.py to display the submenu with article categories.
- TAGS_URL = 'tags.html'
- ARCHIVES_URL = 'archives.html'
LINKS = (('Home','/index.html'),
('About','/pages/about.html'),)
SOCIAL = (('Feed','/feeds/all.atom.xml'),
('Email','mailto:xxx@gmail.com'),
('GitHub','http://github.com/limbenjamin'),)
voce uses social icons from font-awesome. To customise the icons, you will need to edit base.html. Change the link to the domain you wish to link to and look up the class name from font-awesome.
{% elif temp.startswith('mailto:') %}{% set class = 'fa-envelope' %}
{% elif temp.startswith('facebook.com') %}{% set class = 'fa-facebook' %}
{% elif temp.startswith('flickr.com') %}{% set class = 'fa-flickr' %}
pelican-subtle is authored by pR0Ps.
pelican-svbhack is authored by Giulio Fidente.
voce is authored by Benjamin Lim.
Pull requests welcome!
The MIT License (MIT)
Copyright (c) 2012 William Ting
Copyright (c) 2013 Giulio Fidente
Copyright (c) 2015 Carey Metcalfe
Copyright (c) 2016 Benjamin Lim
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.