initial work on client-side templating

merge-requests/27/head
knotteye 2020-10-14 00:03:45 -05:00
parent 99879fd91e
commit 57d0b0f856
3 changed files with 47 additions and 2 deletions

View File

@ -9,7 +9,8 @@
"cli": "ts-node src/cli.ts",
"setup": "sh install/setup.sh",
"migrate": "ts-node src/migrate.ts",
"invite": "ts-node src/cli.ts --invite"
"invite": "ts-node src/cli.ts --invite",
"make-templates": "cp node_modules/nunjucks/browser/nunjucks-slim.js site &&nunjucks-precompile -i [\"\\.html$\",\"\\.njk$\"] templates > site/templates.js"
},
"repository": {
"type": "git",

37
site/index.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<head>
<script src="/nunjucks-slim.js"></script>
<script src="/templates.js"></script>
<script>
nunjucks.configure({ autoescape: true });
</script>
</head>
<body onload="render()">
<script>
function render(){
switch(window.location.pathname){
case "/about.html":
document.body.innerHTML = nunjucks.render('about.html');
break;
case "/tos.html":
document.body.innerHTML = nunjucks.render('tos.html');
break;
default:
document.body.innerHTML = nunjucks.render('404.njk');
}
}
function getContext(){
var conf = {
sitename: "",
domain: "",
email: "",
version: "",
registration: false
}
var info = new XMLHttpRequest();
info.onload = () => {
if(xhr.status === 200)
}
}
</script>
</body>

View File

@ -56,11 +56,12 @@ async function init(){
}
app.disable('x-powered-by');
//site handlers
await initSite(config['satyr']['registration']);
//await initSite(config['satyr']['registration']);
//api handlers
await initAPI();
//static files if nothing else matches first
app.use(express.static(config['http']['directory']));
await initFE();
//404 Handler
app.use(function (req, res, next) {
if(tryDecode(req.cookies.Authorization)) {
@ -73,6 +74,12 @@ async function init(){
server.listen(config['http']['port']);
}
async function initFE(){
app.get('*', (req, res) => {
res.sendFile(process.cwd()+'/'+config['http']['directory']+'/index.html');
});
}
async function newNick(socket, skip?: boolean, i?: number) {
if(socket.handshake.headers['cookie'] && !skip){
let c = await parseCookie(socket.handshake.headers['cookie']);