add articles

This commit is contained in:
b1ek 2023-02-22 23:55:17 +10:00
parent 8d29d4d395
commit eb4e25e1ae
Signed by: blek
GPG Key ID: 14546221E3595D0C
5 changed files with 96 additions and 3 deletions

View File

@ -37,6 +37,8 @@ module.exports = {
});
},
async down(queryInterface, Sequelize) {
await queryInterface.dropTable('Guestbooks');
if (await queryInterface.tableExists('guestbook')) {
await queryInterface.dropTable('guestbook');
}
}
};

View File

@ -0,0 +1,47 @@
'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
/** @param {import('sequelize').QueryInterface} queryInterface */
async up (queryInterface, DataTypes) {
queryInterface.createTable('articles', {
id: {
type: DataTypes.BIGINT(11),
primaryKey: true,
autoIncrement: true,
allowNull: false
},
title: {
type: DataTypes.TEXT,
allowNull: false
},
shortText: {
type: DataTypes.TEXT,
allowNull: false
},
body: {
type: DataTypes.TEXT,
allowNull: false
},
submitted: {
type: DataTypes.BIGINT,
allowNull: false
},
edited: {
type: DataTypes.BIGINT,
allowNull: false
},
submitter: {
type: DataTypes.BIGINT,
allowNull: false
}
});
},
/** @param {import('sequelize').QueryInterface} queryInterface */
async down (queryInterface, DataTypes) {
if (await queryInterface.tableExists('articles')) {
await queryInterface.dropTable('articles');
}
}
};

17
routes/articles.js Normal file
View File

@ -0,0 +1,17 @@
const handler = require('express-async-handler');
const Helpers = require('../helpers');
const Sequelize = require('../models');
async function articles(req, res) {
const articles = await Sequelize.Article.findAll();
res.send(await Helpers.ViewLoader.load('articles/articles.pug', {
current_route: res.originalUrl,
articles
}));
}
module.exports = (router) => {
router.get('/articles', handler(articles));
}

View File

@ -0,0 +1,25 @@
extends ../layout/main.pug
block root
- var title = 'Articles'
block content
h2 Articles
p.
This is a bunch of articles written by me (like a tech blog of some sort)
if articles
table(style='max-width:600px;min-width:600px;border-collapse:collapse;border:0')
each article of articles
tr
td(style='border:1px solid #c2c4c2;box-shadow:0 2px 2px #c2c4c280;border-radius:8px;padding:4px 24px')
h4(style='margin:8px 0;padding:0')
span(style='font-family:monospace') [<a style='font-family:monospace' href='/article/#{article.id}'>##{article.id}</a>]
= article.title
hr
p= article.shortText
p
a(href='/article/' + article.id) Open full article
tr
td
div(style='min-height:12px;max-height:12px')
else
p Error while loading articles: data is not present

View File

@ -5,8 +5,10 @@ block root
"Main page": '/',
"Projects": "/project",
"About me": "/about",
"hr": "hr",
"Guestbook": "/guestbook"
"hr_1": "hr",
"Guestbook": "/guestbook",
"hr_2": "hr",
"Articles": "/articles"
}
doctype html