aboutsummaryrefslogtreecommitdiff
path: root/client/html
diff options
context:
space:
mode:
Diffstat (limited to 'client/html')
-rw-r--r--client/html/help-about.hbs13
-rw-r--r--client/html/help-comments.hbs30
-rw-r--r--client/html/help-keyboard.hbs42
-rw-r--r--client/html/help-search.hbs265
-rw-r--r--client/html/help-tos.hbs51
-rw-r--r--client/html/help.hbs13
-rw-r--r--client/html/home.hbs5
-rw-r--r--client/html/index.htm16
-rw-r--r--client/html/login.hbs26
-rw-r--r--client/html/top_nav.hbs11
-rw-r--r--client/html/user_registration.hbs37
11 files changed, 509 insertions, 0 deletions
diff --git a/client/html/help-about.hbs b/client/html/help-about.hbs
new file mode 100644
index 0000000..1a1c377
--- /dev/null
+++ b/client/html/help-about.hbs
@@ -0,0 +1,13 @@
+<p>Szurubooru is an image board engine inspired by services such as Danbooru,
+Gelbooru and Moebooru. Its name <a href='http://sjp.pwn.pl/sjp/;2527372'>has
+its roots in Polish language and has onomatopeic meaning of scraping or
+scrubbing</a>. It is pronounced as <em>shoorubooru</em>.</p>
+
+<p class='section'><strong>Registration</strong></p>
+
+<p>The e-mail you enter during account creation is only used to retrieve your
+Gravatar and for password reminders. Only you can see it (well, except the
+database staff&hellip; we won&rsquo;t spam your mailbox anyway).</p>
+
+<p>Oh, and you can delete your account at any time. Posts you uploaded will
+stay, unless some angry admin removes them.</p>
diff --git a/client/html/help-comments.hbs b/client/html/help-comments.hbs
new file mode 100644
index 0000000..a1a7b3d
--- /dev/null
+++ b/client/html/help-comments.hbs
@@ -0,0 +1,30 @@
+<p>Comments support Markdown syntax, extended by some handy tags:</p>
+
+<table>
+ <tbody>
+ <tr>
+ <td><code>@426</code></td>
+ <td>links to post number 426</td>
+ </tr>
+ <tr>
+ <td><code>#Dragon_Ball</code></td>
+ <td>links to tag &ldquo;Dragon_Ball&rdquo;</td>
+ </tr>
+ <tr>
+ <td><code>+Pirate</code></td>
+ <td>links to user &ldquo;Pirate&rdquo;</td>
+ </tr>
+ <tr>
+ <td><code>~~new~~</code></td>
+ <td>adds strike-through</td>
+ </tr>
+ <tr>
+ <td><code>[spoiler]Lelouch survives[/spoiler]</td>
+ <td>marks text as spoiler and hides it</td>
+ </tr>
+ <tr>
+ <td><code>[sjis](´・ω・`)[/sjis]</td>
+ <td>adds SJIS art</td>
+ </tr>
+ </tbody>
+</table>
diff --git a/client/html/help-keyboard.hbs b/client/html/help-keyboard.hbs
new file mode 100644
index 0000000..8b04682
--- /dev/null
+++ b/client/html/help-keyboard.hbs
@@ -0,0 +1,42 @@
+<p>You can use your keyboard to navigate around the site. There are a few
+shortcuts:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Hotkey</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>[Q]</code></td>
+ <td>Focus search field, if available</td>
+ </tr>
+
+ <tr>
+ <td><code>[A]</code> and <code>[D]</code></td>
+ <td>Go to newer/older page or post</td>
+ </tr>
+
+ <tr>
+ <td><code>[F]</code></td>
+ <td>Cycle post fit mode</td>
+ </tr>
+
+ <tr>
+ <td><code>[E]</code></td>
+ <td>Edit post</td>
+ </tr>
+
+ <tr>
+ <td><code>[P]</code></td>
+ <td>Focus first post in post list</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Additionally, each item in top navigation can be accessed using feature
+called &ldquo;access keys&rdquo;. Pressing underlined letter while holding
+Shfit or Alt+Shift (depending on your browser) will go to the desired page
+(most browsers) or focus the link (IE).</p>
diff --git a/client/html/help-search.hbs b/client/html/help-search.hbs
new file mode 100644
index 0000000..c340f3a
--- /dev/null
+++ b/client/html/help-search.hbs
@@ -0,0 +1,265 @@
+<table>
+ <thead>
+ <tr>
+ <th>Command</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td><a href='/posts/query=Haruhi'><code>Haruhi</code></a></td>
+ <td>containing tag “Haruhi”</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=-Kyon'><code>-Kyon</code></a></td>
+ <td>not containing tag “Kyon”</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=uploader:David'><code>uploader:David</code></a></td>
+ <td>uploaded by user David</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=comment:David'><code>comment:David</code></a></td>
+ <td>commented by David</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav:David'><code>fav:David</code></a></td>
+ <td>favorited by David</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav_count:4'><code>fav_count:4</code></a></td>
+ <td>favorited by exactly four users</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav_count:4,5'><code>fav_count:4,5</code></a></td>
+ <td>favorited by four or five users</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav_count:4..'><code>fav_count:4..</code></a></td>
+ <td>favorited by at least four users</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav_count:..4'><code>fav_count:..4</code></a></td>
+ <td>favorited by at most four users</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=fav_count:4..6'><code>fav_count:4..6</code></a></td>
+ <td>favorited by at least four, but no more than six users</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=comment_count:3'><code>comment_count:3</code></a></td>
+ <td>having exactly three comments</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=score:4'><code>score:4</code></a></td>
+ <td>having score of 4</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=tag_count:7'><code>tag_count:7</code></a></td>
+ <td>tagged with exactly seven tags</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=note_count:1..'><code>note_count:1..</code></a></td>
+ <td>having at least one post note</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=feature_count:1..'><code>feature_count:1..</code></a></td>
+ <td>having been featured at least once</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=date:today'><code>date:today</code></a></td>
+ <td>posted today</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=date:yesterday'><code>date:yesterday</code></a></td>
+ <td>posted yesterday</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=date:2000'><code>date:2000</code></a></td>
+ <td>posted in year 2000</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=date:2000-01'><code>date:2000-01</code></a></td>
+ <td>posted in January, 2000</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=date:2000-01-01'><code>date:2000-01-01</code></a></td>
+ <td>posted on January 1st, 2000</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=id:1'><code>id:1</code></a></td>
+ <td>having specific post ID</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=name:hash'><code>name:<em>hash</em></code></a></td>
+ <td>having specific post name (hash in full URLs)</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=file_size:100..'><code>file_size:100..</code></a></td>
+ <td>having at least 100 bytes</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=image_width:100..'><code>image_width:100..</code></a></td>
+ <td>being at least 100 pixels wide</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=image_height:100..'><code>image_height:100..</code></a></td>
+ <td>being at least 100 pixels tall</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=image_area:10000..'><code>image_area:10000..</code></a></td>
+ <td>having at least 10000 pixels</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=type:image'><code>type:image</code></a></td>
+ <td>only image posts</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=type:flash'><code>type:flash</code></a></td>
+ <td>only Flash posts</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=type:youtube'><code>type:youtube</code></a></td>
+ <td>only Youtube posts</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=type:video'><code>type:video</code></a></td>
+ <td>only video posts</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=special:liked'><code>special:liked</code></a></td>
+ <td>posts liked by currently logged in user</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=special:disliked'><code>special:disliked</code></a></td>
+ <td>posts disliked by currently logged in user</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=special:fav'><code>special:fav</code></a></td>
+ <td>posts added to favorites by currently logged in user</td>
+ </tr>
+ <tr>
+ <td><a href='/posts/query=special:tumbleweed'><code>special:tumbleweed</code></a></td>
+ <td>posts with score of 0, without comments and without favorites</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Most of the commands support ranged and composites values, e.g.
+<code>id:<em>number</em></code> operator supports respectively
+<a href='/posts/query=id:5..7'><code>id:5..7</code></a> and
+<a href='/posts/query=id:5,10,15'><code>id:5,10,15</code></a>.
+You can combine tags and negate any of them for interesting results.
+<a href='/posts/query=sea -fav_count:..8 type:flash uploader:Pirate'><code>sea -fav_count:8.. type:swf uploader:Pirate</code></a>
+will show you flash files tagged as sea, that were liked by seven people at
+most, uploaded by user Pirate.</p>
+
+<p>All of the above can be sorted using additional tag in form of
+<code>order:<em>keyword</em></code>:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Command</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td><a href='/posts/query=order:random'><code>order:random</code></a></td>
+ <td>as random as it can get</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:id'><code>order:id</code></a></td>
+ <td>highest to lowest post ID (default browse view)</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:creation_date'><code>order:creation_date</code></a></td>
+ <td>newest to oldest (pretty much same as above)</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=-order:creation_date'><code>-order:creation_date</code></a></td>
+ <td>oldest to newest</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:creation_date,asc'><code>order:creation_date,asc</code></a></td>
+ <td>oldest to newest (ascending order, default = descending)</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:edit_date'><code>order:edit_date</code></a></td>
+ <td>like <code>creation_date</code>, only looks at last edit time</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:score'><code>order:score</code></a></td>
+ <td>highest scored</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:file_size'><code>order:file_size</code></a></td>
+ <td>largest files first</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:image_width'><code>order:image_width</code></a></td>
+ <td>widest images first</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:image_height'><code>order:image_height</code></a></td>
+ <td>tallest images first</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:image_area'><code>order:image_area</code></a></td>
+ <td>largest images first</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:tag_count'><code>order:tag_count</code></a></td>
+ <td>with most tags</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:fav_count'><code>order:fav_count</code></a></td>
+ <td>loved by most</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:comment_count'><code>order:comment_count</code></a></td>
+ <td>most commented first</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:fav_date'><code>order:fav_date</code></a></td>
+ <td>recently added to favorites</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:comment_date'><code>order:comment_date</code></a></td>
+ <td>recently commented</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:feature_date'><code>order:feature_date</code></a></td>
+ <td>recently featured</td>
+ </tr>
+
+ <tr>
+ <td><a href='/posts/query=order:feature_count'><code>order:feature_count</code></a></td>
+ <td>most often featured</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>As shown with <a
+href='/posts/query=-order:creation_date'><code>-order:creation_date</code></a>,
+any of them can be reversed in the same way as negating other tags: by placing
+a dash before the tag.</p>
diff --git a/client/html/help-tos.hbs b/client/html/help-tos.hbs
new file mode 100644
index 0000000..2b35f8f
--- /dev/null
+++ b/client/html/help-tos.hbs
@@ -0,0 +1,51 @@
+<p>By accessing {{ name }} (&ldquo;Site&rdquo;) you agree to the following
+Terms of Service. If you do not agree to these terms, then please do not access
+the Site.</p>
+
+<ul>
+ <li>The Site is presented to you AS IS, without any warranty, express or
+ implied. You will not hold the Site or its staff members liable for damages
+ caused by the use of the site.</li>
+ <li>The Site reserves the right to delete or modify your account, or any
+ content you have posted to the site.</li>
+ <li>The Site reserves the right to change these Terms of Service without
+ prior notice.</li>
+ <li>If you are a minor, then you will not use the Site.</li>
+ <li>You are using the Site only for personal use.</li>
+ <li>You will not spam, troll or offend anyone.</li>
+ <li>You accept that the Site is not liable for any content that you may
+ stumble upon.</li>
+</ul>
+
+<p class='section' id='section-prohibited-content'><strong>Prohibited content</strong></p>
+
+<ul>
+ <li>Child pornography: any photograph or photorealistic drawing or movie
+ that depicts children in a sexual manner. This includes nudity, explicit
+ sex, implied sex, or sexually persuasive positions.</li>
+
+ <li>Bestiality: any photograph or photorealistic drawing or movie that
+ depicts humans having sex (either explicit or implied) with other non-human
+ animals.</li>
+
+ <li>Any depiction of extreme mutilation, extreme bodily distension,
+ feces.</li>
+
+ <li>Personal images: any image that is suspected to be uploaded for
+ personal use. This includes, but is not limited to, avatars and forum
+ signatures.</li>
+</ul>
+
+<p class='section' id='section-privacy-policy'><strong>Privacy policy</strong></p>
+
+<p>The Site will not disclose the IP address or email address of any user
+except to the staff.</p>
+
+<p>Posts, comments, favorites, ratings and other actions linked to your account
+will be stored in the Site&rsquo;s database. The &ldquo;Upload
+anonymously&rdquo; option allows you to post content without linking it to your
+account&nbsp;&ndash; meaning your nickname will not be stored in the database
+nor shown in the &ldquo;Uploader&rdquo; field.</p>
+
+<p>Cookies are used to store your session data in order to keep you logged in
+and personalize your web experience.</p>
diff --git a/client/html/help.hbs b/client/html/help.hbs
new file mode 100644
index 0000000..5a2fccd
--- /dev/null
+++ b/client/html/help.hbs
@@ -0,0 +1,13 @@
+<div class='content-wrapper' id='help'>
+ <nav class='text-nav'><!--
+ --><ul><!--
+ --><li data-name='about'><a href='/help/about'>About</a></li><!--
+ --><li data-name='keyboard'><a href='/help/keyboard'>Keyboard</a></li><!--
+ --><li data-name='search'><a href='/help/search'>Search syntax</a></li><!--
+ --><li data-name='comments'><a href='/help/comments'>Comments</a></li><!--
+ --><li data-name='tos'><a href='/help/tos'>Terms of service</a></li><!--
+ --></ul><!--
+ --></nav>
+
+ <div class='content'>{{{ this.content }}}</div>
+</div>
diff --git a/client/html/home.hbs b/client/html/home.hbs
new file mode 100644
index 0000000..fc476b5
--- /dev/null
+++ b/client/html/home.hbs
@@ -0,0 +1,5 @@
+<div class='content-wrapper transparent' id='home'>
+ <div class='messages'></div>
+ <h1>{{name}}</h1>
+ <footer>Version: <span class='version'>{{version}}</span> (built {{buildDate}})</footer>
+</div>
diff --git a/client/html/index.htm b/client/html/index.htm
new file mode 100644
index 0000000..2dbceab
--- /dev/null
+++ b/client/html/index.htm
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset='utf-8'/>
+ <title><!-- change via config.ini --></title>
+ <link href='/bundle.min.css' rel='stylesheet' type='text/css'/>
+ <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css' rel='stylesheet' type='text/css'/>
+ <link href='//fonts.googleapis.com/css?family=Inconsolata|Droid+Sans' rel='stylesheet' type='text/css'/>
+ <link rel='shortcut icon' type='image/png' href='/favicon.png'/>
+</head>
+<body>
+ <div id='top-nav-holder'></div>
+ <div id='content-holder'></div>
+ <script type='text/javascript' src='/bundle.min.js'></script>
+</body>
+</html>
diff --git a/client/html/login.hbs b/client/html/login.hbs
new file mode 100644
index 0000000..651ac92
--- /dev/null
+++ b/client/html/login.hbs
@@ -0,0 +1,26 @@
+<div class='content-wrapper' id='login'>
+ <h1>Log in</h1>
+ <form>
+ <fieldset class='input'>
+ <ul>
+ <li>
+ <label for='user-name'>User name</label>
+ <input id='user-name' name='name' type='text' required/>
+ </li>
+ <li>
+ <label for='user-password'>Password</label>
+ <input id='user-password' name='password' type='password' required/>
+ </li>
+ <li>
+ <input id='remember-user' name='remember-user' type='checkbox'/>
+ <label for='remember-user' class='checkbox'>Remember me</label>
+ </li>
+ </ul>
+ </fieldset>
+ <fieldset class='messages'></fieldset>
+ <fieldset class='buttons'>
+ <input type='submit' value='Log in'/>
+ <a>Forgot the password?</a>
+ </fieldset>
+ </form>
+</div>
diff --git a/client/html/top_nav.hbs b/client/html/top_nav.hbs
new file mode 100644
index 0000000..fb693c2
--- /dev/null
+++ b/client/html/top_nav.hbs
@@ -0,0 +1,11 @@
+<nav id='top-nav' class='text-nav'>
+ <ul><!--
+ -->{{#each items}}<!--
+ -->{{#if this.available}}<!--
+ --><li data-name='{{@key}}'><!--
+ --><a href='{{this.url}}' accesskey='{{this.accessKey}}'>{{this.name}}</a><!--
+ --></li><!--
+ -->{{/if}}<!--
+ -->{{/each}}<!--
+ --></ul>
+</nav>
diff --git a/client/html/user_registration.hbs b/client/html/user_registration.hbs
new file mode 100644
index 0000000..a17997f
--- /dev/null
+++ b/client/html/user_registration.hbs
@@ -0,0 +1,37 @@
+<div class='content-wrapper' id='user-registration'>
+ <h1>Registration</h1>
+ <form autocomplete='off'>
+ <fieldset class='input'>
+ <ul>
+ <li>
+ <label for='user-name'>User name</label>
+ <input id='user-name' name='user-name' type='text' autocomplete='off' placeholder='letters, digits, _, -' required/>
+ </li>
+ <li>
+ <label for='user-password'>Password</label>
+ <input id='user-password' name='user-password' type='password' autocomplete='off' placeholder='5+ characters' required/>
+ </li>
+ <li>
+ <label for='user-email'>Email</label>
+ <input id='user-email' name='user-email' type='email' autocomplete='off' placeholder='optional'/>
+ <p class='hint'>Used for password reminder and to show a <a href='http://gravatar.com/'>Gravatar</a>. Leave blank for random Gravatar.</p>
+ </li>
+ </ul>
+ </fieldset>
+ <fieldset class='messages'></fieldset>
+ <fieldset class='buttons'>
+ <input type='submit' value='Create an account'/>
+ </fieldset>
+ </form>
+ <div class='info'>
+ <p>Registered users can:</p>
+ <ul>
+ <li><i class='fa fa-upload'></i> upload new posts</li>
+ <li><i class='fa fa-heart'></i> mark them as favorite</li>
+ <li><i class='fa fa-commenting-o'></i> add comments</li>
+ <li><i class='fa fa-star-half-o'></i> vote up/down on posts and comments</li>
+ </ul>
+ <hr/>
+ <p>By creating an account, you are agreeing to the <a href='/help/tos'>Terms of Service</a>.</p>
+ </div>
+</div>

© 2015 - 2026 Jakob L. Kreuze