diff --git a/d b/d
deleted file mode 100644
index 09ddbcc5..00000000
--- a/d
+++ /dev/null
@@ -1,553 +0,0 @@
-[1mdiff --git a/inc/instance-config.php b/inc/instance-config.php[m
-[1mindex 699d1a1..475f3ed 100644[m
-[1m--- a/inc/instance-config.php[m
-[1m+++ b/inc/instance-config.php[m
-[36m@@ -18,15 +18,15 @@[m
- $config['db']['user'] = 'root';[m
- $config['db']['password'] = '';[m
- $config['timezone'] = 'UTC';[m
-[31m- $config['cache']['enabled'] = 'apc';[m
-[31m-[m
-[31m-[m
-[32m+[m [32m$config['cache']['enabled'] = false;[m
-[32m+[m[41m [m
-[32m+[m[41m [m
- $config['cookies']['mod'] = 'mod';[m
- $config['cookies']['salt'] = '';[m
-[31m-[m
-[32m+[m[41m [m
- $config['spam']['hidden_inputs_max_pass'] = 128;[m
- $config['spam']['hidden_inputs_expire'] = 60 * 60 * 4; // three hours[m
-[31m-[m
-[32m+[m[41m [m
- $config['flood_time'] = 5;[m
- $config['flood_time_ip'] = 30;[m
- $config['flood_time_same'] = 2;[m
-[36m@@ -46,10 +46,10 @@[m
- $config['thread_subject_in_title'] = true;[m
- $config['spam']['hidden_inputs_max_pass'] = 128;[m
- $config['ayah_enabled'] = true;[m
-[31m-[m
-[32m+[m[41m [m
- // Load database credentials[m
- require "secrets.php";[m
-[31m-[m
-[32m+[m[41m [m
- // Image shit[m
- $config['thumb_method'] = 'gm+gifsicle';[m
- $config['thumb_ext'] = '';[m
-[1mdiff --git a/install.php b/install.php[m
-[1mindex 8b3815a..07e94e7 100644[m
-[1m--- a/install.php[m
-[1m+++ b/install.php[m
-[36m@@ -579,7 +579,8 @@[m [mif ($step == 0) {[m
-
';[m
- [m
- echo Element('page.html', $page);[m
-[31m-} elseif ($step == 1) {[m
-[32m+[m[32m}[m
-[32m+[m[32melseif ($step == 1) {[m
- $page['title'] = 'Pre-installation test';[m
- [m
- $can_exec = true;[m
-[36m@@ -761,7 +762,8 @@[m [mif ($step == 0) {[m
- 'title' => 'Checking environment',[m
- 'config' => $config[m
- ));[m
-[31m-} elseif ($step == 2) {[m
-[32m+[m[32m}[m
-[32m+[m[32melseif ($step == 2) {[m
- // Basic config[m
- $page['title'] = 'Configuration';[m
- [m
-[36m@@ -775,7 +777,8 @@[m [mif ($step == 0) {[m
- 'title' => 'Configuration',[m
- 'config' => $config[m
- ));[m
-[31m-} elseif ($step == 3) {[m
-[32m+[m[32m}[m
-[32m+[m[32melseif ($step == 3) {[m
- $instance_config = [m
- 'I couldn\'t write to Thank you for using vichan. Please remember to report any bugs you discover.
';[m
- [m
-[1mdiff --git a/templates/8chan/index.html b/templates/8chan/index.html[m
-[1mindex 459e7e8..4f25473 100644[m
-[1m--- a/templates/8chan/index.html[m
-[1m+++ b/templates/8chan/index.html[m
-[36m@@ -223,7 +223,7 @@[m
- [m
- [m
- [m
-[31m- [m
-[32m+[m[32m [m
- [m
- [m
- [m
-[1mdiff --git a/templates/generic_page.html b/templates/generic_page.html[m
-[1mindex 0fe1f9c..4cd3116 100644[m
-[1m--- a/templates/generic_page.html[m
-[1m+++ b/templates/generic_page.html[m
-[36m@@ -6,7 +6,7 @@[m
-
{{ board.url }} - {{ board.name }} [m
- {% endblock %}[m
- [m
-[31m- [m
-[32m+[m[32m[m
- {{ boardlist.top }}[m
- {% if pm %}
You have
an unread PM {% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.
{% endif %}[m
- {% if config.url_banner %}
{% endif %}[m
-[1mdiff --git a/templates/index.html b/templates/index.html[m
-[1mindex aae87c1..5638fd6 100644[m
-[1m--- a/templates/index.html[m
-[1m+++ b/templates/index.html[m
-[36m@@ -14,7 +14,7 @@[m
- {% include 'header.html' %}[m
-
{{ board.url }} - {{ board.title|e }} [m
- [m
-[31m- [m
-[32m+[m[32m[m
- {{ boardlist.top }}[m
- [m
- {% if pm %}
You have
an unread PM {% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.
{% endif %}[m
-[1mdiff --git a/templates/main.js b/templates/main.js[m
-[1mindex 1ec4d26..d100f93 100644[m
-[1m--- a/templates/main.js[m
-[1m+++ b/templates/main.js[m
-[36m@@ -73,11 +73,6 @@[m [mvar saved = {};[m
- [m
- [m
- var selectedstyle = '{% endraw %}{{ config.default_stylesheet.0|addslashes }}{% raw %}';[m
-[31m-/*var styles = {[m
-[31m- {% endraw %}[m
-[31m- {% for stylesheet in stylesheets %}{% raw %}'{% endraw %}{{ stylesheet.name|addslashes }}{% raw %}' : '{% endraw %}{{ stylesheet.uri|addslashes }}{% raw %}',[m
-[31m- {% endraw %}{% endfor %}{% raw %}[m
-[31m-};*/[m
- var board_name = false;[m
- [m
- function changeStyle(styleName, link) {[m
-[36m@@ -92,36 +87,78 @@[m [mfunction changeStyle(styleName, link) {[m
- {% endif %}[m
- {% raw %}[m
- [m
-[31m- if (!document.getElementById('stylesheet')) {[m
-[31m- var s = document.createElement('link');[m
-[31m- s.rel = 'stylesheet';[m
-[31m- s.type = 'text/css';[m
-[31m- s.id = 'stylesheet';[m
-[32m+[m [32m// Find the
for the stylesheet. May be nothing.[m
-[32m+[m [32mvar domStylesheet = document.getElementById('stylesheet');[m
-[32m+[m [32m// Determine if this stylesheet is the default.[m
-[32m+[m [32mvar setToDefault = ( styles[styleName] == "" || styles[styleName] == "/stylesheets/" );[m
-[32m+[m [32m// Turn "Yotsuba B" to "yotsuba_b"[m[41m [m
-[32m+[m [32mvar attributeName = styleName.replace(/[^a-z0-9_\-]/gi, '_').toLowerCase();[m
-[32m+[m[41m [m
-[32m+[m [32mif( !domStylesheet && !setToDefault ) {[m
-[32m+[m [32mdomStylesheet = document.createElement('link');[m
-[32m+[m [32mdomStylesheet.rel = 'stylesheet';[m
-[32m+[m [32mdomStylesheet.type = 'text/css';[m
-[32m+[m [32mdomStylesheet.id = 'stylesheet';[m
-[32m+[m[41m [m
- var x = document.getElementsByTagName('head')[0];[m
-[31m- x.appendChild(s);[m
-[32m+[m [32mx.appendChild(domStylesheet);[m
- }[m
-[31m-[m
-[31m- {% endraw %}[m
-[31m- var root = "{{ config.root }}";[m
-[31m- {% raw %}[m
-[31m- root = root.replace(/\/$/, "");[m
-[31m- [m
-[31m- document.getElementById('stylesheet').href = root + styles[styleName];[m
-[31m- selectedstyle = styleName;[m
- [m
-[31m- if (document.getElementsByClassName('styles').length != 0) {[m
-[31m- var styleLinks = document.getElementsByClassName('styles')[0].childNodes;[m
-[31m- for (var i = 0; i < styleLinks.length; i++) {[m
-[31m- styleLinks[i].className = '';[m
-[32m+[m [32mif( !setToDefault ) {[m
-[32m+[m [32m{% endraw %}[m
-[32m+[m [32mvar root = "{{ config.root }}";[m
-[32m+[m [32m{% raw %}[m
-[32m+[m [32mroot = root.replace(/\/$/, "");[m
-[32m+[m[41m [m
-[32m+[m [32mdomStylesheet.href = root + styles[styleName];[m
-[32m+[m [32mselectedstyle = styleName;[m
-[32m+[m[41m [m
-[32m+[m [32mif (document.getElementsByClassName('styles').length != 0) {[m
-[32m+[m [32mvar styleLinks = document.getElementsByClassName('styles')[0].childNodes;[m
-[32m+[m [32mfor (var i = 0; i < styleLinks.length; i++) {[m
-[32m+[m [32mstyleLinks[i].className = '';[m
-[32m+[m [32m}[m
- }[m
-[32m+[m[41m [m
-[32m+[m [32mif (link) {[m
-[32m+[m [32mlink.className = 'selected';[m
-[32m+[m [32m}[m
-[32m+[m [32m}[m
-[32m+[m [32melse if( domStylesheet ) {[m
-[32m+[m [32mdomStylesheet.parentNode.removeChild( domStylesheet );[m
- }[m
- [m
-[31m- if (link) {[m
-[31m- link.className = 'selected';[m
-[32m+[m [32m// Fix the classes on the body tag.[m
-[32m+[m [32mvar body = document.getElementsByTagName('body')[0];[m
-[32m+[m[41m [m
-[32m+[m [32mif( body ) {[m
-[32m+[m [32mvar bodyClasses = document.getElementsByTagName('body')[0].getAttribute('class').split(" ");[m
-[32m+[m [32mvar bodyClassesNew = [];[m
-[32m+[m[41m [m
-[32m+[m [32mfor( i = 0; i < bodyClasses.length; ++i ) {[m
-[32m+[m [32mvar bodyClass = bodyClasses[ i ];[m
-[32m+[m[41m [m
-[32m+[m [32m// null class from a double-space.[m
-[32m+[m [32mif( bodyClass == "" ) {[m
-[32m+[m [32mcontinue;[m
-[32m+[m [32m}[m
-[32m+[m[41m [m
-[32m+[m [32mif( bodyClass.indexOf( "stylesheet-" ) == 0 ) {[m
-[32m+[m [32mcontinue;[m
-[32m+[m [32m}[m
-[32m+[m[41m [m
-[32m+[m [32mbodyClassesNew.push( bodyClass );[m
-[32m+[m [32m}[m
-[32m+[m[41m [m
-[32m+[m [32m// Add stylesheet-yotsuba_b at the end.[m
-[32m+[m [32mbodyClassesNew.push( "stylesheet-" + attributeName );[m
-[32m+[m [32mbody.setAttribute( 'class', bodyClassesNew.join(" ") );[m
-[32m+[m [32mbody.setAttribute( 'data-stylesheet', attributeName );[m
- }[m
- [m
-[31m- if (typeof $ != 'undefined')[m
-[32m+[m [32mif (typeof $ != 'undefined') {[m
- $(window).trigger('stylesheet', styleName);[m
-[32m+[m [32m}[m
- }[m
- [m
- [m
-[36m@@ -167,7 +204,7 @@[m [mfunction init_stylechooser() {[m
- }[m
- }[m
- }[m
-[31m- {% endraw%}[m
-[32m+[m [32m{% endraw %}[m
- {% else %}[m
- {% raw %}[m
- if (localStorage.stylesheet) {[m
-[36m@@ -185,10 +222,13 @@[m [mfunction init_stylechooser() {[m
- [m
- function get_cookie(cookie_name) {[m
- var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)');[m
-[31m- if (results)[m
-[32m+[m[41m [m
-[32m+[m [32mif (results) {[m
- return (unescape(results[2]));[m
-[31m- else[m
-[32m+[m [32m}[m
-[32m+[m [32melse {[m
- return null;[m
-[32m+[m [32m}[m
- }[m
- [m
- function highlightReply(id) {[m
-[1mdiff --git a/templates/mod/dashboard.html b/templates/mod/dashboard.html[m
-[1mindex 4f76625..87e67c8 100644[m
-[1m--- a/templates/mod/dashboard.html[m
-[1m+++ b/templates/mod/dashboard.html[m
-[36m@@ -1,40 +1,5 @@[m
-[31m-[m
-[31m- {% trans 'Boards' %} [m
-[31m- [m
-[31m- [m
-[31m- {% for board in boards %}[m
-[31m- {% if board.uri in mod.boards or mod.boards[0] == '*' %}[m
-[31m- [m
-[31m- {{ config.board_abbreviation|sprintf(board.uri) }} [m
-[31m- - [m
-[31m- {{ board.title|e }}[m
-[31m- {% if board.subtitle %}[m
-[31m- — [m
-[31m- {% if config.allow_subtitle_html %}[m
-[31m- {{ board.subtitle }}[m
-[31m- {% else %}[m
-[31m- {{ board.subtitle|e }}[m
-[31m- {% endif %}[m
-[31m- [m
-[31m-[m
-[31m- {% endif %}[m
-[31m- {% if mod.type == "20" %}[m
-[31m- [{% trans 'settings' %}] [m
-[31m- {% endif %}[m
-[31m- {% if mod|hasPermission(config.mod.manageboards) %}[m
-[31m- [{% trans 'edit' %}] [m
-[31m- {% endif %}[m
-[31m- [m
-[31m- {% endif %}[m
-[31m- {% endfor %}[m
-[31m- [m
-[31m- {% if mod|hasPermission(config.mod.newboard) %}[m
-[31m- {% trans 'Create new board' %} [m
-[31m- {% endif %}[m
-[31m- [m
-[31m- [m
-[31m-[m
-[31m-[m
-[32m+[m[32m[m
-[32m+[m[32m[m
- {% trans 'Messages' %} [m
- [m
- {% if mod|hasPermission(config.mod.noticeboard) %}[m
-[36m@@ -78,7 +43,8 @@[m
- [m
- [m
- [m
-[31m-[m
-[32m+[m[32m[m
-[32m+[m[32m[m
- {% trans 'Administration' %} [m
- [m
- [m
-[36m@@ -123,57 +89,99 @@[m
- [m
- [m
- [m
-[32m+[m[32m[m
- {% if mod|hasPermission(config.mod.search) %}[m
-[31m- [m
-[31m- {% trans 'Search' %} [m
-[31m- [m
-[31m- [m
-[32m+[m[32m[m
-[32m+[m [32m{% trans 'Search' %} [m
-[32m+[m[41m [m
-[32m+[m [32m[m
-[32m+[m [32m[m
-[32m+[m [32m{% include 'mod/search_form.html' %}[m
-[32m+[m [32m [m
-[32m+[m [32m [m
-[32m+[m[32m [m
-[32m+[m[32m{% endif %}[m
-[32m+[m
-[32m+[m[32m[m
-[32m+[m[32m[m
-[32m+[m [32m{% trans 'Boards' %} [m
-[32m+[m[41m [m
-[32m+[m [32m[m
-[32m+[m [32m{% for board in boards %}[m
-[32m+[m [32m{% if board.uri in mod.boards or mod.boards[0] == '*' %}[m
- [m
-[31m- {% include 'mod/search_form.html' %}[m
-[32m+[m [32m{{ config.board_abbreviation|sprintf(board.uri) }} [m
-[32m+[m [32m -[m[41m [m
-[32m+[m [32m{{ board.title|e }}[m
-[32m+[m [32m{% if board.subtitle %}[m
-[32m+[m [32m—[m[41m [m
-[32m+[m [32m{% if config.allow_subtitle_html %}[m
-[32m+[m [32m{{ board.subtitle }}[m
-[32m+[m [32m{% else %}[m
-[32m+[m [32m{{ board.subtitle|e }}[m
-[32m+[m [32m{% endif %}[m
-[32m+[m [32m [m
-[32m+[m
-[32m+[m [32m{% endif %}[m
-[32m+[m [32m{% if mod.type == "20" %}[m
-[32m+[m [32m[{% trans 'settings' %}] [m
-[32m+[m [32m{% endif %}[m
-[32m+[m [32m{% if mod|hasPermission(config.mod.manageboards) %}[m
-[32m+[m [32m [{% trans 'edit' %}] [m
-[32m+[m [32m{% endif %}[m
- [m
-[31m- [m
-[31m- [m
-[31m-{% endif %}[m
-[32m+[m [32m{% endif %}[m
-[32m+[m [32m{% endfor %}[m
-[32m+[m[41m [m
-[32m+[m [32m{% if mod|hasPermission(config.mod.newboard) %}[m
-[32m+[m [32m{% trans 'Create new board' %} [m
-[32m+[m [32m{% endif %}[m
-[32m+[m [32m [m
-[32m+[m[32m [m
- [m
-[32m+[m[32m[m
- {% if config.mod.dashboard_links|count %}[m
-[31m- [m
-[31m- {% trans 'Other' %} [m
-[31m- [m
-[31m- [m
-[31m- {% for label,link in config.mod.dashboard_links %}[m
-[31m- {{ label }} [m
-[31m- {% endfor %}[m
-[31m- [m
-[31m- [m
-[32m+[m[32m[m
-[32m+[m [32m{% trans 'Other' %} [m
-[32m+[m
-[32m+[m [32m[m
-[32m+[m [32m{% for label,link in config.mod.dashboard_links %}[m
-[32m+[m [32m{{ label }} [m
-[32m+[m [32m{% endfor %}[m
-[32m+[m [32m [m
-[32m+[m[32m [m
- {% endif %}[m
- [m
-[32m+[m[32m[m
- {% if config.debug %}[m
-[31m- [m
-[31m- {% trans 'Debug' %} [m
-[31m- [m
-[31m- [m
-[32m+[m[32m[m
-[32m+[m [32m{% trans 'Debug' %} [m
-[32m+[m [32m[m
-[32m+[m[32m [m
- {% endif %}[m
- [m
-[32m+[m[32m[m
- {% if newer_release %}[m
-[31m- [m
-[31m- Update [m
-[31m- [m
-[31m- [m
-[31m- A newer version of Tinyboard [m
-[31m- (v{{ newer_release.massive }}.{{ newer_release.major }}.{{ newer_release.minor }} ) is available! [m
-[31m- See http://tinyboard.org/ for upgrade instructions.[m
-[31m- [m
-[31m- [m
-[31m- [m
-[32m+[m[32m[m
-[32m+[m [32mUpdate [m
-[32m+[m [32m[m
-[32m+[m [32m[m
-[32m+[m [32mA newer version of Tinyboard[m[41m [m
-[32m+[m [32m(v{{ newer_release.massive }}.{{ newer_release.major }}.{{ newer_release.minor }} ) is available![m[41m [m
-[32m+[m [32mSee http://tinyboard.org/ for upgrade instructions.[m
-[32m+[m [32m [m
-[32m+[m [32m [m
-[32m+[m[32m [m
- {% endif %}[m
- [m
-[31m-[m
-[32m+[m[32m[m
-[32m+[m[32m[m
- {% trans 'User account' %} [m
- [m
-