Initial commit, all currently broken.

This commit is contained in:
jkaplon 2016-02-16 17:52:38 -05:00
commit 24ef41ca34
3 changed files with 94 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
/keymap/*
/lib/*
/mode/*
/note-data/*
index.html

46
server.js Normal file
View File

@ -0,0 +1,46 @@
var express = require("express");
var hbs = require('express-hbs');
require('handlebars-form-helpers').register(hbs.handlebars);
var bodyParser = require("body-parser");
var app = express();
var winston = require('winston');
winston.add(winston.transports.File, { filename: './logs/notes.kaplon.us.log', maxsize: 5000000 }); // 5MB
var fileSystem = require('fs');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false })); // Not sure if both needed here.
// Use `.hbs` for extensions and find partials in `views/partials`.
app.engine('hbs', hbs.express4({
partialsDir: __dirname + '/views/partials'
}));
app.set('view engine', 'hbs');
app.set('views', __dirname + '/views');
var notePath = __dirname + '/allNotes.txt';
app.get('/', function(req, res){
winston.info("GET /");
// Get curent text from allNotes.txt.
// How to pass that text into index.html editor control??? Still need Handlebars???
// i may be grokking it...need to keep handlebars, though.
// read contents of allNotes.txt into a variable.
// pass that variable as data to handlebars template, {{notetxt}}.
res.render('index', {notetxt: noteTxt}, function(err, html) {
if(err !== null) {
winston.error(err);
} else {
res.send(html);
}
});
});
app.post('/', function(req, res){
winston.info(req.body);
// Stage and commit changes to allNotes.txt.
res.status(204).send('POST received');
});
app.listen(3000, function() {
winston.info("Started on PORT 3000");
});

43
views/index.hbs Normal file
View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Jody's CodeMirror</title>
<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"></script>
<script src="mode/markdown/markdown.js"></script>
<script src="keymap/vim.js"></script>
<style type="text/css">
.CodeMirror {
border: 1px solid #eee;
height: auto;
}
</style>
</head>
<body>
<form><textarea id="editor" name="editor">
{{notetxt}}
</textarea></form>
<script>
var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
mode: "markdown",
lineNumbers: "true",
keyMap: "vim",
viewportMargin: Infinity
});
var typingTimer;
editor.on("changes", function() {
//console.log("changes fired");
clearTimeout(typingTimer);
typingTimer = setTimeout(
function() {
alert("saved now!");
},
2000
);
});
</script>
</body>
</html>