+ +
diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml index e6dd317..8785744 100644 --- a/.idea/watcherTasks.xml +++ b/.idea/watcherTasks.xml @@ -25,7 +25,7 @@ - + diff --git a/data/css_compress/compress.py b/data/css_compress/compress.py index 01f7826..2cc7a91 100644 --- a/data/css_compress/compress.py +++ b/data/css_compress/compress.py @@ -38,8 +38,8 @@ print(); print(); print('======== CALL SCSS ========'); -out = subprocess.run(['C:/TOOLS/Ruby/bin/scss.bat', '--no-cache', '--update', fsource + ':' + finput], stdout=subprocess.PIPE, stderr=subprocess.PIPE) -print('> C:/TOOLS/Ruby/bin/scss.bat --no-cache --update ' + fsource + ':' + finput) +out = subprocess.run(['scss.bat', '--no-cache', '--update', fsource + ':' + finput], stdout=subprocess.PIPE, stderr=subprocess.PIPE) +print('> scss.bat --no-cache --update ' + fsource + ':' + finput) print('STDOUT:') print(out.stdout.decode('utf-8')) print('STDERR:') @@ -50,8 +50,8 @@ print('') print('======== CALL YUI ========'); -out = subprocess.run(['java', '-jar', 'yuicompressor.jar', finput, '-o', ftemp], stdout=subprocess.PIPE, stderr=subprocess.PIPE) -print('> java -jar yuicompressor.jar "'+finput+'" -o "'+ftemp+'"') +out = subprocess.run(['java', '-jar', 'yuicompressor.jar', '--verbose', finput, '-o', ftemp], stdout=subprocess.PIPE, stderr=subprocess.PIPE) +print('> java -jar yuicompressor.jar --verbose "'+finput+'" -o "'+ftemp+'"') print('STDOUT:'); print(out.stdout.decode('utf-8')) print('STDERR:'); @@ -63,6 +63,7 @@ print('') print('======== READ ========'); with open(ftemp, 'r') as tf: data = tf.read() + print(str(len(data)) + ' characters read from ' + ftemp) print('') print('') @@ -70,6 +71,7 @@ print('') print('======== REM ========'); try: os.remove(ftemp); + print(ftemp + ' deleted') except e: print(e) @@ -79,6 +81,8 @@ print('') print('======== REGEX ========'); data = re.sub(r'(\}*\})', '\g<1>\n', data); +print('css data modified (1)') + print('') print('') @@ -99,6 +103,7 @@ for i in range(len(data)): tp =(i+1, '\t') ins.append( tp ) ins.append((cclose, '\n')) + print('media query at idx:' + str(i) + ' formatted') for (l, c) in reversed(ins): data = data[:l] + c + data[l:] @@ -109,7 +114,8 @@ print('') print('======== WRITE ========'); with open(foutput, "w") as tf: tf.write(data) + print(str(len(data)) + ' characters written to ' + foutput) print('') print('') -print('Sinished.') +print('Finished.') diff --git a/data/css_compress/scss b/data/css_compress/scss new file mode 100644 index 0000000..919dccd --- /dev/null +++ b/data/css_compress/scss @@ -0,0 +1,22 @@ +#!C:/TOOLS/Ruby/bin/ruby.exe +# +# This file was generated by RubyGems. +# +# The application 'sass' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require 'rubygems' + +version = ">= 0.a" + +if ARGV.first + str = ARGV.first + str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding + if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then + version = $1 + ARGV.shift + end +end + +load Gem.bin_path('sass', 'scss', version) diff --git a/data/css_compress/scss.bat b/data/css_compress/scss.bat new file mode 100644 index 0000000..30fa211 --- /dev/null +++ b/data/css_compress/scss.bat @@ -0,0 +1,6 @@ +@ECHO OFF +IF NOT "%~f0" == "~f0" GOTO :WinNT +@"C:\TOOLS\Ruby\bin\ruby.exe" "C:/TOOLS/Ruby/bin/scss" %1 %2 %3 %4 %5 %6 %7 %8 %9 +GOTO :EOF +:WinNT +@"C:\TOOLS\Ruby\bin\ruby.exe" "%~dpn0" %* diff --git a/www/data/css/styles.css b/www/data/css/styles.css index da08a1f..0bf04d3 100644 --- a/www/data/css/styles.css +++ b/www/data/css/styles.css @@ -104,11 +104,11 @@ body { cursor: pointer; background-color: #555; } #headerdiv .tabrow .tab_active { - background-color: #422; } + background-color: #442222; } #headerdiv .tabrow .tab_split { flex: auto; } #headerdiv .tabrow .tab_github { - background-color: #4078c0; + background-color: #4078C0; border-left: 1px solid #111; border-right: none; color: black; } @@ -206,10 +206,18 @@ html, body { background-color: #DDD; } .ble_blog .ble_date { - background-color: #AAA; } + background-color: #AAA; + color: #333; } .ble_log .ble_date { - background-color: #CCC; } + background-color: #CCC; + color: #333; } + +.ble_log { + color: #555; } + +.ble_log:hover { + color: #333; } .ble_date { background-color: #AAA; @@ -241,7 +249,7 @@ html, body { .bc_data { padding: 8px; } -.bc_markdown code { +.base_markdown code { font-family: Consolas, Monaco, "Courier New", Menlo, monospace; direction: ltr; text-align: left; @@ -254,7 +262,7 @@ html, body { -moz-hyphens: none; -ms-hyphens: none; hyphens: none; } -.bc_markdown pre { +.base_markdown pre { font-size: 14px; display: block; padding: 9.5px; @@ -267,36 +275,36 @@ html, body { color: black; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 2px; } -.bc_markdown blockquote { +.base_markdown blockquote { padding: 0 0 0 15px; margin: 0 0 20px; border-left: 5px solid #CCC; } -.bc_markdown img { +.base_markdown img { max-width: 100%; } -.bc_markdown table { +.base_markdown table { border-collapse: collapse; text-align: left; width: 100%; border: 1px solid #666; } - .bc_markdown table td, .bc_markdown table th { + .base_markdown table td, .base_markdown table th { padding: 3px 10px; } - .bc_markdown table thead th { + .base_markdown table thead th { background-color: #7D7D7D; color: #FFFFFF; font-weight: bold; border-left: 1px solid #444; } - .bc_markdown table thead th:first-child { + .base_markdown table thead th:first-child { border: none; } - .bc_markdown table tbody td { + .base_markdown table tbody td { border-left: 1px solid #666; font-weight: normal; } - .bc_markdown table tbody .alt td { + .base_markdown table tbody .alt td { background: #EBEBEB; } - .bc_markdown table tbody td:first-child { + .base_markdown table tbody td:first-child { border-left: none; } - .bc_markdown table tbody tr:last-child td { + .base_markdown table tbody tr:last-child td { border-bottom: none; } - .bc_markdown table tbody tr:nth-child(odd) { + .base_markdown table tbody tr:nth-child(odd) { background-color: #ccc; } .mdtable_container { @@ -518,6 +526,17 @@ html, body { justify-content: center; align-items: center; } +.prgl_elem_sdesc { + color: #555; + font-size: 14pt; + flex-grow: 1; + margin-bottom: 20px; + margin-left: 10px; + margin-right: 10px; + display: flex; + justify-content: center; + align-items: center; } + .prgl_elem_info { display: flex; flex-direction: row; } @@ -555,7 +574,11 @@ html, body { justify-content: center; } .prgl_elem_subinfo_caption { - text-align: center; } } + text-align: center; } + + .prgl_elem_sdesc { + font-size: 12pt; + margin-bottom: 10px; } } @media (max-width: 850px) { .prgl_elem { flex-direction: column; @@ -577,7 +600,130 @@ html, body { margin: 8px 0 8px 8px; } .prgl_elem_subinfo { - flex-direction: row; } } + flex-direction: row; } + + .prgl_elem_sdesc { + display: none; + visibility: hidden; } } +.prgv_content { + display: flex; + flex-direction: column; + color: #333; + border: 1px solid black; + background-color: #E0E0E0; + width: 100%; + margin-left: auto; + margin-right: auto; } + +#prgv_header h1 { + font-size: 48pt; + text-align: center; + margin-top: 5px; } + +#prgv_header hr { + background: -moz-radial-gradient(circle, #CCC, #FFFFFF00); + background: -webkit-radial-gradient(circle, #CCC 0%, #FFFFFF00 100%); } + +.prgv_top { + display: flex; + flex-direction: row; + margin-top: 15px; } + +.prgv_left { + flex-grow: 1; + text-align: center; + margin-left: 10px; + margin-top: auto; + margin-bottom: auto; } + +.prgv_left img { + max-height: 100%; + max-width: 100%; } + +.prgv_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 1fr auto; + grid-column-gap: 15px; + grid-row-gap: 2px; } + +.prgv_right_key { + font-weight: bold; } + +.prgv_right_value a { + color: #333; + text-decoration: none; } + +.prgv_right_value a:hover { + color: #339; + text-decoration: none; } + +.prgv_right_comb { + grid-column: 1 / span 2; } + +.prgv_right_lang { + display: flex; + justify-content: right; } + +.prgv_dl_btn { + display: flex; + justify-content: center; + align-items: center; + background: #222; + color: #CCC; + text-decoration: none; + border: 1px solid #000; + margin: 5px 0; } + +.prgv_dl_download { + background: #442222; } + +.prgv_dl_github { + background: #4078C0; } + +.prgv_dl_btn:hover { + cursor: pointer; + background-color: #555; } + +.prgv_dl_btn svg { + width: 14pt; + height: 14pt; + margin: 0 4px; + fill: #CCC; } + +.prgv_dl_btn span { + flex-grow: 1; + text-align: center; + font-size: 14pt; } + +.prgv_right_lang img { + display: inline; + height: 16pt; + max-width: 32px; + margin: 1px 2px 0 2px; } + +.prgv_center { + margin: 0 8px 8px 8px; + padding: 16px; + background: #EEE; + border: 1px solid rgba(0, 0, 0, 0.15); } + +.prgv_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%); } + .euler_pnl_base { display: inline-flex; flex-direction: column; diff --git a/www/data/css/styles.min.css b/www/data/css/styles.min.css index 8d92922..8918715 100644 --- a/www/data/css/styles.min.css +++ b/www/data/css/styles.min.css @@ -1,21 +1,25 @@ body{background-color:#EEE;color:#CCC;font-family:serif} -#content{padding-top:64px;display:flex;justify-content:center;line-height:1.4} +#content{padding-top:64px;display:flex;justify-content:center;line-height:1.4;flex-direction:column;align-items:center} .content-responsive{margin-left:auto;margin-right:auto} @media(max-width:767px){.content-responsive{width:auto}} @media(min-width:768px){.content-responsive{width:auto}} @media(min-width:992px){.content-responsive{width:724px}} @media(min-width:1200px){.content-responsive{width:1170px}} +.content-fullheight{flex-grow:1} .contentheader{width:100%;color:#333;font-size:large} .contentheader h1{font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:32px;font-weight:900;margin-bottom:0} @media(max-width:767px){.contentheader h1{font-size:32px}} .contentheader hr{margin:0 0 25px 0;display:block;border:0;color:white;height:1px;background:#CCCCCCFF;background:-moz-linear-gradient(left,#CCC,#FFFFFF00);background:-webkit-linear-gradient(left,#CCC 0,#FFFFFF00 100%)} .blockcontent{display:block;width:100%} +.generic_hidden{visibility:hidden !important} +.generic_collapsed{visibility:collapse !important;display:none !important} #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 .logo{height:30px;margin:4px 0 8px 6px;flex:initial} #headerdiv .tabrow{display:flex;flex:auto} #headerdiv .tabrow .tab{display:flex;justify-content:center;align-items:center;background-color:#222;color:#CCC;border-left:1px solid #000;border-right:1px solid #000;font-weight:bold;text-decoration:none;margin:0 0 0 20px;padding:2px 5px;min-width:64px;text-align:center;flex:initial} #headerdiv .tabrow .tab:hover{cursor:pointer;background-color:#555} +#headerdiv .tabrow .tab_active{background-color:#422} #headerdiv .tabrow .tab_split{flex:auto} #headerdiv .tabrow .tab_github{background-color:#4078c0;border-left:1px solid #111;border-right:0;color:black} #headerdiv .tabrow .tab_github:hover{background-color:#c9510c;color:black} @@ -27,7 +31,7 @@ body{background-color:#EEE;color:#CCC;font-family:serif} #content{padding-top:0} } html,body{margin:0;padding:0;height:100%} -#mastercontainer{min-height:100%;position:relative} +#mastercontainer{display:flex;flex-direction:column;min-height:100%;position:relative} #content{padding-bottom:60px} #footerdiv{position:absolute;bottom:0;width:100%;height:60px;text-align:center;left:0;right:0;margin:0 auto} @media(max-width:767px){#footerdiv{width:auto}} @@ -35,32 +39,35 @@ html,body{margin:0;padding:0;height:100%} @media(min-width:992px){#footerdiv{width:724px}} @media(min-width:1200px){#footerdiv{width:1170px}} #footerdiv hr{margin-bottom:5px;display:block;border:0;color:white;height:1px;background:#CCCCCCFF;background:-webkit-gradient(radial,50% 50%,0,50% 50%,350,from(#CCC),to(#FFFFFF00))} +@media(max-width:850px){#footerdiv .footerspan2{display:none;visibility:collapse}} .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} .bloglistelem:hover{box-shadow:0 0 4px #000} .ble_blog{background-color:#BBB} .ble_log{background-color:#DDD} -.ble_blog .ble_date{background-color:#AAA} -.ble_log .ble_date{background-color:#CCC} +.ble_blog .ble_date{background-color:#AAA;color:#333} +.ble_log .ble_date{background-color:#CCC;color:#333} +.ble_log{color:#555} +.ble_log:hover{color:#333} .ble_date{background-color:#AAA;padding:2px;font-size:.8em;font-style:italic} .ble_title{font-weight:bold;font-size:1.2em;text-align:left;margin:2px 0 2px 10px} @media(max-width:767px){.ble_title{font-size:1.25em}} .blogcontent{color:#333;border:1px solid black;background-color:#e0e0e0;width:90%;margin-left:auto;margin-right:auto} .bc_header{background-color:#BBB;padding:0 4px} .bc_data{padding:8px} -.bc_markdown code{font-family:Consolas,Monaco,"Courier New",Menlo,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none} -.bc_markdown pre{font-size:14px;display:block;padding:9.5px;margin:0 0 10px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;background-color:#f8f8f8;color:black;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px} -.bc_markdown blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #CCC} -.bc_markdown img{max-width:100%} -.bc_markdown table{border-collapse:collapse;text-align:left;width:100%;border:1px solid #666} -.bc_markdown table td,.bc_markdown table th{padding:3px 10px} -.bc_markdown table thead th{background-color:#7d7d7d;color:#fff;font-weight:bold;border-left:1px solid #444} -.bc_markdown table thead th:first-child{border:0} -.bc_markdown table tbody td{border-left:1px solid #666;font-weight:normal} -.bc_markdown table tbody .alt td{background:#ebebeb} -.bc_markdown table tbody td:first-child{border-left:0} -.bc_markdown table tbody tr:last-child td{border-bottom:0} -.bc_markdown table tbody tr:nth-child(odd){background-color:#ccc} +.base_markdown code{font-family:Consolas,Monaco,"Courier New",Menlo,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none} +.base_markdown pre{font-size:14px;display:block;padding:9.5px;margin:0 0 10px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;background-color:#f8f8f8;color:black;border:1px solid rgba(0,0,0,0.15);border-radius:2px} +.base_markdown blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #CCC} +.base_markdown img{max-width:100%} +.base_markdown table{border-collapse:collapse;text-align:left;width:100%;border:1px solid #666} +.base_markdown table td,.base_markdown table th{padding:3px 10px} +.base_markdown table thead th{background-color:#7d7d7d;color:#fff;font-weight:bold;border-left:1px solid #444} +.base_markdown table thead th:first-child{border:0} +.base_markdown table tbody td{border-left:1px solid #666;font-weight:normal} +.base_markdown table tbody .alt td{background:#ebebeb} +.base_markdown table tbody td:first-child{border-left:0} +.base_markdown table tbody tr:last-child td{border-bottom:0} +.base_markdown table tbody tr:nth-child(odd){background-color:#ccc} .mdtable_container{overflow-x:auto} .notable{width:unset !important;border:none !important} .notable th,.notable td,.notable tr{border:none !important;background:transparent !important} @@ -117,9 +124,68 @@ 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:850px){.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} +.prgl_elem{display:flex;flex-direction:row;text-decoration:none;background:#BBB;border:solid 1px #444;margin:5px 0} +.prgl_elem:hover{background:#999;box-shadow:0 0 4px #000} +.prgl_elem_left{padding:4px;display:flex} +.prgl_elem_left img{width:250px;height:100%;min-height:100px} +.prgl_elem_right{display:flex;flex-direction:column;flex-grow:1} +.prgl_elem_title{color:#222;font-size:40pt;font-weight:bolder;flex-grow:1;display:flex;justify-content:center;align-items:center} +.prgl_elem_sdesc{color:#555;font-size:14pt;flex-grow:1;margin-bottom:20px;margin-left:10px;margin-right:10px;display:flex;justify-content:center;align-items:center} +.prgl_elem_info{display:flex;flex-direction:row} +.prgl_elem_subinfo{flex:1;display:flex;flex-direction:row} +.prgl_elem_subinfo_caption{color:#111;font-weight:bold;margin:0 5px 0 10px} +.prgl_elem_subinfo_data{color:#555;display:flex;flex-direction:row;align-items:center;height:100%} +.prgl_elem_subinfo_data img{display:inline;height:13pt;margin:1px 2px 0 2px} +@media(max-width:1199px){ + .prgl_elem_title{font-size:22pt} + .prgl_elem_subinfo{flex-direction:column} + .prgl_elem_subinfo_data{justify-content:center} + .prgl_elem_subinfo_caption{text-align:center} + .prgl_elem_sdesc{font-size:12pt;margin-bottom:10px} +} +@media(max-width:850px){ + .prgl_elem{flex-direction:column;width:350px} + .prgl_elem_left img{width:100%} + .prgl_elem_title{font-size:24pt;word-wrap:break-word;text-align:center} + .prgl_elem_left{justify-content:center} + .prgl_elem_info{flex-direction:column;margin:8px 0 8px 8px} + .prgl_elem_subinfo{flex-direction:row} + .prgl_elem_sdesc{display:none;visibility:hidden} +} +.prgv_content{display:flex;flex-direction:column;color:#333;border:1px solid black;background-color:#e0e0e0;width:100%;margin-left:auto;margin-right:auto} +#prgv_header h1{font-size:48pt;text-align:center;margin-top:5px} +#prgv_header hr{background:-moz-radial-gradient(circle,#CCC,#FFFFFF00);background:-webkit-radial-gradient(circle,#CCC 0,#FFFFFF00 100%)} +.prgv_top{display:flex;flex-direction:row;margin-top:15px} +.prgv_left{flex-grow:1;text-align:center;margin-left:10px;margin-top:auto;margin-bottom:auto} +.prgv_left img{max-height:100%;max-width:100%} +.prgv_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 1fr auto;grid-column-gap:15px;grid-row-gap:2px} +.prgv_right_key{font-weight:bold} +.prgv_right_value a{color:#333;text-decoration:none} +.prgv_right_value a:hover{color:#339;text-decoration:none} +.prgv_right_comb{grid-column:1 / span 2} +.prgv_right_lang{display:flex;justify-content:right} +.prgv_dl_btn{display:flex;justify-content:center;align-items:center;background:#222;color:#CCC;text-decoration:none;border:1px solid #000;margin:5px 0} +.prgv_dl_download{background:#422} +.prgv_dl_github{background:#4078c0} +.prgv_dl_btn:hover{cursor:pointer;background-color:#555} +.prgv_dl_btn svg{width:14pt;height:14pt;margin:0 4px;fill:#CCC} +.prgv_dl_btn span{flex-grow:1;text-align:center;font-size:14pt} +.prgv_right_lang img{display:inline;height:16pt;max-width:32px;margin:1px 2px 0 2px} +.prgv_center{margin:0 8px 8px 8px;padding:16px;background:#EEE;border:1px solid rgba(0,0,0,0.15)} +.prgv_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%)} .euler_pnl_base{display:inline-flex;flex-direction:column;border:1px solid #AAA;border-radius:5px 5px 0 0;margin:15px} .euler_pnl_header{display:flex;align-items:center;justify-content:center;padding:4px;background:#AAA} .euler_pnl_header a{color:#222;text-decoration:none;font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:22px;font-weight:900} +@media(max-width:850px){.euler_pnl_header a{font-size:16px}} .euler_pnl_header a:hover{text-decoration:underline} .euler_pnl_content{display:flex;flex-direction:column;background:#DDD;padding:6px} .euler_pnl_row{display:flex;flex-direction:row;flex-wrap:wrap} @@ -136,6 +202,25 @@ html,body{margin:0;padding:0;height:100%} .euler_pnl_celltime_bad{background:#d8b298} .euler_pnl_celltime_fail{background:#d89d9d} .euler_pnl_cell_notexist{background:#ccc} +.programs_pnl_base{display:inline-flex;flex-direction:column;border:1px solid #AAA;border-radius:5px 5px 0 0;margin:15px;width:652px} +.programs_pnl_header{display:flex;align-items:center;justify-content:center;padding:4px;background:#AAA} +.programs_pnl_header a{color:#222;text-decoration:none;font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:22px;font-weight:900} +.programs_pnl_content{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;background:#DDD;padding:6px} +.programs_pnl_content .programs_pnl_entry{display:flex;flex-direction:column;width:190px;border:1px solid #333;background:#AAA;color:#000;text-decoration:none;margin:4px} +.programs_pnl_content .programs_pnl_entry:hover{box-shadow:0 0 8px #000} +.programs_pnl_content .programs_pnl_img{display:flex;flex-direction:column;justify-content:flex-start;margin:4px} +.programs_pnl_content .programs_pnl_img img{width:100%;height:auto} +.programs_pnl_content .programs_pnl_center{display:flex;justify-content:center;align-items:flex-end;text-align:center;color:black;font-weight:bolder;font-size:15pt;flex-grow:1;margin:0 2px} +.programs_pnl_content .programs_pnl_bottom{background:#888;display:flex;flex-direction:row} +.programs_pnl_content .programs_pnl_bottom_1,.programs_pnl_content .programs_pnl_bottom_2{flex-grow:1;text-align:center;display:flex;flex-direction:column} +.programs_pnl_content .programs_pnl_bottom_sub_top{color:#444} +.programs_pnl_content .programs_pnl_bottom_sub_bot{color:#111;font-weight:bolder} +@media(max-width:850px){ + .programs_pnl_base{width:320px} + .programs_pnl_base .programs_pnl_entry{width:100%} + .programs_pnl_base .programs_pnl_bottom_sub_top{margin-left:4px;margin-right:6px} + .programs_pnl_base .programs_pnl_bottom_1,.programs_pnl_base .programs_pnl_bottom_2{flex-direction:row} +} .bfjoust_runner_owner{border:1px solid #888;background:#f8f8f8;padding:6px} .bfjoust_runner_owner .hsplit{display:flex;flex-direction:row;flex-wrap:nowrap} .bfjoust_runner_owner .hsplit_1{flex:1;margin:4px} @@ -163,13 +248,19 @@ html,body{margin:0;padding:0;height:100%} .bfjoust_runner_owner #run_speed{width:70px} .bfjoust_runner_owner #board{background-color:#FFF;border-radius:6px;border:1px solid #CCC} .bce_code{background:#f8f8f8;color:black;border:1px solid rgba(0,0,0,0.15)} -.bce_code .bce_code_data{overflow-x:auto;white-space:pre;font-family:Consolas,Monaco,"Courier New",Menlo,monospace;padding:9.5px;font-size:10pt} +.bce_code .bce_code_data,.bce_code .bce_code_editarea{overflow-x:auto;font-family:Consolas,Monaco,"Courier New",Menlo,monospace;padding:5px 9.5px;line-height:12pt;font-size:10pt} +.bce_code .bce_code_data{white-space:pre} +.bce_code .bce_code_editarea{display:block;resize:none;box-sizing:border-box;line-height:12pt;font-size:10pt} .bce_code .bce_code_ctrl{background:#BBB;display:flex;flex-direction:row} .bce_code .bce_code_ctrl .ctrl_btn_left,.bce_code .bce_code_ctrl .ctrl_btn_right{display:flex;flex-direction:row} .bce_code .bce_code_ctrl .ctrl_btn_left{margin-right:auto} .bce_code .bce_code_ctrl .ctrl_btn_right{margin-left:auto} -.bce_code .bce_code_ctrl .ctrl_btn{display:block;border:1px solid #000;background:#444;color:#BBB;margin:4px;padding:0 5px;min-width:65px;text-align:center;text-decoration:none;font-weight:bold} +.bce_code .bce_code_ctrl .ctrl_btn{user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;display:block;border:1px solid #000;background:#444;color:#BBB;margin:4px;padding:0 5px;min-width:65px;text-align:center;text-decoration:none;font-weight:bold} .bce_code .bce_code_ctrl .ctrl_btn:hover{cursor:pointer;background:#333;color:#FFF;border:1px solid black} +.bce_code .bce_code_ctrl .ctrl_btn_group{display:flex;flex-direction:row} +.bce_code .bce_code_ctrl .ctrl_btn_ll{margin-right:0;flex-grow:1} +.bce_code .bce_code_ctrl .ctrl_btn_rr{margin-left:0;flex-grow:0;min-width:25px;border-left:0} +.bce_code .bce_code_ctrl .ctrl_btn_rr:hover{border-left:0} .bce_code .bce_code_ctrl .ctrl_btn_disabled{background:#999;color:#BBB} .bce_code .bce_code_ctrl .ctrl_btn_disabled:hover{background:#999;color:#BBB;cursor:default} @media(max-width:767px){ @@ -177,3 +268,13 @@ html,body{margin:0;padding:0;height:100%} .bce_code .bce_code_ctrl .ctrl_btn_left,.bce_code .bce_code_ctrl .ctrl_btn_right{display:flex;flex-direction:column;margin:0} .bce_code .ctrl_btn_left,.bce_code .ctrl_btn_right{display:flex;flex-direction:column;margin:0} } +.bce_code_out{display:flex;flex-direction:row;background:#BBB} +.bce_code_out .bce_code_out_text{font-family:Consolas,Monaco,"Courier New",Menlo,monospace;overflow-y:auto;overflow-x:auto;background:#FFF;color:#000;border:1px solid #888;flex-grow:1} +.bce_code_out .bce_code_out_stack{font-family:Consolas,Monaco,"Courier New",Menlo,monospace;overflow-y:scroll;overflow-x:auto;background:#FFF;color:#000;border:1px solid #888;flex-grow:1} +.bce_code_out .bce_code_out_left{flex-grow:1;margin:0 4px 4px 4px;height:300px;display:flex;flex-direction:column} +.bce_code_out .bce_code_out_right{height:300px;width:200px;margin:0 4px 4px 4px;display:flex;flex-direction:column} +@media(max-width:767px){ + .bce_code_out{flex-direction:column} + .bce_code_out .bce_code_out_left{flex-grow:0;height:100px} + .bce_code_out .bce_code_out_right{width:auto;height:150px} +} diff --git a/www/data/css/styles.scss b/www/data/css/styles.scss index 254a0a7..8d127d8 100644 --- a/www/data/css/styles.scss +++ b/www/data/css/styles.scss @@ -8,6 +8,7 @@ @import 'styles_blogview_befunge'; @import 'styles_errorview'; @import 'styles_programslist'; +@import 'styles_programsview'; @import 'styles_eulerpanel'; @import 'styles_programspanel'; diff --git a/www/data/css/styles_bloglist.scss b/www/data/css/styles_bloglist.scss index db9ee5d..545aedc 100644 --- a/www/data/css/styles_bloglist.scss +++ b/www/data/css/styles_bloglist.scss @@ -12,7 +12,7 @@ border: solid 1px #444; margin: 10px 5px; - color: #333; + color: $COL_TEXT_DARK; text-decoration: none; } @@ -23,8 +23,11 @@ .ble_blog { background-color: #BBB; } .ble_log { background-color: #DDD; } -.ble_blog .ble_date { background-color: #AAA; } -.ble_log .ble_date { background-color: #CCC; } +.ble_blog .ble_date { background-color: #AAA; color: $COL_TEXT_DARK; } +.ble_log .ble_date { background-color: #CCC; color: $COL_TEXT_DARK; } + +.ble_log { color: $COL_TEXT_DARK_LIGHTER; } +.ble_log:hover { color: $COL_TEXT_DARK; } .ble_date { background-color: #AAA; diff --git a/www/data/css/styles_blogview.scss b/www/data/css/styles_blogview.scss index b04010c..5cb3108 100644 --- a/www/data/css/styles_blogview.scss +++ b/www/data/css/styles_blogview.scss @@ -18,7 +18,7 @@ padding: 8px; } -.bc_markdown { +.base_markdown { code { font-family: $FONT_CODE; diff --git a/www/data/css/styles_blogview_befunge.scss b/www/data/css/styles_blogview_befunge.scss index 704f54d..7970946 100644 --- a/www/data/css/styles_blogview_befunge.scss +++ b/www/data/css/styles_blogview_befunge.scss @@ -69,7 +69,7 @@ } a { - color: #333; + color: $COL_TEXT_DARK; display: block; text-decoration: none; } diff --git a/www/data/css/styles_config.scss b/www/data/css/styles_config.scss index 0f5648e..985651f 100644 --- a/www/data/css/styles_config.scss +++ b/www/data/css/styles_config.scss @@ -1,9 +1,14 @@ -$COL_BACKGROUND: #EEE; -$COL_BACKGROUND_2: #E0E0E0; -$COL_BACKGROUND_3: #F8F8F8; -$COL_TEXT_NORMAL: #CCC; -$COL_TEXT_DARK: #333; -$COL_TRANSPARENT: #FFFFFF00; +$COL_BACKGROUND: #EEE; +$COL_BACKGROUND_2: #E0E0E0; +$COL_BACKGROUND_3: #F8F8F8; +$COL_TEXT_NORMAL: #CCC; +$COL_TEXT_DARK_DARKER: #222; +$COL_TEXT_DARK: #333; +$COL_TEXT_DARK_LIGHTER: #555; +$COL_TRANSPARENT: #FFFFFF00; + +$COL_GITHUB: #4078C0; +$COL_HIGHLIGHT_RED: #442222; $FONT_HEADER: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; $FONT_CODE: Consolas, Monaco, "Courier New", Menlo, monospace; diff --git a/www/data/css/styles_eulerpanel.scss b/www/data/css/styles_eulerpanel.scss index 44160eb..d33f324 100644 --- a/www/data/css/styles_eulerpanel.scss +++ b/www/data/css/styles_eulerpanel.scss @@ -19,7 +19,7 @@ } .euler_pnl_header a { - color: #222; + color: $COL_TEXT_DARK_DARKER; text-decoration: none; diff --git a/www/data/css/styles_header.scss b/www/data/css/styles_header.scss index be2174a..76291e7 100644 --- a/www/data/css/styles_header.scss +++ b/www/data/css/styles_header.scss @@ -51,14 +51,14 @@ } } - .tab_active { background-color: #422; } + .tab_active { background-color: $COL_HIGHLIGHT_RED; } .tab_split { flex: auto; } .tab_github { - background-color: #4078c0; + background-color: $COL_GITHUB; border-left: 1px solid #111; border-right: none; color: black; diff --git a/www/data/css/styles_programslist.scss b/www/data/css/styles_programslist.scss index b3b8fc6..34c29df 100644 --- a/www/data/css/styles_programslist.scss +++ b/www/data/css/styles_programslist.scss @@ -39,7 +39,7 @@ } .prgl_elem_title { - color: #222; + color: $COL_TEXT_DARK_DARKER; font-size: 40pt; font-weight: bolder; flex-grow: 1; @@ -49,6 +49,20 @@ align-items: center; } +.prgl_elem_sdesc { + color: $COL_TEXT_DARK_LIGHTER; + font-size: 14pt; + flex-grow: 1; + + margin-bottom: 20px; + margin-left: 10px; + margin-right: 10px; + + display: flex; + justify-content: center; + align-items: center; +} + .prgl_elem_info { display:flex; flex-direction: row; @@ -97,6 +111,10 @@ .prgl_elem_subinfo_caption { text-align: center; } + .prgl_elem_sdesc { + font-size: 12pt; + margin-bottom: 10px; + } } @media (max-width: 850px) { @@ -122,6 +140,10 @@ .prgl_elem_subinfo { flex-direction: row; } + .prgl_elem_sdesc { + display: none; + visibility: hidden; + } } diff --git a/www/data/css/styles_programspanel.scss b/www/data/css/styles_programspanel.scss index 7bce6c1..9a3e9fa 100644 --- a/www/data/css/styles_programspanel.scss +++ b/www/data/css/styles_programspanel.scss @@ -21,7 +21,7 @@ } .programs_pnl_header a { - color: #222; + color: $COL_TEXT_DARK_DARKER; text-decoration: none; diff --git a/www/data/css/styles_programsview.scss b/www/data/css/styles_programsview.scss new file mode 100644 index 0000000..d38e761 --- /dev/null +++ b/www/data/css/styles_programsview.scss @@ -0,0 +1,144 @@ +@import 'styles_config'; + +.prgv_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; +} + +#prgv_header h1 { + font-size: 48pt; + text-align: center; + margin-top: 5px; +} + +#prgv_header hr { + background: -moz-radial-gradient( circle, $COL_TEXT_NORMAL, $COL_TRANSPARENT); + background: -webkit-radial-gradient(circle, $COL_TEXT_NORMAL 0%,$COL_TRANSPARENT 100%); +} + +.prgv_top { + display: flex; + flex-direction: row; + margin-top: 15px; +} + +.prgv_left { + flex-grow: 1; + text-align: center; + margin-left: 10px; + + margin-top: auto; + margin-bottom: auto; +} + +.prgv_left img { + max-height: 100%; + max-width: 100%; +} + +.prgv_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 1fr auto; + grid-column-gap: 15px; + grid-row-gap: 2px; +} + +.prgv_right_key { + font-weight: bold; +} + +.prgv_right_value a { + color: $COL_TEXT_DARK; + text-decoration: none; +} + +.prgv_right_value a:hover { + color: #339; + text-decoration: none; +} + +.prgv_right_comb { + grid-column: 1 / span 2; +} + +.prgv_right_lang { + display: flex; + justify-content: right; +} + +.prgv_dl_btn { + display: flex; + justify-content: center; + align-items: center; + + background: #222; + color: $COL_TEXT_NORMAL; + text-decoration: none; + border: 1px solid #000; + + margin: 5px 0; +} + +.prgv_dl_download { background: #442222; } +.prgv_dl_github { background: $COL_GITHUB; } + +.prgv_dl_btn:hover { + cursor: pointer; + background-color: #555; +} + +.prgv_dl_btn svg { + width: 14pt; + height: 14pt; + margin: 0 4px; + + fill: $COL_TEXT_NORMAL; +} + +.prgv_dl_btn span { + flex-grow: 1; + text-align: center; + + font-size: 14pt; +} + +.prgv_right_lang img { + display: inline; + height: 16pt; + max-width: 32px; + margin: 1px 2px 0 2px; +} + +.prgv_center { + margin: 0 8px 8px 8px; + padding: 16px; + background: #EEE; + border: 1px solid rgba(0, 0, 0, 0.15); +} + +.prgv_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%); +} \ No newline at end of file diff --git a/www/data/images/README.md b/www/data/images/README.md new file mode 100644 index 0000000..f94a167 --- /dev/null +++ b/www/data/images/README.md @@ -0,0 +1,7 @@ +Sources: + + - https://github.com/simple-icons/simple-icons + - https://fontawesome.com/icons/download?style=solid + - https://fontawesome.com/icons/home?style=solid + - https://fontawesome.com/icons/book?style=solid + \ No newline at end of file diff --git a/www/data/images/icons.svg b/www/data/images/icons.svg new file mode 100644 index 0000000..5e62200 --- /dev/null +++ b/www/data/images/icons.svg @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/www/data/images/program_thumbnails/All in One.png b/www/data/images/program_thumbnails/All_in_One.png similarity index 100% rename from www/data/images/program_thumbnails/All in One.png rename to www/data/images/program_thumbnails/All_in_One.png diff --git a/www/data/images/program_thumbnails/Borderline Defense.png b/www/data/images/program_thumbnails/BorderlineDefense.png similarity index 100% rename from www/data/images/program_thumbnails/Borderline Defense.png rename to www/data/images/program_thumbnails/BorderlineDefense.png diff --git a/www/data/images/program_thumbnails/ClipCorn.png b/www/data/images/program_thumbnails/ClipCorn.png deleted file mode 100644 index 02fc2e7..0000000 Binary files a/www/data/images/program_thumbnails/ClipCorn.png and /dev/null differ diff --git a/www/data/images/program_thumbnails/Crystal Grid.png b/www/data/images/program_thumbnails/CrystalGrid.png similarity index 100% rename from www/data/images/program_thumbnails/Crystal Grid.png rename to www/data/images/program_thumbnails/CrystalGrid.png diff --git a/www/data/images/program_thumbnails/Dynamic Link Fighters.png b/www/data/images/program_thumbnails/DLF.png similarity index 100% rename from www/data/images/program_thumbnails/Dynamic Link Fighters.png rename to www/data/images/program_thumbnails/DLF.png diff --git a/www/data/images/program_thumbnails/Deal or no Deal.png b/www/data/images/program_thumbnails/Deal_or_no_Deal.png similarity index 100% rename from www/data/images/program_thumbnails/Deal or no Deal.png rename to www/data/images/program_thumbnails/Deal_or_no_Deal.png diff --git a/www/data/images/program_thumbnails/Graveyard of Numbers.png b/www/data/images/program_thumbnails/Graveyard_of_Numbers.png similarity index 100% rename from www/data/images/program_thumbnails/Graveyard of Numbers.png rename to www/data/images/program_thumbnails/Graveyard_of_Numbers.png diff --git a/www/data/images/program_thumbnails/Infinity Tournament.png b/www/data/images/program_thumbnails/InfinityTournament.png similarity index 100% rename from www/data/images/program_thumbnails/Infinity Tournament.png rename to www/data/images/program_thumbnails/InfinityTournament.png diff --git a/www/data/images/program_thumbnails/Keygen Dancer.png b/www/data/images/program_thumbnails/KeygenDancer.png similarity index 100% rename from www/data/images/program_thumbnails/Keygen Dancer.png rename to www/data/images/program_thumbnails/KeygenDancer.png diff --git a/www/data/images/program_thumbnails/LAN-Control.png b/www/data/images/program_thumbnails/LanControl.png similarity index 100% rename from www/data/images/program_thumbnails/LAN-Control.png rename to www/data/images/program_thumbnails/LanControl.png diff --git a/www/data/images/program_thumbnails/Niripsa.png b/www/data/images/program_thumbnails/Niripsa.png deleted file mode 100644 index 2897e71..0000000 Binary files a/www/data/images/program_thumbnails/Niripsa.png and /dev/null differ diff --git a/www/data/images/program_thumbnails/Penner-Bot.png b/www/data/images/program_thumbnails/Penner-Bot.png deleted file mode 100644 index 9841231..0000000 Binary files a/www/data/images/program_thumbnails/Penner-Bot.png and /dev/null differ diff --git a/www/data/images/program_thumbnails/Smart Directory Lister.png b/www/data/images/program_thumbnails/SDL.png similarity index 100% rename from www/data/images/program_thumbnails/Smart Directory Lister.png rename to www/data/images/program_thumbnails/SDL.png diff --git a/www/data/images/program_thumbnails/Sieb des Eratosthenes.png b/www/data/images/program_thumbnails/Sieb_des_Eratosthenes.png similarity index 100% rename from www/data/images/program_thumbnails/Sieb des Eratosthenes.png rename to www/data/images/program_thumbnails/Sieb_des_Eratosthenes.png diff --git a/www/data/images/program_thumbnails/Wikipedia - The Game.png b/www/data/images/program_thumbnails/Wikipedia - The Game.png deleted file mode 100644 index 5a2b3f7..0000000 Binary files a/www/data/images/program_thumbnails/Wikipedia - The Game.png and /dev/null differ diff --git a/www/fragments/blogview_euler_list.php b/www/fragments/blogview_euler_list.php index 0d5c166..ad465f6 100644 --- a/www/fragments/blogview_euler_list.php +++ b/www/fragments/blogview_euler_list.php @@ -8,7 +8,7 @@ $problems = Euler::listAll(); ?> -
+ Also the original befunge-93 spec didn't specify the word size of the stack or the grid
+ So, while most programs run happily with 32bit integers some need an interpreter that supports 64bit integers for both stack and grid.
+
I have a included javascript runner here, but for one I only enabled it for programs of reasonable sizes (a few soutions had source files in the megabyte range).
diff --git a/www/fragments/blogview_euler_single.php b/www/fragments/blogview_euler_single.php
index 0b30eed..ead1eb0 100644
--- a/www/fragments/blogview_euler_single.php
+++ b/www/fragments/blogview_euler_single.php
@@ -25,7 +25,7 @@ $max = ceil($max / 20) * 20;
?>
-