more
This commit is contained in:
24
contrib/js/neochan/board_init.js
Normal file
24
contrib/js/neochan/board_init.js
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
|
||||
/**
|
||||
* @brief initialize a board page
|
||||
*/
|
||||
function neochan_board_init(root, board) {
|
||||
|
||||
var thread_init = function (j) {
|
||||
var elem = document.createElement("div");
|
||||
for(var idx = 0; idx < j.length; idx ++) {
|
||||
var post = j[idx];
|
||||
neochan_post_fadein(elem, post);
|
||||
}
|
||||
return elem;
|
||||
}
|
||||
// inject threads
|
||||
onready(function() {
|
||||
for (var idx = 0; idx < board.posts.length; idx ++) {
|
||||
var posts = board.posts[idx];
|
||||
var elem = thread_init(posts);
|
||||
root.appendChild(elem);
|
||||
}
|
||||
});
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
// Generated by CoffeeScript 1.11.1
|
||||
(function() {
|
||||
|
||||
|
||||
}).call(this);
|
23
contrib/js/neochan/post.js
Normal file
23
contrib/js/neochan/post.js
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
function neochan_post_new(j) {
|
||||
var post = document.createElement("div");
|
||||
post.id = j.PostHash;
|
||||
post.setAttribute("class", "neochan-post-wrapper");
|
||||
var header = document.createElement("div");
|
||||
header.setAttribute("class", "neochan-post-header");
|
||||
post.appendChild(header);
|
||||
|
||||
var body = document.createElement("div");
|
||||
body.setAttribute("class", "neochan-post-body");
|
||||
|
||||
neochan_postify(body, j.Message);
|
||||
|
||||
return post;
|
||||
}
|
||||
|
||||
function neochan_post_fadein(elem, j) {
|
||||
var post = neochan_post_new(j);
|
||||
$(post).fadein();
|
||||
elem.appendChild(post);
|
||||
}
|
37
contrib/js/neochan/postify.js
Normal file
37
contrib/js/neochan/postify.js
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
|
||||
function _neochan_filter_boardlink(match) {
|
||||
match = match.toLowerCase();
|
||||
var a = document.createElement("a");
|
||||
a.href = "/" + match + "-0.html";
|
||||
match = ">>>/" + match + "/";
|
||||
a.appendChild(document.createTextNode(match));
|
||||
return a;
|
||||
}
|
||||
|
||||
function _neochan_filter_postlink(match) {
|
||||
|
||||
}
|
||||
|
||||
var _neochan_post_filters = [
|
||||
[/>>>\/(overchan\\.[a-zA-z0-9\\.]+[a-zA-Z0-9])\//g, _neochan_filter_boardlink],
|
||||
[/>>? ([a-fA-F0-9])/g, _neochan_filter_postlink],
|
||||
[/==(.+)==/g, _neochan_filter_redtext],
|
||||
[/@@(.+)@@/g, _neochan_filter_psytext],
|
||||
[/^>/g, _neochan_filter_greentext],
|
||||
];
|
||||
|
||||
/**
|
||||
* @brief create post body from raw text
|
||||
*/
|
||||
function neochan_postify(elem, text) {
|
||||
$.each(_neochan_post_filters, function(idx, ent) {
|
||||
var re = ent[0];
|
||||
var func = ent[1];
|
||||
text = text.replace(re, function(m) {
|
||||
var e = func(m);
|
||||
|
||||
return "";
|
||||
});
|
||||
});
|
||||
}
|
@@ -1,3 +1 @@
|
||||
# neochan javascript directory
|
||||
|
||||
sass files for neochan templates
|
||||
|
Reference in New Issue
Block a user