first commit

This commit is contained in:
統計部員2 2023-09-28 02:07:30 +09:00
commit bfe5acd27b
97 changed files with 7030 additions and 0 deletions

6
.htaccess Normal file
View File

@ -0,0 +1,6 @@
<FilesMatch "\.html$">
Header set Content-Type 'text/html; charset=UTF-8'
</FilesMatch>
<FilesMatch "\.js$">
Header set Content-Type 'application/javascript; charset=UTF-8'
</FilesMatch>

13
LICENSE.txt Normal file
View File

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2023 nore <webmaster@rentalbbs.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

4
README.md Normal file
View File

@ -0,0 +1,4 @@
Details: https://delight.rentalbbs.net/delight.html
# Lisence
The license in the LICENSE.txt file applies, unless a separate license is listed in the source code.

BIN
b1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

24
bbsmenu.php Normal file
View File

@ -0,0 +1,24 @@
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>BBS MENU for <?=$_SERVER['HTTP_HOST']?></TITLE>
<BASE TARGET="_blank">
</HEAD>
<BODY BGCOLOR="SEASHELL" TEXT="#E60565" LINK="#444494" ALINK="#a99999" VLINK="#444494">
<font size="2">
<br><br><B><?=$_SERVER['HTTP_HOST']?></B><br>
<?php
$dir = './';
$list1 = glob($dir . '*', GLOB_ONLYDIR);
$count = 0;
foreach ($list1 as $dir1) {
++$count;
$dir1 = substr($dir1, 1)."/";
if ($dir1 == "/test/" || $dir1 == "/static/" || $dir1 == "/images/") continue;
echo '<A HREF="http://'.$_SERVER['HTTP_HOST'].$dir1.'">'.$dir1.'</A>';
if ($count != count($list1)) echo "<br>";
echo "\n";
}
?></FONT>
</BODY>
</HTML>

BIN
g1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
images/btn4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
images/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

BIN
images/icon_close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

BIN
images/loading.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
images/next.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

BIN
images/prev.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

37
index.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<meta name="application-name" content="delight">
<link rel="apple-touch-icon" href="icon.png">
<link rel="icon" href="favicon.ico">
<meta name="referrer" content="origin">
<script type="text/javascript" src="/static/jquery-1.11.3.min.js"></script>
<link href="/static/st.css" rel="stylesheet" type="text/css">
<link href="/static/milligram.css" rel="stylesheet" type="text/css">
<link href="/static/s.css" rel="stylesheet" type="text/css">
<link href="/static/read.css" rel="stylesheet" type="text/css">
</head>
<body>
<section class="section">
<div id="body">
<script type="text/javascript" src="/static/thread.js"></script>
<div id="followheader" class="hidden maxwidth100 height2p5 stickymenu container" style="display: block;"><div class="row noflex maxwidth100 white padding0p5 maxheight2p5 borderbottomlightgrey"><div class="topmenu" id="header"></div></div></div>
<div class="title" id="title"></div>
<div class="pagestats" id="count"></div>
<div class="search"><input type="text" id="searchInput" placeholder="スレ内検索" onchange="search()"></div>
<div class="thread" id="thread">
<noscript><p>JavaScriptを有効にしてください<br>Please turn on your JavaScript</p></noscript>
</div>
<div class="newposts"><center><a href="javascript:load()">リロード<img alt="再読み込み" loading="lazy" decoding="async" data-nimg="1" style="color: transparent;" src="/static/reload.svg" width="16" height="16"></a></center><hr></div><div class="bottommenu"></div><div class="formbox" style="display:none"><form method="POST" accept-charset="UTF-8" action="/test/post-v2.php"><div class="fbox" style="max-width: 600px;"><span class="fhead"><span class="spformhead" style="display:none;border-radius:3px 3px 0 0;color:#666;padding:3px;"><span style="padding-top: 10px;display: inline-block;" onclick="fclose()">キャンセル</span></span><span class="submitbtn"><input type="submit" value="新規投稿" name="submit" onclick="Post()"></span></span><span class="input" style="display: block;"><a id="iconlink" target="_blank"><img id="icon" class="icon" width="50" height="50" align="left"></a><input name="name" style="width:50%;" placeholder="名前"></span><span class="input"><input name="mail" size="19" value="" placeholder="E-mail"></span><div class="backmsg" style="display: inline-block;"><input value="on" type="checkbox" id="seticon" name="icon" checked><a href="/test/icon.html">アイコン</a> <a href="javascript:BackMSG()">下書きを復元</a></div><textarea rows="5" cols="70" wrap="off" name="comment"></textarea><br>画像:<input id="uploadImage" type="file" name="file" size="50" onchange="upload();"><br></div></form></div>
<div id="hidemetoo" class="side p85 slightpad nobullets">
<div style="min-height:50px" id="rule">■ ローカルルール<br></div>
<div style="min-height:50px" id="kokuti">■ 告知欄<br></div>
<p style="margin: 5rem 0"></p>
</div>
<script type="text/javascript" src="/static/read.js"></script>
<div class="footer">We're sure you'll have a good time with delight and/or 3ch. :)</div>
</div></section>
</body>
</html>

0
index2.html Normal file
View File

76
static/a.css Normal file
View File

