Really ugly progress commit
This commit is contained in:
parent
0eb0d18755
commit
719776e862
@ -1,3 +1,6 @@
|
||||
# ProgBlog
|
||||
|
||||
A simple node blog with built-in code snippet highlighting
|
||||
[![Build Status](https://jenkins.timshomepage.net/buildStatus/icon?job=ProgBlog)](https://jenkins.timshomepage.net/job/ProgBlog/)
|
||||
|
||||
## Setup
|
@ -83,7 +83,6 @@ class Container {
|
||||
return this._require(name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a base library instance
|
||||
*
|
||||
|
@ -2,9 +2,14 @@
|
||||
|
||||
const container = require('../Container');
|
||||
const Model = container.getBase('Model');
|
||||
const Config = container.getBase('Config');
|
||||
|
||||
class DBModel extends Model {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.db = Config.get('database');
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DBModel;
|
@ -4,7 +4,6 @@
|
||||
* Base Class for wrapping HTTP/HTTPS servers
|
||||
*/
|
||||
class Server {
|
||||
constructor() {}
|
||||
/**
|
||||
* Event listener for HTTP(s) server "error" event.
|
||||
*
|
||||
|
4
app/bootstrap.js
vendored
4
app/bootstrap.js
vendored
@ -7,7 +7,7 @@ const path = container.get('path');
|
||||
const Controller = container.get('base/Controller');
|
||||
const Config = container.get('base/Config');
|
||||
|
||||
module.exports = (function () {
|
||||
module.exports = (() => {
|
||||
const baseRoutePath = path.join(__dirname, 'controllers');
|
||||
|
||||
// Set up templating
|
||||
@ -28,4 +28,4 @@ module.exports = (function () {
|
||||
|
||||
return app;
|
||||
|
||||
}());
|
||||
})();
|
@ -6,7 +6,7 @@ const knexConn = knexConfig.connection;
|
||||
|
||||
const params = {
|
||||
driver: knexConfig.client,
|
||||
connection: (knexConfig.client == "sqlite3") ? knexConn.filename : knexConn,
|
||||
connection: (knexConfig.client == 'sqlite3') ? knexConn.filename : knexConn,
|
||||
};
|
||||
|
||||
const nodeQuery = require('ci-node-query')(params);
|
||||
|
@ -25,4 +25,30 @@ module.exports = {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
'/user/list': {
|
||||
get: (req, res) => {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
'/user/edit': {
|
||||
get: (req, res) => {
|
||||
|
||||
},
|
||||
|
||||
post: (req, res) => {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
'/user/add': {
|
||||
get: (req, res) => {
|
||||
|
||||
},
|
||||
|
||||
post: (req, res) => {
|
||||
|
||||
},
|
||||
},
|
||||
};
|
13
app/models/Blog.js
Normal file
13
app/models/Blog.js
Normal file
@ -0,0 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
const Container = require('../../Container');
|
||||
const Config = container.get('Config');
|
||||
const DBModel = container.getBase('DBModel');
|
||||
|
||||
class BlogModel extends DBModel {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new BlogModel();
|
@ -1,4 +1,23 @@
|
||||
'use strict';
|
||||
|
||||
const container = require('../Container');
|
||||
const Config = container.get('Config');
|
||||
const DBModel = container.getBase('DBModel');
|
||||
|
||||
class UserModel extends DBModel {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
getAll() {
|
||||
return this.db.get('users');
|
||||
}
|
||||
|
||||
getUserById(userId) {
|
||||
return this.db.from('users')
|
||||
.where('id', userId)
|
||||
.get();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new UserModel();
|
||||
|
@ -65,6 +65,7 @@ Javascript has several ways of making a self-executing function.
|
||||
<div class="cell cell-1of2 edit-right" id="preview">
|
||||
</div>
|
||||
</section>
|
||||
<button type="submit">Save</button>
|
||||
</section>
|
||||
<footer>
|
||||
<p>© Timothy J. Warren</p>
|
||||
|
2
app/views/user-add-form.stache
Normal file
2
app/views/user-add-form.stache
Normal file
@ -0,0 +1,2 @@
|
||||
<form action="/admin/user/add" method="post">
|
||||
</form>
|
20
package.json
20
package.json
@ -1,10 +1,10 @@
|
||||
{
|
||||
"author": "Timothy J. Warren",
|
||||
"dependencies": {
|
||||
"axios": "^0.9.1",
|
||||
"body-parser": "~1.13.2",
|
||||
"axios": "^0.12.0",
|
||||
"body-parser": "~1.15.1",
|
||||
"ci-node-query": "^4.0.0",
|
||||
"cookie-parser": "~1.3.5",
|
||||
"cookie-parser": "~1.4.3",
|
||||
"debug": "~2.2.0",
|
||||
"dotenv": "^2.0.0",
|
||||
"errors": "^0.3.0",
|
||||
@ -14,16 +14,16 @@
|
||||
"express-negotiate": "0.0.5",
|
||||
"express-session": "^1.13.0",
|
||||
"getargs": "0.0.8",
|
||||
"glob": "^6.0.4",
|
||||
"helmet": "^1.1.0",
|
||||
"glob": "^7.0.3",
|
||||
"helmet": "^2.1.1",
|
||||
"highlight.js": "^9.1.0",
|
||||
"jscs": "^2.11.0",
|
||||
"knex": "^0.10.0",
|
||||
"knex": "^0.11.5",
|
||||
"lodash": "^4.5.0",
|
||||
"markdown-it": "^6.0.0",
|
||||
"moment": "^2.11.2",
|
||||
"morgan": "~1.6.1",
|
||||
"morgan": "~1.7.0",
|
||||
"nodemon": "^1.9.0",
|
||||
"npm-run-all": "^2.1.2",
|
||||
"nsp": "^2.4.0",
|
||||
"scrypt": "^6.0.1",
|
||||
"sqlite3": "^3.1.1",
|
||||
@ -31,7 +31,7 @@
|
||||
},
|
||||
"description": "A simple blog with built-in code snippet functionality",
|
||||
"devDependencies": {
|
||||
"apidoc": "^0.15.1",
|
||||
"apidoc": "^0.16.1",
|
||||
"chai": "^3.5.0",
|
||||
"chai-as-promised": "^5.3.0",
|
||||
"documentation": "^4.0.0-beta1",
|
||||
@ -40,7 +40,6 @@
|
||||
"istanbul": "0.4.*",
|
||||
"jscs": "^3.0.0",
|
||||
"mocha": "^2.4.5",
|
||||
"npm-run-all": "^1.6.0",
|
||||
"nsp": "^2.2.1",
|
||||
"parallelshell": "^2.0.0",
|
||||
"pre-commit": "^1.1.2",
|
||||
@ -72,6 +71,7 @@
|
||||
"audit": "nsp check",
|
||||
"build": "npm-run-all --parallel lint:src lint:tests docs:src docs:api coverage",
|
||||
"coverage": "istanbul cover ./node_modules/mocha/bin/_mocha",
|
||||
"css": "postcss -c postcss.config.json -w",
|
||||
"default": "npm-run-all --parallel audit lint:src lint:tests test",
|
||||
"docs": "npm-run-all --parallel docs:src docs:api",
|
||||
"docs:api": "apidoc -i ./app/ -o ./public/api-docs/",
|
||||
|
5
postcss.config.json
Normal file
5
postcss.config.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"use": "postcss-cssnext",
|
||||
"input": "public/assets/css/blog.myth.css",
|
||||
"output": "public/assets/css/blog.css"
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
:root {
|
||||
background: whitesmoke;
|
||||
font-family: 'PT Serif', serif;
|
||||
background:whitesmoke;
|
||||
font-family:'PT Serif', serif;
|
||||
box-sizing: border-box;
|
||||
cursor: default;
|
||||
line-height: 1.4;
|
||||
@ -10,20 +10,19 @@
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
* {
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-moz-tab-size:4;
|
||||
-o-tab-size:4;
|
||||
tab-size:4;
|
||||
}
|
||||
|
||||
/*! Basic element styles*/
|
||||
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
font-size: 62.5%
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 1.6em;
|
||||
padding: 0;
|
||||
@ -31,428 +30,273 @@ body {
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1271db;
|
||||
-webkit-transition: .25s ease;
|
||||
transition: .25s ease;
|
||||
-webkit-transition:.25s ease;
|
||||
transition: .25s ease
|
||||
}
|
||||
|
||||
a,
|
||||
a:focus,
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
a, a:focus, a:hover {
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
blockquote,
|
||||
pre {
|
||||
margin: 1.6rem 0;
|
||||
blockquote, pre {
|
||||
margin:16px 0;
|
||||
margin: 1.6rem 0
|
||||
}
|
||||
|
||||
blockquote,
|
||||
figcaption {
|
||||
font-family: serif;
|
||||
blockquote, figcaption {
|
||||
font-family: serif
|
||||
}
|
||||
|
||||
article,
|
||||
aside,
|
||||
dl,
|
||||
hr,
|
||||
section {
|
||||
margin-bottom: 1.6rem;
|
||||
article, aside, dl, hr, section {
|
||||
margin-bottom:16px;
|
||||
margin-bottom: 1.6rem
|
||||
}
|
||||
footer, hr {
|
||||
border-top:1px solid rgba(0, 0, 0, .2);
|
||||
border-top: .1rem solid rgba(0, 0, 0, .2)
|
||||
}
|
||||
footer, img, section {
|
||||
max-width: 100%
|
||||
}
|
||||
img, select[multiple] {
|
||||
height: auto
|
||||
}
|
||||
|
||||
footer,
|
||||
hr {
|
||||
border-top: .1rem solid rgba(0, 0, 0, .2);
|
||||
width: 100%
|
||||
}
|
||||
|
||||
footer,
|
||||
img,
|
||||
section {
|
||||
max-width: 100%;
|
||||
pre, textarea {
|
||||
overflow: auto
|
||||
}
|
||||
|
||||
img,
|
||||
select[multiple] {
|
||||
height: auto;
|
||||
legend, ol, textarea, ul {
|
||||
margin-bottom:8px;
|
||||
margin-bottom: .8rem
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
::after, ::before, td, th {
|
||||
vertical-align: inherit
|
||||
}
|
||||
|
||||
pre,
|
||||
textarea {
|
||||
overflow: auto;
|
||||
footer, nav ul, td, th {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
legend,
|
||||
ol,
|
||||
textarea,
|
||||
ul {
|
||||
margin-bottom: .8rem;
|
||||
[hidden], audio:not([controls]), template {
|
||||
display: none
|
||||
}
|
||||
|
||||
::after,
|
||||
::before,
|
||||
td,
|
||||
th {
|
||||
vertical-align: inherit;
|
||||
}
|
||||
|
||||
footer,
|
||||
nav ul,
|
||||
td,
|
||||
th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
[hidden],
|
||||
audio:not([controls]),
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 75%;
|
||||
color: #777;
|
||||
color: #777
|
||||
}
|
||||
|
||||
big {
|
||||
font-size: 125%;
|
||||
font-size: 125%
|
||||
}
|
||||
|
||||
[unselectable] {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
user-select: none
|
||||
}
|
||||
|
||||
[unselectable],
|
||||
button,
|
||||
input[type=submit] {
|
||||
[unselectable], button, input[type=submit] {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-ms-user-select: none
|
||||
}
|
||||
::after, ::before {
|
||||
text-decoration: inherit
|
||||
}
|
||||
|
||||
::after,
|
||||
::before {
|
||||
text-decoration: inherit;
|
||||
code, kbd, pre, samp {
|
||||
font-family:'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
}
|
||||
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family: 'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
/*box-shadow:rgba(0,0,0,0.1) 0 0 5px;*/
|
||||
padding: 0.25em;
|
||||
padding:0.25em;
|
||||
}
|
||||
|
||||
code,
|
||||
pre {
|
||||
font-family: 'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
code, pre {
|
||||
font-family:'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
background-color: #b3d4fc;
|
||||
text-shadow: none;
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: #b3d4fc;
|
||||
text-shadow: none;
|
||||
text-shadow: none
|
||||
}
|
||||
|
||||
button::-moz-focus-inner {
|
||||
border: 0;
|
||||
border: 0
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 1.6rem;
|
||||
margin:0 0 16px;
|
||||
margin: 0 0 1.6rem
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: 'PT Serif', serif;
|
||||
margin: 0.5em 0;
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family:'PT Serif', serif;
|
||||
margin:0.5em 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.75em;
|
||||
margin-top: 0;
|
||||
font-style: normal;
|
||||
margin-top:0;
|
||||
font-style: normal
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 4rem;
|
||||
margin-left:40px;
|
||||
margin-left: 4rem
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-left: 2rem;
|
||||
ol, ul {
|
||||
padding-left:20px;
|
||||
padding-left: 2rem
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left:2px solid #1271db;
|
||||
border-left: .2rem solid #1271db;
|
||||
font-style: italic;
|
||||
padding-left: 1.6rem;
|
||||
padding-left:16px;
|
||||
padding-left: 1.6rem
|
||||
}
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
footer,
|
||||
header,
|
||||
main,
|
||||
section,
|
||||
summary {
|
||||
article, aside, details, footer, header, main, section, summary {
|
||||
display: block;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
main {
|
||||
margin: 0 auto;
|
||||
max-width: 76.8em;
|
||||
padding: 0 1.6rem 1.6rem;
|
||||
padding:0 16px 16px;
|
||||
padding: 0 1.6rem 1.6rem
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 1rem 0;
|
||||
padding:10px 0;
|
||||
padding: 1rem 0
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style: none;
|
||||
margin: 0.5em auto;
|
||||
}
|
||||
|
||||
nav a,
|
||||
td,
|
||||
th {
|
||||
padding: .8rem 1.6rem;
|
||||
nav a, td, th {
|
||||
padding:8px 16px;
|
||||
padding: .8rem 1.6rem
|
||||
}
|
||||
|
||||
nav ul li {
|
||||
display: inline;
|
||||
display: inline
|
||||
}
|
||||
|
||||
nav a {
|
||||
border-bottom:2px solid transparent;
|
||||
border-bottom: .2rem solid transparent;
|
||||
color: #444;
|
||||
-webkit-transition: .25s ease;
|
||||
transition: .25s ease;
|
||||
-webkit-transition:.25s ease;
|
||||
transition: .25s ease
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
border-color: rgba(0, 0, 0, .2);
|
||||
border-color: rgba(0, 0, 0, .2)
|
||||
}
|
||||
|
||||
nav a:active {
|
||||
border-color: rgba(0, 0, 0, .56);
|
||||
border-color: rgba(0, 0, 0, .56)
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
margin-bottom: 1.6rem;
|
||||
margin-bottom:16px;
|
||||
margin-bottom: 1.6rem
|
||||
}
|
||||
|
||||
caption {
|
||||
padding: .8rem 0;
|
||||
padding:8px 0;
|
||||
padding: .8rem 0
|
||||
}
|
||||
|
||||
thead th {
|
||||
background: #efefef;
|
||||
color: #444;
|
||||
color: #444
|
||||
}
|
||||
|
||||
tr {
|
||||
background: #fff;
|
||||
margin-bottom: .8rem;
|
||||
margin-bottom:8px;
|
||||
margin-bottom: .8rem
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
border: .1rem solid #ccc;
|
||||
td, th {
|
||||
border:1px solid #ccc;
|
||||
border: .1rem solid #ccc
|
||||
}
|
||||
|
||||
tfoot tr {
|
||||
background: 0 0;
|
||||
background: 0 0
|
||||
}
|
||||
|
||||
tfoot td {
|
||||
color: #efefef;
|
||||
font-size: .8em;
|
||||
font-style: italic;
|
||||
padding: 1.6rem .4rem;
|
||||
padding:16px 4px;
|
||||
padding: 1.6rem .4rem
|
||||
}
|
||||
|
||||
/*! Flexbox grid */
|
||||
|
||||
section {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0;
|
||||
-ms-flex: 0;
|
||||
flex: 0;
|
||||
}
|
||||
|
||||
.w930 {
|
||||
max-width: 930px;
|
||||
max-width:930px;
|
||||
}
|
||||
|
||||
.grid {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
display:-webkit-box;
|
||||
display:-ms-flexbox;
|
||||
display:flex;
|
||||
-ms-flex-wrap:wrap;
|
||||
flex-wrap:wrap;
|
||||
margin:0 auto;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
.grid-no-wrap {
|
||||
-webkit-flex-wrap: nowrap !important;
|
||||
-ms-flex-wrap: nowrap !important;
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
|
||||
.grid-top {
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.grid-top {-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}
|
||||
.grid-bottom {-webkit-box-align:end;-ms-flex-align:end;-ms-grid-row-align:flex-end;align-items:flex-end}
|
||||
.grid-center {-webkit-box-align:center;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center}
|
||||
.grid-justify-center {-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
|
||||
|
||||
.grid-bottom {
|
||||
-webkit-box-align: end;
|
||||
-webkit-align-items: flex-end;
|
||||
-ms-flex-align: end;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.cell {-webkit-box-flex:1;-ms-flex:1;flex:1};
|
||||
.cell-top {-ms-flex-item-align: start;align-self: flex-start}
|
||||
.cell-bottom {-ms-flex-item-align: end;align-self: flex-end}
|
||||
.cell-center {-ms-flex-item-align: center;align-self: center}
|
||||
.cell-autoSize {-webkit-box-flex: 0;-ms-flex: none;flex: none}
|
||||
|
||||
.grid-center {
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.grid-justify-center {
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.cell {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
;
|
||||
.cell-top {
|
||||
-webkit-align-self: flex-start;
|
||||
-ms-flex-item-align: start;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.cell-bottom {
|
||||
-webkit-align-self: flex-end;
|
||||
-ms-flex-item-align: end;
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
||||
.cell-center {
|
||||
-webkit-align-self: center;
|
||||
-ms-flex-item-align: center;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.cell-autoSize {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: none;
|
||||
-ms-flex: none;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.cell-1of2 {
|
||||
-webkit-box-flex: 0 !important;
|
||||
-webkit-flex: 0 0 50% !important;
|
||||
-ms-flex: 0 0 50% !important;
|
||||
flex: 0 0 50% !important;
|
||||
}
|
||||
|
||||
.cell-1of3 {
|
||||
-webkit-box-flex: 0 !important;
|
||||
-webkit-flex: 0 0 33.3333% !important;
|
||||
-ms-flex: 0 0 33.3333% !important;
|
||||
flex: 0 0 33.3333% !important;
|
||||
}
|
||||
|
||||
.cell-2of3 {
|
||||
-webkit-box-flex: 0 !important;
|
||||
-webkit-flex: 0 0 66.6666% !important;
|
||||
-ms-flex: 0 0 66.6666% !important;
|
||||
flex: 0 0 66.6666% !important;
|
||||
}
|
||||
|
||||
.cell-1of4 {
|
||||
-webkit-box-flex: 0 !important;
|
||||
-webkit-flex: 0 0 25% !important;
|
||||
-ms-flex: 0 0 25% !important;
|
||||
flex: 0 0 25% !important;
|
||||
}
|
||||
.cell-1of2 {-webkit-box-flex: 0 !important;-ms-flex: 0 0 50% !important;flex: 0 0 50% !important}
|
||||
.cell-1of3 {-webkit-box-flex: 0 !important;-ms-flex: 0 0 33.3333% !important;flex: 0 0 33.3333% !important}
|
||||
.cell-2of3 {-webkit-box-flex: 0 !important;-ms-flex: 0 0 66.6666% !important;flex: 0 0 66.6666% !important}
|
||||
.cell-1of4 {-webkit-box-flex: 0 !important;-ms-flex: 0 0 25% !important;flex: 0 0 25% !important}
|
||||
|
||||
.grid-fit > .cell {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.grid-full > .cell {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 100%;
|
||||
-ms-flex: 0 0 100%;
|
||||
flex: 0 0 100%;
|
||||
}
|
||||
|
||||
.grid-1of2 > .cell {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 50%;
|
||||
-ms-flex: 0 0 50%;
|
||||
flex: 0 0 50%;
|
||||
}
|
||||
|
||||
.grid-1of3 > .cell {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 33.3333%;
|
||||
-ms-flex: 0 0 33.3333%;
|
||||
flex: 0 0 33.3333%;
|
||||
}
|
||||
|
||||
.grid-1of4 > .cell {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 25%;
|
||||
-ms-flex: 0 0 25%;
|
||||
flex: 0 0 25%;
|
||||
}
|
||||
@ -460,7 +304,6 @@ section {
|
||||
.grid-gutters {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
|
||||
.grid-gutters > .cell {
|
||||
padding: 1em 0 0 1em;
|
||||
}
|
||||
@ -468,7 +311,6 @@ section {
|
||||
.grid-guttersLg {
|
||||
margin: -1.5em 0 1.5em -1.5em;
|
||||
}
|
||||
|
||||
.grid-guttersLg > .cell {
|
||||
padding: 1.5em 0 0 1.5em;
|
||||
}
|
||||
@ -476,130 +318,114 @@ section {
|
||||
.grid-guttersXl {
|
||||
margin: -2em 0 2em -2em;
|
||||
}
|
||||
|
||||
.grid-guttersXl > .cell {
|
||||
padding: 2em 0 0 2em;
|
||||
}
|
||||
|
||||
/*! Misc layout styles*/
|
||||
|
||||
.no-top-margin {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
.no-top-padding {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.margin5 {
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
.padding5 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
.no-top-margin{margin-top:0 !important}
|
||||
.no-top-padding{padding-top:0 !important}
|
||||
.margin5 {margin:0.5em}
|
||||
.padding5 {padding:0.5em}
|
||||
|
||||
.pagebody {
|
||||
background: #fff;
|
||||
min-height: 100%;
|
||||
border-top: 2px solid silver;
|
||||
box-shadow: rgba(0,0,0,0.1) 0 0 5px;
|
||||
background:#fff;
|
||||
min-height:100%;
|
||||
border-top:2px solid silver;
|
||||
box-shadow:rgba(0,0,0,0.1) 0 0 5px;
|
||||
}
|
||||
|
||||
.heading {
|
||||
margin-top: 16px;
|
||||
margin-bottom: 14px;
|
||||
line-height: 24px;
|
||||
font-size: 22px;
|
||||
margin-top:16px;
|
||||
margin-bottom:14px;
|
||||
line-height:24px;
|
||||
font-size:22px;
|
||||
}
|
||||
|
||||
.heading .title {
|
||||
font-family: 'PT Serif', serif;
|
||||
.heading .title {
|
||||
font-family:'PT Serif', serif;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.heading .tagline {
|
||||
padding-left: 15px;
|
||||
font-weight: 300;
|
||||
font-size: 80%;
|
||||
color: #000;
|
||||
}
|
||||
.heading .tagline {
|
||||
padding-left:15px;
|
||||
font-weight:300;
|
||||
font-size:80%;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.bio {
|
||||
background: #f9f9f9;
|
||||
margin: 12px;
|
||||
padding: 15px;
|
||||
text-align: center;
|
||||
background:#f9f9f9;
|
||||
margin:12px;
|
||||
padding:15px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.bio .logo {
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
.bio .logo {
|
||||
height:100px;
|
||||
width:100px;
|
||||
}
|
||||
|
||||
.bio .title {
|
||||
margin-top: 14px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.bio .title {
|
||||
margin-top:14px;
|
||||
font-weight:600;
|
||||
}
|
||||
|
||||
.bio .tagline {
|
||||
margin: 8px auto 0 auto;
|
||||
font-weight: 300;
|
||||
text-align: justify;
|
||||
max-width: 80%;
|
||||
font-size: 94%;
|
||||
}
|
||||
.bio .tagline {
|
||||
margin:8px auto 0 auto;
|
||||
font-weight:300;
|
||||
text-align:justify;
|
||||
max-width:80%;
|
||||
font-size:94%;
|
||||
}
|
||||
|
||||
.recent-posts {
|
||||
padding: 15px;
|
||||
padding:15px;
|
||||
}
|
||||
.recent-posts .title {
|
||||
font-family:'PT Serif', serif;
|
||||
margin-top:-12px;
|
||||
border-top:6px solid #fff;
|
||||
padding-top:14px;
|
||||
font-weight:600;
|
||||
font-size:90%;
|
||||
margin-bottom:14px;
|
||||
}
|
||||
|
||||
.recent-posts .title {
|
||||
font-family: 'PT Serif', serif;
|
||||
margin-top: -12px;
|
||||
border-top: 6px solid #fff;
|
||||
padding-top: 14px;
|
||||
font-weight: 600;
|
||||
font-size: 90%;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.recent-posts .title .showall {
|
||||
float:right;
|
||||
text-decoration:underline;
|
||||
padding-right:10px;
|
||||
font-size:0.80em;
|
||||
}
|
||||
|
||||
.recent-posts .title .showall {
|
||||
float: right;
|
||||
text-decoration: underline;
|
||||
padding-right: 10px;
|
||||
font-size: 0.80em;
|
||||
}
|
||||
|
||||
.recent-posts .post {
|
||||
border-top: 2px solid #fff;
|
||||
text-decoration: underline;
|
||||
font-size: 94%;
|
||||
font-weight: 400;
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
.recent-posts .post {
|
||||
border-top:2px solid #fff;
|
||||
text-decoration:underline;
|
||||
font-size:94%;
|
||||
font-weight:400;
|
||||
display:block;
|
||||
padding-top:8px;
|
||||
padding-bottom:6px;
|
||||
}
|
||||
|
||||
/*! Admin Styles*/
|
||||
|
||||
.admin textarea {
|
||||
font-family: 'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
font-size: 1em;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
min-height: 15em;
|
||||
border: none;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
resize: none;
|
||||
font-family:'Anonymous Pro', Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
font-size:1em;
|
||||
box-sizing:border-box;
|
||||
width:100%;
|
||||
min-height:15em;
|
||||
border:none;
|
||||
padding:0;
|
||||
overflow:hidden;
|
||||
resize:none;
|
||||
}
|
||||
|
||||
.admin .edit-left,
|
||||
.admin .edit-right {
|
||||
background: #fff;
|
||||
padding: 0.5em;
|
||||
.admin .edit-left, .admin .edit-right {
|
||||
background:#fff;
|
||||
padding:0.5em;
|
||||
box-shadow: rgba(0,0,0,0.1) 0 0 5px;
|
||||
}
|
||||
|
||||
@ -607,23 +433,18 @@ section {
|
||||
.small-Grid--gutters {
|
||||
margin: -1em 0 1em -1em;
|
||||
}
|
||||
|
||||
.small-Grid--gutters > .cell {
|
||||
padding: 1em 0 0 1em;
|
||||
}
|
||||
|
||||
.small-Grid--guttersLg {
|
||||
margin: -1.5em 0 1.5em -1.5em;
|
||||
}
|
||||
|
||||
.small-Grid--guttersLg > .cell {
|
||||
padding: 1.5em 0 0 1.5em;
|
||||
}
|
||||
|
||||
.small-Grid--guttersXl {
|
||||
margin: -2em 0 2em -2em;
|
||||
}
|
||||
|
||||
.small-Grid--guttersXl > .cell {
|
||||
padding: 2em 0 0 2em;
|
||||
}
|
||||
@ -633,23 +454,18 @@ section {
|
||||
.med-Grid--gutters {
|
||||
margin: -1em 0 1em -1em;
|
||||
}
|
||||
|
||||
.med-Grid--gutters > .cell {
|
||||
padding: 1em 0 0 1em;
|
||||
}
|
||||
|
||||
.med-Grid--guttersLg {
|
||||
margin: -1.5em 0 1.5em -1.5em;
|
||||
}
|
||||
|
||||
.med-Grid--guttersLg > .cell {
|
||||
padding: 1.5em 0 0 1.5em;
|
||||
}
|
||||
|
||||
.med-Grid--guttersXl {
|
||||
margin: -2em 0 2em -2em;
|
||||
}
|
||||
|
||||
.med-Grid--guttersXl > .cell {
|
||||
padding: 2em 0 0 2em;
|
||||
}
|
||||
@ -659,23 +475,18 @@ section {
|
||||
.large-Grid--gutters {
|
||||
margin: -1em 0 1em -1em;
|
||||
}
|
||||
|
||||
.large-Grid--gutters > .cell {
|
||||
padding: 1em 0 0 1em;
|
||||
}
|
||||
|
||||
.large-Grid--guttersLg {
|
||||
margin: -1.5em 0 1.5em -1.5em;
|
||||
}
|
||||
|
||||
.large-Grid--guttersLg > .cell {
|
||||
padding: 1.5em 0 0 1.5em;
|
||||
}
|
||||
|
||||
.large-Grid--guttersXl {
|
||||
margin: -2em 0 2em -2em;
|
||||
}
|
||||
|
||||
.large-Grid--guttersXl > .cell {
|
||||
padding: 2em 0 0 2em;
|
||||
}
|
||||
@ -683,25 +494,21 @@ section {
|
||||
|
||||
@media screen {
|
||||
[hidden~=screen] {
|
||||
display: inherit;
|
||||
display: inherit
|
||||
}
|
||||
|
||||
[hidden~=screen]:not(:active):not(:focus):not(:target) {
|
||||
clip: rect(0 0 0 0)!important;
|
||||
position: absolute!important;
|
||||
position: absolute!important
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width:40rem) {
|
||||
article,
|
||||
aside,
|
||||
section {
|
||||
article, aside, section {
|
||||
clear: both;
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
img {
|
||||
margin-right: 1.6rem;
|
||||
margin-right: 1.6rem
|
||||
}
|
||||
}
|
@ -10,7 +10,8 @@
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
overflow-y: scroll;
|
||||
text-rendering: optimizeLegibility;
|
||||
text-size-adjust: 100%
|
||||
text-size-adjust: 100%;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
* {
|
||||
|
@ -31,14 +31,14 @@ function normalizePort(val) {
|
||||
}
|
||||
|
||||
// Create HTTP Server
|
||||
if (true === config.get('http')) {
|
||||
if (config.get('http') === true) {
|
||||
let port = normalizePort(config.get('http-port'));
|
||||
app.set('port', port);
|
||||
container.set('http-server', new HttpServer(app, port));
|
||||
}
|
||||
|
||||
// Create HTTPs Server
|
||||
if (true === config.get('https')) {
|
||||
if (config.get('https') === true) {
|
||||
const httpsPort = normalizePort(config.get('https-port'));
|
||||
const httpsConfig = {
|
||||
key: fs.readFileSync(config.get('https-config-key')),
|
||||
|
Reference in New Issue
Block a user