Browse Source

add new theme GoogleImage

master
filesite 3 years ago
parent
commit
3481f9dbbc
  1. 2
      .gitignore
  2. 11
      conf/app.php
  3. 6
      lib/DirScanner.php
  4. 25
      test/DirScannerTest.php
  5. 37
      themes/googleimage/controller/SiteController.php
  6. 46
      themes/googleimage/views/layout/main.php
  7. 31
      themes/googleimage/views/site/index.php
  8. 2
      themes/manual/views/layout/main.php
  9. 941
      www/css/github-markdown-dark.css
  10. 21
      www/css/googleimage.css
  11. 1
      www/css/main.css
  12. 1
      www/css/manual.css
  13. 1
      www/js/googleimage.js

2
.gitignore vendored

@ -0,0 +1,2 @@
.DS_Store
test/content/

11
conf/app.php

@ -5,9 +5,14 @@
return array( return array(
'default_timezone' => 'Asia/HonKong', //timezone 'default_timezone' => 'Asia/HonKong', //timezone
'content_directory' => 'content/', //directory of contents in /www/ //'content_directory' => 'content/', //directory of contents in /www/
'theme' => 'manual', //name of theme which is enabled //when it's empty, use layout and views in directory views/
//when it's empty, use layout and views in directory views/ //'theme' => 'manual', //name of theme which is enabled
//in developing
'content_directory' => 'dogs/', //directory of contents in /www/
'theme' => 'googleimage', //name of theme which is enabled
'default_layout' => 'main', //default layout 'default_layout' => 'main', //default layout
'error_layout' => 'error', //exception layout, show error title and content 'error_layout' => 'error', //exception layout, show error title and content

6
lib/DirScanner.php

@ -42,6 +42,7 @@ Class DirScanner {
'md', //纯文本 'md', //纯文本
'url', //快捷方式 'url', //快捷方式
'jpg', //图片 'jpg', //图片
'jpeg', //图片
'png', //图片 'png', //图片
'gif', //图片 'gif', //图片
'ico', //图标 'ico', //图标
@ -54,6 +55,7 @@ Class DirScanner {
'md' => 5*1024*1024, //纯文本 'md' => 5*1024*1024, //纯文本
'url' => 20*1024, //快捷方式 'url' => 20*1024, //快捷方式
'jpg' => 500*1024, //图片 'jpg' => 500*1024, //图片
'jpeg' => 500*1024, //图片
'png' => 500*1024, //图片 'png' => 500*1024, //图片
'gif' => 500*1024, //图片 'gif' => 500*1024, //图片
'ico' => 50*1024, //图标 'ico' => 50*1024, //图标
@ -63,6 +65,7 @@ Class DirScanner {
]; ];
protected $securedFileExtensions = [ //开启Nginx防盗链的文件类型 protected $securedFileExtensions = [ //开启Nginx防盗链的文件类型
'jpg', //图片 'jpg', //图片
'jpeg', //图片
'png', //图片 'png', //图片
'gif', //图片 'gif', //图片
'ico', //图标 'ico', //图标
@ -299,6 +302,7 @@ Class DirScanner {
'url' => '/link/', 'url' => '/link/',
'm3u8' => '/m3u8/', 'm3u8' => '/m3u8/',
'jpg' => "{$webRoot}{$directory}{$filename}.{$extension}", 'jpg' => "{$webRoot}{$directory}{$filename}.{$extension}",
'jpeg' => "{$webRoot}{$directory}{$filename}.{$extension}",
'png' => "{$webRoot}{$directory}{$filename}.{$extension}", 'png' => "{$webRoot}{$directory}{$filename}.{$extension}",
'gif' => "{$webRoot}{$directory}{$filename}.{$extension}", 'gif' => "{$webRoot}{$directory}{$filename}.{$extension}",
'ico' => "{$webRoot}{$directory}{$filename}.{$extension}", 'ico' => "{$webRoot}{$directory}{$filename}.{$extension}",
@ -463,7 +467,7 @@ Class DirScanner {
if (empty($this->rootDir)) { if (empty($this->rootDir)) {
$this->rootDir = realpath($dir); $this->rootDir = realpath($dir);
} }
$this->scanningDirLevel = $this->getScanningLevel($this->rootDir, $dir); $this->scanningDirLevel = $this->getScanningLevel($this->rootDir, realpath($dir));
$nextLevels = $levels - $this->scanningDirLevel; $nextLevels = $levels - $this->scanningDirLevel;
$files = scandir($dir); $files = scandir($dir);

25
test/DirScannerTest.php

@ -3,6 +3,7 @@
* 类 DirScanner 测试 * 类 DirScanner 测试
*/ */
require_once __DIR__ . '/../lib/DirScanner.php'; require_once __DIR__ . '/../lib/DirScanner.php';
require_once __DIR__ . '/../plugins/Parsedown.php';
class DirScannerTest extends DirScanner { class DirScannerTest extends DirScanner {
@ -66,19 +67,23 @@ $scanner = new DirScannerTest();
//$dirTree = $scanner->scan('./'); //$dirTree = $scanner->scan('./');
//$dirTree = $scanner->scan(__DIR__); //$dirTree = $scanner->scan(__DIR__);
$scanner->setWebRoot('/content/');
$dirTree = $scanner->scan(__DIR__ . '/content/', 4); //$scanner->setWebRoot('/dogs/');
//$dirTree = $scanner->scan(__DIR__ . '/../www/content/', 4); //$dirTree = $scanner->scan(__DIR__ . '/../www/dogs/', 4);
$scanner->setWebRoot('/dogs/');
$dirTree = $scanner->scan(__DIR__ . '/../www/dogs/', 5);
echo "Time cost: {$scanner->scanTimeCost} ms\n"; echo "Time cost: {$scanner->scanTimeCost} ms\n";
echo "\n"; echo "\n";
//print_r($dirTree); print_r($dirTree);
//echo "\n"; echo "\n";
//echo "\n"; echo "\n";
exit;
$readmeFile = $scanner->getDefaultReadme('favs/'); //$readmeFile = $scanner->getDefaultReadme('favs/');
//$readmeFile = $scanner->getDefaultReadme(); $readmeFile = $scanner->getDefaultReadme();
if (!empty($readmeFile)) { if (!empty($readmeFile)) {
$readme_id = $readmeFile['id']; $readme_id = $readmeFile['id'];
$readme_titles = $scanner->getMDTitles($readme_id); $readme_titles = $scanner->getMDTitles($readme_id);
@ -87,7 +92,9 @@ if (!empty($readmeFile)) {
echo "\n"; echo "\n";
echo "\n"; echo "\n";
$html = file_get_contents($readmeFile['realpath']); $content = file_get_contents($readmeFile['realpath']);
$Parsedown = new Parsedown();
$html = $Parsedown->text($content);
$html = $scanner->fixMDUrls($readmeFile['realpath'], $html); $html = $scanner->fixMDUrls($readmeFile['realpath'], $html);
echo "{$html}\n"; echo "{$html}\n";
echo "\n"; echo "\n";

37
themes/googleimage/controller/SiteController.php

@ -0,0 +1,37 @@
<?php
/**
* Site Controller
*/
require_once __DIR__ . '/../../../lib/DirScanner.php';
require_once __DIR__ . '/../../../plugins/Parsedown.php';
Class SiteController extends Controller {
public function actionIndex() {
//获取数据
$scanner = new DirScanner();
$scanner->setWebRoot(FSC::$app['config']['content_directory']);
$dirTree = $scanner->scan(__DIR__ . '/../../../www/' . FSC::$app['config']['content_directory'], 4);
//获取目录
$menus = $scanner->getMenus();
$titles = [];
$html = '';
$readmeFile = $scanner->getDefaultReadme();
if (!empty($readmeFile)) {
$titles = $scanner->getMDTitles($readmeFile['id']);
$Parsedown = new Parsedown();
$content = file_get_contents($readmeFile['realpath']);
$html = $Parsedown->text($content);
$html = $scanner->fixMDUrls($readmeFile['realpath'], $html);
}
$pageTitle = !empty($titles) ? $titles[0]['name'] : "FileSite.io - 无数据库、基于文件和目录的Markdown文档、网址导航、图书、图片、视频网站PHP开源系统";
$viewName = 'index';
$params = compact('menus', 'html');
return $this->render($viewName, $params, $pageTitle);
}
}

46
themes/googleimage/views/layout/main.php

@ -0,0 +1,46 @@
<!DocType html>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $pageTitle;?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link href="/css/main.css?v.1.1" rel="stylesheet">
<!--for theme googleimage-->
<link href="/css/github-markdown-dark.css" rel="stylesheet">
<link href="/css/googleimage.css?v<?=time()?>" rel="stylesheet">
</head>
<body>
<div class="header">
<a href="/" class="logo">
<img src="/content/machete_icon.png" alt="Logo of FileSite.io" height="34">
FileSite.io
</a>
<div class="about">
<a href="#modal_about" role="button">
<svg width="24" height="24" viewBox="0 0 24 24" focusable="false"><path d="M13.85 22.25h-3.7c-.74 0-1.36-.54-1.45-1.27l-.27-1.89c-.27-.14-.53-.29-.79-.46l-1.8.72c-.7.26-1.47-.03-1.81-.65L2.2 15.53c-.35-.66-.2-1.44.36-1.88l1.53-1.19c-.01-.15-.02-.3-.02-.46 0-.15.01-.31.02-.46l-1.52-1.19c-.59-.45-.74-1.26-.37-1.88l1.85-3.19c.34-.62 1.11-.9 1.79-.63l1.81.73c.26-.17.52-.32.78-.46l.27-1.91c.09-.7.71-1.25 1.44-1.25h3.7c.74 0 1.36.54 1.45 1.27l.27 1.89c.27.14.53.29.79.46l1.8-.72c.71-.26 1.48.03 1.82.65l1.84 3.18c.36.66.2 1.44-.36 1.88l-1.52 1.19c.01.15.02.3.02.46s-.01.31-.02.46l1.52 1.19c.56.45.72 1.23.37 1.86l-1.86 3.22c-.34.62-1.11.9-1.8.63l-1.8-.72c-.26.17-.52.32-.78.46l-.27 1.91c-.1.68-.72 1.22-1.46 1.22zm-3.23-2h2.76l.37-2.55.53-.22c.44-.18.88-.44 1.34-.78l.45-.34 2.38.96 1.38-2.4-2.03-1.58.07-.56c.03-.26.06-.51.06-.78s-.03-.53-.06-.78l-.07-.56 2.03-1.58-1.39-2.4-2.39.96-.45-.35c-.42-.32-.87-.58-1.33-.77l-.52-.22-.37-2.55h-2.76l-.37 2.55-.53.21c-.44.19-.88.44-1.34.79l-.45.33-2.38-.95-1.39 2.39 2.03 1.58-.07.56a7 7 0 0 0-.06.79c0 .26.02.53.06.78l.07.56-2.03 1.58 1.38 2.4 2.39-.96.45.35c.43.33.86.58 1.33.77l.53.22.38 2.55z"></path><circle cx="12" cy="12" r="3.5"></circle></svg>
</a>
</div>
</div>
<?php
//### Render view file
$viewFile = __DIR__ . '/../' . FSC::$app['controller'] . '/' . $viewName . '.php';
include_once $viewFile;
?>
<div class="footer">
<?php if (!empty(FSC::$app['config']['theme'])) { ?>
Theme name <strong><?php echo FSC::$app['config']['theme']; ?></strong>
<br>
<?php } ?>
&copy;FSC 2022 - execute time: {page_time_cost} ms
</div>
<script src="/js/js.cookie.min.js"></script>
<script src="/js/main.js?v.1.0"></script>
<!--for theme googleimage-->
<script src="/js/googleimage.js?v<?=time()?>"></script>
</body>
</html>

31
themes/googleimage/views/site/index.php

@ -0,0 +1,31 @@
<div class="menu">
<?php
if (!empty($viewData['menus'])) {
foreach($viewData['menus'] as $index => $item) {
$selected = $index == 0 ? 'selected' : '';
echo <<<eof
<a href="{$item['path']}" class="{$selected}">{$item['directory']}</a>
eof;
}
}
?>
</div>
<div class="hr"></div>
<div class="content markdown-body">
<?php //echo $viewData['html']; ?>
</div>
<div class="modal-mask" id="modal_about">
<div class="modal-about">
<div class="modal-head">
<h3>皮肤GoogleImage</h3>
<span class="btn-close" role="button"><svg width="24" height="24" viewBox="0 0 24 24" focusable="false" class=" NMm5M"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"></path></svg></span>
</div>
<div class="hr"></div>
<div class="modal-body markdown-body">
<?php echo $viewData['html']; ?>
</div>
</div>
</div>

2
themes/manual/views/layout/main.php

@ -5,7 +5,7 @@
<title><?php echo $pageTitle;?></title> <title><?php echo $pageTitle;?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link href="/css/main.css?v.1.0" rel="stylesheet"> <link href="/css/main.css?v.1.1" rel="stylesheet">
<!--for theme manual--> <!--for theme manual-->
<link href="/css/github-markdown-light.css" rel="stylesheet"> <link href="/css/github-markdown-light.css" rel="stylesheet">
<link href="/css/manual.css?v<?=time()?>" rel="stylesheet"> <link href="/css/manual.css?v<?=time()?>" rel="stylesheet">

941
www/css/github-markdown-dark.css

@ -0,0 +1,941 @@
.markdown-body {
color-scheme: dark;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
color: #c9d1d9;
background-color: #0d1117;
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
}
.markdown-body .octicon {
display: inline-block;
fill: currentColor;
vertical-align: text-bottom;
}
.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
width: 16px;
height: 16px;
content: ' ';
display: inline-block;
background-color: currentColor;
-webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}
.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
display: block;
}
.markdown-body summary {
display: list-item;
}
.markdown-body [hidden] {
display: none !important;
}
.markdown-body a {
background-color: transparent;
color: #58a6ff;
text-decoration: none;
}
.markdown-body a:active,
.markdown-body a:hover {
outline-width: 0;
}
.markdown-body abbr[title] {
border-bottom: none;
text-decoration: underline dotted;
}
.markdown-body b,
.markdown-body strong {
font-weight: 600;
}
.markdown-body dfn {
font-style: italic;
}
.markdown-body h1 {
margin: .67em 0;
font-weight: 600;
padding-bottom: .3em;
font-size: 2em;
border-bottom: 1px solid #21262d;
}
.markdown-body mark {
background-color: rgba(187,128,9,0.15);
color: #c9d1d9;
}
.markdown-body small {
font-size: 90%;
}
.markdown-body sub,
.markdown-body sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.markdown-body sub {
bottom: -0.25em;
}
.markdown-body sup {
top: -0.5em;
}
.markdown-body img {
border-style: none;
max-width: 100%;
box-sizing: content-box;
background-color: #0d1117;
}
.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
font-family: monospace,monospace;
font-size: 1em;
}
.markdown-body figure {
margin: 1em 40px;
}
.markdown-body hr {
box-sizing: content-box;
overflow: hidden;
background: transparent;
border-bottom: 1px solid #21262d;
height: .25em;
padding: 0;
margin: 24px 0;
background-color: #30363d;
border: 0;
}
.markdown-body input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.markdown-body [type=button],
.markdown-body [type=reset],
.markdown-body [type=submit] {
-webkit-appearance: button;
}
.markdown-body [type=button]::-moz-focus-inner,
.markdown-body [type=reset]::-moz-focus-inner,
.markdown-body [type=submit]::-moz-focus-inner {
border-style: none;
padding: 0;
}
.markdown-body [type=button]:-moz-focusring,
.markdown-body [type=reset]:-moz-focusring,
.markdown-body [type=submit]:-moz-focusring {
outline: 1px dotted ButtonText;
}
.markdown-body [type=checkbox],
.markdown-body [type=radio] {
box-sizing: border-box;
padding: 0;
}
.markdown-body [type=number]::-webkit-inner-spin-button,
.markdown-body [type=number]::-webkit-outer-spin-button {
height: auto;
}
.markdown-body [type=search] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
.markdown-body [type=search]::-webkit-search-cancel-button,
.markdown-body [type=search]::-webkit-search-decoration {
-webkit-appearance: none;
}
.markdown-body ::-webkit-input-placeholder {
color: inherit;
opacity: .54;
}
.markdown-body ::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.markdown-body a:hover {
text-decoration: underline;
}
.markdown-body hr::before {
display: table;
content: "";
}
.markdown-body hr::after {
display: table;
clear: both;
content: "";
}
.markdown-body table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: max-content;
max-width: 100%;
overflow: auto;
}
.markdown-body td,
.markdown-body th {
padding: 0;
}
.markdown-body details summary {
cursor: pointer;
}
.markdown-body details:not([open])>*:not(summary) {
display: none !important;
}
.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
line-height: 10px;
color: #c9d1d9;
vertical-align: middle;
background-color: #161b22;
border: solid 1px rgba(110,118,129,0.4);
border-bottom-color: rgba(110,118,129,0.4);
border-radius: 6px;
box-shadow: inset 0 -1px 0 rgba(110,118,129,0.4);
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25;
}
.markdown-body h2 {
font-weight: 600;
padding-bottom: .3em;
font-size: 1.5em;
border-bottom: 1px solid #21262d;
}
.markdown-body h3 {
font-weight: 600;
font-size: 1.25em;
}
.markdown-body h4 {
font-weight: 600;
font-size: 1em;
}
.markdown-body h5 {
font-weight: 600;
font-size: .875em;
}
.markdown-body h6 {
font-weight: 600;
font-size: .85em;
color: #8b949e;
}
.markdown-body p {
margin-top: 0;
margin-bottom: 10px;
}
.markdown-body blockquote {
margin: 0;
padding: 0 1em;
color: #8b949e;
border-left: .25em solid #30363d;
}
.markdown-body ul,
.markdown-body ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.markdown-body ol ol,
.markdown-body ul ol {
list-style-type: lower-roman;
}
.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
list-style-type: lower-alpha;
}
.markdown-body dd {
margin-left: 0;
}
.markdown-body tt,
.markdown-body code {
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
font-size: 12px;
}
.markdown-body pre {
margin-top: 0;
margin-bottom: 0;
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
font-size: 12px;
word-wrap: normal;
}
.markdown-body .octicon {
display: inline-block;
overflow: visible !important;
vertical-align: text-bottom;
fill: currentColor;
}
.markdown-body ::placeholder {
color: #484f58;
opacity: 1;
}
.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.markdown-body .pl-c {
color: #8b949e;
}
.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
color: #79c0ff;
}
.markdown-body .pl-e,
.markdown-body .pl-en {
color: #d2a8ff;
}
.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
color: #c9d1d9;
}
.markdown-body .pl-ent {
color: #7ee787;
}
.markdown-body .pl-k {
color: #ff7b72;
}
.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
color: #a5d6ff;
}
.markdown-body .pl-v,
.markdown-body .pl-smw {
color: #ffa657;
}
.markdown-body .pl-bu {
color: #f85149;
}
.markdown-body .pl-ii {
color: #f0f6fc;
background-color: #8e1519;
}
.markdown-body .pl-c2 {
color: #f0f6fc;
background-color: #b62324;
}
.markdown-body .pl-sr .pl-cce {
font-weight: bold;
color: #7ee787;
}
.markdown-body .pl-ml {
color: #f2cc60;
}
.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
font-weight: bold;
color: #1f6feb;
}
.markdown-body .pl-mi {
font-style: italic;
color: #c9d1d9;
}
.markdown-body .pl-mb {
font-weight: bold;
color: #c9d1d9;
}
.markdown-body .pl-md {
color: #ffdcd7;
background-color: #67060c;
}
.markdown-body .pl-mi1 {
color: #aff5b4;
background-color: #033a16;
}
.markdown-body .pl-mc {
color: #ffdfb6;
background-color: #5a1e02;
}
.markdown-body .pl-mi2 {
color: #c9d1d9;
background-color: #1158c7;
}
.markdown-body .pl-mdr {
font-weight: bold;
color: #d2a8ff;
}
.markdown-body .pl-ba {
color: #8b949e;
}
.markdown-body .pl-sg {
color: #484f58;
}
.markdown-body .pl-corl {
text-decoration: underline;
color: #a5d6ff;
}
.markdown-body [data-catalyst] {
display: block;
}
.markdown-body g-emoji {
font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
font-size: 1em;
font-style: normal !important;
font-weight: 400;
line-height: 1;
vertical-align: -0.075em;
}
.markdown-body g-emoji img {
width: 1em;
height: 1em;
}
.markdown-body::before {
display: table;
content: "";
}
.markdown-body::after {
display: table;
clear: both;
content: "";
}
.markdown-body>*:first-child {
margin-top: 0 !important;
}
.markdown-body>*:last-child {
margin-bottom: 0 !important;
}
.markdown-body a:not([href]) {
color: inherit;
text-decoration: none;
}
.markdown-body .absent {
color: #f85149;
}
.markdown-body .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.markdown-body .anchor:focus {
outline: none;
}
.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
margin-top: 0;
margin-bottom: 16px;
}
.markdown-body blockquote>:first-child {
margin-top: 0;
}
.markdown-body blockquote>:last-child {
margin-bottom: 0;
}
.markdown-body sup>a::before {
content: "[";
}
.markdown-body sup>a::after {
content: "]";
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
color: #c9d1d9;
vertical-align: middle;
visibility: hidden;
}
.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
text-decoration: none;
}
.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
visibility: visible;
}
.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
padding: 0 .2em;
font-size: inherit;
}
.markdown-body ul.no-list,
.markdown-body ol.no-list {
padding: 0;
list-style-type: none;
}
.markdown-body ol[type="1"] {
list-style-type: decimal;
}
.markdown-body ol[type=a] {
list-style-type: lower-alpha;
}
.markdown-body ol[type=i] {
list-style-type: lower-roman;
}
.markdown-body div>ol:not([type]) {
list-style-type: decimal;
}
.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markdown-body li>p {
margin-top: 16px;
}
.markdown-body li+li {
margin-top: .25em;
}
.markdown-body dl {
padding: 0;
}
.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: 600;
}
.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markdown-body table th {
font-weight: 600;
}
.markdown-body table th,
.markdown-body table td {
padding: 6px 13px;
border: 1px solid #30363d;
}
.markdown-body table tr {
background-color: #0d1117;
border-top: 1px solid #21262d;
}
.markdown-body table tr:nth-child(2n) {
background-color: #161b22;
}
.markdown-body table img {
background-color: transparent;
}
.markdown-body img[align=right] {
padding-left: 20px;
}
.markdown-body img[align=left] {
padding-right: 20px;
}
.markdown-body .emoji {
max-width: none;
vertical-align: text-top;
background-color: transparent;
}
.markdown-body span.frame {
display: block;
overflow: hidden;
}
.markdown-body span.frame>span {
display: block;
float: left;
width: auto;
padding: 7px;
margin: 13px 0 0;
overflow: hidden;
border: 1px solid #30363d;
}
.markdown-body span.frame span img {
display: block;
float: left;
}
.markdown-body span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: #c9d1d9;
}
.markdown-body span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.markdown-body span.align-center>span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.markdown-body span.align-center span img {
margin: 0 auto;
text-align: center;
}
.markdown-body span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.markdown-body span.align-right>span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.markdown-body span.align-right span img {
margin: 0;
text-align: right;
}
.markdown-body span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.markdown-body span.float-left span {
margin: 13px 0 0;
}
.markdown-body span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.markdown-body span.float-right>span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.markdown-body code,
.markdown-body tt {
padding: .2em .4em;
margin: 0;
font-size: 85%;
background-color: rgba(110,118,129,0.4);
border-radius: 6px;
}
.markdown-body code br,
.markdown-body tt br {
display: none;
}
.markdown-body del code {
text-decoration: inherit;
}
.markdown-body pre code {
font-size: 100%;
}
.markdown-body pre>code {
padding: 0;
margin: 0;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.markdown-body .highlight {
margin-bottom: 16px;
}
.markdown-body .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.markdown-body .highlight pre,
.markdown-body pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #161b22;
border-radius: 6px;
}
.markdown-body pre code,
.markdown-body pre tt {
display: inline;
max-width: auto;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markdown-body .csv-data td,
.markdown-body .csv-data th {
padding: 5px;
overflow: hidden;
font-size: 12px;
line-height: 1;
text-align: left;
white-space: nowrap;
}
.markdown-body .csv-data .blob-num {
padding: 10px 8px 9px;
text-align: right;
background: #0d1117;
border: 0;
}
.markdown-body .csv-data tr {
border-top: 0;
}
.markdown-body .csv-data th {
font-weight: 600;
background: #161b22;
border-top: 0;
}
.markdown-body .footnotes {
font-size: 12px;
color: #8b949e;
border-top: 1px solid #30363d;
}
.markdown-body .footnotes ol {
padding-left: 16px;
}
.markdown-body .footnotes li {
position: relative;
}
.markdown-body .footnotes li:target::before {
position: absolute;
top: -8px;
right: -8px;
bottom: -8px;
left: -24px;
pointer-events: none;
content: "";
border: 2px solid #1f6feb;
border-radius: 6px;
}
.markdown-body .footnotes li:target {
color: #c9d1d9;
}
.markdown-body .footnotes .data-footnote-backref g-emoji {
font-family: monospace;
}
.markdown-body .task-list-item {
list-style-type: none;
}
.markdown-body .task-list-item label {
font-weight: 400;
}
.markdown-body .task-list-item.enabled label {
cursor: pointer;
}
.markdown-body .task-list-item+.task-list-item {
margin-top: 3px;
}
.markdown-body .task-list-item .handle {
display: none;
}
.markdown-body .task-list-item-checkbox {
margin: 0 .2em .25em -1.6em;
vertical-align: middle;
}
.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em .25em .2em;
}
.markdown-body ::-webkit-calendar-picker-indicator {
filter: invert(50%);
}

