diff --git a/builds/4chan-X.js b/builds/4chan-X.js
index 19083374e..0936d13f0 100644
--- a/builds/4chan-X.js
+++ b/builds/4chan-X.js
@@ -1592,7 +1592,7 @@
return;
}
as = $$('#full-board-list a', Header.bar);
- nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
+ nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
var a, board, m, _i, _len;
if (/^[^\w@]/.test(t)) {
@@ -1607,6 +1607,15 @@
$.on(a, 'click', Header.toggleBoardList);
return a;
}
+ if (/^external/.test(t)) {
+ a = $.el('a', {
+ href: (t.match(/-url:"(.+)"/) || [null, '+'])[1],
+ textContent: (t.match(/-text:"(.+)"-/) || [null, '+'])[1],
+ className: 'external',
+ target: '_blank'
+ });
+ return a;
+ }
board = /^current/.test(t) ? g.BOARD.ID : t.match(/^[^-]+/)[0];
for (_i = 0, _len = as.length; _i < _len; _i++) {
a = as[_i];
@@ -9715,7 +9724,7 @@
advanced: function(section) {
var archiver, event, input, inputs, items, name, ta, toSelect, _i, _j, _len, _len1, _ref;
- section.innerHTML = "
";
+ section.innerHTML = " ";
items = {};
inputs = {};
_ref = ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'sageEmoji', 'emojiPos', 'usercss'];
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index fd8e648c0..6211ed016 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1588,7 +1588,7 @@
return;
}
as = $$('#full-board-list a', Header.bar);
- nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
+ nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
var a, board, m, _i, _len;
if (/^[^\w@]/.test(t)) {
@@ -1603,6 +1603,15 @@
$.on(a, 'click', Header.toggleBoardList);
return a;
}
+ if (/^external/.test(t)) {
+ a = $.el('a', {
+ href: (t.match(/-url:"(.+)"/) || [null, '+'])[1],
+ textContent: (t.match(/-text:"(.+)"-/) || [null, '+'])[1],
+ className: 'external',
+ target: '_blank'
+ });
+ return a;
+ }
board = /^current/.test(t) ? g.BOARD.ID : t.match(/^[^-]+/)[0];
for (_i = 0, _len = as.length; _i < _len; _i++) {
a = as[_i];
@@ -9726,7 +9735,7 @@
advanced: function(section) {
var archiver, event, input, inputs, items, name, ta, toSelect, _i, _j, _len, _len1, _ref;
- section.innerHTML = " ";
+ section.innerHTML = " ";
items = {};
inputs = {};
_ref = ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'sageEmoji', 'emojiPos', 'usercss'];
diff --git a/builds/crx/script.js b/builds/crx/script.js
index bdf79efa3..0d1eadd8a 100644
--- a/builds/crx/script.js
+++ b/builds/crx/script.js
@@ -1590,7 +1590,7 @@
return;
}
as = $$('#full-board-list a', Header.bar);
- nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
+ nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+"))*|[^\w@]+/g).map(function(t) {
var a, board, m, _i, _len;
if (/^[^\w@]/.test(t)) {
@@ -1605,6 +1605,15 @@
$.on(a, 'click', Header.toggleBoardList);
return a;
}
+ if (/^external/.test(t)) {
+ a = $.el('a', {
+ href: (t.match(/-url:"(.+)"/) || [null, '+'])[1],
+ textContent: (t.match(/-text:"(.+)"-/) || [null, '+'])[1],
+ className: 'external',
+ target: '_blank'
+ });
+ return a;
+ }
board = /^current/.test(t) ? g.BOARD.ID : t.match(/^[^-]+/)[0];
for (_i = 0, _len = as.length; _i < _len; _i++) {
a = as[_i];
@@ -9707,7 +9716,7 @@
advanced: function(section) {
var archiver, event, input, inputs, items, name, ta, toSelect, _i, _j, _len, _len1, _ref;
- section.innerHTML = " ";
+ section.innerHTML = " ";
items = {};
inputs = {};
_ref = ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'sageEmoji', 'emojiPos', 'usercss'];
diff --git a/src/General/Header.coffee b/src/General/Header.coffee
index 6603c3d8a..ff2a55be7 100644
--- a/src/General/Header.coffee
+++ b/src/General/Header.coffee
@@ -132,7 +132,7 @@ Header =
$.rmAll list
return unless text
as = $$('#full-board-list a', Header.bar)
- nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|text:"[^"]+"))*|[^\w@]+/g).map (t) ->
+ nodes = text.match(/[\w@]+(-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+"))*|[^\w@]+/g).map (t) ->
if /^[^\w@]/.test t
return $.tn t
if /^toggle-all/.test t
@@ -142,6 +142,13 @@ Header =
href: 'javascript:;'
$.on a, 'click', Header.toggleBoardList
return a
+ if /^external/.test t
+ a = $.el 'a',
+ href: (t.match(/-url:"(.+)"/) || [null, '+'])[1]
+ textContent: (t.match(/-text:"(.+)"-/) || [null, '+'])[1]
+ className: 'external'
+ target: '_blank'
+ return a
board = if /^current/.test t
g.BOARD.ID
else
diff --git a/src/General/html/Settings/Advanced.html b/src/General/html/Settings/Advanced.html
index 0f41d75ed..99bb1f3c5 100644
--- a/src/General/html/Settings/Advanced.html
+++ b/src/General/html/Settings/Advanced.html
@@ -21,6 +21,7 @@
Custom text link: board-text:"VIP Board"
Index-only link: board-index
Catalog-only link: board-catalog
+ External link: external-text:"Google"-url:"http://www.google.com"
Combinations are possible: board-index-text:"VIP Index"
Full board list toggle: toggle-all