Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

gabian

  • Clone with SSH
  • Clone with HTTPS
  • Gabian

    Gabian is a theme for the Pelican static site generator. It is a fork of Peli-Kiera. Thanks to the Hugo-Kiera project for the inspiration.

    Demo

    Live-Demo at FIXME

    Installation

    Pelican-Docs will guide you through the initial installation. Once inside the project directory, Gabian theme can be installed by cloning the repo into your themes path and pointing to it in your pelicanconf.py.

    # Create a themes directory if it doesn't exists
    cd project-dir
    pelican-quickstart
    mkdir themes
    cd themes
    git clone FIXME
    
    # Add path to your theme directory in pelicanconf.py
    THEME = 'themes/gabian'

    In order to get read times and links between articles, the theme requires pelican-readtime and neighbors plugins.

    cd project-dir/
    # Please note the plugins repo is quite large and you only need the two.
    git clone https://github.com/getpelican/pelican-plugins
    
    # Add path to your plugins directory in pelicanconf.py
    PLUGIN_PATHS = ['pelican-plugins']
    PLUGINS = ['readtime', 'neighbors']

    A sample article header.

    Title: Simple is better than complex 
    Date: 2018-11-14
    Tags: python, jupyter, library
    Description: The Zen of Python
    Category: Python
    
    ### Introduction
    
    This is a standard paragraph. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

    Go ahead and create few articles in respective directories.

    # Generate articles and populate output
    pelican content -o output -s pelicanconf.py
    # start the local server on http://localhost:8000/
    pelican --autoreload --listen

    Final project directory structure should look similiar to this.

    (Pelican) ➜ project-dir tree
    
    ├── Makefile
    ├── content/
    │   ├── Python/
    │   │   ├── article-one.md
    │   │   ├── article-two.md
    │   │   └── article-three.md   
    │   ├── Research/
    │   │   ├── article-one.md
    │   │   ├── article-two.md
    │   │   └── article-three.md
    │   ├── images/
    │   │   ├── camera-2008479_640.png
    │   │   ├── camera-wide.png
    │   │   └── wide-wide.png
    │   └── pages/
    │       └── about.md
    ├── output/ 
    
    ├── pelicanconf.py
    ├── pelican-plugins/
    │   ├── neighbors
    │   │   ├── Readme.rst
    │   │   ├── __init__.py
    │   │   └── neighbors.py
    │   └── readtime
    │       ├── README.md
    │       ├── __init__.py
    │       └── readtime.py     
    ├── publishconf.py
    ├── tasks.py
    └── themes
        └── gabian/

    Settings

    Example pelicanconf.py

    #!/usr/bin/env python
    # -*- coding: utf-8 -*- #
    from __future__ import unicode_literals
    
    AUTHOR = 'Author'
    COPYRIGHT = '2023'
    SITENAME = 'Site-Name'
    SITEURL = 'https://www.example.com'
    SITESUBTITLE = 'Site Subtitle'
    PATH = 'content'
    TIMEZONE = 'America/New_York'
    DEFAULT_LANG = 'en'
    
    THEME = 'themes/gabian'
    PLUGIN_PATHS = ['pelican-plugins']
    PLUGINS = ['readtime', 'neighbors']
    STATIC_PATHS = ['images']
    # Article summary length on main index page
    SUMMARY_MAX_LENGTH = 100
    DEFAULT_PAGINATION = 10
    GITHUB_URL = 'https://github.com/'
    
    # Feed generation is usually not desired when developing
    FEED_ALL_ATOM = 'feeds/all.atom.xml'
    CATEGORY_FEED_ATOM = None
    TRANSLATION_FEED_ATOM = None
    AUTHOR_FEED_ATOM = None
    AUTHOR_FEED_RSS = None
    RSS_FEED_SUMMARY_ONLY = True
    
    # Social widget
    SOCIAL = (
        ('twitter', 'https://twitter.com/'),
        ('linkedin', 'https://www.linkedin.com'),
        ('github', 'https://github.com/'),
        ('gitlab', 'https://gitlab.com/'),
        ('facebook', 'https://facebook.com'),
        ('instagram', 'https://instagram.com'),
    )
    
    # DISQUS_SITENAME = ''
    # GOOGLE_ANALYTICS = ''
    
    # Uncomment following line if you want document-relative URLs when developing
    # RELATIVE_URLS = True

    Features

    • Atom/RSS feeds
    • Mobile friendly
    • Google analytics
    • Comments via Disqus
    • Font awesome icons
    • Modified pagination
    • Image placements

    Pagination and image placement

    The pagination is presented with the current page and 3 neighboring pages on either side.

    << < 7 8 9 10 11 12 13 > >>

    Images can be moved on page by adding the tag #float-right, #float-left, #mid and #full in your markdown.

    ![Title]({static}/images/my_image-600x400.png#float-right "camera icon")

    Similarly, the placement can also be applied to html directly by wrapping images in a <figure class="placement"> tag.

    <figure class="float-left">
        <img src="path-to/images/my_image-600x400.png" alt="camera icon">
    </figure>

    Minimum image width of 600px is recommended. Images scale accordingly on smaller screens.

    Preview from Peli-Kiera

    Screenshot1 Screenshot2 Screenshot3

    License

    MIT License