-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
62 lines (54 loc) · 1.93 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
const express = require('express')
const fs = require('fs')
const path = require('path')
const markdownIt = require('markdown-it')
const md = new markdownIt()
const app = express()
const PORT = 3000
const REFRESH = 1
const POLLING = 1
let markdownPath = path.join(__dirname, 'TODAY.md')
let lastModified = new Date(Date.now()-1_000)
let htmlContent = ''
const checkForUpdates = () => {
fs.stat(markdownPath, (err, stats) => {
if (err) {console.error("Error reading file stats:", err); return}
if (stats.mtime <= lastModified) {console.log("No updates found"); return}
console.log("File updated. Generating new HTML content...")
lastModified = stats.mtime
fs.readFile(markdownPath, 'utf8', (err, data) => {
if (err) {console.error("Error reading markdown file:", err); return}
htmlContent = `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="${REFRESH}">
<title>Markdown Page</title>
<style>
body { font-size: 32px; }
</style>
</head>
<body>
${md.render(data)}
<script>
window.onload = function() {
setInterval(function() {
window.scrollTo(0,document.body.scrollHeight);
console.log(document.body.scrollHeight)
}, ${REFRESH*1_000});
}
</script>
</body>
</html>
`
})
})
}
setInterval(checkForUpdates, POLLING*1_000)
app.get('/', (req, res) => {
res.send(htmlContent)
});
app.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}`)
})