21
www/css/googleimage.css

@ -0,0 +1,21 @@
/* for theme GoogleImage */
body{background-color:#202124;color: #e8eaed;font-family: Roboto,HelveticaNeue,Arial,sans-serif;font-size: small;margin: 0}
a{color: #aaadb2;text-decoration: none}
.header{padding:10px;position: relative;}
.header .logo{display: inline-block;margin:10px;font-size: 1.86em;color: #e8eaed}
.header .logo img{vertical-align: middle;}
.menu{max-width: 80%;white-space;nowrap;overflow-x:auto;overflow-y: hidden;margin: 0 auto}
.menu a{display: inline-block;line-height: 16px;margin: 0 1px;padding: 16px 12px 12px 10px;text-align: center}
.menu .selected{color: #8ab4f8;border-bottom: 3px solid #8ab4f8;padding: 20px 12px 11px 10px;}
.hr{border-bottom: solid 1px #3c4043;margin-bottom: 11px}
.about{position: absolute;right: 10px;top: 8px;width: 24px;height: 24px;padding: 8px;border-radius: 50%}
.about:hover{background-color: #303134}
.about svg{fill: currentColor;cursor: pointer;}
.modal-mask{display: none;background: rgba(0,0,0,.6);position: fixed;left: 0;right: 0;top: 0;bottom: 0;overflow: hidden;z-index: 9000;}
.modal-about{background: #202124;bottom: 0;overflow-y: auto;position: fixed;right: 0px;top: 0;width: 360px}
.modal-about h3{color: #e8eaed;font-size: 24px;font-weight: 300;margin-top: 0;margin-bottom: 20px;text-align: left;}
.modal-about .modal-head{padding: 20px 24px 0 24px}
.modal-about .btn-close{color: #9aa0a6;cursor: pointer;display: block;float: right;position: relative;top: -45px;}
.modal-about .btn-close svg{fill: currentColor;flex-shrink: 0;}
.modal-body{padding: 10px;background-color: inherit;}
.modal-about .modal-body h1{display: none;}

1
www/css/main.css

@ -3,3 +3,4 @@
.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1} .alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}
.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc} .alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}
.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1} .alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}
.footer{margin:3em auto;text-align:center}

1
www/css/manual.css

@ -2,7 +2,6 @@
*,html,body{padding:0:;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"} *,html,body{padding:0:;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}
.indexes{width:22%;position:fixed;top:0;bottom:0;text-align:left;padding:0.5em;overflow-y:auto} .indexes{width:22%;position:fixed;top:0;bottom:0;text-align:left;padding:0.5em;overflow-y:auto}
.content{margin-left:23.5%;padding:0.5em} .content{margin-left:23.5%;padding:0.5em}
.footer{margin:3em auto;text-align:center}
.indexes h1,.indexes h2,.indexes h3,.indexes h4,.indexes h5,.indexes h6{padding:2px 0 3px 5px;font-size:1.2em;font-weight:normal;margin-bottom:0.35em} .indexes h1,.indexes h2,.indexes h3,.indexes h4,.indexes h5,.indexes h6{padding:2px 0 3px 5px;font-size:1.2em;font-weight:normal;margin-bottom:0.35em}
.indexes h1{display:none} .indexes h1{display:none}
.indexes h2{margin-top:1em;padding-top:4px;padding-bottom:4px;box-shadow:1px 1px 2px 1px rgba(0, 0, 0, 0.1)} .indexes h2{margin-top:1em;padding-top:4px;padding-bottom:4px;box-shadow:1px 1px 2px 1px rgba(0, 0, 0, 0.1)}

1
www/js/googleimage.js

@ -0,0 +1 @@
/* for theme GoogleImage */
Loading…
Cancel
Save