aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore13
-rw-r--r--Makefile60
-rw-r--r--app/Routes.php31
-rw-r--r--app/controllers/about.controller.php3
-rw-r--r--app/controllers/comments.controller.php (renamed from controllers/comments.controller.php)0
-rw-r--r--app/controllers/contact.controller.php (renamed from controllers/contact.controller.php)8
-rw-r--r--app/controllers/index.controller.php3
-rw-r--r--app/controllers/wall.controller.php3
-rw-r--r--app/model/Form.php (renamed from model/Form.php)0
-rw-r--r--app/model/Navigation.php (renamed from model/Navigation.php)0
-rw-r--r--app/views/about.view.php (renamed from views/about.view.php)0
-rw-r--r--app/views/components/AudioPlayer.php (renamed from views/components/AudioPlayer.php)0
-rw-r--r--app/views/contact.view.php (renamed from views/contact.view.php)0
-rw-r--r--app/views/index.view.php (renamed from views/index.view.php)0
-rw-r--r--app/views/partials/footer.php26
-rw-r--r--app/views/partials/header.common.php (renamed from views/partials/header.common.php)2
-rw-r--r--app/views/partials/header.error.php3
-rw-r--r--app/views/partials/header.php (renamed from views/partials/header.php)6
-rw-r--r--app/views/partials/navigator.links.php (renamed from views/partials/navigator.links.php)0
-rw-r--r--app/views/partials/navigator.php (renamed from views/partials/navigator.php)0
-rw-r--r--app/views/wall.view.php (renamed from views/wall.view.php)0
-rw-r--r--assets/app.css0
-rw-r--r--assets/app.js13
-rw-r--r--bootstrap/Router.php6
-rw-r--r--bootstrap/Routes.php31
-rw-r--r--bootstrap/comments/frontend/init.js4
-rw-r--r--bootstrap/database/Connection.php8
-rw-r--r--config.php9
-rw-r--r--controllers/about.controller.php3
-rw-r--r--controllers/index.controller.php3
-rw-r--r--controllers/wall.controller.php3
-rw-r--r--database/contactform.sql7
-rw-r--r--generators/hugo/themes/edwin/layouts/partials/footer.html2
-rw-r--r--generators/hugo/themes/edwin/layouts/partials/header.html2
-rw-r--r--generators/hugo/themes/edwin/layouts/partials/navigator.html2
-rw-r--r--public/css/app.css39
-rw-r--r--public/dist/app.css77
-rw-r--r--[-rwxr-xr-x]public/dist/soundmanager2-nodebug-jsmin.js0
-rw-r--r--public/index.php4
-rw-r--r--public/js/app.js0
-rw-r--r--shell.nix34
-rw-r--r--views/partials/footer.php50
-rw-r--r--views/partials/header.error.php3
43 files changed, 281 insertions, 177 deletions
diff --git a/.gitignore b/.gitignore
index 1d09c82..9029cc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,10 @@
-/vendor
-/public/posts
-/public/error/error.json
-/public/error/error.html
-generators/hugo/public
+.hugo_build.lock
/bootstrap/comments/comments
+/database
+/generators/hugo/public
+/production
+/public/posts
+/staging
+/vendor
config.php
+google[a-z0-9]*.html
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..088a9e1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,60 @@
+all:
+ make site
+ make migration
+
+site:
+ mkdir --parents public/posts
+ ln -sfT ../../public/posts generators/hugo/public
+ cd generators/hugo && hugo
+
+migration:
+ sqlite3 database/sqlite.db < database/contactform.sql
+ chmod g+w database/sqlite.db
+ sed --in-place "s|'sql:;dbname=sql_database'|'sqlite:' . __DIR__ . '/database/sqlite.db'|" config.php
+
+permissions:
+ find . -type f -print0 | xargs -0 chmod 640
+ find . -type d -print0 | xargs -0 chmod 770
+
+export date := $(shell date -Iseconds)
+export path := deploy-$(date)
+export deployment := $(target)/$(path)
+export prelaunch := $(target)/prelaunch
+export public := $(target)/public
+
+deploy:
+ mkdir --parent '$(deployment)'
+ rsync --archive --verbose \
+ --exclude='.git/' \
+ --exclude='.gitignore' \
+ --exclude='$(target)/' \
+ . '$(deployment)'
+ ln --symbolic --force '$(path)/public' '$(prelaunch)'
+ make minify
+ make cache
+ cd '$(deployment)' && make site
+ make permissions
+ cd '$(deployment)' && make migration
+ mv --force --no-target-directory '$(prelaunch)' '$(public)'
+ find '$(target)' -maxdepth 1 ! -path '$(target)' -type d -printf '%T@\t%p\n' \
+ | sort --reverse --general-numeric-sort --field-separator $$'\t' \
+ | cut --delimiter $$'\t' --fields 2- \
+ | awk "NR>5" \
+ | xargs rm -rf
+
+cache:
+ { [ -e '$(public)' ] && \
+ rsync --verbose --archive --include="*/" --include="*.min.*" --exclude="*" '$(public)/dist/' '$(prelaunch)/dist'; \
+ rsync --verbose --archive '$(public)/../bootstrap/comments/comments/' '$(prelaunch)/../bootstrap/comments/comments'; \
+ rsync --verbose --archive '$(public)/../database/sqlite.db' '$(prelaunch)/../database/sqlite.db'; \
+ } || true
+
+minify:
+ minify $(prelaunch)/dist/app.css > $(prelaunch)/dist/app.min.'$(date)'.css
+ minify $(prelaunch)/dist/bar-ui.css > $(prelaunch)/dist/bar-ui-css.min.'$(date)'.css
+ minify $(prelaunch)/dist/bar-ui.js > $(prelaunch)/dist/bar-ui-js.min.'$(date)'.js
+ find $(prelaunch) -type f -exec sed --in-place "s|$$(find $(prelaunch)/dist -name "app.min*" | awk -F/ '{print $NF}')|" {} \;
+ find $(prelaunch) -type f -exec sed --in-place "s|$$(find $(prelaunch)/dist -name "bar-ui-css.min*" | awk -F/ '{print $NF}')|" {} \;
+ find $(prelaunch) -type f -exec sed --in-place "s|$$(find $(prelaunch)/dist -name "bar-ui-js.min*" | awk -F/ '{print $NF}')|" {} \;
+
+.PHONY: generators admin
diff --git a/app/Routes.php b/app/Routes.php
new file mode 100644
index 0000000..59c0f40
--- /dev/null
+++ b/app/Routes.php
@@ -0,0 +1,31 @@
+<?php
+
+/* public routes */
+
+$router->get('', '../app/controllers/index.controller.php');
+$router->get('contact', '../app/controllers/contact.controller.php');
+$router->get('wall', '../app/controllers/wall.controller.php');
+$router->get('comments', '../app/controllers/comments.controller.php');
+$router->get('about', '../app/controllers/about.controller.php');
+$router->get('hashget', '../app/controllers/comments.controller.php');
+$router->get('hashover', '../app/controllers/comments.controller.php');
+
+$router->head('', '../app/controllers/index.controller.php');
+$router->head('contact', '../app/controllers/contact.controller.php');
+$router->head('wall', '../app/controllers/wall.controller.php');
+$router->head('comments', '../app/controllers/comments.controller.php');
+$router->head('hashget', '../app/controllers/comments.controller.php');
+$router->head('hashover', '../app/controllers/comments.controller.php');
+
+$router->post('contact', '../app/controllers/contact.controller.php');
+$router->post('hashpost', '../app/controllers/comments.controller.php');
+
+/* backend routes */
+
+$router->get('latestajax', '../bootstrap/comments/backend/latest-ajax.php');
+$router->get('countlinkajax', '../bootstrap/comments/backend/count-link-ajax.php');
+
+$router->post('commentsajax', '../bootstrap/comments/backend/comments-ajax.php');
+$router->post('formactions', '../bootstrap/comments/backend/form-actions.php');
+$router->post('loadcomments', '../bootstrap/comments/backend/load-comments.php');
+$router->post('likecomment', '../bootstrap/comments/backend/like.php');
diff --git a/app/controllers/about.controller.php b/app/controllers/about.controller.php
new file mode 100644
index 0000000..cb58a14
--- /dev/null
+++ b/app/controllers/about.controller.php
@@ -0,0 +1,3 @@
+<?php
+
+require '../app/views/about.view.php';
diff --git a/controllers/comments.controller.php b/app/controllers/comments.controller.php
index 6f4abfa..6f4abfa 100644
--- a/controllers/comments.controller.php
+++ b/app/controllers/comments.controller.php
diff --git a/controllers/contact.controller.php b/app/controllers/contact.controller.php
index d953ff6..78d5c18 100644
--- a/controllers/contact.controller.php
+++ b/app/controllers/contact.controller.php
@@ -17,7 +17,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ((bool) empty($submit->email) == true
|| (bool) empty($submit->message) == true
) {
- include '../views/contact.view.php';
+ include '../app/views/contact.view.php';
return;
}
@@ -28,7 +28,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if ($validEmail === false ) {
$emailError = 'Invalid email: ' . "\r" . '<b>'. $submit->email . '</b>';
- include '../views/contact.view.php';
+ include '../app/views/contact.view.php';
return;
}
@@ -39,7 +39,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$message = null;
$spam = false;
- include '../views/contact.view.php';
+ include '../app/views/contact.view.php';
fastcgi_finish_request();
$contact['database']->insert(
@@ -53,4 +53,4 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
return sendMail($submit->name, $submit->email, $submit->message);
}
-require '../views/contact.view.php';
+require '../app/views/contact.view.php';
diff --git a/app/controllers/index.controller.php b/app/controllers/index.controller.php
new file mode 100644
index 0000000..7ec4a52
--- /dev/null
+++ b/app/controllers/index.controller.php
@@ -0,0 +1,3 @@
+<?php
+
+require '../app/views/index.view.php';
diff --git a/app/controllers/wall.controller.php b/app/controllers/wall.controller.php
new file mode 100644
index 0000000..896b2c3
--- /dev/null
+++ b/app/controllers/wall.controller.php
@@ -0,0 +1,3 @@
+<?php
+
+require '../app/views/wall.view.php';
diff --git a/model/Form.php b/app/model/Form.php
index d7cd5d9..d7cd5d9 100644
--- a/model/Form.php
+++ b/app/model/Form.php
diff --git a/model/Navigation.php b/app/model/Navigation.php
index 72ee891..72ee891 100644
--- a/model/Navigation.php
+++ b/app/model/Navigation.php
diff --git a/views/about.view.php b/app/views/about.view.php
index ae28201..ae28201 100644
--- a/views/about.view.php
+++ b/app/views/about.view.php
diff --git a/views/components/AudioPlayer.php b/app/views/components/AudioPlayer.php
index d3ba487..d3ba487 100644
--- a/views/components/AudioPlayer.php
+++ b/app/views/components/AudioPlayer.php
diff --git a/views/contact.view.php b/app/views/contact.view.php
index 4b4da41..4b4da41 100644
--- a/views/contact.view.php
+++ b/app/views/contact.view.php
diff --git a/views/index.view.php b/app/views/index.view.php
index 29f17b4..29f17b4 100644
--- a/views/index.view.php
+++ b/app/views/index.view.php
diff --git a/app/views/partials/footer.php b/app/views/partials/footer.php
new file mode 100644
index 0000000..e2f2a6b
--- /dev/null
+++ b/app/views/partials/footer.php
@@ -0,0 +1,26 @@
+</div>
+</section>
+
+<footer class ="bg-gray-100 border-t text-center">
+ <div class="mx-auto p-6 max-w-md text-gray-800">
+ <p class="mb-2 text-sm">
+ <a href="mailto:<?php echo mb_encode_numericentity('edwinmattiacci@yahoo.com', array(0x000000, 0x10ffff, 0, 0xffffff), 'UTF-8'); ?>" class="underline">
+ Email
+ </a>
+ </p>
+ <p>&copy; Copyright <?php echo date('Y');?>. Edwin Mattiacci Voiceover</p>
+ </div>
+</footer>
+
+</div>
+</div>
+
+<a href="/" class="hover:bg-gray-300 w-24 min-h-full hidden md:block logo-container no-underline border-l"></a>
+
+</div>
+
+<script src="/dist/soundmanager2-nodebug-jsmin.js"></script>
+<script src="/dist/bar-ui.js"></script>
+
+</body>
+</html>
diff --git a/views/partials/header.common.php b/app/views/partials/header.common.php
index 4ea98df..3a21e8e 100644
--- a/views/partials/header.common.php
+++ b/app/views/partials/header.common.php
@@ -5,7 +5,7 @@
<!-- Stylesheets -->
<link href="/dist/tailwind.min.css" rel="stylesheet">
-<link href="/css/app.css" rel="stylesheet">
+<link href="/dist/app.css" rel="stylesheet">
<link href="/dist/bar-ui.css" rel="stylesheet">
<!-- Favicons -->
diff --git a/app/views/partials/header.error.php b/app/views/partials/header.error.php
new file mode 100644
index 0000000..9f00aa9
--- /dev/null
+++ b/app/views/partials/header.error.php
@@ -0,0 +1,3 @@
+
+<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/bootstrap/Bootstrap.php'; ?>
+<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/header.php'; ?>
diff --git a/views/partials/header.php b/app/views/partials/header.php
index 6ddabcc..1809de0 100644
--- a/views/partials/header.php
+++ b/app/views/partials/header.php
@@ -1,7 +1,7 @@
<?php if (strpos($_SERVER['REQUEST_URI'], 'posts') !== false) { ?>
<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/bootstrap/Bootstrap.php'; ?>
- <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/header.common.php'; ?>
+ <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/header.common.php'; ?>
</head>
@@ -17,7 +17,7 @@
<meta name="keywords" content="Edwin, Mattiacci, Voice, Voiceover, Narration, Trailers, Commercials">
<meta name="description" content="Edwin Mattiacci Voiceover. Narration, Trailers, Commercials, and More.">
- <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/header.common.php'; ?>
+ <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/header.common.php'; ?>
</head>
@@ -37,7 +37,7 @@
<div class="sticky top-0 z-10 bg-gray-100 border-b">
<div class="mx-auto px-4 max-w-md">
- <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/navigator.php'; ?>
+ <?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/navigator.php'; ?>
</div>
</div>
diff --git a/views/partials/navigator.links.php b/app/views/partials/navigator.links.php
index f023e32..f023e32 100644
--- a/views/partials/navigator.links.php
+++ b/app/views/partials/navigator.links.php
diff --git a/views/partials/navigator.php b/app/views/partials/navigator.php
index 78bb138..78bb138 100644
--- a/views/partials/navigator.php
+++ b/app/views/partials/navigator.php
diff --git a/views/wall.view.php b/app/views/wall.view.php
index 0635325..0635325 100644
--- a/views/wall.view.php
+++ b/app/views/wall.view.php
diff --git a/assets/app.css b/assets/app.css
deleted file mode 100644
index e69de29..0000000
--- a/assets/app.css
+++ /dev/null
diff --git a/assets/app.js b/assets/app.js
deleted file mode 100644
index 9e3b08a..0000000
--- a/assets/app.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-// Javascript
-
-require('./js/SoundManager2');
-require('./js/InlinePlayer');
-require('./js/Navigator');
-require('./js/Popup');
-require('./js/BackgroundFade');
-
-// CSS
-
-require('./css/edwin.css');
-require('./css/font-awesome.css');
diff --git a/bootstrap/Router.php b/bootstrap/Router.php
index 34e278c..c78ab8b 100644
--- a/bootstrap/Router.php
+++ b/bootstrap/Router.php
@@ -1,6 +1,6 @@
<?php
-class Router
+final class Router
{
protected $routes = [
'GET' => [],
@@ -26,7 +26,7 @@ class Router
public static function load($file)
{
$router = new static;
- require $file;
+ include $file;
return $router;
}
@@ -35,8 +35,6 @@ class Router
if (is_array($this->routes[$requestType]) && array_key_exists($uri, $this->routes[$requestType])) {
return $this->routes[$requestType][$uri];
}
- // throw new Exception('No route defined for this URI: "'.$uri.'"');
-
die(http_response_code(404));
}
}
diff --git a/bootstrap/Routes.php b/bootstrap/Routes.php
deleted file mode 100644
index 33576e4..0000000
--- a/bootstrap/Routes.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/* public routes */
-
-$router->get('', '../controllers/index.controller.php');
-$router->get('contact', '../controllers/contact.controller.php');
-$router->get('wall', '../controllers/wall.controller.php');
-$router->get('comments', '../controllers/comments.controller.php');
-$router->get('about', '../controllers/about.controller.php');
-$router->get('hashget', '../controllers/comments.controller.php');
-$router->get('hashover', '../controllers/comments.controller.php');
-
-$router->head('', '../controllers/index.controller.php');
-$router->head('contact', '../controllers/contact.controller.php');
-$router->head('wall', '../controllers/wall.controller.php');
-$router->head('comments', '../controllers/comments.controller.php');
-$router->head('hashget', '../controllers/comments.controller.php');
-$router->head('hashover', '../controllers/comments.controller.php');
-
-$router->post('contact', '../controllers/contact.controller.php');
-$router->post('hashpost', '../controllers/comments.controller.php');
-
-/* backend routes */
-
-$router->get('latestajax', '../bootstrap/comments/backend/latest-ajax.php');
-$router->get('countlinkajax', '../bootstrap/comments/backend/count-link-ajax.php');
-
-$router->post('commentsajax', '../bootstrap/comments/backend/comments-ajax.php');
-$router->post('formactions', '../bootstrap/comments/backend/form-actions.php');
-$router->post('loadcomments', '../bootstrap/comments/backend/load-comments.php');
-$router->post('likecomment', '../bootstrap/comments/backend/like.php');
diff --git a/bootstrap/comments/frontend/init.js b/bootstrap/comments/frontend/init.js
index b6feb53..c0b53f8 100644
--- a/bootstrap/comments/frontend/init.js
+++ b/bootstrap/comments/frontend/init.js
@@ -247,4 +247,8 @@ HashOver.prototype.init = function ()
// Execute page load event handler manually
onLoad ();
+
+ const sortComments = document.getElementById('hashover-sort-select');
+ sortComments.selectedIndex = 2;
+ sortComments.onchange();
};
diff --git a/bootstrap/database/Connection.php b/bootstrap/database/Connection.php
index deec2c6..3093d85 100644
--- a/bootstrap/database/Connection.php
+++ b/bootstrap/database/Connection.php
@@ -2,17 +2,17 @@
class Connection
{
- public static function make($config)
+ public static function make(array $config)
{
try {
return new PDO(
- $config['connection'].';dbname='.$config['name'],
+ $config['dsn'],
$config['username'],
$config['password'],
$config['options']
);
- } catch (PDOException $e) {
- error_log($e->getMessage());
+ } catch (PDOException $error) {
+ error_log($error->getMessage());
}
}
}
diff --git a/config.php b/config.php
index 0e83ebe..5df7b42 100644
--- a/config.php
+++ b/config.php
@@ -2,10 +2,9 @@
return [
'database' => [
- 'name' => 'pgsql_database',
- 'username' => 'pgsql_username',
- 'password' => 'pgsql_password',
- 'connection' => 'pgsql:',
+ 'dsn' => 'sql:;dbname=sql_database',
+ 'username' => 'sql_username',
+ 'password' => 'sql_password',
'options' => [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]
@@ -17,5 +16,5 @@ return [
'name' => 'email_name',
'username' => 'email_username',
'password' => 'email_password',
- ]
+ ],
];
diff --git a/controllers/about.controller.php b/controllers/about.controller.php
deleted file mode 100644
index e65098f..0000000
--- a/controllers/about.controller.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-require '../views/about.view.php';
diff --git a/controllers/index.controller.php b/controllers/index.controller.php
deleted file mode 100644
index a4fa714..0000000
--- a/controllers/index.controller.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-require '../views/index.view.php';
diff --git a/controllers/wall.controller.php b/controllers/wall.controller.php
deleted file mode 100644
index bee3263..0000000
--- a/controllers/wall.controller.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-require '../views/wall.view.php';
diff --git a/database/contactform.sql b/database/contactform.sql
new file mode 100644
index 0000000..196cd9b
--- /dev/null
+++ b/database/contactform.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS contactform (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ name TEXT,
+ email TEXT NOT NULL,
+ message TEXT NOT NULL,
+ date TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
+);
diff --git a/generators/hugo/themes/edwin/layouts/partials/footer.html b/generators/hugo/themes/edwin/layouts/partials/footer.html
index 2126899..8fd74bf 100644
--- a/generators/hugo/themes/edwin/layouts/partials/footer.html
+++ b/generators/hugo/themes/edwin/layouts/partials/footer.html
@@ -1 +1 @@
-{{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/footer.php'; ?>" }}
+{{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/footer.php'; ?>" }}
diff --git a/generators/hugo/themes/edwin/layouts/partials/header.html b/generators/hugo/themes/edwin/layouts/partials/header.html
index 8e8a798..a93da0f 100644
--- a/generators/hugo/themes/edwin/layouts/partials/header.html
+++ b/generators/hugo/themes/edwin/layouts/partials/header.html
@@ -8,4 +8,4 @@
<title>{{- block "title" . }}{{ partial "title.html" . -}}{{- end }}</title>
- {{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/header.php'; ?>" }}
+ {{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/header.php'; ?>" }}
diff --git a/generators/hugo/themes/edwin/layouts/partials/navigator.html b/generators/hugo/themes/edwin/layouts/partials/navigator.html
index dfb8d4c..1b1829c 100644
--- a/generators/hugo/themes/edwin/layouts/partials/navigator.html
+++ b/generators/hugo/themes/edwin/layouts/partials/navigator.html
@@ -1 +1 @@
-{{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/navigator.php'; ?>" }}
+{{ safeHTML "<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/app/views/partials/navigator.php'; ?>" }}
diff --git a/public/css/app.css b/public/css/app.css
deleted file mode 100644
index 2a57771..0000000
--- a/public/css/app.css
+++ /dev/null
@@ -1,39 +0,0 @@
-.bg--white--light { background-color: #f3f3f3 }
-
-.max-w-xl { max-width: 88rem; }
-
-.logo-container { background-image: url(/images/crisp-paper-ruffles.png); }
-
-.link-active { border-bottom: 2px solid #85BDBF; }
-
-.footer-icons svg { color: #444; }
-
-nav svg { display: inline; }
-
-button, input, optgroup, select, textarea { line-height: initial; }
-
-.checkbox-agree { display: none; }
-
-.feather-download { color: #222; }
-
-.feather-download:hover { color: #3490dc; }
-
-.comment-post-odd { background-color: #f6f6f6 !important; }
-
-.hashover-message { display: none; }
-.hashover-message-error { display: block; }
-
-@media screen and (max-width: 392px) { nav p { font-size: 0.6916em } }
-
-.journal-post a {
- text-decoration: none;
- border-bottom: 2px solid #a8c2cc;
- padding-bottom: 2px;
- color: #12283a;
-}
-
-.splash-container {
- background-image: url(/images/abstract-mix.jpg);
- background-repeat: repeat;
- min-height: 12rem;
-}
diff --git a/public/dist/app.css b/public/dist/app.css
new file mode 100644
index 0000000..d6c2dca
--- /dev/null
+++ b/public/dist/app.css
@@ -0,0 +1,77 @@
+.bg--white--light {
+ background-color: #f3f3f3;
+}
+
+.max-w-xl {
+ max-width: 88rem;
+}
+
+.logo-container {
+ background-image: url(/images/crisp-paper-ruffles.png);
+}
+
+.link-active {
+ border-bottom: 2px solid #85bdbf;
+}
+
+.footer-icons svg {
+ color: #444;
+}
+
+nav svg {
+ display: inline;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ line-height: initial;
+}
+
+.checkbox-agree {
+ display: none;
+}
+
+.feather-download {
+ color: #222;
+}
+
+.feather-download:hover {
+ color: #3490dc;
+}
+
+.comment-post-odd {
+ background-color: #f6f6f6 !important;
+}
+
+.hashover-message {
+ display: none;
+}
+.hashover-message-error {
+ display: block;
+}
+
+@media screen and (max-width: 392px) {
+ nav p {
+ font-size: 0.6916em;
+ }
+}
+
+.journal-post a {
+ text-decoration: none;
+ border-bottom: 2px solid #a8c2cc;
+ padding-bottom: 2px;
+ color: #12283a;
+}
+
+.splash-container {
+ background-image: url(/images/abstract-mix.jpg);
+ background-repeat: repeat;
+ min-height: 12rem;
+}
+
+#hashover-comments-section p {
+ word-break: break-all;
+}
diff --git a/public/dist/soundmanager2-nodebug-jsmin.js b/public/dist/soundmanager2-nodebug-jsmin.js
index 3f2d704..3f2d704 100755..100644
--- a/public/dist/soundmanager2-nodebug-jsmin.js
+++ b/public/dist/soundmanager2-nodebug-jsmin.js
diff --git a/public/index.php b/public/index.php
index 4f61001..0311f71 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,8 +1,6 @@
<?php
-/* start application */
require '../bootstrap/Bootstrap.php';
-/* load routes */
-require Router::load('../bootstrap/Routes.php')
+require Router::load('../app/Routes.php')
->direct(Request::uri(), Request::method());
diff --git a/public/js/app.js b/public/js/app.js
deleted file mode 100644
index e69de29..0000000
--- a/public/js/app.js
+++ /dev/null
diff --git a/shell.nix b/shell.nix
new file mode 100644
index 0000000..13ea4b1
--- /dev/null
+++ b/shell.nix
@@ -0,0 +1,34 @@
+let
+
+ name = "nix-shell.edwinmattiacci";
+
+ pkgs = import (builtins.fetchTarball {
+ url = "https://releases.nixos.org/nixos/22.05/nixos-22.05.998.d17a56d90ec/nixexprs.tar.xz";
+ sha256 = "084dzb7fmchfhhflrgprjjv7qz3j7vxw3d01f82q8p4g1x7hzn36";
+ }) { };
+
+ mkShellPure = pkgs.callPackage (pkgs.fetchurl {
+ url = "https://raw.githubusercontent.com/tdro/dotfiles/b710281b132056105709c03dda1899a6afc68a93/.config/nixpkgs/helpers/mkShellPure.nix";
+ sha256 = "1ciwifsx2hrp0ymm077zfb5q8ravrk545bda1q249y2spw9np4ms";
+ }) { };
+
+
+in mkShellPure {
+
+ packages = [
+ pkgs.bash
+ pkgs.coreutils
+ pkgs.findutils
+ pkgs.gawk
+ pkgs.gnumake
+ pkgs.gnused
+ pkgs.hugo
+ pkgs.minify
+ pkgs.rsync
+ pkgs.sqlite
+ ];
+
+ shellHook = ''
+ export PS1='\h (${name}) \W \$ '
+ '';
+}
diff --git a/views/partials/footer.php b/views/partials/footer.php
deleted file mode 100644
index 192a18a..0000000
--- a/views/partials/footer.php
+++ /dev/null
@@ -1,50 +0,0 @@
-</div>
-</section>
-
-<footer class ="bg-gray-100 border-t">
- <div class="mx-auto p-6 max-w-md text-gray-800">
-
- <p class="mb-2 text-sm">
-
- <a href="mailto:<?php echo mb_encode_numericentity('edwinmattiacci@yahoo.com', array(0x000000, 0x10ffff, 0, 0xffffff), 'UTF-8'); ?>" class="underline">
- Email</a>
-
- <span>|</span>
-
- <a href="https://www.youtube.com/c/EdwinMattiacci" class="underline">
- YouTube</a>
-
- <span>|</span>
-
- <a href="https://soundcloud.com/user-825887030" class="underline">
- SoundCloud</a>
-
- <span>|</span>
-
- <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=PCZWCVXR9DJTW" class="underline">
- PayPal</a>
-
- <span>|</span>
-
- <a href="https://admin.gear.mycelium.com/gateways/2031/orders/new" class="underline">
- Bitcoin</a>
-
- </p>
-
- <p>&copy; Copyright <?php echo date('Y');?>. Edwin Mattiacci Voiceover</p>
-
-</div>
-</footer>
-
-</div>
-</div>
-
-<a href="/" class="hover:bg-gray-300 w-24 min-h-full hidden md:block logo-container no-underline border-l"></a>
-
-</div>
-
-<script src="/dist/soundmanager2-nodebug-jsmin.js"></script>
-<script src="/dist/bar-ui.js"></script>
-
-</body>
-</html>
diff --git a/views/partials/header.error.php b/views/partials/header.error.php
deleted file mode 100644
index 2aa019a..0000000
--- a/views/partials/header.error.php
+++ /dev/null
@@ -1,3 +0,0 @@
-
-<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/bootstrap/Bootstrap.php'; ?>
-<?php require $_SERVER['DOCUMENT_ROOT'] . '/..' . '/views/partials/header.php'; ?>