@ -0,0 +1,76 @@
body {background: #fafafa;color: #333;font-size: 14px;word-break: break-word;overflow-wrap: break-word;overscroll-behavior-y: contain;}
.section-subtitle {font-size: 12px;font-size: 1.2rem;background: #333;padding: 6px 10px;margin: 0;color: #fff;font-weight: normal;}
.contents {padding: 10px;}
.form-control {display: block;width: 100%;margin-top: 5px;height: 34px;font-size: 14px;line-height: 1.42857143;color: #555555;background-color: #ffffff;background-image: none;border: 1px solid #cccccc;border-radius: 4px;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;}
.notice, p.notice {font-size: 12px;color: #999;line-height: 1.4;}
.btn-primary:hover {color: #ffffff;background-color: #286090;border-color: #204d74;}
.btn:hover, .btn:focus, .btn.focus {color: #333333;text-decoration: none;}
.btn-block {display: block;width: 100%;}
.btn-lg, .btn-group-lg > .btn {padding: 10px 16px;font-size: 18px;line-height: 1.3333333;border-radius: 6px;}
.btn {display: inline-block;margin-bottom: 0;font-weight: normal;text-align: center;vertical-align: middle;-ms-touch-action: manipulation;touch-action: manipulation;cursor: pointer;background-image: none;border: 1px solid transparent;white-space: nowrap;padding: 6px 12px;font-size: 14px;line-height: 1.42857143;border-radius: 4px;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
.font-weight-normal {
font-weight: 400 !important;
}
.mb-3 {
margin-bottom: 1rem !important;
font-size: 1.75rem;
}
button, input, optgroup, select, textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button, input {
overflow: visible;
}
[type="button"], [type="reset"], [type="submit"], button {
-webkit-appearance: button;
}
.btn {
display: inline-block;
font-weight: 400;
color: #212529;
text-align: center;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: .375rem .75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: .25rem;
transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.btn-primary {
color: #fff;
background-color: #007bff;
border-color: #007bff;
}
.btn-group-lg > .btn, .btn-lg {
padding: .5rem 1rem;
font-size: 1.25rem;
line-height: 1.5;
border-radius: .3rem;
}
.btn-block {
display: block;
width: 100%;
}
.btn-primary {
background-color: #48526b !important;
border-color: #48526b;
}
button.link-style-btn{
cursor: pointer;
border: none;
background: none;
color: #0033cc;
}
button.link-style-btn:hover{
text-decoration: underline;
color: #002080;
}

13
static/ares.svg Normal file
View File

@ -0,0 +1,13 @@
<!--?xml version="1.0" encoding="utf-8"?-->
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="_x32_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="width: 16px; height: 16px; opacity: 1;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4B4B4B;}
</style>
<g>
<path class="st0" d="M442.539,73.946c-44.84-37.927-108.949-60.084-187.344-60.066c-74.388,0-137.905,20.981-183.328,58.411 c-22.702,18.686-40.758,41.492-53.06,67.428C6.489,165.648-0.019,194.641,0,225.422c-0.019,37.214,7.768,71.586,23.511,101.577 c14.99,28.664,37.297,53.04,65.699,72.103c-6.715,28.269-16.157,68.67-16.157,68.689c-0.432,1.815-0.658,3.706-0.639,5.624 c-0.018,7.59,3.518,14.897,9.667,19.608l0.038,0.028v0.01c4.402,3.348,9.705,5.06,15.01,5.06c3.988,0,8.031-0.969,11.68-2.934 l0.358-0.188l0.357-0.216c0.019-0.009,5.079-3.01,12.866-7.618c11.661-6.903,29.435-17.407,45.291-26.745 c7.919-4.665,15.367-9.038,21.31-12.508c5.924-3.46,10.476-6.103,12.17-7.034l0.075-0.047l0.112-0.065 c22.1-12.527,39.705-14.634,53.849-14.709c58.702-0.085,121.212-11.464,171.13-42.62c24.902-15.602,46.57-36.413,61.806-63.056 c15.272-26.624,23.886-58.853,23.868-96.16C512.112,165.545,487.416,111.78,442.539,73.946z M454.709,301.24 c-8.822,15.376-20.37,28.316-34.232,39.282c-20.784,16.429-46.871,28.288-75.479,35.934c-28.598,7.664-59.652,11.088-89.802,11.078 c-18.508-0.075-44.369,3.414-72.752,19.684v-0.01c-3.141,1.749-10.137,5.822-19.354,11.219 c-13.222,7.759-30.62,18.019-45.14,26.614c3.536-15.094,7.656-32.576,10.721-45.413v-0.019c0.508-2.144,0.884-4.468,0.884-7.11 c0.038-3.724-0.922-8.266-3.065-12.046c-1.6-2.831-3.65-5.06-5.436-6.583c-2.746-2.285-4.796-3.273-5.944-3.903l-1.166-0.592 l-0.132-0.075c-25.147-16.204-43.655-36.329-56.18-60.188c-12.527-23.897-19.11-51.781-19.11-83.69 c0-25.401,5.285-48.526,15.084-69.187c14.708-30.94,39.667-56.605,73.786-74.896c34.082-18.254,77.398-28.937,127.805-28.937 c71.284,0.019,125.933,20.031,162.46,50.952c36.47,31.025,55.692,72.799,55.824,120.864 C473.442,255.723,466.407,280.729,454.709,301.24z" style="fill: rgb(75, 75, 75);"/>
<path class="st0" d="M135.055,197.171c-16.278,0-29.472,13.204-29.472,29.483c0,16.278,13.194,29.473,29.472,29.473 c16.288,0,29.482-13.194,29.482-29.473C164.538,210.375,151.344,197.171,135.055,197.171z" style="fill: rgb(75, 75, 75);"/>
<path class="st0" d="M250.024,197.171c-16.28,0-29.474,13.204-29.474,29.483c0,16.278,13.194,29.473,29.474,29.473 c16.288,0,29.482-13.194,29.482-29.473C279.506,210.375,266.312,197.171,250.024,197.171z" style="fill: rgb(75, 75, 75);"/>
<path class="st0" d="M365,197.171c-16.278,0-29.482,13.204-29.482,29.483c0,16.278,13.204,29.473,29.482,29.473 c16.288,0,29.484-13.194,29.484-29.473C394.484,210.375,381.288,197.171,365,197.171z" style="fill: rgb(75, 75, 75);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

46
static/board.js Normal file
View File

@ -0,0 +1,46 @@
let threadmode = false;
path = location.pathname.split('/');
if (!path[1]) {
path = location.hash.split('/');
bbs = path[0].replace('#', '');
threadmode = true;
}else bbs = path[1];
setfile = '/'+bbs+'/setting.json';
rulefile = '/'+bbs+'/head.txt';
kokutifile = '/'+bbs+'/kokuti.txt';
const sroad = new XMLHttpRequest();
sroad.open('get', setfile);
sroad.send();
sroad.onreadystatechange = function() {
if(sroad.readyState === 4 && sroad.status === 200) {
const setting = JSON.parse(this.responseText);
if (setting['BBS_TITLE'] && !threadmode) {
if (document.getElementById('headtitle')) document.getElementById('headtitle').innerHTML = setting['BBS_TITLE'];
if (document.getElementById('subbacktitle')) document.getElementById('subbacktitle').innerHTML = setting['BBS_TITLE'];
document.title = setting['BBS_TITLE']+' | '+location.hostname;
}
if (setting['background']) {
document.body.style.background = setting['background'];
}
}
}
if (document.getElementById('rule')) {
const lroad = new XMLHttpRequest();
lroad.open('get', rulefile);
lroad.send();
lroad.onreadystatechange = function() {
if(lroad.readyState === 4 && lroad.status === 200) {
document.getElementById('rule').innerHTML += this.responseText;
}
}
}
if (document.getElementById('kokuti')) {
const kroad = new XMLHttpRequest();
kroad.open('get', kokutifile);
kroad.send();
kroad.onreadystatechange = function() {
if(kroad.readyState === 4 && kroad.status === 200) {
document.getElementById('kokuti').innerHTML += this.responseText;
}
}
}

1
static/clientid.js Normal file

File diff suppressed because one or more lines are too long

96
static/dark.css Normal file
View File

@ -0,0 +1,96 @@
body {
background: #262626 !important;
color: #fff !important;
}
#body {
background-color: #262626;
}
.post_hover,.rep-comment {
background: #262626 !important;
color: #fff !important;
border: 1px solid #808080 !important;
}
.treeView {
background: #262626 !important;
color: #fff !important;
}
.message,.title,.number,#postForm,.t,.menulink,.option_style_2,.option_style_5,.tlnotice,#rule,#kokuti {
color: #fff !important;
}
ins {
background: #262626 !important;
color: #fff !important;
}
body > .topmenu a {
color: darkgoldenrod !important;
}
body > .bottommenu a {
color: darkgoldenrod !important;
}
.date,.created {
color: #808080 !important;
}
.id {
color: #999999 !important;
}
.menu {
background: #262626 !important;
}
.bbs-textarea {
background: #262626 !important;
color: #fff !important;
}
input {
background: #262626 !important;
color: #fff !important;
}
textarea {
background: #262626 !important;
color: #fff !important;
}
#rModal > div {
background: #262626 !important;
color: #fff !important;
}
.box,.side {
background: #262626 !important;
color: #fff !important;
}
.thread {
background: #262626 !important;
color: #fff;
}
table {
background: #262626 !important;
color: #fff !important;
}
#sp-header {
background: #262626 !important;
color: #fff !important;
border: 1px solid #808080 !important;
}
body > .newposts a[href] {
color: darkgoldenrod !important;
}
.search-header, .wi {
background: #262626 !important;
}
.fbox {
background: #262626 !important;
}
.rclose,.mclose,.rcount,.fas,.back-link,.mbutton {
color: #808080 !important;
}
.post {
border-bottom: .5px solid #333;
}
.asetting_5 {
border-top: .5px solid #333;
border-left: .5px solid #333;
}
.threads {
border-bottom: .5px solid #333;
}
#hidemetoo a {
color: darkgoldenrod !important;
}

1
static/inactive.js Normal file

File diff suppressed because one or more lines are too long

85
static/index.css Normal file

File diff suppressed because one or more lines are too long

8
static/index.js Normal file
View File

@ -0,0 +1,8 @@
document.body.innerHTML = '';
const mode = new URLSearchParams(window.location.search);
let request;
if (mode.get('m') == "subback") request = 'subback.js';
else request = 'timeline.js';
let requestjs = document.createElement("script");
requestjs.src = "/static/"+request;
document.body.appendChild(requestjs);

5
static/jquery-1.11.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

204
static/lightbox.css Normal file
View File

@ -0,0 +1,204 @@
body.lb-disable-scrolling {
overflow: hidden;
}
.lightboxOverlay {
position: absolute;
top: 0;
left: 0;
z-index: 9999;
background-color: black;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
opacity: 0.8;
display: none;
}
.lightbox {
position: absolute;
left: 0;
width: 100%;
z-index: 10000;
text-align: center;
line-height: 0;
font-weight: normal;
outline: none;
}
.lightbox .lb-image {
display: block;
height: auto;
max-width: inherit;
max-height: none;
border-radius: 3px;
/* Image border */
border: 4px solid white;
}
.lightbox a img {
border: none;
}
.lb-outerContainer {
position: relative;
*zoom: 1;
width: 250px;
height: 250px;
margin: 0 auto;
border-radius: 4px;
/* Background color behind image.
This is visible during transitions. */
background-color: white;
}
.lb-outerContainer:after {
content: "";
display: table;
clear: both;
}
.lb-loader {
position: absolute;
top: 43%;
left: 0;
height: 25%;
width: 100%;
text-align: center;
line-height: 0;
}
.lb-cancel {
display: block;
width: 32px;
height: 32px;
margin: 0 auto;
background: url(../images/loading.gif) no-repeat;
}
.lb-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
}
.lb-container > .nav {
left: 0;
}
.lb-nav a {
outline: none;
background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}
.lb-prev, .lb-next {
height: 100%;
cursor: pointer;
display: block;
}
.lb-nav a.lb-prev {
width: 34%;
left: 0;
float: left;
background: url(../images/prev.png) left 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-prev:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-nav a.lb-next {
width: 64%;
right: 0;
float: right;
background: url(../images/next.png) right 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-next:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-dataContainer {
margin: 0 auto;
padding-top: 5px;
*zoom: 1;
width: 100%;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.lb-dataContainer:after {
content: "";
display: table;
clear: both;
}
.lb-data {
padding: 0 4px;
color: #ccc;
}
.lb-data .lb-details {
width: 85%;
float: left;
text-align: left;
line-height: 1.1em;
}
.lb-data .lb-caption {
font-size: 13px;
font-weight: bold;
line-height: 1em;
}
.lb-data .lb-caption a {
color: #4ae;
}
.lb-data .lb-number {
display: block;
clear: left;
padding-bottom: 1em;
font-size: 12px;
color: #999999;
}
.lb-data .lb-close {
display: block;
float: right;
width: 30px;
height: 30px;
background: url(../images/close.png) top right no-repeat;
text-align: right;
outline: none;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
opacity: 0.7;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.lb-data .lb-close:hover {
cursor: pointer;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}

554
static/lightbox.js Normal file
View File

@ -0,0 +1,554 @@
/*!
* Lightbox v2.11.3
* by Lokesh Dhakar
*
* More info:
* http://lokeshdhakar.com/projects/lightbox2/
*
* Copyright Lokesh Dhakar
* Released under the MIT license
* https://github.com/lokesh/lightbox2/blob/master/LICENSE
*
* @preserve
*/
// Uses Node, AMD or browser globals to create a module.
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory(require('jquery'));
} else {
// Browser globals (root is window)
root.lightbox = factory(root.jQuery);
}
}(this, function ($) {
function Lightbox(options) {
this.album = [];
this.currentImageIndex = void 0;
this.init();
// options
this.options = $.extend({}, this.constructor.defaults);
this.option(options);
}
// Descriptions of all options available on the demo site:
// http://lokeshdhakar.com/projects/lightbox2/index.html#options
Lightbox.defaults = {
albumLabel: 'Image %1 of %2',
alwaysShowNavOnTouchDevices: false,
fadeDuration: 600,
fitImagesInViewport: true,
imageFadeDuration: 600,
// maxWidth: 800,
// maxHeight: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: true,
wrapAround: false,
disableScrolling: false,
/*
Sanitize Title
If the caption data is trusted, for example you are hardcoding it in, then leave this to false.
This will free you to add html tags, such as links, in the caption.
If the caption data is user submitted or from some other untrusted source, then set this to true
to prevent xss and other injection attacks.
*/
sanitizeTitle: false
};
Lightbox.prototype.option = function(options) {
$.extend(this.options, options);
};
Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) {
return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages);
};
Lightbox.prototype.init = function() {
var self = this;
// Both enable and build methods require the body tag to be in the DOM.
$(document).ready(function() {
self.enable();
self.build();
});
};
// Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes
// that contain 'lightbox'. When these are clicked, start lightbox.
Lightbox.prototype.enable = function() {
var self = this;
$('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) {
self.start($(event.currentTarget));
return false;
});
};
// Build html for the lightbox and the overlay.
// Attach event handlers to the new DOM elements. click click click
Lightbox.prototype.build = function() {
if ($('#lightbox').length > 0) {
return;
}
var self = this;
// The two root notes generated, #lightboxOverlay and #lightbox are given
// tabindex attrs so they are focusable. We attach our keyboard event
// listeners to these two elements, and not the document. Clicking anywhere
// while Lightbox is opened will keep the focus on or inside one of these
// two elements.
//
// We do this so we can prevent propogation of the Esc keypress when
// Lightbox is open. This prevents it from intefering with other components
// on the page below.
//
// Github issue: https://github.com/lokesh/lightbox2/issues/663
$('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"></div><div id="lightbox" tabindex="-1" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" aria-label="Previous image" href="" ></a><a class="lb-next" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));
// Cache jQuery objects
this.$lightbox = $('#lightbox');
this.$overlay = $('#lightboxOverlay');
this.$outerContainer = this.$lightbox.find('.lb-outerContainer');
this.$container = this.$lightbox.find('.lb-container');
this.$image = this.$lightbox.find('.lb-image');
this.$nav = this.$lightbox.find('.lb-nav');
// Store css values for future lookup
this.containerPadding = {
top: parseInt(this.$container.css('padding-top'), 10),
right: parseInt(this.$container.css('padding-right'), 10),
bottom: parseInt(this.$container.css('padding-bottom'), 10),
left: parseInt(this.$container.css('padding-left'), 10)
};
this.imageBorderWidth = {
top: parseInt(this.$image.css('border-top-width'), 10),
right: parseInt(this.$image.css('border-right-width'), 10),
bottom: parseInt(this.$image.css('border-bottom-width'), 10),
left: parseInt(this.$image.css('border-left-width'), 10)
};
// Attach event handlers to the newly minted DOM elements
this.$overlay.hide().on('click', function() {
self.end();
return false;
});
this.$lightbox.hide().on('click', function(event) {
if ($(event.target).attr('id') === 'lightbox') {
self.end();
}
});
this.$outerContainer.on('click', function(event) {
if ($(event.target).attr('id') === 'lightbox') {
self.end();
}
return false;
});
this.$lightbox.find('.lb-prev').on('click', function() {
if (self.currentImageIndex === 0) {
self.changeImage(self.album.length - 1);
} else {
self.changeImage(self.currentImageIndex - 1);
}
return false;
});
this.$lightbox.find('.lb-next').on('click', function() {
if (self.currentImageIndex === self.album.length - 1) {
self.changeImage(0);
} else {
self.changeImage(self.currentImageIndex + 1);
}
return false;
});
/*
Show context menu for image on right-click
There is a div containing the navigation that spans the entire image and lives above of it. If
you right-click, you are right clicking this div and not the image. This prevents users from
saving the image or using other context menu actions with the image.
To fix this, when we detect the right mouse button is pressed down, but not yet clicked, we
set pointer-events to none on the nav div. This is so that the upcoming right-click event on
the next mouseup will bubble down to the image. Once the right-click/contextmenu event occurs
we set the pointer events back to auto for the nav div so it can capture hover and left-click
events as usual.
*/
this.$nav.on('mousedown', function(event) {
if (event.which === 3) {
self.$nav.css('pointer-events', 'none');
self.$lightbox.one('contextmenu', function() {
setTimeout(function() {
this.$nav.css('pointer-events', 'auto');
}.bind(self), 0);
});
}
});
this.$lightbox.find('.lb-loader, .lb-close').on('click', function() {
self.end();
return false;
});
};
// Show overlay and lightbox. If the image is part of a set, add siblings to album array.
Lightbox.prototype.start = function($link) {
var self = this;
var $window = $(window);
$window.on('resize', $.proxy(this.sizeOverlay, this));
this.sizeOverlay();
this.album = [];
var imageNumber = 0;
function addToAlbum($link) {
self.album.push({
alt: $link.attr('data-alt'),
link: $link.attr('href'),
title: $link.attr('data-title') || $link.attr('title')
});
}
// Support both data-lightbox attribute and rel attribute implementations
var dataLightboxValue = $link.attr('data-lightbox');
var $links;
if (dataLightboxValue) {
$links = $($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]');
for (var i = 0; i < $links.length; i = ++i) {
addToAlbum($($links[i]));
if ($links[i] === $link[0]) {
imageNumber = i;
}
}
} else {
if ($link.attr('rel') === 'lightbox') {
// If image is not part of a set
addToAlbum($link);
} else {
// If image is part of a set
$links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]');
for (var j = 0; j < $links.length; j = ++j) {
addToAlbum($($links[j]));
if ($links[j] === $link[0]) {
imageNumber = j;
}
}
}
}
// Position Lightbox
var top = $window.scrollTop() + this.options.positionFromTop;
var left = $window.scrollLeft();
this.$lightbox.css({
top: top + 'px',
left: left + 'px'
}).fadeIn(this.options.fadeDuration);
// Disable scrolling of the page while open
if (this.options.disableScrolling) {
$('body').addClass('lb-disable-scrolling');
}
this.changeImage(imageNumber);
};
// Hide most UI elements in preparation for the animated resizing of the lightbox.
Lightbox.prototype.changeImage = function(imageNumber) {
var self = this;
var filename = this.album[imageNumber].link;
var filetype = filename.split('.').slice(-1)[0];
var $image = this.$lightbox.find('.lb-image');
// Disable keyboard nav during transitions
this.disableKeyboardNav();
// Show loading state
this.$overlay.fadeIn(this.options.fadeDuration);
$('.lb-loader').fadeIn('slow');
this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();
this.$outerContainer.addClass('animating');
// When image to show is preloaded, we send the width and height to sizeContainer()
var preloader = new Image();
preloader.onload = function() {
var $preloader;
var imageHeight;
var imageWidth;
var maxImageHeight;
var maxImageWidth;
var windowHeight;
var windowWidth;
$image.attr({
'alt': self.album[imageNumber].alt,
'src': filename
});
$preloader = $(preloader);
$image.width(preloader.width);
$image.height(preloader.height);
windowWidth = $(window).width();
windowHeight = $(window).height();
// Calculate the max image dimensions for the current viewport.
// Take into account the border around the image and an additional 10px gutter on each side.
maxImageWidth = windowWidth - self.containerPadding.left - self.containerPadding.right - self.imageBorderWidth.left - self.imageBorderWidth.right - 20;
maxImageHeight = windowHeight - self.containerPadding.top - self.containerPadding.bottom - self.imageBorderWidth.top - self.imageBorderWidth.bottom - self.options.positionFromTop - 70;
/*
Since many SVGs have small intrinsic dimensions, but they support scaling
up without quality loss because of their vector format, max out their
size.
*/
if (filetype === 'svg') {
$image.width(maxImageWidth);
$image.height(maxImageHeight);
}
// Fit image inside the viewport.
if (self.options.fitImagesInViewport) {
// Check if image size is larger then maxWidth|maxHeight in settings
if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
maxImageWidth = self.options.maxWidth;
}
if (self.options.maxHeight && self.options.maxHeight < maxImageHeight) {
maxImageHeight = self.options.maxHeight;
}
} else {
maxImageWidth = self.options.maxWidth || preloader.width || maxImageWidth;
maxImageHeight = self.options.maxHeight || preloader.height || maxImageHeight;
}
// Is the current image's width or height is greater than the maxImageWidth or maxImageHeight
// option than we need to size down while maintaining the aspect ratio.
if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
imageWidth = maxImageWidth;
imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
$image.width(imageWidth);
$image.height(imageHeight);
} else {
imageHeight = maxImageHeight;
imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
$image.width(imageWidth);
$image.height(imageHeight);
}
}
self.sizeContainer($image.width(), $image.height());
};
// Preload image before showing
preloader.src = this.album[imageNumber].link;
this.currentImageIndex = imageNumber;
};
// Stretch overlay to fit the viewport
Lightbox.prototype.sizeOverlay = function() {
var self = this;
/*
We use a setTimeout 0 to pause JS execution and let the rendering catch-up.
Why do this? If the `disableScrolling` option is set to true, a class is added to the body
tag that disables scrolling and hides the scrollbar. We want to make sure the scrollbar is
hidden before we measure the document width, as the presence of the scrollbar will affect the
number.
*/
setTimeout(function() {
self.$overlay
.width($(document).width())
.height($(document).height());
}, 0);
};
// Animate the size of the lightbox to fit the image we are showing
// This method also shows the the image.
Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
var self = this;
var oldWidth = this.$outerContainer.outerWidth();
var oldHeight = this.$outerContainer.outerHeight();
var newWidth = imageWidth + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this.imageBorderWidth.right;
var newHeight = imageHeight + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this.imageBorderWidth.bottom;
function postResize() {
self.$lightbox.find('.lb-dataContainer').width(newWidth);
self.$lightbox.find('.lb-prevLink').height(newHeight);
self.$lightbox.find('.lb-nextLink').height(newHeight);
// Set focus on one of the two root nodes so keyboard events are captured.
self.$overlay.focus();
self.showImage();
}
if (oldWidth !== newWidth || oldHeight !== newHeight) {
this.$outerContainer.animate({
width: newWidth,
height: newHeight
}, this.options.resizeDuration, 'swing', function() {
postResize();
});
} else {
postResize();
}
};
// Display the image and its details and begin preload neighboring images.
Lightbox.prototype.showImage = function() {
this.$lightbox.find('.lb-loader').stop(true).hide();
this.$lightbox.find('.lb-image').fadeIn(this.options.imageFadeDuration);
this.updateNav();
this.updateDetails();
this.preloadNeighboringImages();
this.enableKeyboardNav();
};
// Display previous and next navigation if appropriate.
Lightbox.prototype.updateNav = function() {
// Check to see if the browser supports touch events. If so, we take the conservative approach
// and assume that mouse hover events are not supported and always show prev/next navigation
// arrows in image sets.
var alwaysShowNav = false;
try {
document.createEvent('TouchEvent');
alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
} catch (e) {}
this.$lightbox.find('.lb-nav').show();
if (this.album.length > 1) {
if (this.options.wrapAround) {
if (alwaysShowNav) {
this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
}
this.$lightbox.find('.lb-prev, .lb-next').show();
} else {
if (this.currentImageIndex > 0) {
this.$lightbox.find('.lb-prev').show();
if (alwaysShowNav) {
this.$lightbox.find('.lb-prev').css('opacity', '1');
}
}
if (this.currentImageIndex < this.album.length - 1) {
this.$lightbox.find('.lb-next').show();
if (alwaysShowNav) {
this.$lightbox.find('.lb-next').css('opacity', '1');
}
}
}
}
};
// Display caption, image number, and closing button.
Lightbox.prototype.updateDetails = function() {
var self = this;
// Enable anchor clicks in the injected caption html.
// Thanks Nate Wright for the fix. @https://github.com/NateWr
if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&
this.album[this.currentImageIndex].title !== '') {
var $caption = this.$lightbox.find('.lb-caption');
if (this.options.sanitizeTitle) {
$caption.text(this.album[this.currentImageIndex].title);
} else {
$caption.html(this.album[this.currentImageIndex].title);
}
$caption.fadeIn('fast');
}
if (this.album.length > 1 && this.options.showImageNumberLabel) {
var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length);
this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
} else {
this.$lightbox.find('.lb-number').hide();
}
this.$outerContainer.removeClass('animating');
this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() {
return self.sizeOverlay();
});
};
// Preload previous and next images in set.
Lightbox.prototype.preloadNeighboringImages = function() {
if (this.album.length > this.currentImageIndex + 1) {
var preloadNext = new Image();
preloadNext.src = this.album[this.currentImageIndex + 1].link;
}
if (this.currentImageIndex > 0) {
var preloadPrev = new Image();
preloadPrev.src = this.album[this.currentImageIndex - 1].link;
}
};
Lightbox.prototype.enableKeyboardNav = function() {
this.$lightbox.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
this.$overlay.on('keyup.keyboard', $.proxy(this.keyboardAction, this));
};
Lightbox.prototype.disableKeyboardNav = function() {
this.$lightbox.off('.keyboard');
this.$overlay.off('.keyboard');
};
Lightbox.prototype.keyboardAction = function(event) {
var KEYCODE_ESC = 27;
var KEYCODE_LEFTARROW = 37;
var KEYCODE_RIGHTARROW = 39;
var keycode = event.keyCode;
if (keycode === KEYCODE_ESC) {
// Prevent bubbling so as to not affect other components on the page.
event.stopPropagation();
this.end();
} else if (keycode === KEYCODE_LEFTARROW) {
if (this.currentImageIndex !== 0) {
this.changeImage(this.currentImageIndex - 1);
} else if (this.options.wrapAround && this.album.length > 1) {
this.changeImage(this.album.length - 1);
}
} else if (keycode === KEYCODE_RIGHTARROW) {
if (this.currentImageIndex !== this.album.length - 1) {
this.changeImage(this.currentImageIndex + 1);
} else if (this.options.wrapAround && this.album.length > 1) {
this.changeImage(0);
}
}
};
// Closing time. :-(
Lightbox.prototype.end = function() {
this.disableKeyboardNav();
$(window).off('resize', this.sizeOverlay);
this.$lightbox.fadeOut(this.options.fadeDuration);
this.$overlay.fadeOut(this.options.fadeDuration);
if (this.options.disableScrolling) {
$('body').removeClass('lb-disable-scrolling');
}
};
return new Lightbox();
}));

