# pickmy.org Jekyll source

This is the main repository for pickmy.org's website. All the posts and custom code Jekyll uses to build the site.

The site is automatically built when I push stuff to the repository.

The VyprVPN page in /pbx is not generated by Jekyll. This is actually run by a different bash script and not part of this repository.

## Modifications To Theme

This uses [jekyll-theme-console by b2a3e8](https://github.com/b2a3e8/jekyll-theme-console) with a few modifications:

- _sass/base.scss has list bulleting code removed
- _sass/base.scss has had formatting changes (wider display, bigger text, more header sizes!)
- assets/list.scss now contains the list bullet code
- _includes/head.html modified to search for "list: bullet" in front matter
- _includes/header.html modified to look for page titled "/git" to display non-relative URL.
- _layouts: page and post html file have had title added using h1 tag
- _layouts: default.html has *pickmy.org added to img-src CSP since img.pickmy.org hosts images

All other changes are made in the markdown. I broke CSS and most of my changes aren't working. Must fix sometime.

## Organization Of Site

The concept of posts and pages the way they were with Wordpress are out the window. All posts are posts. All pages are posts.

I'm taking advantage of the fact I can make a folder, put a _posts folder under it, and Jekyll automatically categorizes those posts. This means there are three main types/categories of posts/pages:

- /blog: all general blogging type posts
- /pbx: all Asterisk related stuff
- /dev: all development based stuff

Post images or external resources ***ARE NOT*** stored in this repository. You think I'm crazy?

## Use of PHP

Despite being a static site generator; pickmy.org has usually had some form of random text line on it's pages since it's inception. To this effect I have specified permalinks on everything using a new format so Jekyll outputs .php files.

taglines.txt and tails.txt is not the same one used on the site. That one is stored externally and symlinked when the site is built. 

## Vypr Blacklist

Currently (as of 10-SEP-2022), I am providing a list of IP's from VyprVPN that are attcking SIP servers. This is *NOT* generated by Jekyll directly. It exists as chunks of files that are catted together with iptables output in the middle. This automatically updates every 4 hours via CRON and the githook reincludes this file every time the site is rebuilt.

## compose.sh

Compose.sh is a bash script becuase I'm lazy. It creates a file populated with front matter:

```
---
title:
date:
permalink:
exceprt_seperator:
---
```

Post categories are determined by sub-folders automatically; in fact no posts exist in the default _posts folder for that reason. It also copies the file to the right spot based on what you tell it.

```
user@host:~/blogsite$ ./compose.sh blog Post Title Here
```

It's the blog category followed by the title. You don't have to enclose the title, the script automatically assumes every word after the first is the title.

Permalink is set to output .php extensions under /category/year/MON/day-title.php - modify how you need.
