#!/usr/bin/env python # -*- coding: utf-8 -*- # # Probably replace those with simpler methods: from __future__ import unicode_literals from operator import itemgetter, methodcaller AUTHOR = 'Philipp Schönberger' EMAIL = 'mail AT phschoen.de' SITENAME = 'https://phschoen.de' OUTPUT_PATH = 'output/' STATIC_PATHS = [ 'images', 'extra', # this ] EXTRA_PATH_METADATA = { 'extra/robots.txt': {'path': 'robots.txt'}, 'extra/favicon.ico': {'path': 'favicon.ico'}, } # Base URL this page is hosted at: SITENAME = 'phschoen.de' # SITEURL = 'http://skylx125.ndsatcom.com:8000' SITEURL = 'http://localhost:8000' # Timezone is GMT+1: TIMEZONE = 'Europe/Paris' # Using a simple date format: DEFAULT_DATE_FORMAT = ('%d %b %Y') DEFAULT_LANG = 'en' DATE_FORMATS = { 'en': '%-d/%b/%Y', 'de': '%-d/%-m/%Y', } LOCALE = ('usa', 'de', # On Windows 'en_US', 'de_DE' # On Unix/Linux ) ARTICLE_URL = 'blog/{slug}' ARTICLE_SAVE_AS = 'blog/{slug}/index.html' ARTICLE_LANG_URL = '{lang}/blog/{slug}' ARTICLE_LANG_SAVE_AS = '{lang}/blog/{slug}.html' PAGE_URL = '{slug}' PAGE_SAVE_AS = '{slug}/index.html' PAGE_LANG_URL = '{lang}/{slug}' PAGE_LANG_SAVE_AS = '{lang}/{slug}/index.html' LOCALE = 'en_US' # We are using the custom minimal theme: THEME = 'themes/minimal' THEME_STATIC_DIR = 'theme' DELETE_OUTPUT_DIRECTORY = True # MARKUP = ('md',) # # Markdown Configuration: # MARKDOWN = { # 'extension_configs': { # 'markdown.extensions.codehilite': {'css_class': 'highlight'}, # 'markdown.extensions.toc' : {}, # 'markdown.extensions.extra': {}, # 'markdown.extensions.meta': {}, # }, # 'output_format': 'html5', # } # We don't use relative URLs: RELATIVE_URLS = False # Edit predefined pathes: ARCHIVES_SAVE_AS = 'pages/index.html' # Generates nice URLs for pages: PAGE_URL = '{slug}' PAGE_SAVE_AS = '{slug}/index.html' # Generate nice URLs for articles: ARTICLE_EXCLUDES = (('pages',)) ARTICLE_URL = 'blog/{slug}' ARTICLE_SAVE_AS = 'blog/{slug}/index.html' # Generate nice URLs for tags: TAG_URL = 'tag/{name}/' TAG_SAVE_AS = 'tag/{name}/index.html' TAGS_SAVE_AS = 'tags/index.html' # Generate nice URLs for categories: CATEGORY_URL = 'category/{name}/' CATEGORY_SAVE_AS = 'category/{name}/index.html' # Setup the RSS/ATOM feeds: FEED_DOMAIN = SITEURL FEED_MAX_ITEMS = 10 # We only want RSS/ATOM Feeds for all articles, exclude categories: FEED_RSS = 'feeds/rss.xml' TAG_FEED_RSS = 'feeds/{slug}.rss.xml' CATEGORY_FEED_RSS = None # Feed generation is usually not desired when developing FEED_ATOM = 'feeds/atom.xml' FEED_ALL_ATOM = None TAG_FEED_ATOM = None CATEGORY_FEED_ATOM = None TRANSLATION_FEED_ATOM = None # Separate page directory and articles directory: PAGE_PATHS = ['pages'] ARTICLE_PATHS = ['blog'] # Save index as blog/index.html instead of index.html: INDEX_SAVE_AS = 'blog/index.html' # Navigation menu: SECTIONS = [('blog', '/blog'), ('Gallery', '/gallery'), ('about', '/about'), ('Impressum', '/impressum'), ] # Links to display in the footer: LINKS = [('bsd', 'http://www.opensource.org/licenses/BSD-3-Clause'), ('xhtml', 'http://validator.w3.org/check/referer'), ('css3', 'http://jigsaw.w3.org/css-validator/check/referer?profile=css'), ('pelican', 'https://github.com/getpelican'), ] # Set some default category: DEFAULT_CATEGORY = 'uncategorized' # Social widget # SOCIAL = (('You can add links in your config file', '#'), # ('Another social link', '#'),) # DEFAULT_PAGINATION = 10 PLUGIN_PATHS = ['plugins', ] PLUGINS = ['lightgallery', 'i18n_subsites', 'sitemap'] SITEMAP = { 'format': 'xml', 'priorities': { 'articles': 0.5, 'indexes': 0.5, 'pages': 0.5 }, 'changefreqs': { 'articles': 'weekly', 'indexes': 'daily', 'pages': 'weekly' } } GITHUB_SOURCE_PATH = "wooot" I18N_SUBSITES = {'de': {'SITENAME': 'phschoen.de', 'THEME_STATIC_DIR': 'theme', 'OUTPUT_PATH': './output/de', }, 'en': {'SITENAME': 'phschoen.com', 'SITEURL': SITEURL, 'THEME_STATIC_DIR': 'theme', 'OUTPUT_PATH': './output/', }, } languages_lookup = {'en': {'name': 'English', 'icon': SITEURL + '/images/en.jpg' }, 'de': {'name': 'Deutsch', 'icon': SITEURL + '/images/de.jpg' }, } def lookup_lang_ico(lang_code): return languages_lookup[lang_code]['icon'] def lookup_lang_name(lang_code): return languages_lookup[lang_code]['name'] def getGitHubPage(source_file): filename = getBasename(source_file) return '{0}/{1}'.format(GITHUB_SOURCE_PATH, filename) def getBasename(path): import ntpath return ntpath.basename(path) def month_name(month_number): import calendar return calendar.month_name[month_number] def sortTupleByIndex(items, index=0, reverse=True): return sorted(items, key=lambda tup: len(tup[index]), reverse=reverse) def sortDictByKey(items, key, reverse=True, default=None): if default is None: return sorted(items, key=itemgetter(key), reverse=reverse) return sorted(items, key=methodcaller('get', key, default), reverse=reverse) JINJA_FILTERS = {'month_name': month_name, 'sortTupleByIndex': sortTupleByIndex, 'sortDictByKey': sortDictByKey, 'basename': getBasename, 'asGitHubPage': getGitHubPage, 'lookup_lang_name': lookup_lang_name, 'lookup_lang_ico': lookup_lang_ico, }