Heb het hele PWS opnieuw geprogrameerd.

This commit is contained in:
Bram van der Veen 2015-08-24 12:29:06 +02:00
parent 9ce6d8d023
commit fac5703ee9
12 changed files with 53 additions and 21 deletions

10
app.js
View file

@ -1,7 +1,7 @@
//web.js //web.js
var express = require('express'); var express = require('express');
var less = require('express-less'); var less = require('express-less');
var markdown = require('express-markdown'); var hoewerkt = require('./hoewerkt');
var fs = require('fs'); var fs = require('fs');
var app = express(); var app = express();
@ -9,7 +9,6 @@ var app = express();
app.set('view engine', 'jade'); app.set('view engine', 'jade');
app.disable('view cache'); app.disable('view cache');
app.set('views', __dirname + '/resources/jade'); app.set('views', __dirname + '/resources/jade');
app.locals.articles = fs.readdirSync(__dirname + '/markdown');
//Set up all static directories for getting resources. //Set up all static directories for getting resources.
app.use('/css', less(__dirname + '/resources/less', {debug : true})); app.use('/css', less(__dirname + '/resources/less', {debug : true}));
@ -17,11 +16,10 @@ app.use('/css', less(__dirname + '/resources/less', {debug : true}));
app.use('/images', express.static(__dirname + '/resources/images')); app.use('/images', express.static(__dirname + '/resources/images'));
app.use('/other', express.static(__dirname + '/resources/other')); app.use('/other', express.static(__dirname + '/resources/other'));
//Setup markdown middleware. //Setup markdown middleware.
app.use(markdown({directory: __dirname + '/markdown', view: 'article'}));
app.get('/', function (req, res) { app.get('/', hoewerkt);
res.redirect('/home.md'); app.get('/:article', hoewerkt);
});
function start(port) { function start(port) {
app.listen(port); app.listen(port);

View file

@ -1,4 +1,4 @@
##Hoe werkt Werkmanrooster? #### Hoe werkt Werkmanrooster?
--- ---
Welkom op de index van mijn profielwerkstuk. Vanuit hier kun je alle verschillende hoofdstukken en deelvragen bekijken en nalezen. Ik zou echt wel voorstellen om de artikelen te lezen op chronologische volgorde, want op die manier zou het het makkelijkste te lezen zijn. Welkom op de index van mijn profielwerkstuk. Vanuit hier kun je alle verschillende hoofdstukken en deelvragen bekijken en nalezen. Ik zou echt wel voorstellen om de artikelen te lezen op chronologische volgorde, want op die manier zou het het makkelijkste te lezen zijn.

View file

@ -1,7 +1,7 @@
//compile.js //compile.js
var fs = require('fs'); var fs = require('fs');
var marked = require('marked'); var marked = require('marked');
var buffer = '<a href="http://hoewerkt.werkmanrooster.nl">Een betere leeservaring is op http://hoewerkt.werkmanrooster.nl, het is ook bedoelt om het hier te lezen.</a>'; var buffer = '<a href="http://hoewerkt.werkmanrooster.nl">Een betere leeservaring is op http://hoewerkt.werkmanrooster.nl, het is ook bedoelt om het hier te lezen. Ook staat dit papier NIET op de bedoelde volgorde.</a>';
var articles = fs.readdirSync(__dirname + '/markdown'); var articles = fs.readdirSync(__dirname + '/markdown');

39
hoewerkt.js Normal file
View file

@ -0,0 +1,39 @@
//hoewerkt.js
var fs = require('fs');
var marked = require('marked');
var articles = [
'Inleiding',
'Moeilijkheidsgraad',
'Inhetkort:In het kort'
]
module.exports = function (req, res, next) {
console.log('Got a hit');
if (req.url == '/') {
res.render('article', render('index'));
}
else {
var sub = req.url.split('/')[1];
var othersub = req.url.split('/')[2] || 'makkelijk';
for (article of articles) {
if (sub == article.split(':')[0]) {
res.render('article', render(sub, othersub))
return;
}
}
res.render('404');
}
}
function render(file, difficulty) {
if (file == 'index') var content = fs.readFileSync(__dirname + '/articles/index.md').toString();
else {
console.log('files', file);
var files = fs.readdirSync(__dirname + '/articles/' + file.toLowerCase()).join('\n');
var selected = files.match(new RegExp(difficulty + '.*'))[0];
var content = fs.readFileSync(__dirname + '/articles/' + file + '/' + selected).toString();
}
return {'markdown': marked(content), 'articles': articles}
}

View file

@ -12,6 +12,7 @@
"express": "^4.13.0", "express": "^4.13.0",
"express-less": "0.0.7", "express-less": "0.0.7",
"express-markdown": "0.0.6", "express-markdown": "0.0.6",
"jade": "^1.11.0" "jade": "^1.11.0",
"marked": "^0.3.5"
} }
} }

1
resources/jade/404.jade Normal file
View file

@ -0,0 +1 @@
h1 Het artikel waar je naar zoekt is niet gevonden.

View file

@ -12,13 +12,14 @@ html
div div
h5 Profielwerkstuk h5 Profielwerkstuk
p Hoe werkt Werkmanrooster? p Hoe werkt Werkmanrooster?
a(href="http://96aa48.github.io") sup Door :
img(src="/images/face.png") //- a(href="http://96aa48.github.io")
//- img(src="/images/face.png")
sup Bram van der Veen sup Bram van der Veen
ul ul
for article in locals.articles for article in articles
li li
a(href="/" + article)=article.substr(0,1).toUpperCase() + article.replace(/.md/, '').slice(1) a(href="/" + article.match(':') ? article.split(':')[0] : article)=article.match(':') ? article.split(':')[1] : article
.content.seven .content.seven
div!=markdown div!=markdown

View file

@ -1,8 +0,0 @@
html
head
title Hoe werkt Werkmanrooster ?
link(rel="stylesheet", href="/css/style.css", type="text/css")
link(rel="stylesheet", href="/css/skeleton.css", type="text/css")
body
.container=markdown