MD + commenting started
markdown body in "content" field of article (no DOM.purify cuz only admin write blog) started commenting function: TODO in node/comments.jsmaster
parent
d189472d9e
commit
606b7f7b5b
7
TODO.md
7
TODO.md
|
@ -1,9 +1,10 @@
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
- Actual post view site thingy
|
- Actual post view site thingy
|
||||||
- markdown interpreter thing
|
<DONE> markdown interpreter thing
|
||||||
- idk comments
|
* voting
|
||||||
- voting
|
* idk comments
|
||||||
|
|
||||||
|
|
||||||
- Admin interface
|
- Admin interface
|
||||||
- create posts in MD
|
- create posts in MD
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
function displaycomments() {
|
||||||
|
commenting = new metaentry(undefined,"comment:",".content",{"content":
|
||||||
|
`Your comment: (no MD)<br>
|
||||||
|
<textarea class="comment commtext"></textarea>
|
||||||
|
<input class="comment" onclick="comment($('.commtext').val())" type="submit" value="Submit!" \\>`})
|
||||||
|
}
|
||||||
|
|
||||||
|
function comment(comment) {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/comment",
|
||||||
|
data: {
|
||||||
|
comment: comment
|
||||||
|
},
|
||||||
|
dataType: "json"
|
||||||
|
})
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,8 @@
|
||||||
// post displayer:
|
// post displayer:
|
||||||
$(document).ready(() => {
|
$(document).ready(() => {
|
||||||
console.log(1)
|
content = new entry(postDATA.title, postDATA.author, marked(postDATA.content), postDATA.href, postDATA.tags, postDATA.id, postDATA.create)
|
||||||
content = new entry(postDATA.title, postDATA.author, postDATA.desc, postDATA.href, postDATA.tags, postDATA.id, postDATA.create)
|
|
||||||
content.appendto(".content")
|
content.appendto(".content")
|
||||||
|
// commenting thing
|
||||||
displayshare()
|
displayshare()
|
||||||
|
displaycomments()
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,12 +9,14 @@
|
||||||
<link rel="stylesheet" href="/static/style/fonts.css">
|
<link rel="stylesheet" href="/static/style/fonts.css">
|
||||||
<link rel="stylesheet" href="/static/style/main.css">
|
<link rel="stylesheet" href="/static/style/main.css">
|
||||||
<script src="/static/js/jq.js"></script>
|
<script src="/static/js/jq.js"></script>
|
||||||
|
<script src="/static/js/marked.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
postDATA = //<!--POST-DATA-INJECT-->//
|
postDATA = "a"//<!--POST-DATA-INJECT-->//
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/js/themes.js"></script>
|
<script src="/static/js/themes.js"></script>
|
||||||
<script src="/static/js/menubar.js"></script>
|
<script src="/static/js/menubar.js"></script>
|
||||||
<script src="/static/js/entry.js"></script>
|
<script src="/static/js/entry.js"></script>
|
||||||
|
<script src="/static/js/comment.js"></script>
|
||||||
<script src="/static/js/share.js"></script>
|
<script src="/static/js/share.js"></script>
|
||||||
<script src="/static/js/posts.js"></script>
|
<script src="/static/js/posts.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -98,3 +98,10 @@ body, html {
|
||||||
.share {
|
.share {
|
||||||
color: blue
|
color: blue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* comments */
|
||||||
|
textarea.comment {
|
||||||
|
resize: none;
|
||||||
|
width: calc( 100% - 0.5em);
|
||||||
|
height: 5em;
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ const filestuff = require("./filestuff")
|
||||||
var con = require("./console")
|
var con = require("./console")
|
||||||
const JSONdb = require("simple-json-db")
|
const JSONdb = require("simple-json-db")
|
||||||
var posts = require("./posts")
|
var posts = require("./posts")
|
||||||
|
var comments = require("./comments")
|
||||||
|
|
||||||
const app = express()
|
const app = express()
|
||||||
const port = 5500
|
const port = 5500
|
||||||
|
@ -78,6 +79,10 @@ const postsDB = new JSONdb("storage/posts.json")
|
||||||
posts.init(postsDB)
|
posts.init(postsDB)
|
||||||
posts.rank()
|
posts.rank()
|
||||||
|
|
||||||
|
// readout comments:
|
||||||
|
const commentDB = new JSONdb("storage/comments.json")
|
||||||
|
comments.init(commentDB)
|
||||||
|
|
||||||
// posts:
|
// posts:
|
||||||
app.get("/posts", (req, res) => {
|
app.get("/posts", (req, res) => {
|
||||||
if( typeof( req.query.api ) != "undefined" ) {
|
if( typeof( req.query.api ) != "undefined" ) {
|
||||||
|
@ -91,7 +96,7 @@ app.get("/posts", (req, res) => {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
res.status( 200 )
|
res.status( 200 )
|
||||||
filestuff.readFSr(req, res, "html/posts/index.html", "text/html", "//<!--POST-DATA-INJECT-->//", JSON.stringify(postsDB.get(req.query.post)))
|
filestuff.readFSr(req, res, "html/posts/index.html", "text/html", "\"a\"//<!--POST-DATA-INJECT-->//", JSON.stringify(postsDB.get(req.query.post)))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
this.init = (db) => {
|
||||||
|
this.db = db
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
// key structur:
|
||||||
|
// postID-commentID
|
||||||
|
|
||||||
|
// how 2 requests:
|
||||||
|
// POST /comment // create comment
|
||||||
|
// comment:
|
||||||
|
// ---
|
||||||
|
// GET /comment // read out comments
|
||||||
|
// post:
|
||||||
|
|
||||||
|
// CMDs
|
||||||
|
// comment postID [ commentID ]
|
||||||
|
|
||||||
|
// generating "hot" + "new" articles etc. (should run 1 / 0:30h and at startup + on new article)
|
||||||
|
this.read = (count, sort) => {
|
||||||
|
let ret = []
|
||||||
|
debugger
|
||||||
|
switch (sort) {
|
||||||
|
case "hot":
|
||||||
|
this.ranking.hot.length
|
||||||
|
for ( let i = 0 ; i < count ; i++ ) {
|
||||||
|
if ( typeof( this.ranking.hot[i] ) == "number" ) {
|
||||||
|
ret.push( this.db.get( this.ranking.hot[i] ) )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
default:
|
||||||
|
for ( let i = 0 ; i < count ; i++ ) {
|
||||||
|
if ( this.db.get( i ) )
|
||||||
|
ret.push( this.db.get( i ) )
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
|
@ -16,9 +16,10 @@
|
||||||
"id": 0
|
"id": 0
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"title": "My 2 Post",
|
"title": "Im trying MD post",
|
||||||
"author": "derzombiiie",
|
"author": "derzombiiie",
|
||||||
"desc": "Lorem ipsum dolor sit.",
|
"desc": "HERE PRESS THIS THIS NOT CONTENT THIS DESC!",
|
||||||
|
"content": "# Article!\nwelcome\n*bold***italic** ***bold+italic***\n- point1\n- point2- \n me not more md from the brain :(",
|
||||||
"href": "#",
|
"href": "#",
|
||||||
"tags": [
|
"tags": [
|
||||||
"testing",
|
"testing",
|
||||||
|
|
Loading…
Reference in New Issue