# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.

# Plugins
plugins:
  - jekyll-feed
  - jekyll-paginate-v2
  - jekyll-redirect-from

# Exclude files
exclude:
  - _config.yml
  - .git
  - .gitignore
  - .jekyll-cache/
  - .sass-cache/
  - .vscode
  - build/
  - Gemfile
  - Gemfile.lock
  - node_modules/
  - workspace.code-workspace

# Include Files
include:
  - assets/

# General Information
title: Xaymar
email: info@xaymar.com
tagline: 'Pushing 1 Pixel at a time'
description: >- # this means to ignore newlines
  Just another software developer in an endless pool of humans.
author: Michael Fabian 'Xaymar' Dirks

# Web-hosting
baseurl: "" # the subpath of your site, e.g. /blog
url: 'https://www.xaymar.com' # the base hostname & protocol for your site, e.g. http://example.com
permalink: '/articles/:year/:month/:day/:slug/'

# Themeing
ignore_theme_config: true
#theme: null

collections:
  posts:
    output: false
    label: "Articles"
  guides:
    output: true
    permalink: '/guides/:path/'
    label: "Guides"
    sort_by: title
  projects:
    output: true
    permalink: '/projects/:path/'
    label: "Projects"
    sort_by: title
  about:
    output: true
    permalink: '/about/:path/'
    label: "About"
    sort_by: title

defaults:
  -
    scope:
      path: ""
    values:
      type: "post"
      layout: "default"
      author: "Michael Fabian 'Xaymar' Dirks <info@<xaymar.com>"
      page_excerpt: true
      comments: true
  -
    scope:
      path: ""
      type: "pages"
    values:
      type: "page"
  -
    scope:
      path: "/feed/*.xml"
    values:
      sitemap:
        exclude: true
  -
    scope:
      path: "/feed/**/*.xml"
    values:
      sitemap:
        exclude: true

# Custom Theme Config
xaymar:
  data:
    logo: '/assets/logo.svg'
    fonts: '/assets/fonts.css'
    css: '/assets/site.css'
    js: '/assets/site.js'
    rss: '/feed.xml'
  info:
    home: 'Home'
    footer:
      copyright: "© 2021 Michael Fabian 'Xaymar' Dirks"
  index:
    readmore: 'Read More'
    excerpt:
      enabled: true
      length: 100
  opengraph:
    excerpt:
      enabled: true
      length: 100
  links:
    collection:
      permalink: '/:coll'
      slugify: 'default'
    category:
      permalink: '/category/:cat'
      slugify: 'default'
    tag:
      permalink: '/tag/:tag'
      slugify: 'default'
  meta:
    enabled: true
    permalink:
      enabled: true
    tags:
      enabled: true
    timestamp:
      enabled: true
  comments:
    enabled: true
    provider: "disqus"
    disqus:
      identifier: 'xaymars-blog'
      url: 'https://www.xaymar.com:pageurl'

############################################################
# Jekyll-feed
feed:
  posts_limit: 100
  excerpt_only: true
  categories:
    - "Blog"
    - "News"
    - "Reviews"
  tags:
    path: "/feed/tag/"

############################################################
# sitemap
sitemap:
  exclude:
    - "sitemap.xml"
    - "feed.xml"
    - "/feed/"
    - "site.css.map"

############################################################
# Site configuration for the Jekyll 3 Pagination Gem
# The values here represent the defaults if nothing is set
pagination:

  # Site-wide kill switch, disabled here it doesn't run at all
  enabled: true

  # Set to 'true' to enable pagination debugging. This can be enabled in the site config or only for individual pagination pages
  debug: false

  # The default document collection to paginate if nothing is specified ('posts' is default)
  collection: 'posts'

  # How many objects per paginated page, used to be `paginate` (default: 0, means all)
  per_page: 9

  # The permalink structure for the paginated pages (this can be any level deep)
  permalink: '/page/:num/' # Pages are index.html inside this folder (default)
  #permalink: '/page/:num.html' # Pages are simple html files
  #permalink: '/page/:num' # Pages are html files, linked jekyll extensionless permalink style.

  # Optional the title format for the paginated pages (supports :title for original page title, :num for pagination page number, :max for total number of pages)
  title: ':title [:num/:max]'

  # Limit how many pagenated pages to create (default: 0, means all)
  limit: 0

  # Optional, defines the field that the posts should be sorted on (omit to default to 'date')
  sort_field: 'date'

  # Optional, sorts the posts in reverse order (omit to default decending or sort_reverse: true)
  sort_reverse: true

  # Optional, the default category to use, omit or just leave this as 'posts' to get a backwards-compatible behavior (all posts)
  category: 'posts'

  # Optional, the default tag to use, omit to disable
  tag: ''

  # Optional, the default locale to use, omit to disable (depends on a field 'locale' to be specified in the posts,
  # in reality this can be any value, suggested are the Microsoft locale-codes (e.g. en_US, en_GB) or simply the ISO-639 language code )
  locale: ''

 # Optional,omit or set both before and after to zero to disable.
 # Controls how the pagination trail for the paginated pages look like.
  trail:
    before: 2
    after: 2

  # Optional, the default file extension for generated pages (e.g html, json, xml).
  # Internally this is set to html by default
  extension: html

  # Optional, the default name of the index file for generated pages (e.g. 'index.html')
  # Without file extension
  indexpage: 'index'

autopages:
  # Site-wide kill switch, disable here and it doesn't run at all
  enabled: true

  # Category pages, omit entire config element to disable
  categories:
    # Optional, the list of layouts that should be processed for every category found in the site
    layouts:
      - 'index.liquid'
    # Optional, the title that each category paginate page should get (:cat is replaced by the Category name)
    title: ':cat'
    # Optional, the permalink for the  pagination page (:cat is replaced),
    # the pagination permalink path is then appended to this permalink structure
    permalink: '/category/:cat'
    # Optional, when true logging related to category pages will be supressed.
    silent: false
    slugify:
      mode: 'default'   # :cat is slugified. Modes: default, raw, pretty, ascii, latin
      case: false       # Whether to replace all uppercase letters with their lowercase counterparts

  # Collection pages, omit to disable
  collections:
    layouts:
      - 'index.liquid'
    title: ':coll' # :coll is replaced by the collection name
    permalink: '/:coll'
    silent: false
    slugify:
      mode: 'default'   # :coll is slugified.
      case: false

  # Tag pages, omit to disable
  tags:
    layouts:
      - 'index_tags.liquid'
    title: 'Tag: :tag' # :tag is replaced by the tag name
    permalink: '/tag/:tag'
    silent: false
    slugify:
      mode: 'default'   # :tag is slugified.
      case: false
