# 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](/git/20xd6/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](/git/20xd6/simple_blog_cms "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`](/git/20xd6/simple_blog/src/branch/master/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" | | | ## 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 * [styles.css](/git/20xd6/simple_blog/src/branch/master/common/styles.css) - The main site CSS. * [jmenu.css]() - Used to render the responsive menus. * [print.css]() - Used to style printed pages. * [gallery.css]() - Styles the floating #### JS * font_size.js * [page_format.js]() - The main JS file used for formatting and adding extra functions to pages. * gallery.js #### 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 `