manfromhuh fa921bcf39 Update 'README.md'
Add a description for the authoring system.
2022-12-20 17:07:57 -05:00
2022-06-29 09:08:22 -04:00
2022-12-20 17:07:57 -05:00

simple_blog

simple_blog is a basic blogging platform. It is designed to be a straightforward way to publish articles written in Markdown and display them using a renderer written in PHP. There is no login page or any way to manage simple_blog from the web. All management is done via the command line. This can be done with a shell script or with the python based simple_blog_cms.

Requirements

  • Currently tested with PHP 7.4
  • Some shell access is necessary.
    • The recommend way is via ssh.
    • I don't see a technical reason it can't work with a web manager like cPannel or Ajenti as long has you have the ability to upload files and manage files.

Publishing

Publishing can be done manually or with a script that accomplishes the following tasks.

  1. Create a directory under /blog/by_year/$CURRENT_YEAR/$CURRENT_MONTH/
    • For a post in January of 2022 this would be /blog/by_year/2022/01/
    • The directory should start with a numeral otherwise it will be sorted alphabetically
  2. Place a file named article.md containing the MarkDown formatted text of the article in the directory created in the previous step
  3. Copy or symlink /common/index.php into the directory created in step 1
  4. Place a file named tags containing a comma separated list of tags for the article in the directory created in step 1
  5. Add the article's relative path and title to /by_tag/tags.csv under the appropriate headings.

The recommended method is to use simple_blog_cms

Article Tags

Per-article List

A file named tags is placed in the directory for each article. It should contain a comma separated list of tags being applied to the article. This will be parsed and displayed by /common/md_read.php at the bottom of the article.

by_tags

This folder contains an index file that displays an article list generated by parsing the tags.csv file. A format example is displayed below.

"PHP" "JS" "Religion" "Catholic"
"/blog/by_year/2021/10/03_Forcing_Elements_to_reload/" "/blog/by_year/2021/10/03_Forcing_Elements_to_reload/" "/blog/by_year/2021/10/reproduction_of_Gainer_Bishop_Ronald_4-1-16/" reproduction_of_Gainer_Bishop_Ronald_4-1-16/"
"Forcing page elements to reload" "Forcing page elements to reload" "Open Letter to Bishop Ronald Gainer" "Open Letter to Bishop Ronald Gainer"
"/blog/by_year/2022/06/28_A_Test_Post/"
"A Test Post"

Authors

Post authors can be kept under /blog/authors/. Authors are kept in separate directories.

The authors directory is parsed by article.php using a file named author from the post's directory. This file should contain a single line with the author's name.

File Descriptions

blog

Contains the blog articles. The articles are placed in subdirectories of by_year according to the year and month they were published.

├── by_year
│   ├── 2021
│   │   ├── 12
│   │   └── index.php -> /path/to/common/index.php
│   ├── 2022
│   │   ├── 01
│   │   ├── 02
│   │   └── index.php -> /path/to/common/index.php
│   └── index.php
└── index.php  -> /path/to/common/index.php

common

This directory contains the files and libraries used to render the site's pages.

Composer files

  • composer.json
  • composer.lock
  • /common/vendor - Stores the composer files and libraries managed via composer.

CSS

JS

  • page_format.js - The main JS file used for formatting and adding extra functions to pages.

PHP

  • footer.php - The common page footer. Contains copyright information and links to the license.
  • get_month_name.php - Translates a numeral month into the corresponding name. I.E. 01 into January.
  • h1_month.php - Adds the proper <h1> heading based on the location of the
  • header.php - The common page header.
  • index.php - The index file used for most of the pages on the site.
  • markdown.php
  • md_read.php - Renders Markdown files and adds
  • menu.php - Generates the blog menu items in the navigation menu.
  • modal.php - Adds the modal <div> for displaying the image pop out.
  • page_menu.php - Generates a menu from the files and directories where it's run from.

/common/error_pages/

  • 403.php - The 403 not allowed page.
  • 404.php - The 404 page.
  • 500.php - Displayed for all HTTP 500 errors

/common/imgs/

Images used site wide.

/common/prisim

Files for the prism syntax highlighter.

license

This directory contains all the licensing information for simple_blog. simple_blog is licensed under the GPLv2 but uses components that are licensed under the MIT Open Source license. These components are:

index.php

Displays all of the reverent license and the components they apply to.

Copies of all these licenses can be found in the /license/ directory.

Description
A simple blogging system written in PHP and markdown.
Readme 1.2 MiB
Languages
PHP 57.2%
CSS 25%
JavaScript 15.1%
Hack 2.7%