2017-01-17 07:55:46 +00:00
package main
2017-09-03 04:50:31 +00:00
// nolint
var header_0 = [ ] byte ( ` < ! doctype html >
2017-01-17 07:55:46 +00:00
< html lang = "en" >
< head >
< title > ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_1 = [ ] byte ( ` | ` )
var header_2 = [ ] byte ( ` < / title >
2017-09-03 04:50:31 +00:00
< link href = " / static / ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_3 = [ ] byte ( ` / main . css " rel=" stylesheet " type=" text / css " >
2017-06-16 10:41:30 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_4 = [ ] byte ( `
2017-06-16 10:41:30 +00:00
< link href = " / static / ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_5 = [ ] byte ( ` " rel=" stylesheet " type=" text / css " >
2017-06-16 10:41:30 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_6 = [ ] byte ( `
2017-02-16 06:47:55 +00:00
< script type = "text/javascript" src = "/static/jquery-3.1.1.min.js" > < / script >
2017-06-16 10:41:30 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_7 = [ ] byte ( `
2017-06-16 10:41:30 +00:00
< script type = "text/javascript" src = " / static / ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_8 = [ ] byte ( ` " > < / script >
2017-06-16 10:41:30 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_9 = [ ] byte ( `
< script type = "text/javascript" >
var session = " ` )
var header_10 = [ ] byte ( ` " ;
var siteURL = " ` )
var header_11 = [ ] byte ( ` " ;
< / script >
2017-01-17 07:55:46 +00:00
< script type = "text/javascript" src = "/static/global.js" > < / script >
< meta name = "viewport" content = "width=device-width,initial-scale = 1.0, maximum-scale=1.0,user-scalable=no" / >
< / head >
< body >
2017-08-18 12:16:56 +00:00
< style > ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_12 = [ ] byte ( ` .supermod_only { display: none !important; } ` )
var header_13 = [ ] byte ( ` < / style >
2017-01-17 07:55:46 +00:00
< div class = "container" >
` )
2017-09-03 04:50:31 +00:00
var menu_0 = [ ] byte ( ` < nav class = "nav" >
2017-01-17 07:55:46 +00:00
< div class = "move_left" >
< div class = "move_right" >
2017-09-03 04:50:31 +00:00
< ul > ` )
var menu_1 = [ ] byte ( `
2017-08-27 09:33:45 +00:00
< li class = "menu_left menu_overview" > < a href = "/" rel = "home" > ` )
2017-09-03 04:50:31 +00:00
var menu_2 = [ ] byte ( ` < / a > < / li >
2017-01-17 07:55:46 +00:00
< li class = "menu_left menu_forums" > < a href = "/forums/" > Forums < / a > < / li >
< li class = "menu_left menu_topics" > < a href = "/" > Topics < / a > < / li >
2017-07-29 10:36:39 +00:00
< li id = "general_alerts" class = "menu_right menu_alerts" >
< div class = "alert_bell" > < / div >
< div class = "alert_counter" > < / div >
< div class = "alert_aftercounter" > < / div >
< div class = "alertList" > < / div >
< / li >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var menu_3 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< li class = "menu_left menu_account" > < a href = "/user/edit/critical/" > Account < / a > < / li >
2017-07-29 14:04:20 +00:00
< li class = "menu_left menu_profile" > < a href = " ` )
2017-10-30 09:57:08 +00:00
var menu_4 = [ ] byte ( ` " > Profile < / a > < / li >
2017-10-12 03:24:14 +00:00
< li class = "menu_left menu_panel menu_account supermod_only" > < a href = "/panel/" > Panel < / a > < / li >
2017-06-07 10:07:40 +00:00
< li class = "menu_left menu_logout" > < a href = " / accounts / logout / ? session = ` )
2017-10-30 09:57:08 +00:00
var menu_5 = [ ] byte ( ` " > Logout < / a > < / li >
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var menu_6 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< li class = "menu_left menu_register" > < a href = "/accounts/create/" > Register < / a > < / li >
< li class = "menu_left menu_login" > < a href = "/accounts/login/" > Login < / a > < / li >
` )
2017-10-30 09:57:08 +00:00
var menu_7 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / ul >
< / div >
< / div >
< div style = "clear: both;" > < / div >
2017-08-20 09:39:02 +00:00
< / nav >
2017-06-05 11:57:27 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_14 = [ ] byte ( `
2017-06-19 08:06:54 +00:00
< div id = "back" > < div id = "main" ` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_15 = [ ] byte ( ` class="shrink_main" ` )
var header_16 = [ ] byte ( ` >
2017-02-16 06:47:55 +00:00
` )
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
var header_17 = [ ] byte ( ` <div class="alert"> ` )
var header_18 = [ ] byte ( ` </div> ` )
2017-09-03 04:50:31 +00:00
var topic_0 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< form id = "edit_topic_form" action = ' / topic / edit / submit / ` )
2017-09-03 04:50:31 +00:00
var topic_1 = [ ] byte ( ` ' method = "post" > < / form >
2017-07-29 10:36:39 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_2 = [ ] byte ( ` <link rel="prev" href="/topic/ ` )
2017-09-03 04:50:31 +00:00
var topic_3 = [ ] byte ( ` ?page= ` )
2017-10-30 09:57:08 +00:00
var topic_4 = [ ] byte ( ` " / >
< div id = "prevFloat" class = "prev_button" > < a class = "prev_link" aria - label = "Go to the previous page" rel = "prev" href = " / topic / ` )
var topic_5 = [ ] byte ( ` ?page= ` )
var topic_6 = [ ] byte ( ` "><</a></div> ` )
var topic_7 = [ ] byte ( ` <link rel="prerender next" href="/topic/ ` )
var topic_8 = [ ] byte ( ` ?page= ` )
var topic_9 = [ ] byte ( ` " / >
2017-05-29 14:52:37 +00:00
< div id = "nextFloat" class = "next_button" >
2017-08-27 09:33:45 +00:00
< a class = "next_link" aria - label = "Go to the next page" rel = "next" href = " / topic / ` )
2017-10-30 09:57:08 +00:00
var topic_10 = [ ] byte ( ` ?page= ` )
var topic_11 = [ ] byte ( ` " > & gt ; < / a >
2017-05-29 14:52:37 +00:00
< / div > ` )
2017-10-30 09:57:08 +00:00
var topic_12 = [ ] byte ( `
2017-05-29 14:52:37 +00:00
2017-08-20 09:39:02 +00:00
< main >
2017-10-30 09:57:08 +00:00
< div class = "rowblock rowhead topic_block" aria - label = "The opening post of this topic" >
2017-07-29 10:36:39 +00:00
< div class = " rowitem topic_item ` )
2017-10-30 09:57:08 +00:00
var topic_13 = [ ] byte ( ` topic_sticky_head ` )
var topic_14 = [ ] byte ( ` topic_closed_head ` )
var topic_15 = [ ] byte ( ` " >
2017-08-27 09:33:45 +00:00
< h1 class = ' topic_name hide_on_edit ' > ` )
2017-10-30 09:57:08 +00:00
var topic_16 = [ ] byte ( ` < / h1 >
2017-07-29 10:36:39 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_17 = [ ] byte ( ` <span class='username hide_on_micro topic_status_e topic_status_closed hide_on_edit' title='Status: Closed'>🔒︎</span> ` )
var topic_18 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< input form = ' edit_topic_form ' class = ' show_on_edit topic_name_input ' name = "topic_name" value = ' ` )
2017-10-30 09:57:08 +00:00
var topic_19 = [ ] byte ( ` ' type = "text" / >
2017-07-29 10:36:39 +00:00
< button form = ' edit_topic_form ' name = "topic-button" class = "formbutton show_on_edit submit_edit" > Update < / button >
` )
2017-10-30 09:57:08 +00:00
var topic_20 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< / div >
2017-01-17 07:55:46 +00:00
< / div >
2017-07-29 10:36:39 +00:00
2017-10-30 09:57:08 +00:00
< article itemscope itemtype = "http://schema.org/CreativeWork" class = "rowblock post_container top_post" aria - label = "The opening post for this topic" >
2017-07-17 10:23:42 +00:00
< div class = " rowitem passive editable_parent post_item ` )
2017-10-30 09:57:08 +00:00
var topic_21 = [ ] byte ( ` " style=" ` )
var topic_22 = [ ] byte ( ` background-image: url( ` )
var topic_23 = [ ] byte ( ` ), url(/static/ ` )
var topic_24 = [ ] byte ( ` /post-avatar-bg.jpg);background-position: 0px ` )
var topic_25 = [ ] byte ( ` -1 ` )
var topic_26 = [ ] byte ( ` 0px;background-repeat:no-repeat, repeat-y; ` )
var topic_27 = [ ] byte ( ` " >
< p class = "hide_on_edit topic_content user_content" itemprop = "text" style = "margin:0;padding:0;" > ` )
var topic_28 = [ ] byte ( ` < / p >
2017-01-17 07:55:46 +00:00
< textarea name = "topic_content" class = "show_on_edit topic_content_input" > ` )
2017-10-30 09:57:08 +00:00
var topic_29 = [ ] byte ( ` < / textarea >
2017-06-28 12:05:26 +00:00
2017-05-29 14:52:37 +00:00
< span class = "controls" >
2017-06-28 12:05:26 +00:00
2017-07-29 14:04:20 +00:00
< a href = " ` )
2017-10-30 09:57:08 +00:00
var topic_30 = [ ] byte ( ` " class="username real_username" rel="author"> ` )
var topic_31 = [ ] byte ( ` < / a > & nbsp ; & nbsp ;
2017-02-10 13:39:13 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_32 = [ ] byte ( ` <a href="/topic/like/submit/ ` )
var topic_33 = [ ] byte ( ` " class=" mod_button " title=" Love it " style=" color : # 202020 ; " >
2017-09-23 19:57:13 +00:00
< button class = "username like_label" ` )
2017-10-30 09:57:08 +00:00
var topic_34 = [ ] byte ( ` style="background-color:#D6FFD6;" ` )
var topic_35 = [ ] byte ( ` ></button></a> ` )
var topic_36 = [ ] byte ( ` <a href='/topic/edit/ ` )
var topic_37 = [ ] byte ( ` ' class="mod_button open_edit" style="font-weight:normal;" title="Edit Topic"><button class="username edit_label"></button></a> ` )
var topic_38 = [ ] byte ( ` <a href='/topic/delete/submit/ ` )
var topic_39 = [ ] byte ( ` ' class="mod_button" style="font-weight:normal;" title="Delete Topic"><button class="username trash_label"></button></a> ` )
var topic_40 = [ ] byte ( ` <a class="mod_button" href='/topic/unlock/submit/ ` )
var topic_41 = [ ] byte ( ` ' style="font-weight:normal;" title="Unlock Topic"><button class="username unlock_label"></button></a> ` )
var topic_42 = [ ] byte ( ` <a href='/topic/lock/submit/ ` )
var topic_43 = [ ] byte ( ` ' class="mod_button" style="font-weight:normal;" title="Lock Topic"><button class="username lock_label"></button></a> ` )
var topic_44 = [ ] byte ( ` <a class="mod_button" href='/topic/unstick/submit/ ` )
var topic_45 = [ ] byte ( ` ' style="font-weight:normal;" title="Unpin Topic"><button class="username unpin_label"></button></a> ` )
var topic_46 = [ ] byte ( ` <a href='/topic/stick/submit/ ` )
var topic_47 = [ ] byte ( ` ' class="mod_button" style="font-weight:normal;" title="Pin Topic"><button class="username pin_label"></button></a> ` )
var topic_48 = [ ] byte ( ` <a class="mod_button" href='/users/ips/?ip= ` )
var topic_49 = [ ] byte ( ` ' style="font-weight:normal;" title="View IP"><button class="username ip_label"></button></a> ` )
var topic_50 = [ ] byte ( `
2017-08-17 11:13:49 +00:00
< a href = " / report / submit / ` )
2017-10-30 09:57:08 +00:00
var topic_51 = [ ] byte ( ` ?session= ` )
var topic_52 = [ ] byte ( ` & type = topic " class=" mod_button report_item " style=" font - weight : normal ; " title=" Flag Topic "><button class=" username flag_label " > < / button > < / a >
2017-06-28 12:05:26 +00:00
2017-02-10 13:39:13 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_53 = [ ] byte ( ` <a class="username hide_on_micro like_count"> ` )
var topic_54 = [ ] byte ( ` </a><a class="username hide_on_micro like_count_label" title="Like Count"></a> ` )
var topic_55 = [ ] byte ( ` <a class="username hide_on_micro user_tag"> ` )
var topic_56 = [ ] byte ( ` </a> ` )
var topic_57 = [ ] byte ( ` <a class="username hide_on_micro level"> ` )
var topic_58 = [ ] byte ( ` </a><a class="username hide_on_micro level_label" style="float:right;" title="Level"></a> ` )
var topic_59 = [ ] byte ( `
2017-06-28 12:05:26 +00:00
2017-05-29 14:52:37 +00:00
< / span >
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
< / article >
2017-10-30 09:57:08 +00:00
< div class = "rowblock post_container" aria - label = "The current page for this topic" style = "overflow: hidden;" > ` )
var topic_60 = [ ] byte ( `
< article itemscope itemtype = "http://schema.org/CreativeWork" class = "rowitem passive deletable_block editable_parent post_item action_item" >
2017-04-02 13:00:40 +00:00
< span class = "action_icon" style = "font-size: 18px;padding-right: 5px;" > ` )
2017-10-30 09:57:08 +00:00
var topic_61 = [ ] byte ( ` < / span >
< span itemprop = "text" > ` )
var topic_62 = [ ] byte ( ` < / span >
2017-08-20 09:39:02 +00:00
< / article >
2017-04-02 13:00:40 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_63 = [ ] byte ( `
< article itemscope itemtype = "http://schema.org/CreativeWork" class = " rowitem passive deletable_block editable_parent post_item ` )
var topic_64 = [ ] byte ( ` " style=" ` )
var topic_65 = [ ] byte ( ` background-image: url( ` )
var topic_66 = [ ] byte ( ` ), url(/static/ ` )
var topic_67 = [ ] byte ( ` /post-avatar-bg.jpg);background-position: 0px ` )
var topic_68 = [ ] byte ( ` -1 ` )
var topic_69 = [ ] byte ( ` 0px;background-repeat:no-repeat, repeat-y; ` )
var topic_70 = [ ] byte ( ` " >
2017-09-28 22:16:34 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_71 = [ ] byte ( `
< p class = "editable_block user_content" itemprop = "text" style = "margin:0;padding:0;" > ` )
var topic_72 = [ ] byte ( ` < / p >
2017-06-28 12:05:26 +00:00
2017-05-29 14:52:37 +00:00
< span class = "controls" >
2017-06-28 12:05:26 +00:00
2017-07-29 14:04:20 +00:00
< a href = " ` )
2017-10-30 09:57:08 +00:00
var topic_73 = [ ] byte ( ` " class="username real_username" rel="author"> ` )
var topic_74 = [ ] byte ( ` < / a > & nbsp ; & nbsp ;
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_75 = [ ] byte ( ` <a href="/reply/like/submit/ ` )
var topic_76 = [ ] byte ( ` " class="mod_button" title="Love it" style="color:#202020;"><button class="username like_label" ` )
var topic_77 = [ ] byte ( ` style="background-color:#D6FFD6;" ` )
var topic_78 = [ ] byte ( ` ></button></a> ` )
var topic_79 = [ ] byte ( ` <a href="/reply/edit/submit/ ` )
var topic_80 = [ ] byte ( ` " class="mod_button" title="Edit Reply"><button class="username edit_item edit_label"></button></a> ` )
var topic_81 = [ ] byte ( ` <a href="/reply/delete/submit/ ` )
var topic_82 = [ ] byte ( ` " class="mod_button" title="Delete Reply"><button class="username delete_item trash_label"></button></a> ` )
var topic_83 = [ ] byte ( ` <a class="mod_button" href='/users/ips/?ip= ` )
var topic_84 = [ ] byte ( ` ' style="font-weight:normal;" title="View IP"><button class="username ip_label"></button></a> ` )
var topic_85 = [ ] byte ( `
2017-08-17 11:13:49 +00:00
< a href = " / report / submit / ` )
2017-10-30 09:57:08 +00:00
var topic_86 = [ ] byte ( ` ?session= ` )
var topic_87 = [ ] byte ( ` & type = reply " class=" mod_button report_item " title=" Flag Reply "><button class=" username report_item flag_label " > < / button > < / a >
2017-06-28 12:05:26 +00:00
2017-02-10 13:39:13 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_88 = [ ] byte ( ` <a class="username hide_on_micro like_count"> ` )
var topic_89 = [ ] byte ( ` </a><a class="username hide_on_micro like_count_label" title="Like Count"></a> ` )
var topic_90 = [ ] byte ( ` <a class="username hide_on_micro user_tag"> ` )
var topic_91 = [ ] byte ( ` </a> ` )
var topic_92 = [ ] byte ( ` <a class="username hide_on_micro level"> ` )
var topic_93 = [ ] byte ( ` </a><a class="username hide_on_micro level_label" style="float:right;" title="Level"></a> ` )
var topic_94 = [ ] byte ( `
2017-06-28 12:05:26 +00:00
2017-05-29 14:52:37 +00:00
< / span >
2017-08-20 09:39:02 +00:00
< / article >
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_95 = [ ] byte ( ` < / div >
2017-05-13 14:27:42 +00:00
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_96 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< div class = "rowblock topic_reply_form quick_create_form" >
< form id = "reply_form" enctype = "multipart/form-data" action = "/reply/create/" method = "post" > < / form >
< input form = "reply_form" name = "tid" value = ' ` )
2017-10-30 09:57:08 +00:00
var topic_97 = [ ] byte ( ` ' type = "hidden" / >
2017-10-12 03:24:14 +00:00
< div class = "formrow real_first_child" >
< div class = "formitem" >
< textarea id = "input_content" form = "reply_form" name = "reply-content" placeholder = "Insert reply here" required > < / textarea >
2017-01-17 07:55:46 +00:00
< / div >
2017-10-12 03:24:14 +00:00
< / div >
< div class = "formrow quick_button_row" >
< div class = "formitem" >
< button form = "reply_form" name = "reply-button" class = "formbutton" > Create Reply < / button >
` )
2017-10-30 09:57:08 +00:00
var topic_98 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< input name = "upload_files" form = "reply_form" id = "upload_files" multiple type = "file" style = "display: none;" / >
< label for = "upload_files" class = "formbutton add_file_button" > Add File < / label >
< div id = "upload_file_dock" > < / div > ` )
2017-10-30 09:57:08 +00:00
var topic_99 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-10-12 03:24:14 +00:00
< / div >
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_100 = [ ] byte ( `
2017-08-20 09:39:02 +00:00
< / main >
2017-01-17 07:55:46 +00:00
` )
2017-09-10 16:57:22 +00:00
var footer_0 = [ ] byte ( ` < div class = "footer" >
2017-09-13 15:09:13 +00:00
< div id = "poweredBy" > Powered by Gosora - < span > Made with love by Azareal < / span > < / div >
2017-09-10 16:57:22 +00:00
< form action = "/theme/" method = "post" >
< div id = "themeSelector" style = "float: right;" >
< select id = "themeSelectorSelect" name = "themeSelector" aria - label = "Change the site's appearance" >
2017-06-19 08:06:54 +00:00
` )
2017-09-10 16:57:22 +00:00
var footer_1 = [ ] byte ( ` <option val=" ` )
var footer_2 = [ ] byte ( ` " ` )
var footer_3 = [ ] byte ( ` selected ` )
var footer_4 = [ ] byte ( ` > ` )
var footer_5 = [ ] byte ( ` </option> ` )
var footer_6 = [ ] byte ( `
< / select >
< / div >
< / form >
< / div >
< / div >
` )
var footer_7 = [ ] byte ( ` <aside class="sidebar"> ` )
var footer_8 = [ ] byte ( ` </aside> ` )
var footer_9 = [ ] byte ( `
2017-06-19 08:06:54 +00:00
< div style = "clear: both;" > < / div >
< / div >
< / div >
2017-01-17 07:55:46 +00:00
< / body >
2017-05-29 14:52:37 +00:00
< / html >
` )
2017-10-30 09:57:08 +00:00
var topic_alt_0 = [ ] byte ( ` <link rel="prev" href="/topic/ ` )
2017-09-03 04:50:31 +00:00
var topic_alt_1 = [ ] byte ( ` ?page= ` )
2017-10-30 09:57:08 +00:00
var topic_alt_2 = [ ] byte ( ` " / >
< div id = "prevFloat" class = "prev_button" > < a class = "prev_link" aria - label = "Go to the previous page" rel = "prev" href = " / topic / ` )
var topic_alt_3 = [ ] byte ( ` ?page= ` )
var topic_alt_4 = [ ] byte ( ` "><</a></div> ` )
var topic_alt_5 = [ ] byte ( ` <link rel="prerender next" href="/topic/ ` )
2017-09-03 04:50:31 +00:00
var topic_alt_6 = [ ] byte ( ` ?page= ` )
2017-10-30 09:57:08 +00:00
var topic_alt_7 = [ ] byte ( ` " / >
< div id = "nextFloat" class = "next_button" > < a class = "next_link" aria - label = "Go to the next page" rel = "next" href = " / topic / ` )
var topic_alt_8 = [ ] byte ( ` ?page= ` )
var topic_alt_9 = [ ] byte ( ` ">></a></div> ` )
var topic_alt_10 = [ ] byte ( `
2017-05-13 14:27:42 +00:00
2017-08-20 09:39:02 +00:00
< main >
2017-10-30 09:57:08 +00:00
< div class = "rowblock rowhead topic_block" aria - label = "The opening post of this topic" >
2017-01-17 07:55:46 +00:00
< form action = ' / topic / edit / submit / ` )
2017-10-30 09:57:08 +00:00
var topic_alt_11 = [ ] byte ( ` ' method = "post" >
Added the Social Groups plugin. This is still under construction.
Made a few improvements to the ForumStore, including bringing it's API closer in line with the other datastores, adding stubs for future subforum functionality, and improving efficiency in a few places.
The auth interface now handles all the authentication stuff.
Renamed the debug config variable to debug_mode.
Added the PluginPerms API.
Internal Errors will now dump the stack trace in the console.
Added support for installable plugins.
Refactored the routing logic so that the router now handles the common PreRoute logic(exc. /static/)
Added the CreateTable method to the query generator. It might need some tweaking to better support other database systems.
Added the same CreateTable method to the query builder.
Began work on PostgreSQL support.
Added the string-string hook type
Added the pre_render hook type.
Added the ParentID and ParentType fields to forums.
Added the get_forum_url_prefix function.
Added a more generic build_slug function.
Added the get_topic_url_prefix function.
Added the override_perms and override_forum_perms functions for bulk setting and unsetting permissions.
Added more ExtData fields in a few structs and removed them on the Perms struct as the PluginPerms API supersedes them there.
Plugins can now see the router instance.
The plugin initialisation handlers can now throw errors.
Plugins are now initialised after all the forum's subsystems are.
Refactored the unit test logic. For instance, we now use the proper .Log method rather than fmt.Println in many cases.
Sorry, we'll have to break Github's generated file detection, as the build instructions aren't working, unless I put them at the top, and they're far, far more important than getting Github to recognise the generated code as generated code.
Fixed an issue with mysql.go's _init_database() overwriting the dbpassword variable. Not a huge issue, but it is a "gotcha" for those not expecting a ':' at the start.
Fixed an issue with forum creation where the forum permissions didn't get cached.
Fixed a bug in plugin_bbcode where negative numbers in rand would crash Gosora.
Made the outputs of plugin_markdown and plugin_bbcode more compliant with the tests.
Revamped the phrase system to make it easier for us to add language pack related features in the future.
Added the WidgetMenu widget type.
Revamped the theme again. I'm experimenting to see which approach I like most.
- Excuse the little W3C rage. Some things about CSS drive me crazy :p
Tests:
Added 22 bbcode_full_parse tests.
Added 19 bbcode_regex_parse tests.
Added 27 markdown_parse tests.
Added four UserStore tests. More to come when the test database functionality is added.
Added 18 name_to_slug tests.
Hooks:
Added the pre_render hook.
Added the pre_render_forum_list hook.
Added the pre_render_view_forum hook.
Added the pre_render_topic_list hook.
Added the pre_render_view_topic hook.
Added the pre_render_profile hook.
Added the pre_render_custom_page hook.
Added the pre_render_overview hook.
Added the pre_render_create_topic hook.
Added the pre_render_account_own_edit_critical hook.
Added the pre_render_account_own_edit_avatar hook.
Added the pre_render_account_own_edit_username hook.
Added the pre_render_account_own_edit_email hook.
Added the pre_render_login hook.
Added the pre_render_register hook.
Added the pre_render_ban hook.
Added the pre_render_panel_dashboard hook.
Added the pre_render_panel_forums hook.
Added the pre_render_panel_delete_forum hook.
Added the pre_render_panel_edit_forum hook.
Added the pre_render_panel_settings hook.
Added the pre_render_panel_setting hook.
Added the pre_render_panel_plugins hook.
Added the pre_render_panel_users hook.
Added the pre_render_panel_edit_user hook.
Added the pre_render_panel_groups hook.
Added the pre_render_panel_edit_group hook.
Added the pre_render_panel_edit_group_perms hook.
Added the pre_render_panel_themes hook.
Added the pre_render_panel_mod_log hook.
Added the pre_render_error hook.
Added the pre_render_security_error hook.
Added the create_group_preappend hook.
Added the intercept_build_widgets hook.
Added the simple_forum_check_pre_perms hook.
Added the forum_check_pre_perms hook.
2017-07-09 12:06:04 +00:00
< div class = " rowitem topic_item ` )
2017-10-30 09:57:08 +00:00
var topic_alt_12 = [ ] byte ( ` topic_sticky_head ` )
var topic_alt_13 = [ ] byte ( ` topic_closed_head ` )
var topic_alt_14 = [ ] byte ( ` " >
2017-08-27 09:33:45 +00:00
< h1 class = ' topic_name hide_on_edit ' > ` )
2017-10-30 09:57:08 +00:00
var topic_alt_15 = [ ] byte ( ` < / h1 >
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_alt_16 = [ ] byte ( ` <span class='username hide_on_micro topic_status_e topic_status_closed hide_on_edit' title='Status: Closed' style="font-weight:normal;float: right;position:relative;top:-5px;">🔒︎</span> ` )
var topic_alt_17 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< input class = ' show_on_edit topic_name_input ' name = "topic_name" value = ' ` )
2017-10-30 09:57:08 +00:00
var topic_alt_18 = [ ] byte ( ` ' type = "text" / >
2017-01-17 07:55:46 +00:00
< button name = "topic-button" class = "formbutton show_on_edit submit_edit" > Update < / button >
` )
2017-10-30 09:57:08 +00:00
var topic_alt_19 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
< / form >
< / div >
2017-05-13 14:27:42 +00:00
2017-09-13 15:09:13 +00:00
< div class = "rowblock post_container" >
2017-10-30 09:57:08 +00:00
< article itemscope itemtype = "http://schema.org/CreativeWork" class = "rowitem passive deletable_block editable_parent post_item top_post" aria - label = "The opening post for this topic" >
< div class = "userinfo" aria - label = "The information on the poster" >
2017-01-17 07:55:46 +00:00
< div class = "avatar_item" style = " background - image : url ( ` )
2017-10-30 09:57:08 +00:00
var topic_alt_20 = [ ] byte ( ` ) , url ( / static / white - dot . jpg ) ; background - position : 0 px - 10 px ; " > & nbsp ; < / div >
2017-07-29 14:04:20 +00:00
< a href = " ` )
2017-10-30 09:57:08 +00:00
var topic_alt_21 = [ ] byte ( ` " class="the_name" rel="author"> ` )
var topic_alt_22 = [ ] byte ( ` < / a >
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_alt_23 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag"> ` )
2017-09-03 04:50:31 +00:00
var topic_alt_24 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
2017-10-30 09:57:08 +00:00
var topic_alt_25 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag post_level">Level ` )
var topic_alt_26 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
var topic_alt_27 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
< div class = "content_container" >
2017-10-30 09:57:08 +00:00
< div class = "hide_on_edit topic_content user_content" itemprop = "text" > ` )
var topic_alt_28 = [ ] byte ( ` < / div >
2017-01-17 07:55:46 +00:00
< textarea name = "topic_content" class = "show_on_edit topic_content_input" > ` )
2017-10-30 09:57:08 +00:00
var topic_alt_29 = [ ] byte ( ` < / textarea >
2017-01-17 07:55:46 +00:00
< div class = "button_container" >
` )
2017-10-30 09:57:08 +00:00
var topic_alt_30 = [ ] byte ( ` <a href="/topic/like/submit/ ` )
2017-11-02 02:52:21 +00:00
var topic_alt_31 = [ ] byte ( ` " class="action_button like_item">+1</a> ` )
2017-10-30 09:57:08 +00:00
var topic_alt_32 = [ ] byte ( ` <a href="/topic/edit/ ` )
var topic_alt_33 = [ ] byte ( ` " class="action_button open_edit">Edit</a> ` )
var topic_alt_34 = [ ] byte ( ` <a href="/topic/delete/submit/ ` )
var topic_alt_35 = [ ] byte ( ` " class="action_button delete_item">Delete</a> ` )
var topic_alt_36 = [ ] byte ( ` <a href='/topic/unlock/submit/ ` )
var topic_alt_37 = [ ] byte ( ` ' class="action_button">Unlock</a> ` )
var topic_alt_38 = [ ] byte ( ` <a href='/topic/lock/submit/ ` )
var topic_alt_39 = [ ] byte ( ` ' class="action_button">Lock</a> ` )
var topic_alt_40 = [ ] byte ( ` <a href='/topic/unstick/submit/ ` )
var topic_alt_41 = [ ] byte ( ` ' class="action_button">Unpin</a> ` )
var topic_alt_42 = [ ] byte ( ` <a href='/topic/stick/submit/ ` )
var topic_alt_43 = [ ] byte ( ` ' class="action_button">Pin</a> ` )
var topic_alt_44 = [ ] byte ( `
2017-06-12 09:03:14 +00:00
< a href = " / report / submit / ` )
2017-10-30 09:57:08 +00:00
var topic_alt_45 = [ ] byte ( ` ?session= ` )
var topic_alt_46 = [ ] byte ( ` & type = topic " class=" action_button report_item " > Report < / a >
2017-09-18 17:03:52 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_47 = [ ] byte ( `
< div class = "action_button_right" >
` )
var topic_alt_48 = [ ] byte ( ` <a class="action_button like_count hide_on_micro"> ` )
var topic_alt_49 = [ ] byte ( ` </a> ` )
var topic_alt_50 = [ ] byte ( `
< a class = "action_button created_at hide_on_mobile" > ` )
var topic_alt_51 = [ ] byte ( ` < / a >
` )
var topic_alt_52 = [ ] byte ( ` <a href="#" title="IP Address" class="action_button ip_item hide_on_mobile"> ` )
var topic_alt_53 = [ ] byte ( ` </a> ` )
var topic_alt_54 = [ ] byte ( `
< / div >
2017-01-17 07:55:46 +00:00
< / div >
< / div > < div style = "clear:both;" > < / div >
2017-08-20 09:39:02 +00:00
< / article >
2017-10-30 09:57:08 +00:00
2017-01-17 07:55:46 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_55 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< article itemscope itemtype = "http://schema.org/CreativeWork" class = " rowitem passive deletable_block editable_parent post_item ` )
2017-11-02 02:52:21 +00:00
var topic_alt_56 = [ ] byte ( ` action_item ` )
var topic_alt_57 = [ ] byte ( ` " >
2017-10-30 09:57:08 +00:00
< div class = "userinfo" aria - label = "The information on the poster" >
2017-01-17 07:55:46 +00:00
< div class = "avatar_item" style = " background - image : url ( ` )
2017-11-02 02:52:21 +00:00
var topic_alt_58 = [ ] byte ( ` ) , url ( / static / white - dot . jpg ) ; background - position : 0 px - 10 px ; " > & nbsp ; < / div >
2017-07-29 14:04:20 +00:00
< a href = " ` )
2017-11-02 02:52:21 +00:00
var topic_alt_59 = [ ] byte ( ` " class="the_name" rel="author"> ` )
var topic_alt_60 = [ ] byte ( ` < / a >
2017-01-17 07:55:46 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_61 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag"> ` )
var topic_alt_62 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
var topic_alt_63 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag post_level">Level ` )
var topic_alt_64 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
var topic_alt_65 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-05-13 14:27:42 +00:00
< div class = "content_container" ` )
2017-11-02 02:52:21 +00:00
var topic_alt_66 = [ ] byte ( ` style="margin-left: 0px;" ` )
var topic_alt_67 = [ ] byte ( ` >
2017-05-13 14:27:42 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_68 = [ ] byte ( `
2017-05-13 14:27:42 +00:00
< span class = "action_icon" style = "font-size: 18px;padding-right: 5px;" > ` )
2017-10-30 09:57:08 +00:00
var topic_alt_69 = [ ] byte ( ` < / span >
2017-11-02 02:52:21 +00:00
< span itemprop = "text" > ` )
var topic_alt_70 = [ ] byte ( ` < / span >
2017-05-13 14:27:42 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_71 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< div class = "editable_block user_content" itemprop = "text" > ` )
2017-11-02 02:52:21 +00:00
var topic_alt_72 = [ ] byte ( ` < / div >
2017-01-17 07:55:46 +00:00
< div class = "button_container" >
` )
2017-11-02 02:52:21 +00:00
var topic_alt_73 = [ ] byte ( ` <a href="/reply/like/submit/ ` )
var topic_alt_74 = [ ] byte ( ` " class="action_button like_item">+1</a> ` )
var topic_alt_75 = [ ] byte ( ` <a href="/reply/edit/submit/ ` )
var topic_alt_76 = [ ] byte ( ` " class="action_button edit_item">Edit</a> ` )
var topic_alt_77 = [ ] byte ( ` <a href="/reply/delete/submit/ ` )
var topic_alt_78 = [ ] byte ( ` " class="action_button delete_item">Delete</a> ` )
var topic_alt_79 = [ ] byte ( `
2017-06-12 09:03:14 +00:00
< a href = " / report / submit / ` )
2017-11-02 02:52:21 +00:00
var topic_alt_80 = [ ] byte ( ` ?session= ` )
var topic_alt_81 = [ ] byte ( ` & type = reply " class=" action_button report_item " > Report < / a >
2017-06-12 09:03:14 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_82 = [ ] byte ( `
< div class = "action_button_right" >
` )
var topic_alt_83 = [ ] byte ( ` <a class="action_button like_count hide_on_micro"> ` )
var topic_alt_84 = [ ] byte ( ` </a> ` )
var topic_alt_85 = [ ] byte ( `
< a class = "action_button created_at hide_on_mobile" > ` )
var topic_alt_86 = [ ] byte ( ` < / a >
` )
var topic_alt_87 = [ ] byte ( ` <a href="#" title="IP Address" class="action_button ip_item hide_on_mobile"> ` )
var topic_alt_88 = [ ] byte ( ` </a> ` )
var topic_alt_89 = [ ] byte ( `
< / div >
2017-01-17 07:55:46 +00:00
< / div >
2017-05-13 14:27:42 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_90 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
< div style = "clear:both;" > < / div >
2017-08-20 09:39:02 +00:00
< / article >
2017-01-17 07:55:46 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_91 = [ ] byte ( ` < / div >
2017-10-30 09:57:08 +00:00
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var topic_alt_92 = [ ] byte ( `
2017-11-02 02:52:21 +00:00
< div class = "rowblock topic_reply_container" >
< div class = "userinfo" aria - label = "The information on the poster" >
< div class = "avatar_item" style = " background - image : url ( ` )
var topic_alt_93 = [ ] byte ( ` ) , url ( / static / white - dot . jpg ) ; background - position : 0 px - 10 px ; " > & nbsp ; < / div >
< a href = " ` )
var topic_alt_94 = [ ] byte ( ` " class="the_name" rel="author"> ` )
var topic_alt_95 = [ ] byte ( ` < / a >
` )
var topic_alt_96 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag"> ` )
var topic_alt_97 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
var topic_alt_98 = [ ] byte ( ` <div class="tag_block"><div class="tag_pre"></div><div class="post_tag post_level">Level ` )
var topic_alt_99 = [ ] byte ( ` </div><div class="tag_post"></div></div> ` )
var topic_alt_100 = [ ] byte ( `
< / div >
< div class = "rowblock topic_reply_form quick_create_form" >
< form id = "reply_form" enctype = "multipart/form-data" action = "/reply/create/" method = "post" > < / form >
< input form = "reply_form" name = "tid" value = ' ` )
var topic_alt_101 = [ ] byte ( ` ' type = "hidden" / >
< div class = "formrow real_first_child" >
< div class = "formitem" >
< textarea id = "input_content" form = "reply_form" name = "reply-content" placeholder = "What do you think?" required > < / textarea >
< / div >
< / div >
< div class = "formrow quick_button_row" >
< div class = "formitem" >
< button form = "reply_form" name = "reply-button" class = "formbutton" > Create Reply < / button >
` )
var topic_alt_102 = [ ] byte ( `
< input name = "upload_files" form = "reply_form" id = "upload_files" multiple type = "file" style = "display: none;" / >
< label for = "upload_files" class = "formbutton add_file_button" > Add File < / label >
< div id = "upload_file_dock" > < / div > ` )
var topic_alt_103 = [ ] byte ( `
< / div >
2017-01-17 07:55:46 +00:00
< / div >
2017-10-12 03:24:14 +00:00
< / div >
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
` )
2017-11-02 02:52:21 +00:00
var topic_alt_104 = [ ] byte ( `
2017-08-20 09:39:02 +00:00
< / main >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var profile_0 = [ ] byte ( `
2017-05-29 14:52:37 +00:00
2017-07-29 10:36:39 +00:00
< div id = "profile_left_lane" class = "colstack_left" >
2017-08-27 09:33:45 +00:00
< ! -- < header class = "colstack_item colstack_head rowhead" >
< div class = "rowitem" > < h1 > Profile < / h1 > < / div >
< / header > -- >
2017-07-29 10:36:39 +00:00
< div id = "profile_left_pane" class = "rowmenu" >
< div class = "rowitem avatarRow" style = "padding: 0;" >
< img src = " ` )
2017-09-03 04:50:31 +00:00
var profile_1 = [ ] byte ( ` " class=" avatar " / >
2017-07-29 10:36:39 +00:00
< / div >
2017-09-15 22:20:01 +00:00
< div class = "rowitem" > ` )
var profile_2 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< span class = "profileName" > ` )
2017-09-15 22:20:01 +00:00
var profile_3 = [ ] byte ( ` </span> ` )
var profile_4 = [ ] byte ( ` <span class="username" style="float: right;font-weight: normal;"> ` )
var profile_5 = [ ] byte ( ` </span> ` )
var profile_6 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< / div >
< div class = "rowitem passive" >
< a class = "profile_menu_item" > Add Friend < / a >
< / div >
2017-06-05 11:57:27 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_7 = [ ] byte ( ` < div class = "rowitem passive" >
2017-07-29 10:36:39 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_8 = [ ] byte ( ` <a href="/users/unban/ ` )
var profile_9 = [ ] byte ( ` ?session= ` )
var profile_10 = [ ] byte ( ` " class=" profile_menu_item " > Unban < / a >
2017-01-17 07:55:46 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_11 = [ ] byte ( ` <a href="#ban_user" class="profile_menu_item">Ban</a> ` )
2017-09-03 04:50:31 +00:00
var profile_12 = [ ] byte ( `
2017-09-15 22:20:01 +00:00
< / div > ` )
var profile_13 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< div class = "rowitem passive" >
< a href = " / report / submit / ` )
2017-09-15 22:20:01 +00:00
var profile_14 = [ ] byte ( ` ?session= ` )
var profile_15 = [ ] byte ( ` & type = user " class=" profile_menu_item report_item " > Report < / a >
2017-07-29 10:36:39 +00:00
< / div >
2017-01-17 07:55:46 +00:00
< / div >
< / div >
2017-05-29 14:52:37 +00:00
2017-07-29 10:36:39 +00:00
< div id = "profile_right_lane" class = "colstack_right" >
2017-08-27 09:33:45 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_16 = [ ] byte ( `
2017-09-10 16:57:22 +00:00
< ! -- TODO : Inline the display : none ; CSS -- >
2017-08-27 09:33:45 +00:00
< div id = "ban_user_head" class = "colstack_item colstack_head hash_hide ban_user_hash" style = "display: none;" >
< div class = "rowitem" > < h1 > Ban User < / h1 > < / div >
2017-07-29 10:36:39 +00:00
< / div >
2017-08-27 09:33:45 +00:00
< form id = "ban_user_form" class = "hash_hide ban_user_hash" action = " / users / ban / submit / ` )
2017-09-15 22:20:01 +00:00
var profile_17 = [ ] byte ( ` ?session= ` )
var profile_18 = [ ] byte ( ` " method=" post " style=" display : none ; " >
2017-08-27 09:33:45 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_19 = [ ] byte ( `
2017-08-27 09:33:45 +00:00
< div class = "colline" > If all the fields are left blank , the ban will be permanent . < / div >
< div class = "colstack_item" >
< div class = "formrow real_first_child" >
< div class = "formitem formlabel" > < a > Days < / a > < / div >
< div class = "formitem" >
< input name = "ban-duration-days" type = "number" value = "0" min = "0" / >
< / div >
< / div >
< div class = "formrow" >
< div class = "formitem formlabel" > < a > Weeks < / a > < / div >
< div class = "formitem" >
< input name = "ban-duration-weeks" type = "number" value = "0" min = "0" / >
< / div >
< / div >
< div class = "formrow" >
< div class = "formitem formlabel" > < a > Months < / a > < / div >
< div class = "formitem" >
< input name = "ban-duration-months" type = "number" value = "0" min = "0" / >
< / div >
< / div >
< ! -- < div class = "formrow" >
< div class = "formitem formlabel" > < a > Reason < / a > < / div >
< div class = "formitem" > < textarea name = "ban-reason" placeholder = "A really horrible person" required > < / textarea > < / div >
< / div > -- >
< div class = "formrow" >
< div class = "formitem" > < button name = "ban-button" class = "formbutton form_middle_button" > Ban User < / button > < / div >
< / div >
< / div >
< / form >
` )
2017-09-15 22:20:01 +00:00
var profile_20 = [ ] byte ( `
2017-08-27 09:33:45 +00:00
< div id = "profile_comments_head" class = "colstack_item colstack_head hash_hide" >
< div class = "rowitem" > < h1 > Comments < / h1 > < / div >
< / div >
2017-09-15 22:20:01 +00:00
< div id = "profile_comments" class = "colstack_item hash_hide" > ` )
var profile_21 = [ ] byte ( `
2017-07-29 10:36:39 +00:00
< div class = " rowitem passive deletable_block editable_parent simple ` )
2017-09-15 22:20:01 +00:00
var profile_22 = [ ] byte ( ` " style=" ` )
var profile_23 = [ ] byte ( ` background-image: url( ` )
var profile_24 = [ ] byte ( ` ), url(/static/post-avatar-bg.jpg);background-position: 0px ` )
var profile_25 = [ ] byte ( ` -1 ` )
var profile_26 = [ ] byte ( ` 0px; ` )
var profile_27 = [ ] byte ( ` " >
2017-07-29 10:36:39 +00:00
< span class = "editable_block user_content simple" > ` )
2017-09-15 22:20:01 +00:00
var profile_28 = [ ] byte ( ` < / span >
2017-07-29 14:04:20 +00:00
< span class = "controls" >
< a href = " ` )
2017-09-15 22:20:01 +00:00
var profile_29 = [ ] byte ( ` " class="real_username username"> ` )
var profile_30 = [ ] byte ( ` < / a > & nbsp ; & nbsp ;
2017-05-29 14:52:37 +00:00
2017-07-29 14:04:20 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_31 = [ ] byte ( ` <a href="/profile/reply/edit/submit/ ` )
var profile_32 = [ ] byte ( ` " class=" mod_button " title=" Edit Item "><button class=" username edit_item edit_label " > < / button > < / a >
2017-05-29 14:52:37 +00:00
2017-07-29 14:04:20 +00:00
< a href = " / profile / reply / delete / submit / ` )
2017-09-15 22:20:01 +00:00
var profile_33 = [ ] byte ( ` " class="mod_button" title="Delete Item"><button class="username delete_item trash_label"></button></a> ` )
var profile_34 = [ ] byte ( `
2017-05-29 14:52:37 +00:00
2017-07-29 14:04:20 +00:00
< a class = "mod_button" href = " / report / submit / ` )
2017-09-15 22:20:01 +00:00
var profile_35 = [ ] byte ( ` ?session= ` )
var profile_36 = [ ] byte ( ` & type = user - reply "><button class=" username report_item flag_label " > < / button > < / a >
2017-07-29 14:04:20 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_37 = [ ] byte ( ` <a class="username hide_on_mobile user_tag" style="float: right;"> ` )
var profile_38 = [ ] byte ( ` </a> ` )
var profile_39 = [ ] byte ( `
2017-07-29 14:04:20 +00:00
< / span >
2017-07-29 10:36:39 +00:00
< / div >
` )
2017-09-15 22:20:01 +00:00
var profile_40 = [ ] byte ( ` < / div >
2017-05-29 14:52:37 +00:00
2017-01-17 07:55:46 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_41 = [ ] byte ( `
2017-08-27 09:33:45 +00:00
< form id = "profile_comments_form" class = "hash_hide" action = "/profile/reply/create/" method = "post" >
2017-07-29 10:36:39 +00:00
< input name = "uid" value = ' ` )
2017-09-15 22:20:01 +00:00
var profile_42 = [ ] byte ( ` ' type = "hidden" / >
2017-07-29 10:36:39 +00:00
< div class = "colstack_item topic_reply_form" style = "border-top: none;" >
< div class = "formrow" >
< div class = "formitem" > < textarea name = "reply-content" placeholder = "Insert reply here" > < / textarea > < / div >
< / div >
< div class = "formrow" >
< div class = "formitem" > < button name = "reply-button" class = "formbutton" > Create Reply < / button > < / div >
< / div >
< / div >
< / form >
2017-01-17 07:55:46 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_43 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-05-29 14:52:37 +00:00
2017-08-27 09:33:45 +00:00
` )
2017-09-15 22:20:01 +00:00
var profile_44 = [ ] byte ( `
2017-08-27 09:33:45 +00:00
< script type = "text/javascript" >
function handle_profile_hashbit ( ) {
var hash_class = ""
switch ( window . location . hash . substr ( 1 ) ) {
case "ban_user" :
hash_class = "ban_user_hash"
break
default :
console . log ( "Unknown hashbit" )
return
}
$ ( ".hash_hide" ) . hide ( )
$ ( "." + hash_class ) . show ( )
}
if ( window . location . hash ) handle_profile_hashbit ( )
window . addEventListener ( "hashchange" , handle_profile_hashbit , false )
< / script >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var forums_0 = [ ] byte ( `
2017-08-20 09:39:02 +00:00
< main >
2017-03-01 11:36:50 +00:00
< div class = "rowblock opthead" >
2017-10-30 09:57:08 +00:00
< div class = "rowitem" > < h1 > Forums < / h1 > < / div >
2017-03-01 11:36:50 +00:00
< / div >
2017-10-30 09:57:08 +00:00
< div class = "rowblock forum_list" >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var forums_1 = [ ] byte ( ` <div class="rowitem ` )
var forums_2 = [ ] byte ( ` datarow ` )
var forums_3 = [ ] byte ( ` " >
2017-10-30 09:57:08 +00:00
< span class = "forum_left shift_left" >
Added the Social Groups plugin. This is still under construction.
Made a few improvements to the ForumStore, including bringing it's API closer in line with the other datastores, adding stubs for future subforum functionality, and improving efficiency in a few places.
The auth interface now handles all the authentication stuff.
Renamed the debug config variable to debug_mode.
Added the PluginPerms API.
Internal Errors will now dump the stack trace in the console.
Added support for installable plugins.
Refactored the routing logic so that the router now handles the common PreRoute logic(exc. /static/)
Added the CreateTable method to the query generator. It might need some tweaking to better support other database systems.
Added the same CreateTable method to the query builder.
Began work on PostgreSQL support.
Added the string-string hook type
Added the pre_render hook type.
Added the ParentID and ParentType fields to forums.
Added the get_forum_url_prefix function.
Added a more generic build_slug function.
Added the get_topic_url_prefix function.
Added the override_perms and override_forum_perms functions for bulk setting and unsetting permissions.
Added more ExtData fields in a few structs and removed them on the Perms struct as the PluginPerms API supersedes them there.
Plugins can now see the router instance.
The plugin initialisation handlers can now throw errors.
Plugins are now initialised after all the forum's subsystems are.
Refactored the unit test logic. For instance, we now use the proper .Log method rather than fmt.Println in many cases.
Sorry, we'll have to break Github's generated file detection, as the build instructions aren't working, unless I put them at the top, and they're far, far more important than getting Github to recognise the generated code as generated code.
Fixed an issue with mysql.go's _init_database() overwriting the dbpassword variable. Not a huge issue, but it is a "gotcha" for those not expecting a ':' at the start.
Fixed an issue with forum creation where the forum permissions didn't get cached.
Fixed a bug in plugin_bbcode where negative numbers in rand would crash Gosora.
Made the outputs of plugin_markdown and plugin_bbcode more compliant with the tests.
Revamped the phrase system to make it easier for us to add language pack related features in the future.
Added the WidgetMenu widget type.
Revamped the theme again. I'm experimenting to see which approach I like most.
- Excuse the little W3C rage. Some things about CSS drive me crazy :p
Tests:
Added 22 bbcode_full_parse tests.
Added 19 bbcode_regex_parse tests.
Added 27 markdown_parse tests.
Added four UserStore tests. More to come when the test database functionality is added.
Added 18 name_to_slug tests.
Hooks:
Added the pre_render hook.
Added the pre_render_forum_list hook.
Added the pre_render_view_forum hook.
Added the pre_render_topic_list hook.
Added the pre_render_view_topic hook.
Added the pre_render_profile hook.
Added the pre_render_custom_page hook.
Added the pre_render_overview hook.
Added the pre_render_create_topic hook.
Added the pre_render_account_own_edit_critical hook.
Added the pre_render_account_own_edit_avatar hook.
Added the pre_render_account_own_edit_username hook.
Added the pre_render_account_own_edit_email hook.
Added the pre_render_login hook.
Added the pre_render_register hook.
Added the pre_render_ban hook.
Added the pre_render_panel_dashboard hook.
Added the pre_render_panel_forums hook.
Added the pre_render_panel_delete_forum hook.
Added the pre_render_panel_edit_forum hook.
Added the pre_render_panel_settings hook.
Added the pre_render_panel_setting hook.
Added the pre_render_panel_plugins hook.
Added the pre_render_panel_users hook.
Added the pre_render_panel_edit_user hook.
Added the pre_render_panel_groups hook.
Added the pre_render_panel_edit_group hook.
Added the pre_render_panel_edit_group_perms hook.
Added the pre_render_panel_themes hook.
Added the pre_render_panel_mod_log hook.
Added the pre_render_error hook.
Added the pre_render_security_error hook.
Added the create_group_preappend hook.
Added the intercept_build_widgets hook.
Added the simple_forum_check_pre_perms hook.
Added the forum_check_pre_perms hook.
2017-07-09 12:06:04 +00:00
< a href = " ` )
2017-10-30 09:57:08 +00:00
var forums_4 = [ ] byte ( ` "> ` )
var forums_5 = [ ] byte ( ` < / a >
` )
var forums_6 = [ ] byte ( `
2017-06-05 11:57:27 +00:00
< br / > < span class = "rowsmall" > ` )
2017-09-03 04:50:31 +00:00
var forums_7 = [ ] byte ( ` < / span >
2017-10-30 09:57:08 +00:00
` )
var forums_8 = [ ] byte ( `
2017-07-17 10:23:42 +00:00
< br / > < span class = "rowsmall" style = "font-style: italic;" > No description < / span >
2017-10-30 09:57:08 +00:00
` )
var forums_9 = [ ] byte ( `
< / span >
2017-06-05 11:57:27 +00:00
2017-10-30 09:57:08 +00:00
< span class = "forum_right shift_right" >
2017-06-05 11:57:27 +00:00
` )
2017-10-30 09:57:08 +00:00
var forums_10 = [ ] byte ( ` <img class="extra_little_row_avatar" src=" ` )
var forums_11 = [ ] byte ( ` " height=64 width=64 /> ` )
var forums_12 = [ ] byte ( `
< span >
< a href = " ` )
var forums_13 = [ ] byte ( ` "> ` )
var forums_14 = [ ] byte ( ` None ` )
var forums_15 = [ ] byte ( ` < / a >
` )
var forums_16 = [ ] byte ( ` <br /><span class="rowsmall"> ` )
var forums_17 = [ ] byte ( ` </span> ` )
var forums_18 = [ ] byte ( `
< / span >
2017-06-05 11:57:27 +00:00
< / span >
< div style = "clear: both;" > < / div >
2017-01-17 07:55:46 +00:00
< / div >
` )
2017-10-30 09:57:08 +00:00
var forums_19 = [ ] byte ( ` <div class="rowitem passive">You don't have access to any forums.</div> ` )
var forums_20 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
< / main >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var topics_0 = [ ] byte ( `
2017-08-20 09:39:02 +00:00
< main >
2017-10-21 00:27:47 +00:00
< div class = "rowblock rowhead topic_list_title_block" >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< div class = " rowitem topic_list_title ` )
var topics_1 = [ ] byte ( ` has_opt ` )
var topics_2 = [ ] byte ( ` " > < h1 > All Topics < / h1 > < / div >
` )
var topics_3 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< div class = "pre_opt auto_hide" > < / div >
2017-10-21 00:27:47 +00:00
< div class = "opt create_topic_opt" title = "Create Topic" aria - label = "Create a topic" > < a class = "create_topic_link" href = "/topics/create/" > < / a > < / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
` )
2017-10-21 00:27:47 +00:00
var topics_4 = [ ] byte ( `
< div class = "opt mod_opt" title = "Moderate" >
< a class = "moderate_link" href = "#" > < / a >
< / div >
` )
var topics_5 = [ ] byte ( ` <div class="opt locked_opt" title="You don't have the permissions needed to create a topic" aria-label="You don't have the permissions needed to make a topic anywhere"><a></a></div> ` )
var topics_6 = [ ] byte ( `
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< div style = "clear: both;" > < / div >
` )
2017-10-21 00:27:47 +00:00
var topics_7 = [ ] byte ( `
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
2017-10-30 09:57:08 +00:00
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
` )
2017-10-21 00:27:47 +00:00
var topics_8 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< div class = "mod_floater auto_hide" >
< form method = "post" >
< div class = "mod_floater_head" >
< span > What do you want to do with these 18 topics ? < / span >
< / div >
< div class = "mod_floater_body" >
< select class = "mod_floater_options" >
< option val = "delete" > Delete them < / option >
< option val = "lock" > Lock them < / option >
< / select >
< button class = "mod_floater_submit" > Run < / button >
< / div >
< / form >
< / div >
` )
var topics_9 = [ ] byte ( `
2017-10-21 00:27:47 +00:00
< div class = "rowblock topic_create_form quick_create_form" style = "display: none;" aria - label = "Quick Topic Form" >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< form name = "topic_create_form_form" id = "topic_create_form_form" enctype = "multipart/form-data" action = "/topic/create/submit/" method = "post" > < / form >
2017-10-30 09:57:08 +00:00
` )
var topics_10 = [ ] byte ( ` <img class="little_row_avatar" src=" ` )
var topics_11 = [ ] byte ( ` " height="64" /> ` )
var topics_12 = [ ] byte ( `
< div class = "main_form" >
2017-11-02 02:52:21 +00:00
< div class = "topic_meta" >
< div class = "formrow topic_board_row real_first_child" >
< div class = "formitem" > < select form = "topic_create_form_form" id = "topic_board_input" name = "topic-board" >
` )
2017-10-30 09:57:08 +00:00
var topics_13 = [ ] byte ( ` <option ` )
var topics_14 = [ ] byte ( ` selected ` )
var topics_15 = [ ] byte ( ` value=" ` )
var topics_16 = [ ] byte ( ` "> ` )
var topics_17 = [ ] byte ( ` </option> ` )
var topics_18 = [ ] byte ( `
2017-11-02 02:52:21 +00:00
< / select > < / div >
< / div >
< div class = "formrow topic_name_row" >
< div class = "formitem" >
< input form = "topic_create_form_form" name = "topic-name" placeholder = "What's up?" required >
< / div >
< / div >
2017-10-30 09:57:08 +00:00
< / div >
2017-11-02 02:52:21 +00:00
< div class = "formrow topic_content_row" >
2017-10-30 09:57:08 +00:00
< div class = "formitem" >
2017-11-02 02:52:21 +00:00
< textarea form = "topic_create_form_form" id = "input_content" name = "topic-content" placeholder = "Insert post here" required > < / textarea >
2017-10-30 09:57:08 +00:00
< / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
2017-11-02 02:52:21 +00:00
< div class = "formrow quick_button_row" >
< div class = "formitem" >
< button form = "topic_create_form_form" class = "formbutton" > Create Topic < / button >
` )
2017-10-30 09:57:08 +00:00
var topics_19 = [ ] byte ( `
2017-11-02 02:52:21 +00:00
< input name = "upload_files" form = "topic_create_form_form" id = "upload_files" multiple type = "file" style = "display: none;" / >
< label for = "upload_files" class = "formbutton add_file_button" > Add File < / label >
< div id = "upload_file_dock" > < / div > ` )
2017-10-30 09:57:08 +00:00
var topics_20 = [ ] byte ( `
2017-11-02 02:52:21 +00:00
< button class = "formbutton close_form" > Cancel < / button >
< / div >
2017-10-30 09:57:08 +00:00
< / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
2017-01-17 07:55:46 +00:00
< / div >
` )
2017-10-30 09:57:08 +00:00
var topics_21 = [ ] byte ( `
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< div id = "topic_list" class = "rowblock topic_list" aria - label = "A list containing topics from every forum" >
` )
2017-10-30 09:57:08 +00:00
var topics_22 = [ ] byte ( ` <div class="topic_row" data-tid=" ` )
var topics_23 = [ ] byte ( ` " >
2017-10-12 03:24:14 +00:00
< div class = " rowitem topic_left passive datarow ` )
2017-10-30 09:57:08 +00:00
var topics_24 = [ ] byte ( ` topic_sticky ` )
var topics_25 = [ ] byte ( ` topic_closed ` )
var topics_26 = [ ] byte ( ` " >
2017-10-21 00:27:47 +00:00
< span class = "selector" > < / span >
2017-10-12 03:24:14 +00:00
` )
2017-10-30 09:57:08 +00:00
var topics_27 = [ ] byte ( ` <a href=" ` )
var topics_28 = [ ] byte ( ` "><img src=" ` )
var topics_29 = [ ] byte ( ` " height="64" /></a> ` )
var topics_30 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< span class = "topic_inner_left" >
2017-07-29 14:04:20 +00:00
< a class = "rowtopic" href = " ` )
2017-10-30 09:57:08 +00:00
var topics_31 = [ ] byte ( ` "><span> ` )
var topics_32 = [ ] byte ( ` </span></a> ` )
var topics_33 = [ ] byte ( ` <a class="rowsmall parent_forum" href=" ` )
var topics_34 = [ ] byte ( ` "> ` )
var topics_35 = [ ] byte ( ` </a> ` )
var topics_36 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< br / > < a class = "rowsmall starter" href = " ` )
2017-10-30 09:57:08 +00:00
var topics_37 = [ ] byte ( ` "> ` )
var topics_38 = [ ] byte ( ` < / a >
2017-06-05 11:57:27 +00:00
` )
2017-10-30 09:57:08 +00:00
var topics_39 = [ ] byte ( ` <span class="rowsmall topic_status_e topic_status_closed" title="Status: Closed"> | 🔒︎</span> ` )
var topics_40 = [ ] byte ( ` <span class="rowsmall topic_status_e topic_status_sticky" title="Status: Pinned"> | 📍︎</span> ` )
var topics_41 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< / span >
< span class = "topic_inner_right rowsmall" style = "float: right;" >
< span class = "replyCount" > ` )
2017-10-30 09:57:08 +00:00
var topics_42 = [ ] byte ( ` < / span > < br / >
2017-10-21 00:27:47 +00:00
< span class = "likeCount" > ` )
2017-10-30 09:57:08 +00:00
var topics_43 = [ ] byte ( ` < / span >
2017-08-06 15:22:18 +00:00
< / span >
< / div >
2017-09-10 16:57:22 +00:00
< div class = " rowitem topic_right passive datarow ` )
2017-10-30 09:57:08 +00:00
var topics_44 = [ ] byte ( ` topic_sticky ` )
var topics_45 = [ ] byte ( ` topic_closed ` )
var topics_46 = [ ] byte ( ` " >
2017-10-12 03:24:14 +00:00
` )
2017-10-30 09:57:08 +00:00
var topics_47 = [ ] byte ( ` <a href=" ` )
var topics_48 = [ ] byte ( ` "><img src=" ` )
var topics_49 = [ ] byte ( ` " height="64" /></a> ` )
var topics_50 = [ ] byte ( `
2017-08-06 15:22:18 +00:00
< span >
< a href = " ` )
2017-10-30 09:57:08 +00:00
var topics_51 = [ ] byte ( ` " class="lastName" style="font-size: 14px;"> ` )
var topics_52 = [ ] byte ( ` < / a > < br >
2017-10-21 00:27:47 +00:00
< span class = "rowsmall lastReplyAt" > ` )
2017-10-30 09:57:08 +00:00
var topics_53 = [ ] byte ( ` < / span >
2017-06-05 11:57:27 +00:00
< / span >
2017-01-17 07:55:46 +00:00
< / div >
2017-10-12 03:24:14 +00:00
< / div > ` )
2017-10-30 09:57:08 +00:00
var topics_54 = [ ] byte ( ` <div class="rowitem passive">There aren't any topics yet. ` )
var topics_55 = [ ] byte ( ` <a href="/topics/create/">Start one?</a> ` )
var topics_56 = [ ] byte ( ` </div> ` )
var topics_57 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
< / main >
2017-01-17 07:55:46 +00:00
` )
2017-09-03 04:50:31 +00:00
var forum_0 = [ ] byte ( ` <div id="prevFloat" class="prev_button"><a class="prev_link" aria-label="Go to the previous page" rel="prev" href="/forum/ ` )
var forum_1 = [ ] byte ( ` ?page= ` )
var forum_2 = [ ] byte ( ` "><</a></div> ` )
var forum_3 = [ ] byte ( ` <link rel="prerender" href="/forum/ ` )
var forum_4 = [ ] byte ( ` ?page= ` )
var forum_5 = [ ] byte ( ` " / >
2017-08-27 09:33:45 +00:00
< div id = "nextFloat" class = "next_button" > < a class = "next_link" aria - label = "Go to the next page" rel = "next" href = " / forum / ` )
2017-09-03 04:50:31 +00:00
var forum_6 = [ ] byte ( ` ?page= ` )
var forum_7 = [ ] byte ( ` ">></a></div> ` )
var forum_8 = [ ] byte ( `
2017-05-29 14:52:37 +00:00
2017-08-20 09:39:02 +00:00
< main >
2017-08-27 09:33:45 +00:00
2017-10-21 00:27:47 +00:00
< div id = "forum_head_block" class = "rowblock rowhead topic_list_title_block" >
2017-08-18 12:16:56 +00:00
< div class = " rowitem forum_title ` )
2017-09-03 04:50:31 +00:00
var forum_9 = [ ] byte ( ` has_opt ` )
var forum_10 = [ ] byte ( ` "><h1> ` )
var forum_11 = [ ] byte ( ` < / h1 >
Added the Social Groups plugin. This is still under construction.
Made a few improvements to the ForumStore, including bringing it's API closer in line with the other datastores, adding stubs for future subforum functionality, and improving efficiency in a few places.
The auth interface now handles all the authentication stuff.
Renamed the debug config variable to debug_mode.
Added the PluginPerms API.
Internal Errors will now dump the stack trace in the console.
Added support for installable plugins.
Refactored the routing logic so that the router now handles the common PreRoute logic(exc. /static/)
Added the CreateTable method to the query generator. It might need some tweaking to better support other database systems.
Added the same CreateTable method to the query builder.
Began work on PostgreSQL support.
Added the string-string hook type
Added the pre_render hook type.
Added the ParentID and ParentType fields to forums.
Added the get_forum_url_prefix function.
Added a more generic build_slug function.
Added the get_topic_url_prefix function.
Added the override_perms and override_forum_perms functions for bulk setting and unsetting permissions.
Added more ExtData fields in a few structs and removed them on the Perms struct as the PluginPerms API supersedes them there.
Plugins can now see the router instance.
The plugin initialisation handlers can now throw errors.
Plugins are now initialised after all the forum's subsystems are.
Refactored the unit test logic. For instance, we now use the proper .Log method rather than fmt.Println in many cases.
Sorry, we'll have to break Github's generated file detection, as the build instructions aren't working, unless I put them at the top, and they're far, far more important than getting Github to recognise the generated code as generated code.
Fixed an issue with mysql.go's _init_database() overwriting the dbpassword variable. Not a huge issue, but it is a "gotcha" for those not expecting a ':' at the start.
Fixed an issue with forum creation where the forum permissions didn't get cached.
Fixed a bug in plugin_bbcode where negative numbers in rand would crash Gosora.
Made the outputs of plugin_markdown and plugin_bbcode more compliant with the tests.
Revamped the phrase system to make it easier for us to add language pack related features in the future.
Added the WidgetMenu widget type.
Revamped the theme again. I'm experimenting to see which approach I like most.
- Excuse the little W3C rage. Some things about CSS drive me crazy :p
Tests:
Added 22 bbcode_full_parse tests.
Added 19 bbcode_regex_parse tests.
Added 27 markdown_parse tests.
Added four UserStore tests. More to come when the test database functionality is added.
Added 18 name_to_slug tests.
Hooks:
Added the pre_render hook.
Added the pre_render_forum_list hook.
Added the pre_render_view_forum hook.
Added the pre_render_topic_list hook.
Added the pre_render_view_topic hook.
Added the pre_render_profile hook.
Added the pre_render_custom_page hook.
Added the pre_render_overview hook.
Added the pre_render_create_topic hook.
Added the pre_render_account_own_edit_critical hook.
Added the pre_render_account_own_edit_avatar hook.
Added the pre_render_account_own_edit_username hook.
Added the pre_render_account_own_edit_email hook.
Added the pre_render_login hook.
Added the pre_render_register hook.
Added the pre_render_ban hook.
Added the pre_render_panel_dashboard hook.
Added the pre_render_panel_forums hook.
Added the pre_render_panel_delete_forum hook.
Added the pre_render_panel_edit_forum hook.
Added the pre_render_panel_settings hook.
Added the pre_render_panel_setting hook.
Added the pre_render_panel_plugins hook.
Added the pre_render_panel_users hook.
Added the pre_render_panel_edit_user hook.
Added the pre_render_panel_groups hook.
Added the pre_render_panel_edit_group hook.
Added the pre_render_panel_edit_group_perms hook.
Added the pre_render_panel_themes hook.
Added the pre_render_panel_mod_log hook.
Added the pre_render_error hook.
Added the pre_render_security_error hook.
Added the create_group_preappend hook.
Added the intercept_build_widgets hook.
Added the simple_forum_check_pre_perms hook.
Added the forum_check_pre_perms hook.
2017-07-09 12:06:04 +00:00
< / div >
` )
2017-09-03 04:50:31 +00:00
var forum_12 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< div class = "pre_opt auto_hide" > < / div >
2017-10-21 00:27:47 +00:00
< div class = "opt create_topic_opt" title = "Create Topic" aria - label = "Create a topic" > < a class = "create_topic_link" href = " / topics / create / ` )
2017-09-03 04:50:31 +00:00
var forum_13 = [ ] byte ( ` " > < / a > < / div >
Added the Social Groups plugin. This is still under construction.
Made a few improvements to the ForumStore, including bringing it's API closer in line with the other datastores, adding stubs for future subforum functionality, and improving efficiency in a few places.
The auth interface now handles all the authentication stuff.
Renamed the debug config variable to debug_mode.
Added the PluginPerms API.
Internal Errors will now dump the stack trace in the console.
Added support for installable plugins.
Refactored the routing logic so that the router now handles the common PreRoute logic(exc. /static/)
Added the CreateTable method to the query generator. It might need some tweaking to better support other database systems.
Added the same CreateTable method to the query builder.
Began work on PostgreSQL support.
Added the string-string hook type
Added the pre_render hook type.
Added the ParentID and ParentType fields to forums.
Added the get_forum_url_prefix function.
Added a more generic build_slug function.
Added the get_topic_url_prefix function.
Added the override_perms and override_forum_perms functions for bulk setting and unsetting permissions.
Added more ExtData fields in a few structs and removed them on the Perms struct as the PluginPerms API supersedes them there.
Plugins can now see the router instance.
The plugin initialisation handlers can now throw errors.
Plugins are now initialised after all the forum's subsystems are.
Refactored the unit test logic. For instance, we now use the proper .Log method rather than fmt.Println in many cases.
Sorry, we'll have to break Github's generated file detection, as the build instructions aren't working, unless I put them at the top, and they're far, far more important than getting Github to recognise the generated code as generated code.
Fixed an issue with mysql.go's _init_database() overwriting the dbpassword variable. Not a huge issue, but it is a "gotcha" for those not expecting a ':' at the start.
Fixed an issue with forum creation where the forum permissions didn't get cached.
Fixed a bug in plugin_bbcode where negative numbers in rand would crash Gosora.
Made the outputs of plugin_markdown and plugin_bbcode more compliant with the tests.
Revamped the phrase system to make it easier for us to add language pack related features in the future.
Added the WidgetMenu widget type.
Revamped the theme again. I'm experimenting to see which approach I like most.
- Excuse the little W3C rage. Some things about CSS drive me crazy :p
Tests:
Added 22 bbcode_full_parse tests.
Added 19 bbcode_regex_parse tests.
Added 27 markdown_parse tests.
Added four UserStore tests. More to come when the test database functionality is added.
Added 18 name_to_slug tests.
Hooks:
Added the pre_render hook.
Added the pre_render_forum_list hook.
Added the pre_render_view_forum hook.
Added the pre_render_topic_list hook.
Added the pre_render_view_topic hook.
Added the pre_render_profile hook.
Added the pre_render_custom_page hook.
Added the pre_render_overview hook.
Added the pre_render_create_topic hook.
Added the pre_render_account_own_edit_critical hook.
Added the pre_render_account_own_edit_avatar hook.
Added the pre_render_account_own_edit_username hook.
Added the pre_render_account_own_edit_email hook.
Added the pre_render_login hook.
Added the pre_render_register hook.
Added the pre_render_ban hook.
Added the pre_render_panel_dashboard hook.
Added the pre_render_panel_forums hook.
Added the pre_render_panel_delete_forum hook.
Added the pre_render_panel_edit_forum hook.
Added the pre_render_panel_settings hook.
Added the pre_render_panel_setting hook.
Added the pre_render_panel_plugins hook.
Added the pre_render_panel_users hook.
Added the pre_render_panel_edit_user hook.
Added the pre_render_panel_groups hook.
Added the pre_render_panel_edit_group hook.
Added the pre_render_panel_edit_group_perms hook.
Added the pre_render_panel_themes hook.
Added the pre_render_panel_mod_log hook.
Added the pre_render_error hook.
Added the pre_render_security_error hook.
Added the create_group_preappend hook.
Added the intercept_build_widgets hook.
Added the simple_forum_check_pre_perms hook.
Added the forum_check_pre_perms hook.
2017-07-09 12:06:04 +00:00
` )
2017-10-21 00:27:47 +00:00
var forum_14 = [ ] byte ( `
< div class = "opt mod_opt" title = "Moderate" >
< a class = "moderate_link" href = "#" > < / a >
< / div >
` )
var forum_15 = [ ] byte ( ` <div class="opt locked_opt" title="You don't have the permissions needed to create a topic" aria-label="You don't have the permissions needed to make a topic in this forum"><a></a></div> ` )
var forum_16 = [ ] byte ( `
Added the Social Groups plugin. This is still under construction.
Made a few improvements to the ForumStore, including bringing it's API closer in line with the other datastores, adding stubs for future subforum functionality, and improving efficiency in a few places.
The auth interface now handles all the authentication stuff.
Renamed the debug config variable to debug_mode.
Added the PluginPerms API.
Internal Errors will now dump the stack trace in the console.
Added support for installable plugins.
Refactored the routing logic so that the router now handles the common PreRoute logic(exc. /static/)
Added the CreateTable method to the query generator. It might need some tweaking to better support other database systems.
Added the same CreateTable method to the query builder.
Began work on PostgreSQL support.
Added the string-string hook type
Added the pre_render hook type.
Added the ParentID and ParentType fields to forums.
Added the get_forum_url_prefix function.
Added a more generic build_slug function.
Added the get_topic_url_prefix function.
Added the override_perms and override_forum_perms functions for bulk setting and unsetting permissions.
Added more ExtData fields in a few structs and removed them on the Perms struct as the PluginPerms API supersedes them there.
Plugins can now see the router instance.
The plugin initialisation handlers can now throw errors.
Plugins are now initialised after all the forum's subsystems are.
Refactored the unit test logic. For instance, we now use the proper .Log method rather than fmt.Println in many cases.
Sorry, we'll have to break Github's generated file detection, as the build instructions aren't working, unless I put them at the top, and they're far, far more important than getting Github to recognise the generated code as generated code.
Fixed an issue with mysql.go's _init_database() overwriting the dbpassword variable. Not a huge issue, but it is a "gotcha" for those not expecting a ':' at the start.
Fixed an issue with forum creation where the forum permissions didn't get cached.
Fixed a bug in plugin_bbcode where negative numbers in rand would crash Gosora.
Made the outputs of plugin_markdown and plugin_bbcode more compliant with the tests.
Revamped the phrase system to make it easier for us to add language pack related features in the future.
Added the WidgetMenu widget type.
Revamped the theme again. I'm experimenting to see which approach I like most.
- Excuse the little W3C rage. Some things about CSS drive me crazy :p
Tests:
Added 22 bbcode_full_parse tests.
Added 19 bbcode_regex_parse tests.
Added 27 markdown_parse tests.
Added four UserStore tests. More to come when the test database functionality is added.
Added 18 name_to_slug tests.
Hooks:
Added the pre_render hook.
Added the pre_render_forum_list hook.
Added the pre_render_view_forum hook.
Added the pre_render_topic_list hook.
Added the pre_render_view_topic hook.
Added the pre_render_profile hook.
Added the pre_render_custom_page hook.
Added the pre_render_overview hook.
Added the pre_render_create_topic hook.
Added the pre_render_account_own_edit_critical hook.
Added the pre_render_account_own_edit_avatar hook.
Added the pre_render_account_own_edit_username hook.
Added the pre_render_account_own_edit_email hook.
Added the pre_render_login hook.
Added the pre_render_register hook.
Added the pre_render_ban hook.
Added the pre_render_panel_dashboard hook.
Added the pre_render_panel_forums hook.
Added the pre_render_panel_delete_forum hook.
Added the pre_render_panel_edit_forum hook.
Added the pre_render_panel_settings hook.
Added the pre_render_panel_setting hook.
Added the pre_render_panel_plugins hook.
Added the pre_render_panel_users hook.
Added the pre_render_panel_edit_user hook.
Added the pre_render_panel_groups hook.
Added the pre_render_panel_edit_group hook.
Added the pre_render_panel_edit_group_perms hook.
Added the pre_render_panel_themes hook.
Added the pre_render_panel_mod_log hook.
Added the pre_render_error hook.
Added the pre_render_security_error hook.
Added the create_group_preappend hook.
Added the intercept_build_widgets hook.
Added the simple_forum_check_pre_perms hook.
Added the forum_check_pre_perms hook.
2017-07-09 12:06:04 +00:00
< div style = "clear: both;" > < / div >
` )
2017-10-21 00:27:47 +00:00
var forum_17 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
` )
2017-10-21 00:27:47 +00:00
var forum_18 = [ ] byte ( `
2017-10-30 09:57:08 +00:00
< div class = "mod_floater auto_hide" >
< form method = "post" >
< div class = "mod_floater_head" >
< span > What do you want to do with these 18 topics ? < / span >
< / div >
< div class = "mod_floater_body" >
< select class = "mod_floater_options" >
< option val = "delete" > Delete them < / option >
< option val = "lock" > Lock them < / option >
< / select >
< button > Run < / button >
< / div >
< / form >
< / div >
` )
var forum_19 = [ ] byte ( `
< div id = "forum_topic_create_form" class = "rowblock topic_create_form quick_create_form" style = "display: none;" aria - label = "Quick Topic Form" >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< form id = "topic_create_form_form" enctype = "multipart/form-data" action = "/topic/create/submit/" method = "post" > < / form >
2017-10-30 09:57:08 +00:00
` )
var forum_20 = [ ] byte ( ` <img class="little_row_avatar" src=" ` )
var forum_21 = [ ] byte ( ` " height="64" /> ` )
var forum_22 = [ ] byte ( `
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< input form = "topic_create_form_form" id = "topic_board_input" name = "topic-board" value = " ` )
2017-10-30 09:57:08 +00:00
var forum_23 = [ ] byte ( ` " type=" hidden " >
< div class = "main_form" >
< div class = "topic_meta" >
< div class = "formrow topic_name_row real_first_child" >
< div class = "formitem" >
< input form = "topic_create_form_form" name = "topic-name" placeholder = "What's up?" required >
< / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
< / div >
< div class = "formrow topic_content_row" >
< div class = "formitem" >
2017-10-12 03:24:14 +00:00
< textarea form = "topic_create_form_form" id = "input_content" name = "topic-content" placeholder = "Insert post here" required > < / textarea >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
< / div >
2017-10-12 03:24:14 +00:00
< div class = "formrow quick_button_row" >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< div class = "formitem" >
< button form = "topic_create_form_form" name = "topic-button" class = "formbutton" > Create Topic < / button >
` )
2017-10-30 09:57:08 +00:00
var forum_24 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< input name = "upload_files" form = "topic_create_form_form" id = "upload_files" multiple type = "file" style = "display: none;" / >
< label for = "upload_files" class = "formbutton add_file_button" > Add File < / label >
< div id = "upload_file_dock" > < / div > ` )
2017-10-30 09:57:08 +00:00
var forum_25 = [ ] byte ( `
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< button class = "formbutton close_form" > Cancel < / button >
< / div >
< / div >
2017-10-30 09:57:08 +00:00
< / div >
Added Quick Topic.
Added Attachments.
Added Attachment Media Embeds.
Renamed a load of *Store and *Cache methods to reduce the amount of unneccesary typing.
Added petabytes as a unit and cleaned up a few of the friendly units.
Refactored the username change logic to make it easier to maintain.
Refactored the avatar change logic to make it easier to maintain.
Shadow now uses CSS Variables for most of it's colours. We have plans to transpile this to support older browsers later on!
Snuck some CSS Variables into Tempra Conflux.
Added the GroupCache interface to MemoryGroupStore.
Added the Length method to MemoryGroupStore.
Added support for a site short name.
Added the UploadFiles permission.
Renamed more functions.
Fixed the background for the left gutter on the postbit for Tempra Simple and Shadow.
Added support for if statements operating on int8, int16, int32, int32, int64, uint, uint8, uint16, uint32, uint64, float32, and float64 for the template compiler.
Added support for if statements operating on slices and maps for the template compiler.
Fixed a security exploit in reply editing.
Fixed a bug in the URL detector in the parser where it couldn't find URLs with non-standard ports.
Fixed buttons having blue outlines on focus on Shadow.
Refactored the topic creation logic to make it easier to maintain.
Made a few responsive fixes, but there's still more to do in the following commits!
2017-10-05 10:20:28 +00:00
< / div >
` )
2017-10-30 09:57:08 +00:00
var forum_26 = [ ] byte ( `
2017-06-05 11:57:27 +00:00
< div id = "forum_topic_list" class = "rowblock topic_list" >
2017-01-17 07:55:46 +00:00
` )
2017-10-30 09:57:08 +00:00
var forum_27 = [ ] byte ( ` <div class="topic_row" data-tid=" ` )
var forum_28 = [ ] byte ( ` " >
2017-10-12 03:24:14 +00:00
< div class = " rowitem topic_left passive datarow ` )
2017-10-30 09:57:08 +00:00
var forum_29 = [ ] byte ( ` topic_sticky ` )
var forum_30 = [ ] byte ( ` topic_closed ` )
var forum_31 = [ ] byte ( ` " >
2017-10-21 00:27:47 +00:00
< span class = "selector" > < / span >
2017-10-12 03:24:14 +00:00
` )
2017-10-30 09:57:08 +00:00
var forum_32 = [ ] byte ( ` <a href=" ` )
var forum_33 = [ ] byte ( ` "><img src=" ` )
var forum_34 = [ ] byte ( ` " height="64" /></a> ` )
var forum_35 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< span class = "topic_inner_left" >
2017-07-29 14:04:20 +00:00
< a class = "rowtopic" href = " ` )
2017-10-30 09:57:08 +00:00
var forum_36 = [ ] byte ( ` "><span> ` )
var forum_37 = [ ] byte ( ` < / span > < / a >
2017-10-12 03:24:14 +00:00
< br / > < a class = "rowsmall starter" href = " ` )
2017-10-30 09:57:08 +00:00
var forum_38 = [ ] byte ( ` "> ` )
var forum_39 = [ ] byte ( ` < / a >
2017-06-05 11:57:27 +00:00
` )
2017-10-30 09:57:08 +00:00
var forum_40 = [ ] byte ( ` <span class="rowsmall topic_status_e topic_status_closed" title="Status: Closed"> | 🔒︎</span> ` )
var forum_41 = [ ] byte ( ` <span class="rowsmall topic_status_e topic_status_sticky" title="Status: Pinned"> | 📍︎</span> ` )
var forum_42 = [ ] byte ( `
2017-10-12 03:24:14 +00:00
< / span >
< span class = "topic_inner_right rowsmall" style = "float: right;" >
< span class = "replyCount" > ` )
2017-10-30 09:57:08 +00:00
var forum_43 = [ ] byte ( ` < / span > < br / >
2017-10-21 00:27:47 +00:00
< span class = "likeCount" > ` )
2017-10-30 09:57:08 +00:00
var forum_44 = [ ] byte ( ` < / span >
2017-08-06 15:22:18 +00:00
< / span >
< / div >
2017-10-12 03:24:14 +00:00
< div class = " rowitem topic_right passive datarow ` )
2017-10-30 09:57:08 +00:00
var forum_45 = [ ] byte ( ` topic_sticky ` )
var forum_46 = [ ] byte ( ` topic_closed ` )
var forum_47 = [ ] byte ( ` " >
2017-10-12 03:24:14 +00:00
` )
2017-10-30 09:57:08 +00:00
var forum_48 = [ ] byte ( ` <a href=" ` )
var forum_49 = [ ] byte ( ` "><img src=" ` )
var forum_50 = [ ] byte ( ` " height="64" /></a> ` )
var forum_51 = [ ] byte ( `
2017-08-06 15:22:18 +00:00
< span >
< a href = " ` )
2017-10-30 09:57:08 +00:00
var forum_52 = [ ] byte ( ` " class="lastName" style="font-size: 14px;"> ` )
var forum_53 = [ ] byte ( ` < / a > < br >
2017-10-21 00:27:47 +00:00
< span class = "rowsmall lastReplyAt" > ` )
2017-10-30 09:57:08 +00:00
var forum_54 = [ ] byte ( ` < / span >
2017-06-05 11:57:27 +00:00
< / span >
2017-01-17 07:55:46 +00:00
< / div >
2017-10-12 03:24:14 +00:00
< / div > ` )
2017-10-30 09:57:08 +00:00
var forum_55 = [ ] byte ( ` <div class="rowitem passive">There aren't any topics in this forum yet. ` )
var forum_56 = [ ] byte ( ` <a href="/topics/create/ ` )
var forum_57 = [ ] byte ( ` ">Start one?</a> ` )
var forum_58 = [ ] byte ( ` </div> ` )
var forum_59 = [ ] byte ( `
2017-01-17 07:55:46 +00:00
< / div >
2017-08-20 09:39:02 +00:00
< / main >
2017-01-17 07:55:46 +00:00
` )