#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
import os

# For an exhaustive list of available variables and how to use them refer to
# http://docs.getpelican.com/en/stable/settings.html

# Reference for signing off posts
AUTHOR = 'Luigi'

# Reference to the site name
SITENAME = 'Giggi.me'

# Custom variable, introduced for keeping requests cosistent
INDEX_LINK_AS = 'blog.html'

# If set, stop treating index.html as default posts binder
INDEX_SAVE_AS = INDEX_LINK_AS

# URL path to the root
SITEURL = 'https://www.giggi.me'

# URL path to the theme folder
THEMEURL = SITEURL

# Local path to the markdown source folder
PATH = 'content'

# Local path to the current theme folder
THEME = 'theme'

# Default time zone
TIMEZONE = 'Europe/London'

# The default date format you want to use.
DEFAULT_DATE_FORMAT = '%a %B %d %Y'

# The extensions to use when looking up template files from template names.
TEMPLATE_EXTENSION = [ '.html' ]

# Default language
DEFAULT_LANG = 'en'

# Feed generation is usually not desired when developing
FEED_ALL_ATOM = None

#
CATEGORY_FEED_ATOM = None

#
TRANSLATION_FEED_ATOM = None

#
AUTHOR_FEED_ATOM = None

#
AUTHOR_FEED_RSS = None

# Social widget
SOCIAL = (
    ('Linux', 'https://www.debian.org'),
    ('Mail', 'mailto:luigi.santivetti@gmail.com'),
)

#
DEFAULT_PAGINATION = False

# List of plugins paths utilised by this site
PLUGIN_PATHS = [
    'plugins',
]

# List of plugins names
PLUGINS = [
    'assets',
    'photos',
]

# Derive categories from the folder name
USE_FOLDER_AS_CATEGORY = False

# Show shortcuts to categories
DISPLAY_CATEGORIES_ON_MENU = True

# Show shortcuts to static pages (i.e. non articles)
DISPLAY_PAGES_ON_MENU = False

# Use cached html
LOAD_CONTENT_CACHE = False

# List of menu items
MENUITEMS = [
    ('Git', 'page/git.html'),
    ('Mail', 'page/mail.html'),
    ('Ftp', 'page/ftp.html'),
    ('About', 'page/about.html'),
    ('Invite', 'page/invite.html'),
    ('Login', 'page/login.html'),
]

# Enable line numbers
# https://python-markdown.github.io/reference/#markdown
MARKDOWN = {
    'extension_configs': {
        'markdown.extensions.codehilite': {'css_class': 'highlight', 'linenums' : True},
        'markdown.extensions.extra': {},
        'markdown.extensions.meta': {},
    },
    'output_format': 'html5',
}

#
# Defines whether Pelican should use document-relative URLs or not. Only set
# this to True when developing/testing# and only if you fully understand the
# effect it can have on links/feeds.
#RELATIVE_URLS = True

# The URL to refer to an article.
ARTICLE_URL = 'blog/{slug}.html'

# The place where we will save an article.
ARTICLE_SAVE_AS = 'blog/{slug}.html'

# The URL to refer to an article which doesn’t use the default language.
ARTICLE_LANG_URL = 'blog/{slug}-{lang}.html'

# The place where we will save an article which doesn’t use the default
# language.
ARTICLE_LANG_SAVE_AS = 'blog/{slug}-{lang}.html'

# The URL to refer to an article draft.
DRAFT_URL = 'draft/blog/{slug}.html'

# The place where we will save an article draft.
DRAFT_SAVE_AS = 'draft/blog/{slug}.html'

# The URL to refer to an article draft which doesn’t use the default language.
DRAFT_LANG_URL = 'draft/blog/{slug}-{lang}.html'

# The place where we will save an article draft which doesn’t use the default
# language.
DRAFT_LANG_SAVE_AS = 'draft/blog/{slug}-{lang}.html'

# The URL we will use to link to a page.
PAGE_URL = 'page/{slug}.html'

# The location we will save the page. This value has to be the same as PAGE_URL
# or you need to use a rewrite in your server config.
PAGE_SAVE_AS = 'page/{slug}.html'

# The URL we will use to link to a page which doesn’t use the default language.
PAGE_LANG_URL = 'page/{slug}-{lang}.html'

#The location we will save the page which doesn’t use the default language.
PAGE_LANG_SAVE_AS = 'page/{slug}-{lang}.html'

# The URL used to link to a page draft.
DRAFT_PAGE_URL = 'draft/page/{slug}.html'

# The actual location a page draft is saved at.
DRAFT_PAGE_SAVE_AS = 'draft/page/{slug}.html'

# The URL used to link to a page draft which doesn’t use the default language.
DRAFT_PAGE_LANG_URL = 'draft/page/{slug}-{lang}.html'

# The actual location a page draft which doesn’t use the default language is
# saved at.
DRAFT_PAGE_LANG_SAVE_AS = 'draft/page/{slug}-{lang}.html'

# The URL to use for a category.
CATEGORY_URL = 'category/{slug}.html'

# The location to save a category.
CATEGORY_SAVE_AS = 'category/{slug}.html'

# The URL to use for a tag.
TAG_URL = 'tag/{slug}.html'

# The location to save the tag page.
TAG_SAVE_AS = 'tag/{slug}.html'

# The URL to use for an author.
AUTHOR_URL = 'author/{slug}.html'

# The location to save an author.
AUTHOR_SAVE_AS = 'author/{slug}.html'

# The location to save per-year archives of your posts.
YEAR_ARCHIVE_SAVE_AS = 'blog/{date:%Y}/index.html'

# The URL to use for per-year archives of your posts. Used only if you have the
# {url} placeholder in PAGINATION_PATTERNS.
YEAR_ARCHIVE_URL = ''

# The location to save per-month archives of your posts.
MONTH_ARCHIVE_SAVE_AS = 'blog/{date:%Y}/{date:%b}/index.html'

# The URL to use for per-month archives of your posts. Used only if you have the
# {url} placeholder in PAGINATION_PATTERNS.
MONTH_ARCHIVE_URL = ''

# The location to save per-day archives of your posts.
DAY_ARCHIVE_SAVE_AS = 'blog/{date:%Y}/{date:%b}/{date:%d}/index.html'

# The URL to use for per-day archives of your posts. Used only if you have the
# {url} placeholder in PAGINATION_PATTERNS.
DAY_ARCHIVE_URL = ''

# Gallery plugin
PHOTO_LIBRARY = os.getenv('PELICAN_PHOTO_LIBRARY')
PHOTO_EXCLUDE = os.getenv('PELICAN_PHOTO_EXCLUDE')
PHOTO_EXCLUDEALL = os.getenv('PELICAN_PHOTO_EXCLUDEALL')
PHOTO_GALLERY = (2000, 1333, 100)
PHOTO_ARTICLE = (2000, 1333, 100)
PHOTO_THUMB = (300, 200, 100)
PHOTO_SQUARE_THUMB = False
