forked from 20xd6/simple_blog
Compare commits
30 Commits
add_byline
...
issue#5
| Author | SHA1 | Date | |
|---|---|---|---|
| fa921bcf39 | |||
| c312dbf995 | |||
| b91d699261 | |||
| 858d880837 | |||
| a06e7dabeb | |||
| e624e7c287 | |||
| b4ffc0b9f8 | |||
| b40b877a3f | |||
| 7734de9fa4 | |||
| 470773721a | |||
| 5d7b4cc121 | |||
| efe61157e8 | |||
| 5016fa8ce8 | |||
| 206f94f5db | |||
| 8da50f2841 | |||
| 7ff2cf1d0f | |||
| f80bc8dafa | |||
| 32f7d23ee4 | |||
| 015c5ef6db | |||
| 4958a76f9a | |||
| b01c237d5d | |||
| dd3405137f | |||
| 25f1887590 | |||
| 81629aa133 | |||
| 3e169d54ed | |||
| b7688ae2d4 | |||
| dc66b2db0f | |||
| 88b08fd1fc | |||
| d2861f1203 | |||
| 5e29d1e4d5 |
74
README.md
74
README.md
@@ -40,6 +40,11 @@ This folder contains an index file that displays an article list generated by pa
|
||||
| "/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`](/git/20xd6/simple_blog/src/commit/7734de9fa483257a90a658b74b78b47e4de716e2/common/php/article.php#L25) using a file named `author` from the post's directory. This file should contain a single line with the author's name.
|
||||
|
||||
## File Descriptions
|
||||
|
||||
@@ -49,14 +54,14 @@ Contains the blog articles. The articles are placed in subdirectories of `by_yea
|
||||
|
||||
```
|
||||
├── by_year
|
||||
│  ├── 2021
|
||||
│  │  ├── 12
|
||||
│  │  └── index.php -> /path/to/common/index.php
|
||||
│  ├── 2022
|
||||
│  │  ├── 01
|
||||
│  │  ├── 02
|
||||
│  │  └── index.php -> /path/to/common/index.php
|
||||
│  └── index.php
|
||||
│ ├── 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
|
||||
```
|
||||
|
||||
@@ -69,49 +74,44 @@ This directory contains the files and libraries used to render the site's pages.
|
||||
* composer.lock
|
||||
* [/common/vendor]() - Stores the composer files and libraries managed via composer.
|
||||
|
||||
#### CSS
|
||||
#### [CSS](/git/20xd6/simple_blog/src/branch/master/common/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
|
||||
* [styles.css](/git/20xd6/simple_blog/src/branch/master/common/css/styles.css) - The main site CSS.
|
||||
* [jmenu.css](/git/20xd6/simple_blog/src/branch/master/common/css/jmenu.css) - Used to render the responsive menus.
|
||||
* [print.css](/git/20xd6/simple_blog/src/branch/master/common/css/print.css) - Used to style printed pages.
|
||||
|
||||
#### JS
|
||||
#### [JS](/git/20xd6/simple_blog/src/branch/master/common/js)
|
||||
|
||||
* font_size.js
|
||||
* [page_format.js]() - The main JS file used for formatting and adding extra functions to pages.
|
||||
* gallery.js
|
||||
* [page_format.js](/git/20xd6/simple_blog/src/branch/master/common/js/page_format.js) - The main JS file used for formatting and adding extra functions to pages.
|
||||
|
||||
#### PHP
|
||||
#### [PHP](/git/20xd6/simple_blog/src/branch/master/common/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.
|
||||
* [footer.php](/git/20xd6/simple_blog/src/branch/master/common/php/footer.php) - The common page footer. Contains copyright information and links to the license.
|
||||
* [get_month_name.php](/git/20xd6/simple_blog/src/branch/master/common/php/get_month_name.php) - Translates a numeral month into the corresponding name. I.E. 01 into January.
|
||||
* [h1_month.php](/git/20xd6/simple_blog/src/branch/master/common/php/h1_month.php) - Adds the proper `<h1>` heading based on the location of the
|
||||
* [header.php](/git/20xd6/simple_blog/src/branch/master/common/php/header.php) - The common page header.
|
||||
* [index.php](/git/20xd6/simple_blog/src/branch/master/common/php/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.
|
||||
* [page_menu_table.php]()
|
||||
* [path_menu.php]()
|
||||
* [md_read.php](/git/20xd6/simple_blog/src/branch/master/common/php/md_read.php) - Renders Markdown files and adds
|
||||
* [menu.php](/git/20xd6/simple_blog/src/branch/master/common/php/menu.php) - Generates the blog menu items in the navigation menu.
|
||||
* [modal.php](/git/20xd6/simple_blog/src/branch/master/common/php/modal.php) - Adds the modal `<div>` for displaying the image pop out.
|
||||
* [page_menu.php](/git/20xd6/simple_blog/src/branch/master/common/php/page_menu.php) - Generates a menu from the files and directories where it's run from.
|
||||
|
||||
#### /common/error_pages/
|
||||
#### [/common/error_pages/](/git/20xd6/simple_blog/src/branch/master/common/error_pages)
|
||||
|
||||
* [/common/403.php]() - The 403 not allowed page.
|
||||
* [/common/404.php]() - The 404 page.
|
||||
* [/common/500.php]() - Displayed for all HTTP 500 errors
|
||||
* [403.php](/git/20xd6/simple_blog/src/branch/master/common/error_pages/403.php) - The 403 not allowed page.
|
||||
* [404.php](/git/20xd6/simple_blog/src/branch/master/common/error_pages/404.php) - The 404 page.
|
||||
* [500.php](/git/20xd6/simple_blog/src/branch/master/common/error_pages/500.php) - Displayed for all HTTP 500 errors
|
||||
|
||||
#### /common/imgs/
|
||||
#### [/common/imgs/](/git/20xd6/simple_blog/src/branch/master/common/imgs)
|
||||
|
||||
Images used site wide.
|
||||
|
||||
* [cursor.gif]() - Blinking cursor used on the front page.
|
||||
* [icon-rss.png]() - RSS icon
|
||||
* [cursor.gif](/git/20xd6/simple_blog/src/branch/master/common/imgs/cursor.gif) - Blinking cursor used on the front page.
|
||||
* [icon-rss.png](/git/20xd6/simple_blog/src/branch/master/common/imgs/icon-rss.png) - RSS icon
|
||||
|
||||
|
||||
#### /common/prisim
|
||||
#### [/common/prisim](/git/20xd6/simple_blog/src/branch/master/common/prisim)
|
||||
|
||||
Files for the prism syntax highlighter.
|
||||
|
||||
|
||||
52
blog/by_tag/index.php
Normal file → Executable file
52
blog/by_tag/index.php
Normal file → Executable file
@@ -4,36 +4,11 @@
|
||||
|
||||
echo "<article><h1 id=\"page_title\">Posts by Tag</h1></article>";
|
||||
echo "<div id=\"search_inputs\"><input type=\"text\" id=\"tag_sort\" onkeyup=\"tag_search()\" placeholder=\"Search Tags...\" title=\"Type a tage to search\"><input id=\"search_toggle\" type=\"button\" value=\"Search Titles\" onclick=\"search_toggle()\"></div><!--End Div Search Inputs-->";
|
||||
|
||||
//if(file_exists("tags.csv")){
|
||||
//echo "<ul id=\"tag_menu\">\n";
|
||||
//$csv = array_map('str_getcsv', file("tags.csv"));
|
||||
//array_walk($csv, function(&$a) use ($csv) {
|
||||
//$a = array_combine($csv[0], $a);
|
||||
//});
|
||||
//array_shift($csv); # remove column header
|
||||
//foreach ($csv as $row){
|
||||
//$counter = 0;
|
||||
//foreach ($row as $item){
|
||||
//$counter++;
|
||||
//if ($counter == 1){
|
||||
//echo "\t<li id=\"" . $item . "\">" . $item . " <a id=\"" . $item . "\"></a>\n";
|
||||
//} elseif ($counter % 2 == 0) {
|
||||
//if ($item == ""){
|
||||
//break;
|
||||
//} else {
|
||||
//echo "\t\t<ol><a href=\"" . $item . "\">";
|
||||
//}
|
||||
//} elseif ($counter % 2 != 0) {
|
||||
//echo $item . "</a></ol>\n";
|
||||
//}
|
||||
//}
|
||||
//echo "\t</li>\n";
|
||||
//}
|
||||
//echo "</ul>\n";
|
||||
//}
|
||||
|
||||
# Tags rewrite
|
||||
function read_tags($tags_file){
|
||||
if (filesize($tags_file) == 0){
|
||||
echo "<br/>\n<br/>";
|
||||
return;
|
||||
}
|
||||
$tags_csv = array_map('str_getcsv', file('tags.csv'));
|
||||
$tags_rows = sizeof($tags_csv);
|
||||
$tags_coloums = sizeof($tags_csv[0]);
|
||||
@@ -64,5 +39,22 @@
|
||||
$coloum_number++;
|
||||
}
|
||||
echo "</ul>\n";
|
||||
}
|
||||
|
||||
|
||||
# Tags rewrite
|
||||
if (file_exists('tags.csv')){
|
||||
read_tags('tags.csv');
|
||||
} elseif( file_exists('tags.csv.bak') ){
|
||||
if (copy('tags.csv.bak', './tags.csv')) {
|
||||
read_tags('tags.csv');
|
||||
}
|
||||
}else {
|
||||
$empty_csv = fopen("tags.csv", "w") or die("Cannot write new tags.csv file.");
|
||||
fwrite($empty_csv, "");
|
||||
fclose($empty_csv);
|
||||
chmod('./tags.csv', 0666);
|
||||
read_tags('tags.csv');
|
||||
}
|
||||
include_once ($_SERVER['DOCUMENT_ROOT'].'/common/php/footer.php');
|
||||
?>
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/* Style the Image Used to Trigger the Modal */
|
||||
#myImg {
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
img:hover {opacity: 0.7;}
|
||||
|
||||
/* The Modal (background) */
|
||||
.modal_gal {
|
||||
display: none; /* Hidden by default */
|
||||
position: fixed; /* Stay in place */
|
||||
z-index: 1; /* Sit on top */
|
||||
padding-top: 100px; /* Location of the box */
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%; /* Full width */
|
||||
height: 100%; /* Full height */
|
||||
overflow: auto; /* Enable scroll if needed */
|
||||
background-color: rgb(0,0,0); /* Fallback color */
|
||||
background-color: rgba(0,0,0,0.9); /* Black w/ opacity */
|
||||
}
|
||||
|
||||
/* Modal Content (Image) */
|
||||
.gallery_img {
|
||||
margin: auto;
|
||||
display: block;
|
||||
width: 80%;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
/* Caption of Modal Image (Image Text) - Same Width as the Image */
|
||||
#modal_img_caption {
|
||||
margin: auto;
|
||||
display: block;
|
||||
width: 80%;
|
||||
max-width: 700px;
|
||||
text-align: center;
|
||||
color: #ccc;
|
||||
padding: 10px 0;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
/* Add Animation - Zoom in the Modal */
|
||||
.gallery_img, #caption {
|
||||
animation-name: zoom;
|
||||
animation-duration: 0.6s;
|
||||
}
|
||||
|
||||
@keyframes zoom {
|
||||
from {transform:scale(0)}
|
||||
to {transform:scale(1)}
|
||||
}
|
||||
|
||||
/* The Close Button */
|
||||
.close_modal {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 35px;
|
||||
color: #00cc00;
|
||||
font-size: 40px;
|
||||
font-weight: bold;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.close_modal:hover,
|
||||
.close_modal:focus {
|
||||
color: #bbb;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* 100% Image Width on Smaller Screens */
|
||||
@media only screen and (max-width: 700px){
|
||||
.gallery_img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
var modalEle = document.querySelector(".modal_gal");
|
||||
var modalImage = document.querySelector(".gallery_img");
|
||||
Array.from(document.querySelectorAll(".img_thumb")).forEach(item => {
|
||||
item.addEventListener("click", event => {
|
||||
modalEle.style.display = "block";
|
||||
modalImage.src = event.target.src;
|
||||
});
|
||||
});
|
||||
document.querySelector(".close").addEventListener("click", () => {
|
||||
modalEle.style.display = "none";
|
||||
});
|
||||
|
||||
function image_modal(document){
|
||||
// Get the modal
|
||||
var modal = document.getElementById("modal_gallery");
|
||||
// Get the image and insert it inside the modal - use its "alt" text as a caption
|
||||
var img = document.getElementById("myImg");
|
||||
var modalImg = document.getElementById("modal_img");
|
||||
var captionText = document.getElementById("modal_img_caption");
|
||||
img.onclick = function(){
|
||||
modal.style.display = "block";
|
||||
modalImg.src = this.src;
|
||||
captionText.innerHTML = this.alt;
|
||||
}
|
||||
// Get the <span> element that closes the modal
|
||||
var span = document.getElementsByClassName("close_modal")[0];
|
||||
|
||||
// When the user clicks on <span> (x), close the modal
|
||||
span.onclick = function() {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
echo "\n</div><!--End of print-content div-->\n";
|
||||
echo("<nav class=\"jmenu\"><div class=\"pmenu\"><ul id=\"back_btn\"><li><a href='..'>Back</a></li></ul></div></nav>\n");
|
||||
if (file_exists('author')){
|
||||
if (file_exists('author') && (filesize('author') != 0)){
|
||||
$author_name_raw = fopen('author', 'r');
|
||||
$author_name = fread($author_name_raw, filesize('author'));
|
||||
$author_name = str_replace("\n", "", $author_name);
|
||||
@@ -31,13 +31,8 @@
|
||||
echo "<div class =\"byline\">\n"
|
||||
. read_md($byline_path)
|
||||
."</div><!--End byline div-->\n";
|
||||
} else {
|
||||
echo "<h2>No byline</h2>";
|
||||
echo "<p>$byline_path</p>";
|
||||
}
|
||||
fclose($author_name_raw);
|
||||
}else {
|
||||
echo "<h2>No author</h2>";
|
||||
}
|
||||
if ($tag_data != NULL){
|
||||
$page_tags = str_getcsv($tag_data);
|
||||
|
||||
@@ -2,20 +2,11 @@
|
||||
<html lang="en-US">
|
||||
<?php
|
||||
//Sets the page title based on the name of the current directory
|
||||
function Title() {//Needs cleanup.
|
||||
//~ $new_title = $_SERVER['REQUEST_URI'];
|
||||
|
||||
//~ $new_title = preg_replace("/^^\//i", "", $new_title);
|
||||
//~ $new_title = preg_replace("/\//i", "", $new_title);
|
||||
//~ $page_title = $_SERVER['REQUEST_URI'];
|
||||
//~ $page_title = preg_replace("/^(.*)\//i", "", $page_title);
|
||||
function Title() {
|
||||
$page_title = basename($_SERVER['SCRIPT_FILENAME'], '.php');
|
||||
//~ echo($page_title);
|
||||
if(strtolower($page_title) == 'index'){
|
||||
parse_str($_SERVER['REQUEST_URI'], $page_uri);
|
||||
$page_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||
//~ echo($page_path);
|
||||
//~ $folder_name = sizeof($page_path);
|
||||
$folder_name = explode("/", trim($page_path, "/"));
|
||||
$page_title = $folder_name[(sizeof($folder_name) - 1)];
|
||||
} elseif(strtolower($page_title) == 'homepage'){
|
||||
|
||||
@@ -23,6 +23,7 @@ if (file_exists($dir) && is_dir($dir) ) {
|
||||
$files_arr = array_diff($scan_arr, array('.','..','index.php','common','.htaccess') );
|
||||
// echo "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// Get each files of our directory with line break
|
||||
if (sizeof($files_arr) != 0 ) {
|
||||
foreach ($files_arr as $file) {
|
||||
//Get the file path
|
||||
$file_path = "./".$file;
|
||||
@@ -41,6 +42,7 @@ if (file_exists($dir) && is_dir($dir) ) {
|
||||
$link_title = remove_sorting_number($link_title);//Removes the number used to keep articles in post order from the displayed title.
|
||||
echo("<ul><li><a href='$file'> $link_title </a></li></ul>\n");//Output the result.
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<table border="1" class="pmenu">
|
||||
<tr>
|
||||
<td><a href=/>Home</a></td>
|
||||
</tr>
|
||||
<?php
|
||||
$dir = '.';
|
||||
// Check if the directory exists
|
||||
if (file_exists($dir) && is_dir($dir) ) {
|
||||
// Get the files of the directory as an array
|
||||
$scan_arr = scandir($dir);
|
||||
$files_arr = array_diff($scan_arr, array('.','..','index.php','common','.htaccess') );
|
||||
// echo "<pre>"; print_r( $files_arr ); echo "</pre>";
|
||||
// Get each files of our directory with line break
|
||||
foreach ($files_arr as $file) {
|
||||
//Get the file path
|
||||
$file_path = "./".$file;
|
||||
// Get the file extension
|
||||
$file_ext = pathinfo($file_path, PATHINFO_EXTENSION);
|
||||
if ($file_ext=="php" || $file_ext=="html" || $file_ext=="htm" || $file_ext == "") {
|
||||
$file_array[] = $file;
|
||||
}
|
||||
}
|
||||
foreach($file_array as $file) {
|
||||
$_replace = array('.php', '.html', '.htm');
|
||||
$link_title = str_replace('_',' ',$file);
|
||||
$link_title = str_replace($_replace,'',$link_title);
|
||||
$link_title = ucwords($link_title);
|
||||
echo("<tr><td><a href='$file'> $link_title </a></td></tr>\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "Directory does not exists";
|
||||
}
|
||||
|
||||
?>
|
||||
</table>
|
||||
Reference in New Issue
Block a user