books_view
@ -188,6 +188,56 @@ body {
|
||||
.stripedtable tbody tr:nth-child(odd) {
|
||||
background-color: #ccc; }
|
||||
|
||||
.imgcarousel_parent {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
padding: 5px;
|
||||
background: #BBB; }
|
||||
|
||||
.imgcarousel_content {
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
height: 100%;
|
||||
width: 100%; }
|
||||
|
||||
.imgcarousel_prev, .imgcarousel_next {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center; }
|
||||
|
||||
.imgcarousel_prev {
|
||||
margin-right: 5px; }
|
||||
|
||||
.imgcarousel_next {
|
||||
margin-left: 5px; }
|
||||
|
||||
.imgcarousel_prev svg {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border: 1px solid black;
|
||||
background: #333;
|
||||
fill: #DDD; }
|
||||
|
||||
.imgcarousel_next svg {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border: 1px solid black;
|
||||
background: #333;
|
||||
fill: #DDD; }
|
||||
|
||||
.imgcarousel_prev:hover svg {
|
||||
background: #000;
|
||||
fill: #FFF;
|
||||
cursor: pointer; }
|
||||
|
||||
.imgcarousel_next:hover svg {
|
||||
background: #000;
|
||||
fill: #FFF;
|
||||
cursor: pointer; }
|
||||
|
||||
/* 400px */
|
||||
#headerdiv {
|
||||
z-index: 999;
|
||||
@ -363,6 +413,177 @@ html, body {
|
||||
.index_pnl_base {
|
||||
width: 330px; } }
|
||||
/* 400px */
|
||||
.aboutcontent {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
|
||||
.aboutcontent .boxedcontent {
|
||||
margin-bottom: 20px; }
|
||||
|
||||
.about_egh_container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center; }
|
||||
|
||||
.git_list {
|
||||
display: inline-block;
|
||||
width: 715px;
|
||||
height: 115px;
|
||||
overflow: visible; }
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.git_list {
|
||||
width: 100%;
|
||||
height: auto; }
|
||||
|
||||
.extGitGraphContainer {
|
||||
width: 95%;
|
||||
width: calc(100% - 16px); } }
|
||||
.git_list text.caption {
|
||||
font-size: 10px;
|
||||
fill: #666; }
|
||||
|
||||
.git_list text.caption_month {
|
||||
font-size: 8px;
|
||||
fill: #BBB; }
|
||||
|
||||
.git_list text.caption_day {
|
||||
font-size: 8px;
|
||||
fill: #BBB; }
|
||||
|
||||
.svg-tip:after {
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
bottom: -10px;
|
||||
margin: 0 0 0px -5px;
|
||||
content: " ";
|
||||
border: 5px solid transparent;
|
||||
border-top-color: rgba(0, 0, 0, 0.8);
|
||||
-moz-border-top-colors: none;
|
||||
-moz-border-right-colors: none;
|
||||
-moz-border-bottom-colors: none;
|
||||
-moz-border-left-colors: none;
|
||||
border-image: none; }
|
||||
|
||||
.svg-tip {
|
||||
padding: 5px;
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
|
||||
color: #BBB;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
box-sizing: border-box;
|
||||
opacity: 0; }
|
||||
|
||||
.extGitGraphContainer {
|
||||
background-color: #FCFCFC;
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
border: 1px solid #222;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset; }
|
||||
|
||||
.egg_footer {
|
||||
margin-top: 5px;
|
||||
text-align: right;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
color: #888; }
|
||||
|
||||
.egg_footer > a {
|
||||
text-decoration: none;
|
||||
color: inherit; }
|
||||
|
||||
.egg_footer > a:hover {
|
||||
text-decoration: none;
|
||||
color: #22F; }
|
||||
|
||||
.about_circles {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
|
||||
.about_circles a {
|
||||
margin: 5px 0; }
|
||||
.about_circles .iconbutton_light span {
|
||||
text-align: left; }
|
||||
|
||||
/* 400px */
|
||||
.admincontent {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
|
||||
.admincontent .boxedcontent {
|
||||
margin-bottom: 20px; }
|
||||
|
||||
.egh_ajaxOutput {
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
resize: none;
|
||||
height: 300px; }
|
||||
|
||||
.keyvaluelist {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
.keyvaluelist div {
|
||||
display: flex;
|
||||
flex-direction: row; }
|
||||
.keyvaluelist div span {
|
||||
align-self: center; }
|
||||
.keyvaluelist div span:first-child {
|
||||
font-weight: bold;
|
||||
min-width: 500px; }
|
||||
|
||||
.kvl_100 div span:first-child {
|
||||
min-width: 100px; }
|
||||
|
||||
.kvl_200 div span:first-child {
|
||||
min-width: 200px; }
|
||||
|
||||
.kvl_300 div span:first-child {
|
||||
min-width: 300px; }
|
||||
|
||||
.consistency_result_ok, .consistency_result_warn, .consistency_result_err {
|
||||
min-width: 400px;
|
||||
border: 1px solid #888;
|
||||
padding: 0 5px;
|
||||
margin: 1px 0; }
|
||||
|
||||
.consistency_result_ok {
|
||||
background: #0F0; }
|
||||
|
||||
.consistency_result_warn {
|
||||
background: #FF0; }
|
||||
|
||||
.consistency_result_err {
|
||||
background: #F00; }
|
||||
|
||||
/* 400px */
|
||||
#loginform div {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
|
||||
#loginform div button {
|
||||
margin: 10px 0;
|
||||
padding: 0; }
|
||||
|
||||
.loginerror {
|
||||
display: flex;
|
||||
background: #FF4444;
|
||||
font-weight: bold;
|
||||
padding: 0 5px;
|
||||
margin: 5px 0 20px 0; }
|
||||
|
||||
/* 400px */
|
||||
.bloglistelem_container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -665,28 +886,6 @@ html, body {
|
||||
.bce_pag05 {
|
||||
flex-direction: row; } }
|
||||
/* 400px */
|
||||
.ev_master {
|
||||
align-self: center; }
|
||||
@media (min-width: 851px) {
|
||||
.ev_master {
|
||||
padding-bottom: 80px; } }
|
||||
.ev_master .ev_code {
|
||||
color: #000;
|
||||
text-align: center;
|
||||
font-size: 150pt;
|
||||
font-weight: 500;
|
||||
font-family: Consolas, Monaco, "Courier New", Menlo, monospace; }
|
||||
.ev_master .ev_msg {
|
||||
color: #888;
|
||||
text-align: center;
|
||||
font-size: 25pt; }
|
||||
@media (max-width: 767px) {
|
||||
.ev_master .ev_code {
|
||||
font-size: 75pt; }
|
||||
.ev_master .ev_msg {
|
||||
font-size: 15pt; } }
|
||||
|
||||
/* 400px */
|
||||
.prgl_parent {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
@ -1007,175 +1206,154 @@ html, body {
|
||||
.booklst_title {
|
||||
font-size: 32pt; } }
|
||||
/* 400px */
|
||||
.aboutcontent {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
|
||||
.aboutcontent .boxedcontent {
|
||||
margin-bottom: 20px; }
|
||||
|
||||
.about_egh_container {
|
||||
.bookv_content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center; }
|
||||
color: #333;
|
||||
border: 1px solid black;
|
||||
background-color: #E0E0E0;
|
||||
width: 100%;
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
|
||||
.git_list {
|
||||
display: inline-block;
|
||||
width: 715px;
|
||||
height: 115px;
|
||||
overflow: visible; }
|
||||
#bookv_header h1 {
|
||||
font-size: 48pt;
|
||||
text-align: center;
|
||||
margin-top: 5px; }
|
||||
|
||||
#bookv_header hr {
|
||||
background: -moz-radial-gradient(circle, #CCC, #FFFFFF00);
|
||||
background: -webkit-radial-gradient(circle, #CCC 0%, #FFFFFF00 100%); }
|
||||
|
||||
.bookv_top {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 15px;
|
||||
padding-bottom: 10px; }
|
||||
|
||||
.bookv_left {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
flex-grow: 1;
|
||||
margin-left: 10px;
|
||||
margin-top: auto;
|
||||
margin-bottom: auto; }
|
||||
|
||||
.bookv_left img {
|
||||
max-height: 100%;
|
||||
max-width: 100%; }
|
||||
|
||||
.bookv_right {
|
||||
background: #BBB;
|
||||
border: 1px solid #666;
|
||||
margin: 0 10px;
|
||||
padding: 8px 5px 2px 5px;
|
||||
min-height: 250px;
|
||||
min-width: 200px;
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-template-rows: auto auto auto auto auto auto 1fr auto;
|
||||
grid-column-gap: 15px;
|
||||
grid-row-gap: 2px; }
|
||||
|
||||
.bookv_right_key {
|
||||
font-weight: bold; }
|
||||
|
||||
.bookv_right_value a {
|
||||
color: #333;
|
||||
text-decoration: none; }
|
||||
|
||||
.bookv_right_value a:hover {
|
||||
color: #339;
|
||||
text-decoration: none; }
|
||||
|
||||
.bookv_right_comb {
|
||||
grid-column: 1 / span 2; }
|
||||
|
||||
.bookv_right_lang {
|
||||
display: flex;
|
||||
justify-content: right; }
|
||||
|
||||
.bookv_dl_download {
|
||||
background: #442222; }
|
||||
|
||||
.bookv_dl_github {
|
||||
background: #4078C0; }
|
||||
|
||||
.bookv_right_lang img {
|
||||
display: inline;
|
||||
height: 16pt;
|
||||
max-width: 32px;
|
||||
margin: 1px 2px 0 2px; }
|
||||
|
||||
.bookv_center {
|
||||
margin: 0 8px 8px 8px;
|
||||
padding: 16px;
|
||||
background: #EEE;
|
||||
border: 1px solid rgba(0, 0, 0, 0.15); }
|
||||
|
||||
.bookv_sep {
|
||||
margin: 40px 0 40px 0;
|
||||
display: block;
|
||||
border: none;
|
||||
color: white;
|
||||
height: 1px;
|
||||
background: #666666FF;
|
||||
background: -moz-radial-gradient(circle, #666, #FFFFFF00);
|
||||
background: -webkit-radial-gradient(circle, #666 0%, #FFFFFF00 100%); }
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.git_list {
|
||||
width: 100%;
|
||||
height: auto; }
|
||||
.bookv_content {
|
||||
border: none; }
|
||||
|
||||
.extGitGraphContainer {
|
||||
width: 95%;
|
||||
width: calc(100% - 16px); } }
|
||||
.git_list text.caption {
|
||||
font-size: 10px;
|
||||
fill: #666; }
|
||||
#bookv_header h1 {
|
||||
font-size: 28pt; } }
|
||||
@media (max-width: 1199px) {
|
||||
#bookv_header h1 {
|
||||
font-size: 28pt; } }
|
||||
@media (max-width: 767px) {
|
||||
.bookv_top {
|
||||
flex-direction: column;
|
||||
margin-top: 0; }
|
||||
|
||||
.git_list text.caption_month {
|
||||
font-size: 8px;
|
||||
fill: #BBB; }
|
||||
.bookv_left {
|
||||
margin: 0 10px 10px 10px; }
|
||||
|
||||
.git_list text.caption_day {
|
||||
font-size: 8px;
|
||||
fill: #BBB; }
|
||||
.bookv_right {
|
||||
min-height: 0;
|
||||
min-width: 0; }
|
||||
|
||||
.svg-tip:after {
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
bottom: -10px;
|
||||
margin: 0 0 0px -5px;
|
||||
content: " ";
|
||||
border: 5px solid transparent;
|
||||
border-top-color: rgba(0, 0, 0, 0.8);
|
||||
-moz-border-top-colors: none;
|
||||
-moz-border-right-colors: none;
|
||||
-moz-border-bottom-colors: none;
|
||||
-moz-border-left-colors: none;
|
||||
border-image: none; }
|
||||
.bookv_right_lang {
|
||||
justify-content: space-evenly; }
|
||||
|
||||
.svg-tip {
|
||||
padding: 5px;
|
||||
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
|
||||
color: #BBB;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
z-index: 99999;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
box-sizing: border-box;
|
||||
opacity: 0; }
|
||||
|
||||
.extGitGraphContainer {
|
||||
background-color: #FCFCFC;
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
border: 1px solid #222;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset; }
|
||||
|
||||
.egg_footer {
|
||||
margin-top: 5px;
|
||||
text-align: right;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
color: #888; }
|
||||
|
||||
.egg_footer > a {
|
||||
text-decoration: none;
|
||||
color: inherit; }
|
||||
|
||||
.egg_footer > a:hover {
|
||||
text-decoration: none;
|
||||
color: #22F; }
|
||||
|
||||
.about_circles {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
|
||||
.about_circles a {
|
||||
margin: 5px 0; }
|
||||
.about_circles .iconbutton_light span {
|
||||
text-align: left; }
|
||||
#bookv_header h1 {
|
||||
font-size: 18pt; } }
|
||||
.bookv_extra {
|
||||
height: 500px;
|
||||
border: 1px solid #333;
|
||||
margin: 10px; }
|
||||
|
||||
/* 400px */
|
||||
.admincontent {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
|
||||
.admincontent .boxedcontent {
|
||||
margin-bottom: 20px; }
|
||||
|
||||
.egh_ajaxOutput {
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
align-self: center;
|
||||
justify-self: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
resize: none;
|
||||
height: 300px; }
|
||||
|
||||
.keyvaluelist {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
.keyvaluelist div {
|
||||
display: flex;
|
||||
flex-direction: row; }
|
||||
.keyvaluelist div span {
|
||||
align-self: center; }
|
||||
.keyvaluelist div span:first-child {
|
||||
font-weight: bold;
|
||||
min-width: 500px; }
|
||||
|
||||
.kvl_100 div span:first-child {
|
||||
min-width: 100px; }
|
||||
|
||||
.kvl_200 div span:first-child {
|
||||
min-width: 200px; }
|
||||
|
||||
.kvl_300 div span:first-child {
|
||||
min-width: 300px; }
|
||||
|
||||
.consistency_result_ok, .consistency_result_warn, .consistency_result_err {
|
||||
min-width: 400px;
|
||||
border: 1px solid #888;
|
||||
padding: 0 5px;
|
||||
margin: 1px 0; }
|
||||
|
||||
.consistency_result_ok {
|
||||
background: #0F0; }
|
||||
|
||||
.consistency_result_warn {
|
||||
background: #FF0; }
|
||||
|
||||
.consistency_result_err {
|
||||
background: #F00; }
|
||||
|
||||
/* 400px */
|
||||
#loginform div {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
|
||||
#loginform div button {
|
||||
margin: 10px 0;
|
||||
padding: 0; }
|
||||
|
||||
.loginerror {
|
||||
display: flex;
|
||||
background: #FF4444;
|
||||
font-weight: bold;
|
||||
padding: 0 5px;
|
||||
margin: 5px 0 20px 0; }
|
||||
.ev_master {
|
||||
align-self: center; }
|
||||
@media (min-width: 851px) {
|
||||
.ev_master {
|
||||
padding-bottom: 80px; } }
|
||||
.ev_master .ev_code {
|
||||
color: #000;
|
||||
text-align: center;
|
||||
font-size: 150pt;
|
||||
font-weight: 500;
|
||||
font-family: Consolas, Monaco, "Courier New", Menlo, monospace; }
|
||||
.ev_master .ev_msg {
|
||||
color: #888;
|
||||
text-align: center;
|
||||
font-size: 25pt; }
|
||||
@media (max-width: 767px) {
|
||||
.ev_master .ev_code {
|
||||
font-size: 75pt; }
|
||||
.ev_master .ev_msg {
|
||||
font-size: 15pt; } }
|
||||
|
||||
/* 400px */
|
||||
.euler_pnl_row {
|
||||
|
125
www/data/css/styles.min.css
vendored
@ -41,6 +41,15 @@ body{background-color:#EEE;color:#CCC;font-family:serif}
|
||||
.stripedtable tbody td:first-child{border-left:0}
|
||||
.stripedtable tbody tr:last-child td{border-bottom:0}
|
||||
.stripedtable tbody tr:nth-child(odd){background-color:#ccc}
|
||||
.imgcarousel_parent{display:flex;flex-direction:row;align-content:center;justify-content:center;padding:5px;background:#BBB}
|
||||
.imgcarousel_content{background-size:contain;background-position:center;background-repeat:no-repeat;height:100%;width:100%}
|
||||
.imgcarousel_prev,.imgcarousel_next{display:flex;flex-direction:column;justify-content:center}
|
||||
.imgcarousel_prev{margin-right:5px}
|
||||
.imgcarousel_next{margin-left:5px}
|
||||
.imgcarousel_prev svg{width:48px;height:48px;border:1px solid black;background:#333;fill:#DDD}
|
||||
.imgcarousel_next svg{width:48px;height:48px;border:1px solid black;background:#333;fill:#DDD}
|
||||
.imgcarousel_prev:hover svg{background:#000;fill:#FFF;cursor:pointer}
|
||||
.imgcarousel_next:hover svg{background:#000;fill:#FFF;cursor:pointer}
|
||||
#headerdiv{z-index:999;background-color:#333;display:flex;border-bottom:1px solid #111;box-shadow:0 0 8px #000;position:fixed;width:100%}
|
||||
#headerdiv .logowrapper{flex:initial;margin:0;padding:0;height:42px}
|
||||
#headerdiv .logowrapper a{cursor:default}
|
||||
@ -80,6 +89,43 @@ html,body{margin:0;padding:0;height:100%}
|
||||
.index_pnl_header a:hover{text-decoration:underline}
|
||||
.index_pnl_content{display:flex;flex-direction:column;background:#DDD;padding:6px}
|
||||
@media(max-width:850px){.index_pnl_base{width:330px}}
|
||||
.aboutcontent{display:block;width:100%}
|
||||
.aboutcontent .boxedcontent{margin-bottom:20px}
|
||||
.about_egh_container{display:flex;flex-direction:column;align-items:center}
|
||||
.git_list{display:inline-block;width:715px;height:115px;overflow:visible}
|
||||
@media(max-width:991px){
|
||||
.git_list{width:100%;height:auto}
|
||||
.extGitGraphContainer{width:95%;width:calc(100% - 16px)}
|
||||
}
|
||||
.git_list text.caption{font-size:10px;fill:#666}
|
||||
.git_list text.caption_month{font-size:8px;fill:#BBB}
|
||||
.git_list text.caption_day{font-size:8px;fill:#BBB}
|
||||
.svg-tip:after{box-sizing:border-box;position:absolute;left:50%;height:5px;width:5px;bottom:-10px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,0.8);-moz-border-top-colors:none;-moz-border-right-colors:none;-moz-border-bottom-colors:none;-moz-border-left-colors:none;border-image:none}
|
||||
.svg-tip{padding:5px;background:none repeat scroll 0 0 rgba(0,0,0,0.8);color:#BBB;font-size:12px;position:absolute;z-index:99999;text-align:center;border-radius:3px;box-sizing:border-box;opacity:0}
|
||||
.extGitGraphContainer{background-color:#fcfcfc;margin:10px;display:inline-block;border:1px solid #222;border-radius:0;box-shadow:0 0 1px rgba(0,0,0,0.25) inset}
|
||||
.egg_footer{margin-top:5px;text-align:right;margin-right:5px;margin-bottom:5px;color:#888}
|
||||
.egg_footer>a{text-decoration:none;color:inherit}
|
||||
.egg_footer>a:hover{text-decoration:none;color:#22F}
|
||||
.about_circles{display:flex;flex-direction:column}
|
||||
.about_circles a{margin:5px 0}
|
||||
.about_circles .iconbutton_light span{text-align:left}
|
||||
.admincontent{display:block;width:100%}
|
||||
.admincontent .boxedcontent{margin-bottom:20px}
|
||||
.egh_ajaxOutput{display:flex;box-sizing:border-box;width:100%;align-self:center;justify-self:center;margin-left:auto;margin-right:auto;resize:none;height:300px}
|
||||
.keyvaluelist{display:flex;flex-direction:column}
|
||||
.keyvaluelist div{display:flex;flex-direction:row}
|
||||
.keyvaluelist div span{align-self:center}
|
||||
.keyvaluelist div span:first-child{font-weight:bold;min-width:500px}
|
||||
.kvl_100 div span:first-child{min-width:100px}
|
||||
.kvl_200 div span:first-child{min-width:200px}
|
||||
.kvl_300 div span:first-child{min-width:300px}
|
||||
.consistency_result_ok,.consistency_result_warn,.consistency_result_err{min-width:400px;border:1px solid #888;padding:0 5px;margin:1px 0}
|
||||
.consistency_result_ok{background:#0F0}
|
||||
.consistency_result_warn{background:#FF0}
|
||||
.consistency_result_err{background:#F00}
|
||||
#loginform div{display:flex;flex-direction:column}
|
||||
#loginform div button{margin:10px 0;padding:0}
|
||||
.loginerror{display:flex;background:#f44;font-weight:bold;padding:0 5px;margin:5px 0 20px 0}
|
||||
.bloglistelem_container{display:flex;align-items:center;flex-direction:column}
|
||||
.bloglistelem{width:100%;border:solid 1px #444;margin:10px 5px;color:#333;text-decoration:none}
|
||||
.ble_blog{background-color:#BBB}
|
||||
@ -171,14 +217,6 @@ html,body{margin:0;padding:0;height:100%}
|
||||
.bce_pag10{flex-direction:row}
|
||||
.bce_pag05{flex-direction:row}
|
||||
}
|
||||
.ev_master{align-self:center}
|
||||
@media(min-width:851px){.ev_master{padding-bottom:80px}}
|
||||
.ev_master .ev_code{color:#000;text-align:center;font-size:150pt;font-weight:500;font-family:Consolas,Monaco,"Courier New",Menlo,monospace}
|
||||
.ev_master .ev_msg{color:#888;text-align:center;font-size:25pt}
|
||||
@media(max-width:767px){
|
||||
.ev_master .ev_code{font-size:75pt}
|
||||
.ev_master .ev_msg{font-size:15pt}
|
||||
}
|
||||
.prgl_parent{display:flex;flex-direction:column}
|
||||
@media(max-width:850px){.prgl_parent{align-items:center}}
|
||||
.prgl_elem{display:flex;flex-direction:row;text-decoration:none;background:#BBB;border:solid 1px #444;margin:5px 0}
|
||||
@ -257,43 +295,44 @@ html,body{margin:0;padding:0;height:100%}
|
||||
.booklst_date{display:none;visibility:hidden}
|
||||
.booklst_title{font-size:32pt}
|
||||
}
|
||||
.aboutcontent{display:block;width:100%}
|
||||
.aboutcontent .boxedcontent{margin-bottom:20px}
|
||||
.about_egh_container{display:flex;flex-direction:column;align-items:center}
|
||||
.git_list{display:inline-block;width:715px;height:115px;overflow:visible}
|
||||
.bookv_content{display:flex;flex-direction:column;color:#333;border:1px solid black;background-color:#e0e0e0;width:100%;margin-left:auto;margin-right:auto}
|
||||
#bookv_header h1{font-size:48pt;text-align:center;margin-top:5px}
|
||||
#bookv_header hr{background:-moz-radial-gradient(circle,#CCC,#FFFFFF00);background:-webkit-radial-gradient(circle,#CCC 0,#FFFFFF00 100%)}
|
||||
.bookv_top{display:flex;flex-direction:row;margin-top:15px;padding-bottom:10px}
|
||||
.bookv_left{display:inline-flex;justify-content:center;flex-grow:1;margin-left:10px;margin-top:auto;margin-bottom:auto}
|
||||
.bookv_left img{max-height:100%;max-width:100%}
|
||||
.bookv_right{background:#BBB;border:1px solid #666;margin:0 10px;padding:8px 5px 2px 5px;min-height:250px;min-width:200px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto auto auto auto 1fr auto;grid-column-gap:15px;grid-row-gap:2px}
|
||||
.bookv_right_key{font-weight:bold}
|
||||
.bookv_right_value a{color:#333;text-decoration:none}
|
||||
.bookv_right_value a:hover{color:#339;text-decoration:none}
|
||||
.bookv_right_comb{grid-column:1 / span 2}
|
||||
.bookv_right_lang{display:flex;justify-content:right}
|
||||
.bookv_dl_download{background:#422}
|
||||
.bookv_dl_github{background:#4078c0}
|
||||
.bookv_right_lang img{display:inline;height:16pt;max-width:32px;margin:1px 2px 0 2px}
|
||||
.bookv_center{margin:0 8px 8px 8px;padding:16px;background:#EEE;border:1px solid rgba(0,0,0,0.15)}
|
||||
.bookv_sep{margin:40px 0 40px 0;display:block;border:0;color:white;height:1px;background:#666666FF;background:-moz-radial-gradient(circle,#666,#FFFFFF00);background:-webkit-radial-gradient(circle,#666 0,#FFFFFF00 100%)}
|
||||
@media(max-width:991px){
|
||||
.git_list{width:100%;height:auto}
|
||||
.extGitGraphContainer{width:95%;width:calc(100% - 16px)}
|
||||
.bookv_content{border:0}
|
||||
#bookv_header h1{font-size:28pt}
|
||||
}
|
||||
@media(max-width:1199px){#bookv_header h1{font-size:28pt}}
|
||||
@media(max-width:767px){
|
||||
.bookv_top{flex-direction:column;margin-top:0}
|
||||
.bookv_left{margin:0 10px 10px 10px}
|
||||
.bookv_right{min-height:0;min-width:0}
|
||||
.bookv_right_lang{justify-content:space-evenly}
|
||||
#bookv_header h1{font-size:18pt}
|
||||
}
|
||||
.bookv_extra{height:500px;border:1px solid #333;margin:10px}
|
||||
.ev_master{align-self:center}
|
||||
@media(min-width:851px){.ev_master{padding-bottom:80px}}
|
||||
.ev_master .ev_code{color:#000;text-align:center;font-size:150pt;font-weight:500;font-family:Consolas,Monaco,"Courier New",Menlo,monospace}
|
||||
.ev_master .ev_msg{color:#888;text-align:center;font-size:25pt}
|
||||
@media(max-width:767px){
|
||||
.ev_master .ev_code{font-size:75pt}
|
||||
.ev_master .ev_msg{font-size:15pt}
|
||||
}
|
||||
.git_list text.caption{font-size:10px;fill:#666}
|
||||
.git_list text.caption_month{font-size:8px;fill:#BBB}
|
||||
.git_list text.caption_day{font-size:8px;fill:#BBB}
|
||||
.svg-tip:after{box-sizing:border-box;position:absolute;left:50%;height:5px;width:5px;bottom:-10px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,0.8);-moz-border-top-colors:none;-moz-border-right-colors:none;-moz-border-bottom-colors:none;-moz-border-left-colors:none;border-image:none}
|
||||
.svg-tip{padding:5px;background:none repeat scroll 0 0 rgba(0,0,0,0.8);color:#BBB;font-size:12px;position:absolute;z-index:99999;text-align:center;border-radius:3px;box-sizing:border-box;opacity:0}
|
||||
.extGitGraphContainer{background-color:#fcfcfc;margin:10px;display:inline-block;border:1px solid #222;border-radius:0;box-shadow:0 0 1px rgba(0,0,0,0.25) inset}
|
||||
.egg_footer{margin-top:5px;text-align:right;margin-right:5px;margin-bottom:5px;color:#888}
|
||||
.egg_footer>a{text-decoration:none;color:inherit}
|
||||
.egg_footer>a:hover{text-decoration:none;color:#22F}
|
||||
.about_circles{display:flex;flex-direction:column}
|
||||
.about_circles a{margin:5px 0}
|
||||
.about_circles .iconbutton_light span{text-align:left}
|
||||
.admincontent{display:block;width:100%}
|
||||
.admincontent .boxedcontent{margin-bottom:20px}
|
||||
.egh_ajaxOutput{display:flex;box-sizing:border-box;width:100%;align-self:center;justify-self:center;margin-left:auto;margin-right:auto;resize:none;height:300px}
|
||||
.keyvaluelist{display:flex;flex-direction:column}
|
||||
.keyvaluelist div{display:flex;flex-direction:row}
|
||||
.keyvaluelist div span{align-self:center}
|
||||
.keyvaluelist div span:first-child{font-weight:bold;min-width:500px}
|
||||
.kvl_100 div span:first-child{min-width:100px}
|
||||
.kvl_200 div span:first-child{min-width:200px}
|
||||
.kvl_300 div span:first-child{min-width:300px}
|
||||
.consistency_result_ok,.consistency_result_warn,.consistency_result_err{min-width:400px;border:1px solid #888;padding:0 5px;margin:1px 0}
|
||||
.consistency_result_ok{background:#0F0}
|
||||
.consistency_result_warn{background:#FF0}
|
||||
.consistency_result_err{background:#F00}
|
||||
#loginform div{display:flex;flex-direction:column}
|
||||
#loginform div button{margin:10px 0;padding:0}
|
||||
.loginerror{display:flex;background:#f44;font-weight:bold;padding:0 5px;margin:5px 0 20px 0}
|
||||
.euler_pnl_row{display:flex;flex-direction:row;flex-wrap:wrap}
|
||||
@media(max-width:850px){.euler_pnl_row{flex-direction:column}}
|
||||
.euler_pnl_row2{display:flex;flex-direction:row}
|
||||
|
@ -3,20 +3,26 @@
|
||||
@import 'styles_footer';
|
||||
|
||||
@import 'styles_main';
|
||||
@import 'styles_bloglist';
|
||||
@import 'styles_blogview';
|
||||
@import 'styles_blogview_euler';
|
||||
@import 'styles_errorview';
|
||||
@import 'styles_programslist';
|
||||
@import 'styles_programsview';
|
||||
@import 'styles_bookslist';
|
||||
@import 'styles_about';
|
||||
@import 'styles_admin';
|
||||
@import 'styles_login';
|
||||
|
||||
@import 'styles_bloglist';
|
||||
@import 'styles_blogview';
|
||||
@import 'styles_blogview_euler';
|
||||
|
||||
@import 'styles_programslist';
|
||||
@import 'styles_programsview';
|
||||
|
||||
@import 'styles_bookslist';
|
||||
@import 'styles_booksview';
|
||||
|
||||
@import 'styles_errorview';
|
||||
|
||||
@import 'styles_eulerpanel';
|
||||
@import 'styles_programspanel';
|
||||
@import 'styles_blogpanel';
|
||||
@import 'styles_bookspanel';
|
||||
|
||||
@import 'styles_bfjoustrunner';
|
||||
@import 'styles_befungerunner';
|
158
www/data/css/styles_booksview.scss
Normal file
@ -0,0 +1,158 @@
|
||||
@import 'styles_config';
|
||||
|
||||
.bookv_content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
color: $COL_TEXT_DARK;
|
||||
border: 1px solid black;
|
||||
background-color: #E0E0E0;
|
||||
width: 100%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#bookv_header h1 {
|
||||
font-size: 48pt;
|
||||
text-align: center;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#bookv_header hr {
|
||||
background: -moz-radial-gradient( circle, $COL_TEXT_NORMAL, $COL_TRANSPARENT);
|
||||
background: -webkit-radial-gradient(circle, $COL_TEXT_NORMAL 0%,$COL_TRANSPARENT 100%);
|
||||
}
|
||||
|
||||
.bookv_top {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.bookv_left {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
|
||||
flex-grow: 1;
|
||||
margin-left: 10px;
|
||||
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
}
|
||||
|
||||
.bookv_left img {
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.bookv_right {
|
||||
background: #BBB;
|
||||
border: 1px solid #666;
|
||||
margin: 0 10px;
|
||||
padding: 8px 5px 2px 5px;
|
||||
|
||||
min-height: 250px;
|
||||
min-width: 200px;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-template-rows: auto auto auto auto auto auto 1fr auto;
|
||||
grid-column-gap: 15px;
|
||||
grid-row-gap: 2px;
|
||||
}
|
||||
|
||||
.bookv_right_key {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bookv_right_value a {
|
||||
color: $COL_TEXT_DARK;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bookv_right_value a:hover {
|
||||
color: #339;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bookv_right_comb {
|
||||
grid-column: 1 / span 2;
|
||||
}
|
||||
|
||||
.bookv_right_lang {
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
}
|
||||
|
||||
.bookv_dl_download { background: #442222; }
|
||||
.bookv_dl_github { background: $COL_GITHUB; }
|
||||
|
||||
.bookv_right_lang img {
|
||||
display: inline;
|
||||
height: 16pt;
|
||||
max-width: 32px;
|
||||
margin: 1px 2px 0 2px;
|
||||
}
|
||||
|
||||
.bookv_center {
|
||||
margin: 0 8px 8px 8px;
|
||||
padding: 16px;
|
||||
background: #EEE;
|
||||
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.bookv_sep {
|
||||
margin: 40px 0 40px 0;
|
||||
display: block;
|
||||
border: none;
|
||||
color: white;
|
||||
height: 1px;
|
||||
background: #666666FF;
|
||||
background: -moz-radial-gradient( circle, #666, #FFFFFF00);
|
||||
background: -webkit-radial-gradient(circle, #666 0%, #FFFFFF00 100%);
|
||||
}
|
||||
|
||||
@include rdmedia_range(0,2) {
|
||||
.bookv_content { border: none; }
|
||||
#bookv_header h1 { font-size: 28pt; }
|
||||
}
|
||||
|
||||
@include rdmedia_range(0,3) {
|
||||
#bookv_header h1 { font-size: 28pt; }
|
||||
}
|
||||
|
||||
@include rdmedia(0) {
|
||||
|
||||
.bookv_top {
|
||||
flex-direction: column;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.bookv_left {
|
||||
margin: 0 10px 10px 10px;
|
||||
}
|
||||
|
||||
.bookv_right {
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.bookv_right_lang {
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
#bookv_header h1 {
|
||||
font-size: 18pt;
|
||||
}
|
||||
}
|
||||
|
||||
.bookv_extra {
|
||||
height: 500px;
|
||||
border: 1px solid #333;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.bookv_extra img {
|
||||
|
||||
}
|
@ -230,3 +230,45 @@ body {
|
||||
background-color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.imgcarousel_parent {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
|
||||
padding: 5px;
|
||||
|
||||
background: #BBB;
|
||||
}
|
||||
|
||||
.imgcarousel_content {
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.imgcarousel_prev, .imgcarousel_next
|
||||
{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.imgcarousel_prev
|
||||
{
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.imgcarousel_next
|
||||
{
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.imgcarousel_prev svg { width: 48px; height: 48px; border: 1px solid black; background: #333; fill: #DDD; }
|
||||
.imgcarousel_next svg { width: 48px; height: 48px; border: 1px solid black; background: #333; fill: #DDD; }
|
||||
.imgcarousel_prev:hover svg { background: #000; fill: #FFF; cursor: pointer; }
|
||||
.imgcarousel_next:hover svg { background: #000; fill: #FFF; cursor: pointer; }
|
BIN
www/data/images/book_img/apgte1_front.png
Normal file
After Width: | Height: | Size: 190 KiB |
BIN
www/data/images/book_img/apgte1_full.png
Normal file
After Width: | Height: | Size: 780 KiB |
BIN
www/data/images/book_img/apgte1_img1.jpg
Normal file
After Width: | Height: | Size: 228 KiB |
BIN
www/data/images/book_img/apgte1_img2.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
www/data/images/book_img/apgte1_img3.jpg
Normal file
After Width: | Height: | Size: 187 KiB |
BIN
www/data/images/book_img/apgte1_img4.jpg
Normal file
After Width: | Height: | Size: 312 KiB |
Before Width: | Height: | Size: 538 KiB |
Before Width: | Height: | Size: 2.7 MiB |
BIN
www/data/images/book_img/hpmor1_front.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
www/data/images/book_img/hpmor1_full.png
Normal file
After Width: | Height: | Size: 360 KiB |
BIN
www/data/images/book_img/hpmor1_img1.jpg
Normal file
After Width: | Height: | Size: 233 KiB |
BIN
www/data/images/book_img/hpmor1_img2.jpg
Normal file
After Width: | Height: | Size: 272 KiB |
BIN
www/data/images/book_img/hpmor1_img3.jpg
Normal file
After Width: | Height: | Size: 192 KiB |
BIN
www/data/images/book_img/hpmor1_img4.jpg
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
www/data/images/book_img/hpmor2_front.png
Normal file
After Width: | Height: | Size: 140 KiB |
BIN
www/data/images/book_img/hpmor2_full.png
Normal file
After Width: | Height: | Size: 410 KiB |
BIN
www/data/images/book_img/hpmor2_img1.jpg
Normal file
After Width: | Height: | Size: 232 KiB |
BIN
www/data/images/book_img/hpmor2_img2.jpg
Normal file
After Width: | Height: | Size: 284 KiB |
BIN
www/data/images/book_img/hpmor2_img3.jpg
Normal file
After Width: | Height: | Size: 182 KiB |
BIN
www/data/images/book_img/hpmor2_img4.jpg
Normal file
After Width: | Height: | Size: 370 KiB |
BIN
www/data/images/book_img/hpmor3_front.png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
www/data/images/book_img/hpmor3_full.png
Normal file
After Width: | Height: | Size: 312 KiB |
BIN
www/data/images/book_img/hpmor3_img1.jpg
Normal file
After Width: | Height: | Size: 226 KiB |
BIN
www/data/images/book_img/hpmor3_img2.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
www/data/images/book_img/hpmor3_img3.jpg
Normal file
After Width: | Height: | Size: 123 KiB |
BIN
www/data/images/book_img/hpmor3_img4.jpg
Normal file
After Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 804 KiB |
Before Width: | Height: | Size: 291 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 316 KiB |
Before Width: | Height: | Size: 880 KiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 444 KiB |
Before Width: | Height: | Size: 4.7 MiB After Width: | Height: | Size: 1.5 MiB |
BIN
www/data/images/book_img/mm_img1.jpg
Normal file
After Width: | Height: | Size: 211 KiB |
BIN
www/data/images/book_img/mm_img2.jpg
Normal file
After Width: | Height: | Size: 232 KiB |
BIN
www/data/images/book_img/mm_img3.jpg
Normal file
After Width: | Height: | Size: 179 KiB |
BIN
www/data/images/book_img/mm_img4.jpg
Normal file
After Width: | Height: | Size: 286 KiB |
@ -13,4 +13,7 @@
|
||||
<path id="stackoverflow" class="svg_path" d="M18.986 21.865v-6.404h2.134V24H1.844v-8.539h2.13v6.404h15.012zM6.111 19.731H16.85v-2.137H6.111v2.137zm.259-4.852l10.48 2.189.451-2.07-10.478-2.187-.453 2.068zm1.359-5.056l9.705 4.53.903-1.95-9.706-4.53-.902 1.936v.014zm2.715-4.785l8.217 6.855 1.359-1.62-8.216-6.853-1.35 1.617-.01.001zM15.751 0l-1.746 1.294 6.405 8.604 1.746-1.294L15.749 0h.002z"/>
|
||||
<path id="goodreads" class="svg_path" d="M19.525 15.977V.49h-2.059v2.906h-.064c-.211-.455-.481-.891-.842-1.307-.36-.412-.767-.777-1.232-1.094-.466-.314-.962-.561-1.519-.736C13.256.09 12.669 0 12.038 0c-1.21 0-2.3.225-3.246.67-.947.447-1.743 1.057-2.385 1.83-.642.773-1.133 1.676-1.47 2.711-.336 1.037-.506 2.129-.506 3.283 0 1.199.141 2.326.425 3.382.286 1.057.737 1.976 1.368 2.762.631.78 1.412 1.397 2.375 1.833.961.436 2.119.661 3.471.661 1.248 0 2.33-.315 3.262-.946s1.638-1.473 2.119-2.525h.061v2.284c0 2.044-.421 3.607-1.264 4.705-.84 1.081-2.224 1.638-4.146 1.638-.572 0-1.128-.061-1.669-.181-.542-.12-1.036-.315-1.487-.57-.437-.271-.827-.601-1.143-1.038-.316-.435-.526-.961-.632-1.593H5.064c.067.887.315 1.654.737 2.3.424.646.961 1.172 1.602 1.593.641.406 1.367.706 2.172.902.811.194 1.639.3 2.494.3 1.383 0 2.541-.195 3.486-.555.947-.376 1.714-.902 2.301-1.608.601-.708 1.021-1.549 1.293-2.556.27-1.007.42-2.134.42-3.367l-.044.062zm-7.484-.557c-.955 0-1.784-.189-2.479-.571-.697-.38-1.277-.882-1.732-1.503-.467-.621-.797-1.332-1.022-2.139s-.332-1.633-.332-2.484c0-.871.105-1.725.301-2.563.21-.84.54-1.587.992-2.24.451-.652 1.037-1.182 1.728-1.584s1.533-.605 2.51-.605 1.803.209 2.495.621c.676.415 1.247.959 1.683 1.634.436.677.751 1.429.947 2.255.195.826.285 1.656.285 2.482 0 .852-.12 1.678-.345 2.484-.226.807-.572 1.518-1.038 2.139-.465.621-1.021 1.123-1.698 1.503-.676.382-1.458.571-2.359.571h.064z"/>
|
||||
<path id="delphipraxis" class="svg_path" d="M3.301 5.558.603 18.442H5.147C6.289 18.442 7.136 18.378 7.687 18.249 8.66 18.015 9.453 17.651 10.069 17.159 10.871 16.526 11.537 15.674 12.064 14.602 12.288 14.148 12.465 13.666 12.595 13.157L11.488 18.442H14.142L15.171 13.529H16.867C18.009 13.529 18.789 13.5 19.205 13.442 19.92 13.342 20.488 13.198 20.91 13.011 21.332 12.817 21.724 12.536 22.088 12.167 22.457 11.798 22.767 11.306 23.019 10.69 23.271 10.075 23.397 9.442 23.397 8.792 23.397 8.089 23.239 7.485 22.923 6.981 22.606 6.472 22.176 6.108 21.631 5.892 21.092 5.669 20.356 5.558 19.424 5.558H14.186L12.739 12.468C12.822 11.97 12.864 11.448 12.864 10.901 12.864 10.257 12.796 9.665 12.662 9.126 12.527 8.581 12.333 8.101 12.081 7.685 11.835 7.269 11.539 6.914 11.194 6.621 10.854 6.322 10.473 6.091 10.051 5.927 9.635 5.763 9.16 5.654 8.627 5.602 8.358 5.572 7.74 5.558 6.773 5.558H3.301zM16.392 7.676H18.291C19.152 7.676 19.706 7.723 19.952 7.817 20.204 7.904 20.397 8.048 20.532 8.247 20.673 8.446 20.743 8.701 20.743 9.012 20.743 9.475 20.608 9.899 20.338 10.286 20.069 10.673 19.7 10.954 19.231 11.13 18.762 11.306 17.828 11.394 16.428 11.394H15.61L16.392 7.676zM5.498 7.685H7.037C7.816 7.685 8.358 7.737 8.662 7.843 9.096 7.995 9.459 8.303 9.752 8.766 10.051 9.223 10.201 9.908 10.201 10.822 10.201 11.895 10.022 12.826 9.664 13.617 9.307 14.408 8.868 15.041 8.346 15.516 7.983 15.844 7.581 16.069 7.142 16.192 6.708 16.31 6.005 16.368 5.033 16.368H3.688L5.498 7.685z"/>
|
||||
<path id="pdf" class="svg_path" d="M23.598 15.368c-.71-.76-2.164-1.197-4.224-1.197-1.1 0-2.375.11-3.76.37-.782-.77-1.562-1.67-2.307-2.72-.53-.74-.993-1.52-1.42-2.29.813-2.54 1.206-4.61 1.206-6.1 0-1.672-.603-3.416-2.34-3.416-.533 0-1.066.325-1.35.8-.783 1.408-.43 4.493.917 7.54-.503 1.52-1.035 2.973-1.7 4.605-.578 1.376-1.244 2.794-1.923 4.096C2.793 18.64.267 20.49.03 21.94c-.104.547.074 1.05.457 1.45.133.11.636.545 1.48.545 2.59 0 5.32-4.28 6.707-6.86 1.065-.36 2.13-.687 3.193-1.015 1.168-.323 2.34-.583 3.405-.765 2.735 2.504 5.146 2.9 6.358 2.9 1.492 0 2.024-.617 2.203-1.122.28-.65.07-1.37-.252-1.74l.02.04zm-1.385 1.054c-.104.544-.638.906-1.386.906-.21 0-.39-.037-.603-.072-1.36-.325-2.633-1.016-3.903-2.106 1.25-.214 2.31-.25 2.98-.25.74 0 1.38.032 1.81.144.49.106 1.27.435 1.095 1.38h.02zm-7.523-1.707c-.92.19-1.914.414-2.944.693-.816.223-1.666.474-2.52.77.463-.902.854-1.774 1.208-2.603.428-1.02.78-2.07 1.135-3.046.35.61.74 1.23 1.13 1.78.64.87 1.31 1.7 1.98 2.42v-.02zM10.04 1.23c.145-.29.43-.436.678-.436.745 0 .887.868.887 1.56 0 1.168-.354 2.942-.96 4.967-1.062-2.82-1.135-5.18-.603-6.09zM6.138 18.127C4.328 21.17 2.59 23.06 1.525 23.06c-.21 0-.387-.075-.53-.183-.214-.216-.32-.472-.248-.76.213-1.09 2.236-2.613 5.392-3.99z"/>
|
||||
<path id="arrow_right" class="svg_path" d="M.823.8C.882.8 23.222 12 23.2 12.018 23.125 12.081.817 23.22.809 23.2.804 23.187 1.887 20.662 3.217 17.591L5.634 12.006 3.217 6.43C1.888 3.364.8 .842.8 .827.8 .812.81 .8.823 .8z"/>
|
||||
<path id="arrow_left" class="svg_path" d="M23.177.8C23.118.8 .778 12 .8 12.018.875 12.081 23.183 23.22 23.191 23.2 23.196 23.187 22.113 20.662 20.783 17.591L18.366 12.006 20.783 6.43C22.112 3.364 23.2.842 23.2.827 23.2.812 23.19.8 23.177.8z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
32
www/data/javascript/ms_basic.js
Normal file
@ -0,0 +1,32 @@
|
||||
function findParent(el, selector) {
|
||||
let retval = null;
|
||||
while (el) {
|
||||
if (el.matches(selector)) {
|
||||
retval = el;
|
||||
break
|
||||
}
|
||||
el = el.parentElement;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
function findChild(el, selector) {
|
||||
for (let i = 0; i < el.children.length; i++) {
|
||||
if (el.children[i].matches(selector)) { return el.children[i]; }
|
||||
let rec = findChild(el.children[i], selector);
|
||||
if (rec !== null) return rec;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function imgcarousel_move(source, delta) {
|
||||
let carousel = findParent(source, ".imgcarousel_parent");
|
||||
let index = parseInt(carousel.getAttribute('data-imgcarousel-index'));
|
||||
let images = JSON.parse(carousel.getAttribute('data-imgcarousel-images'));
|
||||
let content = findChild(carousel, '.imgcarousel_content');
|
||||
|
||||
index = (index + delta + images.length) % images.length;
|
||||
|
||||
carousel.setAttribute('data-imgcarousel-index', index);
|
||||
content.setAttribute('style', 'background-image: url(' + images[index] + ');');
|
||||
}
|
@ -28,6 +28,7 @@ $URL_RULES =
|
||||
[ 'url' => ['books'], 'target' => 'pages/books_list.php', 'options' => [], ],
|
||||
[ 'url' => ['books', 'list'], 'target' => 'pages/books_list.php', 'options' => [], ],
|
||||
[ 'url' => ['books', 'view', '?{id}'], 'target' => 'pages/books_view.php', 'options' => [ 'id' => '%GET%' ], ],
|
||||
[ 'url' => ['books', 'view', '?{id}', '*'], 'target' => 'pages/books_view.php', 'options' => [ 'id' => '%URL%' ], ],
|
||||
|
||||
[ 'url' => ['update.php'], 'target' => 'pages/api_updatecheck.php', 'options' => [ 'Name' => '%GET%' ], ],
|
||||
[ 'url' => ['update.php', '?{Name}'], 'target' => 'pages/api_updatecheck.php', 'options' => [ 'Name' => '%URL%' ], ],
|
||||
@ -116,6 +117,10 @@ try {
|
||||
$ident = substr($comp, 2, strlen($comp)-3);
|
||||
$urlparams[$ident] = $pathparts[$i];
|
||||
}
|
||||
else if ($comp === '*')
|
||||
{
|
||||
// ok
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strtolower($comp) !== strtolower($pathparts[$i])) { $match = false; break; }
|
||||
@ -194,3 +199,9 @@ try {
|
||||
//TODO euler insert+show 32bit | 64bit mode
|
||||
//TODO send cache header (?)
|
||||
//TODO global uncached error logger -> send by mail
|
||||
|
||||
//TODO chrome test
|
||||
// - books view image height
|
||||
// - program list image height changes on hover
|
||||
//
|
||||
//
|
@ -52,6 +52,7 @@ function httpError($errorcode, $message)
|
||||
function destructiveUrlEncode($str) {
|
||||
$str = str_replace(' ', '_', $str);
|
||||
$str = str_replace('+', '_', $str);
|
||||
$str = str_replace(':', '_', $str);
|
||||
$str = str_replace('.', '', $str);
|
||||
return urlencode($str);
|
||||
}
|
||||
|
@ -6,16 +6,25 @@ class Books
|
||||
{
|
||||
public static function readSingle($a)
|
||||
{
|
||||
$a['imgfront_url'] = '/data/images/book_img/' . $a['id'] . '_front.png';
|
||||
$a['imgfront_path'] = __DIR__ . '/../data/images/book_img/' . $a['id'] . '_front.png';
|
||||
$a['imgfront_url'] = '/data/images/book_img/' . $a['id'] . '_front.png';
|
||||
$a['imgfront_path'] = __DIR__ . '/../data/images/book_img/' . $a['id'] . '_front.png';
|
||||
|
||||
$a['imgfull_url'] = '/data/images/book_img/' . $a['id'] . '_full.png';
|
||||
$a['imgfull_path'] = __DIR__ . '/../data/images/book_img/' . $a['id'] . '_full.png';
|
||||
$a['imgfull_url'] = '/data/images/book_img/' . $a['id'] . '_full.png';
|
||||
$a['imgfull_path'] = __DIR__ . '/../data/images/book_img/' . $a['id'] . '_full.png';
|
||||
|
||||
$a['preview_url'] = '/data/dynamic/bookprev_' . $a['id'] . '.png';
|
||||
$a['preview_path'] = __DIR__ . '/../data/dynamic/bookprev_' . $a['id'] . '.png';
|
||||
$a['preview_url'] = '/data/dynamic/bookprev_' . $a['id'] . '.png';
|
||||
$a['preview_path'] = __DIR__ . '/../data/dynamic/bookprev_' . $a['id'] . '.png';
|
||||
|
||||
$a['url'] = '/books/view/' . $a['id'];
|
||||
$a['url'] = '/books/view/' . $a['id'] . '/' . destructiveUrlEncode($a['title']);
|
||||
|
||||
$a['extraimages_urls'] = [];
|
||||
$a['extraimages_paths'] = [];
|
||||
|
||||
for ($i=1; $i <= $a['imagecount']; $i++)
|
||||
{
|
||||
$a['extraimages_urls'] []= '/data/images/book_img/' . $a['id'] . '_img' . $i . '.jpg';
|
||||
$a['extraimages_paths'] []= __DIR__ . '/../data/images/book_img/' . $a['id'] . '_img' . $i . '.jpg';
|
||||
}
|
||||
|
||||
return $a;
|
||||
}
|
||||
@ -70,4 +79,12 @@ class Books
|
||||
|
||||
smart_resize_image($src , null, 200, 0, true, $dst, 100);
|
||||
}
|
||||
|
||||
public static function getBook($id)
|
||||
{
|
||||
foreach (self::listAll() as $book) {
|
||||
if ($book['id'] == $id) return $book;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -10,7 +10,6 @@ $allposts = Blog::listAllNewestFirst();
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Mikescher.com - Blog</title>
|
||||
<meta name="google-site-verification" content="pZOhmjeJcQbRMNa8xRLam4dwJ2oYwMwISY1lRKreSSs"/>
|
||||
<link rel="icon" type="image/png" href="/data/images/favicon.png"/>
|
||||
<link rel="canonical" href="https://www.mikescher.com/blog"/>
|
||||
<?php printCSS(); ?>
|
||||
|
@ -27,7 +27,6 @@ if ($eulerproblem === null) $isSubEuler = false;
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Mikescher.com - <?php echo ($isSubEuler ? $eulerproblem['title'] : $post['title']); ?></title>
|
||||
<meta name="google-site-verification" content="pZOhmjeJcQbRMNa8xRLam4dwJ2oYwMwISY1lRKreSSs"/>
|
||||
<link rel="icon" type="image/png" href="/data/images/favicon.png"/>
|
||||
<?php printCSS(); ?>
|
||||
<?php echo '<link rel="canonical" href="' . ($isSubEuler ? $eulerproblem['canonical'] : $post['canonical']) . '"/>'; ?>
|
||||
|
100
www/pages/books_view.php
Normal file
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<?php
|
||||
require_once (__DIR__ . '/../internals/base.php');
|
||||
require_once (__DIR__ . '/../internals/books.php');
|
||||
|
||||
|
||||
$id = $OPTIONS['id'];
|
||||
|
||||
$book = Books::getBook($id);
|
||||
if ($book === NULL) httpError(404, 'Book not found');
|
||||
|
||||
?>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Mikescher.com - <?php echo $book['title']; ?></title>
|
||||
<link rel="icon" type="image/png" href="/data/images/favicon.png"/>
|
||||
<?php printCSS(); ?>
|
||||
<?php echo '<link rel="canonical" href="' . $book['url'] . '"/>'; ?>
|
||||
<?php includeScriptOnce("/data/javascript/ms_basic.js", true, 'defer') ?>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mastercontainer">
|
||||
|
||||
<?php $HEADER_ACTIVE = 'book'; include (__DIR__ . '/../fragments/header.php'); ?>
|
||||
|
||||
<div id="content" class="content-responsive">
|
||||
|
||||
<div class="blockcontent">
|
||||
|
||||
<div class="bookv_content">
|
||||
|
||||
<div class="contentheader" id="bookv_header"><h1><?php echo htmlspecialchars($book['title']); ?></h1><hr/></div>
|
||||
|
||||
<div class="bookv_top">
|
||||
<div class="bookv_left"><img src="<?php echo $book['imgfull_url']; ?>" alt="<?php echo $book['title'] ?>" /></div>
|
||||
<div class="bookv_right">
|
||||
<div class="bookv_right_key" style="grid-row:1">Name:</div>
|
||||
<div class="bookv_right_value" style="grid-row:1"><?php echo htmlspecialchars($book['title_short']) ?></div>
|
||||
|
||||
<div class="bookv_right_key" style="grid-row:2">Pages:</div>
|
||||
<div class="bookv_right_value" style="grid-row:2"><?php echo $book['pages'] ?></div>
|
||||
|
||||
<div class="bookv_right_key" style="grid-row:3">Author:</div>
|
||||
<div class="bookv_right_value" style="grid-row:3"><?php echo htmlspecialchars($book['author']) ?></div>
|
||||
|
||||
<div class="bookv_right_key" style="grid-row:4">Size:</div>
|
||||
<div class="bookv_right_value" style="grid-row:4"><?php echo $book['size'][0] . 'cm x ' . $book['size'][1] . 'cm'; ?></div>
|
||||
|
||||
<div class="bookv_right_key" style="grid-row:5">Date:</div>
|
||||
<div class="bookv_right_value" style="grid-row:5"><?php echo $book['date'] ?></div>
|
||||
|
||||
<div class="bookv_right_comb" style="grid-row:6">
|
||||
|
||||
<a class="iconbutton" href="<?php echo $book['github'] ?>">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
|
||||
<use xlink:href="/data/images/icons.svg#github"/>
|
||||
</svg>
|
||||
<span>Github</span>
|
||||
</a>
|
||||
<a class="iconbutton" href="<?php echo $book['online'] ?>">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
|
||||
<use xlink:href="/data/images/icons.svg#home"/>
|
||||
</svg>
|
||||
<span>Homepage</span>
|
||||
</a>
|
||||
<a class="iconbutton" href="<?php echo $book['pdf'] ?>">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
|
||||
<use xlink:href="/data/images/icons.svg#pdf"/>
|
||||
</svg>
|
||||
<span>PDF</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bookv_extra imgcarousel_parent" data-imgcarousel-index="0" data-imgcarousel-images="<?php echo htmlspecialchars(json_encode($book['extraimages_urls'])); ?>" >
|
||||
<a class="imgcarousel_prev" href="javascript:void(0)" onclick="imgcarousel_move(this, -1);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
|
||||
<use xlink:href="/data/images/icons.svg#arrow_left"/>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="imgcarousel_content" style="background-image: url(<?php echo $book['extraimages_urls'][0]; ?>);"></div>
|
||||
<a class="imgcarousel_next" href="javascript:void(0)" onclick="imgcarousel_move(this, +1);">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
|
||||
<use xlink:href="/data/images/icons.svg#arrow_right"/>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include (__DIR__ . '/../fragments/footer.php'); ?>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -17,7 +17,7 @@ if ($prog === NULL) httpError(404, 'Program not found');
|
||||
<meta charset="utf-8">
|
||||
<title>Mikescher.com - <?php echo $prog['name']; ?></title>
|
||||
<link rel="icon" type="image/png" href="/data/images/favicon.png"/>
|
||||
<link rel="canonical" href="https://www.mikescher.com/programs/view/<?php echo $prog['internal_name']; ?>"/>
|
||||
<link rel="canonical" href="<?php echo $prog['url']; ?>"/>
|
||||
<?php printCSS(); ?>
|
||||
</head>
|
||||
<body>
|
||||
|
@ -3,7 +3,7 @@
|
||||
return
|
||||
[
|
||||
[
|
||||
'id' => 'hpmor_1',
|
||||
'id' => 'hpmor1',
|
||||
'title' => 'Harry Potter and the Methods of Rationality: Book 1',
|
||||
'title_short' => 'HPMoR: Book 1',
|
||||
'date' => '2015-04-04',
|
||||
@ -12,11 +12,12 @@ return
|
||||
'pdf' => 'https://github.com/Mikescher/HPMOR-LyX/raw/master/hpmor_volume1_16x23.pdf',
|
||||
'online' => 'http://www.hpmor.com/',
|
||||
'author' => 'Eliezer Yudkowsky',
|
||||
'size' => '17.0cm x 24.0cm',
|
||||
'size' => [17.0, 24.0],
|
||||
'imagecount' => 4,
|
||||
],
|
||||
|
||||
[
|
||||
'id' => 'hpmor_2',
|
||||
'id' => 'hpmor2',
|
||||
'title' => 'Harry Potter and the Methods of Rationality: Book 2',
|
||||
'title_short' => 'HPMoR: Book 2',
|
||||
'date' => '2015-04-04',
|
||||
@ -25,11 +26,12 @@ return
|
||||
'pdf' => 'https://github.com/Mikescher/HPMOR-LyX/raw/master/hpmor_volume2_16x23.pdf',
|
||||
'online' => 'http://www.hpmor.com/',
|
||||
'author' => 'Eliezer Yudkowsky',
|
||||
'size' => '17.0cm x 24.0cm',
|
||||
'size' => [17.0, 24.0],
|
||||
'imagecount' => 4,
|
||||
],
|
||||
|
||||
[
|
||||
'id' => 'hpmor_3',
|
||||
'id' => 'hpmor3',
|
||||
'title' => 'Harry Potter and the Methods of Rationality: Book 3',
|
||||
'title_short' => 'HPMoR: Book 3',
|
||||
'date' => '2015-04-04',
|
||||
@ -38,11 +40,12 @@ return
|
||||
'pdf' => 'https://github.com/Mikescher/HPMOR-LyX/raw/master/hpmor_volume3_16x23.pdf',
|
||||
'online' => 'http://www.hpmor.com/',
|
||||
'author' => 'Eliezer Yudkowsky',
|
||||
'size' => '17.0cm x 24.0cm',
|
||||
'size' => [17.0, 24.0],
|
||||
'imagecount' => 4,
|
||||
],
|
||||
|
||||
[
|
||||
'id' => 'apgte_1',
|
||||
'id' => 'apgte1',
|
||||
'title' => 'A Practical Guide to Evil: Book 1',
|
||||
'title_short' => 'APGtE: Book 1',
|
||||
'date' => '2016-12-23',
|
||||
@ -51,7 +54,8 @@ return
|
||||
'pdf' => 'https://github.com/Mikescher/A-Practical-Guide-To-Evil-Lyx/raw/master/APGTE_1/APGTE.pdf',
|
||||
'online' => 'https://practicalguidetoevil.wordpress.com/',
|
||||
'author' => 'David Verburg',
|
||||
'size' => '12.5cm x 19.0cm',
|
||||
'size' => [12.5, 19.0],
|
||||
'imagecount' => 4,
|
||||
],
|
||||
|
||||
[
|
||||
@ -64,6 +68,7 @@ return
|
||||
'pdf' => 'https://github.com/Mikescher/Metropolitan-Man-Lyx/raw/master/src/MM.pdf',
|
||||
'online' => 'https://www.fanfiction.net/s/10360716/1/',
|
||||
'author' => 'Alexandr Wales',
|
||||
'size' => '12.5cm x 19.0cm',
|
||||
'size' => [12.5, 19.0],
|
||||
'imagecount' => 4,
|
||||
],
|
||||
];
|
||||
|