X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=www%2Fjs%2Fblerg.js;h=eae9cbc387757d05d33a322f0b06998d18a4fe70;hb=d214c4d7d835a3f06925db9a7e2e6c42bc4d4346;hp=dcb56790742476335121b8810d7f304d07d3bce0;hpb=bea3e3c083a638dfd2e0e8b95e10731a34b0fe4f;p=blerg.git diff --git a/www/js/blerg.js b/www/js/blerg.js index dcb5679..eae9cbc 100644 --- a/www/js/blerg.js +++ b/www/js/blerg.js @@ -79,6 +79,7 @@ LoginStatus.prototype.update = function() { if (this.loggedIn) { $('userlink').href = '/#' + this.username; $('userlink').update('@' + this.username); + $('reflink').href = '/#ref/' + this.username; $('login').hide(); $('logout').show(); } else { @@ -91,7 +92,7 @@ LoginStatus.prototype.update = function() { LoginStatus.prototype.post = function(msg) { if (!this.loggedIn) { alert("You are not logged in!"); - exit(0); + return; } new Ajax.Request(baseURL + '/put', { @@ -202,7 +203,6 @@ User.prototype.show = function() { $$('[name=section]').each(function(v) { v.update(' @' + this.username) }.bind(this)); $('welcome').hide(); items.show(); - $('reflink').href = '/#ref/' + this.username; $('rss').show(); $('rsslink').href = '/rss/' + this.username; } @@ -244,21 +244,21 @@ function mangleRecord(record, template) { record.recInt = parseInt(record.record); // Sanitize HTML input - record.data = record.data.replace('&', '&').replace('<', '<').replace('>', '>'); + record.data = record.data.replace(/&/g, '&').replace(//g, '>'); // Turn HTTP URLs into links record.data = record.data.replace(/(\s|^)(https?:\/\/[a-zA-Z0-9.-]*[a-zA-Z0-9](\/([^\s"]*[^.!,;?()\s])?)?)/g, '$1$2'); // Turn markdown links into links - record.data = record.data.replace(/(\s|^)\[([^\]]+)\]\((https?:\/\/[a-zA-Z0-9.-]*[a-zA-Z0-9](\/[^)"]*?)?)\)/, '$1$2'); + record.data = record.data.replace(/(\s|^)\[([^\]]+)\]\((https?:\/\/[a-zA-Z0-9.-]*[a-zA-Z0-9](\/[^)"]*?)?)\)/g, '$1$2'); // Turn *foo* into italics and **foo** into bold - record.data = record.data.replace(/(\s)\*\*([^*]+)\*\*(\s)/, '$1$2$3'); - record.data = record.data.replace(/(\s)\*([^*]+)\*(\s)/, '$1$2$3'); + record.data = record.data.replace(/(\s)\*\*([^*]+)\*\*(\s)/g, '$1$2$3'); + record.data = record.data.replace(/(\s)\*([^*]+)\*(\s)/g, '$1$2$3'); // Turn refs and tags into links - record.data = record.data.replace(/(\s|^)#(\w+)/g, '$1#$2'); - record.data = record.data.replace(/(\s|^)@(\w+)/g, '$1@$2'); + record.data = record.data.replace(/(\s|^)#([A-Za-z0-9_-]+)/g, '$1#$2'); + record.data = record.data.replace(/(\s|^)@([A-Za-z0-9_-]+)/g, '$1@$2'); // Turn newlines into linebreaks and paragraphs record.data = record.data.replace(/\r?\n\r?\n/g, "
").replace(/\r?\n/g, "
");
@@ -402,15 +402,41 @@ function resizePostContent() {
}, 150);
}
+function loadNewThings() {
+ new Ajax.Request(baseURL + '/newtags.json', {
+ onSuccess: function(r) {
+ $('newtags').update();
+ r.responseText.evalJSON().each(function(v) {
+ var a = new Element('a', {href: '/#tag/' + v});
+ a.insert('#' + v);
+ $('newtags').insert(a);
+ $('newtags').insert(new Element('br'));
+ });
+ }
+ });
+
+ new Ajax.Request(baseURL + '/newusers.json', {
+ onSuccess: function(r) {
+ $('newusers').update();
+ r.responseText.evalJSON().each(function(v) {
+ var a = new Element('a', {href: '/#' + v});
+ a.insert('@' + v);
+ $('newusers').insert(a);
+ $('newusers').insert(new Element('br'));
+ });
+ }
+ });
+}
+
function hashSwitch() {
var m;
if (m = location.search.match(/^\?post\/([^/]+)\/(.+)/)) {
$('post').show();
$('post.content').value = '[' + decodeURIComponent(m[1]).replace(']','').replace('[','') + '](' + decodeURIComponent(m[2]) + ')';
- } else if (m = location.hash.match(/^#(ref|tag)\/(\w+)$/)) {
+ } else if (m = location.hash.match(/^#(ref|tag)\/([A-Za-z0-9_-]+)$/)) {
currentPager = new Tag(m[1], m[2]);
currentPager.show();
- } else if (m = location.hash.match(/^#(\w+)(:(\d+))?$/)) {
+ } else if (m = location.hash.match(/^#([A-Za-z0-9_-]+)(:(\d+))?$/)) {
if (!currentPager || currentPager.username != m[1])
currentPager = new User(m[1]);
currentPager.show();
@@ -437,6 +463,7 @@ function hashSwitch() {
$('older_link').hide();
$('welcome').show();
$('rss').hide();
+ loadNewThings();
}
}