summaryrefslogtreecommitdiff
path: root/README.nfo
blob: 42b516450582517c831986c3df811496b5f5163a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
┌──────────────────────────────────────────────────────────────┐
│  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                                                      │
└──────────────────────────────────────────────────────────────┘