krz/php-blog
clone: git clone https://gitbay.org/krz/php-blog.git
main:
| 100644 | .gitignore | 16 |
| 100644 | LICENSE | 639 |
| 100644 | README.nfo | 2797 |
| 040000 | _classes/ | |
| 040000 | _data/ | |
| 040000 | _functions/ | |
| 040000 | _templates/ | |
| 100644 | favicon.ico | 104370 |
| 100644 | index.php | 6901 |
| 040000 | posts/ | |
| 040000 | static/ |
┌──────────────────────────────────────────────────────────────┐
│ P H P - B L O G [ KRZ ] krz.sh │
└──────────────────────────────────────────────────────────────┘
WHAT
php-blog. database-free blogging app in php. articles in markdown,
metadata and comments in json.
PHILOSOPHY
a blog should degrade gracefully over time. articles, metadata, and
comments live in the git repo, not a database.
INSTALL
cd yourBlog.com
git clone <REPO_URL>
set the globals at the top of index.php:
$websiteProtocol = 'https://';
$shortDomain = 'yourBlog.com';
clear the sample data and posts:
cd _data/ && rm -rf *
touch comments.json && touch metadata.json
cd ../posts/ && rm -rf *
touch 001-your-first-post.md
add a metadata object in _data/metadata.json for every post. enable
FallbackResource in apache .conf or .htaccess:
FallbackResource /index.php
STRUCTURE
index.php fallback resource; routes requests, calls
functions, fills the template
_classes/ Comment.php, Parsedown.php (erusev/parsedown, MIT),
Template.php
_data/ metadata.json (one object per post), comments.json
(written server-side as comments arrive)
_functions/ loadJSON.php, loadRSS.php, parseMarkdown.php,
submitComment.php
_templates/ template.html
posts/ markdown post bodies
static/ app.css, optional prism.css / prism.js for syntax
highlighting
metadata object:
{
"id": "001",
"title": "Title of Post",
"author": "Your Name",
"description": "...",
"tag": "my-category",
"created": "2018-12-08 00:00:00",
"modified": "2018-12-08 00:00:00",
"link": "https://www.example.com/post/name.html",
"published": "Yes"
}
let the web user write comments.json (apache is usually www-data):
chgrp -R www-data /path/to/website/
chmod -R g+w _data/comments.json
┌──────────────────────────────────────────────────────────────┐
│ krz.sh │
└──────────────────────────────────────────────────────────────┘