5
static/milligram.css Normal file

File diff suppressed because one or more lines are too long

4
static/read.css Normal file
View File

@ -0,0 +1,4 @@
@font-face {font-family: "Saitamaar";src: url("/static/Saitamaar.woff2") format("woff2"),url("/static/Saitamaar.woff") format("woff"),url("/static/Saitamaar.ttf") format("ttf");font-display: swap;}html{overflow: auto;}body{color:#333;font-family:ArialMT, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3";background-color: #fafafa;font-size:14px}#body{background-color: rgba(250,250,250,0.65)}body>.bottommenu a[href]{color:#00f}body>.bottommenu a[href]:visited{color:#00f}body>.topmenu a[href]{font-family:hiragino sans;color:#00f}body>.topmenu a[href]:visited{font-family:hiragino sans;color:#00f}body>.newposts a[href]{color:#00f}body>.newposts a[href]:visited{color:#00f}.title{margin-top:1em}.be{margin-left:5px;display:inline-block}.r2BP{text-decoration:none}.r2BP a[href]{font-family:arial,arial,sans-serif}.r2BP a[href]{text-decoration:none}.r2BP a[href]{color:teal}.r2BP a[href]:visited{color:teal}.r2BP a[href]{background:#f0f8ff}.rBRZ{text-decoration:none}.rBRZ a[href]{font-family:arial,arial,sans-serif}.rBRZ a[href]{color:#000}.rBRZ a[href]:visited{color:#333}.rBRZ a[href]{background:#d2691e}.rPLT a[href]{font-family:arial,arial,sans-serif}.rPLT a[href]{text-decoration:none}.rPLT a[href]{color:#f0e60e}.rPLT a[href]:visited{color:khaki}.rPLT a[href]{background:#483d8b}.rDIA{text-decoration:none}.rDIA a[href]{font-family:arial,arial,sans-serif}.rDIA a[href]{color:khaki}.rDIA a[href]:visited{color:khaki}.rDIA a[href]{background:brown}.rS{text-decoration:none}.rS a[href]{font-family:arial,arial,sans-serif}.rS a[href]{color:red}.rS a[href]:visited{color:#f00f00}.rS a[href]{background:gold}hr{margin:0}.post,hr{border-bottom:.5px solid #DCDCDC}div.number{display:inline-block;}div.name{display:inline-block;}div.email{display:inline-block;}div.date{display:inline-block;}.number{color:rgb(87, 111, 118);text-decoration:none;}.name{color:rgb(87, 111, 118);font-size:15px;margin-left:6px}.date{color:rgb(87, 111, 118);}.newposts a[href],.message a[href],.backmsg a[href]{text-decoration: none;color: #1a98ff !important;}.message a[href]:visited{color:#9b4dca !important}#hidemetoo a[href]:focus, #hidemetoo a[href]:hover ,.message a[href]:focus, .message a[href]:hover {color: #23527c !important}.message{color:#000;margin-left:8px}.message a[href]:active{color:red !important}.cLength{font-weight:700;font-family:arial,arial,sans-serif;font-size:.94999em;color:red}.back-links a{margin-left:5px;font-size:.625em;color:#34345c}.hoverAppend{display:none;position:absolute;background-color:#ccc;padding-top:5px;padding-left:5px;padding-right:5px;padding-bottom:5px;border:solid 1px #000;z-index:1}.newpostbutton{margin-left:25%}.orange{text-decoration:none;color:#fe642e;font-weight:700}.orange a[href]:visited{color:#fe642e}.orange a[href]:active{color:#fe642e}.green{text-decoration:none;color:green;font-weight:700}.green a[href]:visited{color:green}.green a[href]:active{color:green}.menuitem{margin-left:6px !important;display:inline-block}.thread{word-wrap:break-word}#banner{margin-left:40px}#bannerLeft{width:300px;display:inline-block;padding-right:10px}#bannerRight{width:300px;display:inline-block}.stoplight{margin:1px;padding:1px;color: #fff;padding: 5px;font-size: 12px;background: #ff7773;}.stopyellow{background-color:#ff0}.stopred{background-color:red;color:#fff}.stopdone{line-height:3em}.option_container{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:11;display:none;text-align:center}.option_bg{background-color:rgba(0,0,0,.4688);position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:12;display:inline-block}.option_view{padding:15px;margin-top:20px;position:relative;height:auto;width:350px;background:#fff;z-index:13;display:inline-block;text-align:left;border:solid 1px #979797;border-radius:4px}.option_view span{float:right}.option_view a{text-decoration:none}.option_text{top:10px;right:10px;position:fixed;z-index:2}.option_text a{text-decoration:none}#optionView{display:none}
nav .container{width:100%;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;padding-top:10px;padding-bottom:10px}.navbar-fixed-top{z-index:2!important}.option_container_style{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:11;display:none;text-align:center}.option_container_bg{background-color:rgba(0,0,0,.4688);position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:12;display:inline-block}.option_container_view{margin-top:20px;position:relative;height:auto;width:350px;background:#fff;z-index:13;display:inline-block;text-align:left;border:solid 1px #979797;border-radius:4px}.option_container_view span{float:right}.option_container_view a{text-decoration:none}.option_style_1{background-color:#efefef;border:1px solid #979797;border-radius:4px 4px 0 0;padding-top:10px;padding-bottom:10px;padding-left:15px;margin-left:-1px;margin-right:-1px}.option_style_2{float:left;font-size:16px;letter-spacing:0;color:#000}.option_style_3{margin-left:92%}.option_style_4{padding-left:30px;padding-right:20px;padding-top:20px;padding-bottom:10px;font-size:15px;position:relative}.option_style_5{margin-bottom:10px}.option_style_6{margin-right:10px!important;transform:scale(1.2)}.option_style_7{position:relative;margin-bottom:10px}.option_style_8{margin-bottom:20px}.option_style_9{width:50px;margin-right:5px;background:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 0 0 #ececec;border-radius:5px;text-align:center;height:35px}.option_style_10{position:absolute;top:0;left:0;right:0;bottom:1px;background-color:rgba(255,255,255,.7)}.option_style_11{padding-left:30px;padding-bottom:20px;font-size:15px;text-align:right;padding-right:30px}.option_style_12{font-size:12px;background:#4d9bdd;border:1px solid #4b91cf;border-radius:4px;color:#fff;height:40px;width:80px;vertical-align:middle}.option_style_13{font-size:12px;background:#f3f3f3;border:1px solid #ccc;border-radius:4px;height:40px;width:80px;margin-left:5px;vertical-align:middle}.option_style_14{font-size:12px;color:#dfce00;letter-spacing:-.34px;text-align:center;margin-bottom:15px}.option_noti_1{display:none;position:fixed;top:5%;width:100%;z-index:20;font-weight:700;color:#ff0;pointer-events:none}.option_noti_2{background-color:#404040;width:18%;margin:0 auto;border-radius:15px;text-align:center}.irlog_1{text-decoration:none;color:#485269}.irlog_2{height:22px;width:auto;margin-right:2px;vertical-align:middle}.irlog_3{font-size:13px;color:#b8aa00;letter-spacing:-.35px;text-decoration:none;font-weight:300}.irlog_4{height:28px;width:auto;vertical-align:middle;margin-right:4px}.irlog_5{font-weight:700;background:#fff;border:1px solid #b8aa00;border-radius:4px;padding-left:3px;padding-bottom:3px;padding-top:4px;padding-right:4px}.asetting_1{text-decoration:none;color:#fff;pointer-events:auto}.asetting_2{font-size:.625em}.asetting_3{font-size:.7em;margin-left:5px}.asetting_4{display:none;padding-left:10px;}.asetting_5{border-top:.5px solid #DCDCDC;border-left:.5px solid #DCDCDC}.asetting_6{display:block;padding-left:50px;background-color:#d9d9d9}.asetting_7{text-align:right;padding-right:30px}.ahead_1{height:12px;width:12px;margin-right:3px}.ahead_2{margin-right:2px;vertical-align:middle;height:22px;width:auto}.ahead_3{margin-left:5px;margin-bottom:2px}.ahead_4{font-size:14px;color:#000}.arrow-triangle{display:none;background:url(/images/icon_triangle.png) no-repeat scroll right -1px transparent;height:8px;position:absolute;width:100%;bottom:-30px;z-index:20;margin-right:20px}.show{display:block}.magni{height:12px;width:12px;margin-right:3px;margin-top:-2px}.optsetting{font-size:14px;color:#000}.post .number:hover{color:red !important;cursor:pointer}
.number:hover{text-decoration:underline;}.id{color:#697699;text-decoration:none;}.id:hover{text-decoration:underline;}.thread{overflow-wrap: break-word;}.image{max-width: 560px;height: auto;width: auto;}.option_noti_1{position:fixed;top:5%;width:100%;z-index:20;font-weight:700;color:#ff0}.option_noti_2{background-color:#404040;width:18%;margin:0 auto;border-radius:15px;text-align:center}.menu{background-color:#fefefe;padding:5px;border:1px solid #888;width:150px;margin-left:20px}.bottomlink{text-decoration:none;color:#fff}.mclose{text-decoration:none;}.menulink{color:black !important;}a{word-break: break-all;}body{word-break: break-word; overflow-wrap: break-word; overscroll-behavior-y: contain;}.AA{font-family: saitamaar, ,ms pgothic,ipamonapgothic; font-size: 1em;line-height: 18px;white-space: pre;overflow-x:scroll;display:block}.formbox{color:#333}.rep-comment{background-color: lavender; border: 1px outset lavender; color: black; opacity: 0.95; position: absolute; text-decoration: none; left: 5em; padding-top: 5px; padding-left: 5px; padding-right: 5px;}blockquote{display:none;}.back-links{display:none;}video{max-width: 100%;}iframe{max-width: 100%;}
#headline{margin-bottom:10px;overflow-y:scroll;height:150px;padding:5px}.hhead-bg{background:rgba(150,150,150,.1);padding-left:2px;}.topmenu{z-index:2;position:relative}.topmenu, .bottommenu, textarea{font-size:16px}.post_hover{z-index:50}.back-link{margin-left:5px;font-size:.7em;color:#34345c}.rcount{margin-left:3px;color:#000;}.icon{padding: 3px; margin-right: 3px; border-radius: 45px; display: block;padding-bottom: 5px;margin-left: -.1em;}._mfm_blur_{filter:blur(10px);transition:filter .3s;}._mfm_blur_:hover{filter:blur(0px);}.quote{display:block;color:gray;margin-left:8px;padding:6px 0px 6px 12px;border-left:solid 3px rgb(103, 103, 103);opacity:0.7;}

1115
static/read.js Normal file

File diff suppressed because it is too large Load Diff

4
static/reload.svg Normal file
View File

@ -0,0 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.0127 6.2312H14.0127V3.2312" stroke="#0187E8" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.8877 11.8875C11.1187 12.6571 10.1387 13.1814 9.07172 13.394C8.0047 13.6066 6.8986 13.4979 5.89335 13.0818C4.88809 12.6656 4.02885 11.9607 3.4243 11.0561C2.81975 10.1515 2.49707 9.08799 2.49707 8C2.49707 6.91201 2.81975 5.84847 3.4243 4.9439C4.02885 4.03933 4.88809 3.33439 5.89335 2.91824C6.8986 2.50209 8.0047 2.39343 9.07172 2.60601C10.1387 2.81859 11.1187 3.34286 11.8877 4.1125L14.0127 6.23125" stroke="#0187E8" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 732 B

1
static/s.css Normal file

File diff suppressed because one or more lines are too long

36
static/sp.css Normal file
View File

@ -0,0 +1,36 @@
.desktop{display:none;}a:visited{color:#9b4dca;}a:hover{color:#FF0000;}#postForm{display:none;}.spformhead{display:inline !important;}.fhead{border-radius:3px 3px 0 0;color:#666; padding:3px;}a{text-decoration: none;color: #1a98ff}.post{word-break: break-all;white-space: normal}details{color:#4d4d4d;}.number{color:#4d4d4d;font-size:80%;font-weight:bold;}.name{color:#4d4d4d !important;font-size: 80%;}.id2{color:#4d4d4d !important;}.date{display:block;color:#ccc;font-size:80%;padding-left:0}.id{right:10px;position:absolute;color:#9ba1a8;color:#9ba1a8;}.message{margin-top:1px;margin-bottom:1px;max-height:500px;overflow-y:scroll}.date>ins{text-align:left;}ins{word-break: break-all;border:0 !important;border-radius: 5px 5px 5px 5px;background-color: #fafafa !important;white-space: normal;box-shadow: 5px 3px 5px rgba(0, 0, 0, .3);}.rep-comment{word-break: break-all;border:0 !important;border-radius: 5px 5px 5px 5px;background-color: #fafafa !important;box-shadow: 5px 3px 5px rgba(0, 0, 0, .3);}.menuitem{color:#646464 !important;font-size: 80%;text-decoration:underline;}.anka{left: 0.5em;right: 0.5em;}.image{max-width: 95%;}.formbox{display: block;}#postForm{position:fixed;top:0px;left:0px;z-index:2000;width:100%;height:100%;text-align:center;background-color:rgba(0, 0, 0, 0.4) !important}.fbox{padding:10px;margin-top:10px;border-radius:3px;background:#eeeeee;box-shadow: 1px 1px 2px gray;width:90%;display:inline-block;text-align:left}#bbs-textarea{font-variant: inherit;font-weight: inherit;font-stretch: inherit;border-radius: 0px 0px 5px 5px;padding: 0px;word-break: break-all;overflow: auto;width: 100%;margin: 2px;height: auto}.input input{margin: 2px;}.backmsg{display:block !important;text-align: center;}.submitbtn{color:#000;float:right;font-size:28px;font-weight:bold;cursor:pointer;display:inline-block;padding-right:5px;}input[type="submit"]{cursor: pointer;border: none; background: rgb(29, 155, 240);color: #ffffff;}#postForm label{display:none}.asetting_4{display: none;}.newposts{font-size:14px}.AA {padding-top: 2px;font-family: saitamaar, ,ms pgothic,ipamonapgothic;word-wrap: normal;font-size: 10pt;line-height: 11pt;}.input{display:block;}#modal_text .id{right:20px;}
.postbutton {
z-index:1500;
display: block !important;
border: 0px solid black;
right: 10px;
bottom: 10px;
position: fixed;
margin-bottom: 10px;
background: rgb(29, 155, 240);
border-radius: 30px 30px 30px 30px;
box-sizing: border-box;
box-shadow: 5px 3px 2px rgba(0, 0, 0, .3);
}
.postbutton a {
width: 3.5em;
display: block;
height: 3.5em;
color: rgb(255, 255, 255) !important;
box-sizing: content-box !important;
}
.postopen {
fill: currentcolor;
width: 1.5em;
height: 1.5em;
padding: 13px 0px 0px 13px;
}
.postopen g {
color: rgb(255, 255, 255) !important;
}
path {
color: rgb(255, 255, 255) !important;
}
.option_noti_1 {
z-index: 150000;
}

1
static/st.css Normal file
View File

@ -0,0 +1 @@
.post{padding-left:.2em;padding-right:.2em;padding-top:.5em;padding-bottom:.5em;border-bottom:1px solid #eee}.post-header{color:#0e0e6e;font-size:.75em}.post-footer{color:#0e0e6e;font-size:.8em}.post-content{color:#000;font-size:1em}.logo{text-align:center;margin:0 auto}.logoimg{max-height:2em}body{color:#000!important;font-family:ArialMT,hiragino kaku gothic pron, pron w3!important}footer{color:#000!important;font-family:ArialMT,hiragino kaku gothic pron, pron w3!important;font-size:.8em;margin:0 auto;text-align:center;width:100%}.noflex{flex-direction:initial!important}.darkblue{color:#364951!important}.borderbottomblue{border-bottom:1px solid #0e52b3}