1
0

programs_view

This commit is contained in:
Mike Schwörer 2018-01-20 03:05:15 +01:00
parent 40ca6e8d96
commit b241500129
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
58 changed files with 737 additions and 109 deletions

View File

@ -25,7 +25,7 @@
<option name="arguments" value="&quot;F:\Eigene Dateien\Dropbox\Programming\Web\Website - Mikescher\Source\data\css_compress\compress.py&quot; &quot;$FileDir$\styles.scss&quot; &quot;$FileDir$\styles.css&quot; &quot;$FileDir$\styles.min.css&quot;" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ALWAYS" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="scss" />
<option name="immediateSync" value="true" />
<option name="name" value="SCSS + Minimize" />

View File

@ -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.')

22
data/css_compress/scss Normal file
View File

@ -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)

View File

@ -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" %*

View File

@ -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;

View File

@ -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}
}

View File

@ -8,6 +8,7 @@
@import 'styles_blogview_befunge';
@import 'styles_errorview';
@import 'styles_programslist';
@import 'styles_programsview';
@import 'styles_eulerpanel';
@import 'styles_programspanel';

View File

@ -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;

View File

@ -18,7 +18,7 @@
padding: 8px;
}
.bc_markdown {
.base_markdown {
code {
font-family: $FONT_CODE;

View File

@ -69,7 +69,7 @@
}
a {
color: #333;
color: $COL_TEXT_DARK;
display: block;
text-decoration: none;
}

View File

@ -2,9 +2,14 @@ $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;
$FONT_DEFAULT: serif;

View File

@ -19,7 +19,7 @@
}
.euler_pnl_header a {
color: #222;
color: $COL_TEXT_DARK_DARKER;
text-decoration: none;

View File

@ -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;

View File

@ -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;
}
}

View File

@ -21,7 +21,7 @@
}
.programs_pnl_header a {
color: #222;
color: $COL_TEXT_DARK_DARKER;
text-decoration: none;

View File

@ -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%);
}

View File

@ -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

11
www/data/images/icons.svg Normal file
View File

@ -0,0 +1,11 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<path id="amazon" class="svg_path" d="M.045 18.02c.072-.116.187-.124.348-.022 3.636 2.11 7.594 3.166 11.87 3.166 2.852 0 5.668-.533 8.447-1.595l.315-.14c.138-.06.234-.1.293-.13.226-.088.39-.046.525.13.12.174.09.336-.12.48-.256.19-.6.41-1.006.654-1.244.743-2.64 1.316-4.185 1.726-1.53.406-3.045.61-4.516.61-2.265 0-4.41-.396-6.435-1.187-2.02-.794-3.82-1.91-5.43-3.35-.1-.074-.15-.15-.15-.22 0-.047.02-.09.05-.13zm6.565-6.218c0-1.005.247-1.863.743-2.577.495-.71 1.17-1.25 2.04-1.615.796-.335 1.756-.575 2.912-.72.39-.046 1.033-.103 1.92-.174v-.37c0-.93-.105-1.558-.3-1.875-.302-.43-.78-.65-1.44-.65h-.182c-.48.046-.896.196-1.246.46-.35.27-.575.63-.675 1.096-.06.3-.206.465-.435.51l-2.52-.315c-.248-.06-.372-.18-.372-.39 0-.046.007-.09.022-.15.247-1.29.855-2.25 1.82-2.88.976-.616 2.1-.975 3.39-1.05h.54c1.65 0 2.957.434 3.888 1.29.135.15.27.3.405.48.12.165.224.314.283.45.075.134.15.33.195.57.06.254.105.42.135.51.03.104.062.3.076.615.01.313.02.493.02.553v5.28c0 .376.06.72.165 1.036.105.313.21.54.315.674l.51.674c.09.136.136.256.136.36 0 .12-.06.226-.18.314-1.2 1.05-1.86 1.62-1.963 1.71-.165.135-.375.15-.63.045-.195-.166-.375-.332-.526-.496l-.31-.347c-.06-.074-.166-.21-.317-.42l-.3-.435c-.81.886-1.603 1.44-2.4 1.665-.494.15-1.093.227-1.83.227-1.11 0-2.04-.343-2.76-1.034-.72-.69-1.08-1.665-1.08-2.94l-.05-.076zm3.753-.438c0 .566.14 1.02.425 1.364.285.34.675.512 1.155.512.045 0 .106-.007.195-.02.09-.016.134-.023.166-.023.614-.16 1.08-.553 1.424-1.178.165-.28.285-.58.36-.91.09-.32.12-.59.135-.8.015-.195.015-.54.015-1.005v-.54c-.84 0-1.484.06-1.92.18-1.275.36-1.92 1.17-1.92 2.43l-.035-.02zm9.162 7.027c.03-.06.075-.11.132-.17.362-.243.714-.41 1.05-.5.55-.133 1.09-.222 1.612-.24.14-.012.28 0 .41.03.65.06 1.05.168 1.172.33.063.09.09.228.09.39v.15c0 .51-.14 1.11-.415 1.8-.278.69-.664 1.248-1.156 1.68-.073.06-.14.09-.197.09-.03 0-.06 0-.09-.012-.09-.044-.107-.12-.064-.24.54-1.26.806-2.143.806-2.64 0-.15-.03-.27-.087-.344-.145-.166-.55-.257-1.224-.257-.243 0-.533.016-.87.046-.363.045-.7.09-1 .135-.09 0-.148-.014-.18-.044-.03-.03-.036-.047-.02-.077 0-.017.006-.03.02-.063v-.06z"/>
<path id="apple" class="svg_path" d="M7.078 23.55c-.473-.316-.893-.703-1.244-1.15-.383-.463-.738-.95-1.064-1.454-.766-1.12-1.365-2.345-1.78-3.636-.5-1.502-.743-2.94-.743-4.347 0-1.57.34-2.94 1.002-4.09.49-.9 1.22-1.653 2.1-2.182.85-.53 1.84-.82 2.84-.84.35 0 .73.05 1.13.15.29.08.64.21 1.07.37.55.21.85.34.95.37.32.12.59.17.8.17.16 0 .39-.05.645-.13.145-.05.42-.14.81-.31.386-.14.692-.26.935-.35.37-.11.728-.21 1.05-.26.39-.06.777-.08 1.148-.05.71.05 1.36.2 1.94.42 1.02.41 1.843 1.05 2.457 1.96-.26.16-.5.346-.725.55-.487.43-.9.94-1.23 1.505-.43.77-.65 1.64-.644 2.52.015 1.083.29 2.035.84 2.86.387.6.904 1.114 1.534 1.536.31.21.582.355.84.45-.12.375-.252.74-.405 1.1-.347.807-.76 1.58-1.25 2.31-.432.63-.772 1.1-1.03 1.41-.402.48-.79.84-1.18 1.097-.43.285-.935.436-1.452.436-.35.015-.7-.03-1.034-.127-.29-.095-.576-.202-.856-.323-.293-.134-.596-.248-.905-.34-.38-.1-.77-.148-1.164-.147-.4 0-.79.05-1.16.145-.31.088-.61.196-.907.325-.42.175-.695.29-.855.34-.324.096-.656.154-.99.175-.52 0-1.004-.15-1.486-.45zm6.854-18.46c-.68.34-1.326.484-1.973.436-.1-.646 0-1.31.27-2.037.24-.62.56-1.18 1-1.68.46-.52 1.01-.95 1.63-1.26.66-.34 1.29-.52 1.89-.55.08.68 0 1.35-.25 2.07-.228.64-.568 1.23-1 1.76-.435.52-.975.95-1.586 1.26z"/>
<path id="download" class="svg_path" d="M10.125 0h3.75c.623 0 1.125.502 1.125 1.125v7.875h4.111c.834 0 1.252 1.008.661 1.598L12.642 17.733c-.352.352-.928.352-1.28 0L4.223 10.598c-.591-.591-.173-1.598.661-1.598H9V1.125c0-.623.502-1.125 1.125-1.125zm13.875 17.625v5.25c0 .623-.502 1.125-1.125 1.125H1.125c-.623 0-1.125-.502-1.125-1.125V17.625c0-.623.502-1.125 1.125-1.125h6.877l2.297 2.297c.942.942 2.461.942 3.403 0l2.297-2.297H22.875c.623 0 1.125.502 1.125 1.125zm-5.812 4.125c0-.516-.422-.937-.937-.937s-.937.422-.937.938 .422.938 .938.938 .938-.422.938-.937zm3 0c0-.516-.422-.937-.937-.937s-.937.422-.937.938 .422.938 .938.938 .938-.422.938-.937z"/>
<path id="github" class="svg_path" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/>
<path id="playstore" class="svg_path" d="M1.22 0c-.03.093-.06.185-.06.308v23.229c0 .217.061.34.184.463l11.415-12.093L1.22 0zm12.309 12.708l2.951 3.045-4.213 2.4s-5.355 3.044-8.308 4.739l9.57-10.184zm.801-.831l3.166 3.292c.496-.276 4.371-2.492 4.924-2.8.584-.338.525-.8.029-1.046-.459-.255-4.334-2.475-4.92-2.835l-3.203 3.392.004-.003zm-.803-.8l2.984-3.169-4.259-2.431S5.309 1.505 2.999.179l10.53 10.898h-.002z"/>
<path id="home" class="svg_path" d="M20.331 14.354V20.325c0 .554-.446 1-1 1H14.498c-.275 0-.5-.225-.5-.5V16.158c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v4.667c0 .275-.225.5-.5.5H4.665c-.554 0-1-.446-1-1V14.354c0-.15.067-.292.183-.388l7.833-6.45c.183-.15.45-.15.637 0l7.833 6.45c.113.096 .179.238 .179.388zm3.483-2.538L20.331 8.946V3.175c0-.275-.225-.5-.5-.5h-2.333c-.275 0-.5.225-.5.5V6.2l-3.729-3.071c-.737-.608-1.804-.608-2.542 0L.181 11.817c-.212.175-.242.492-.067.704l1.063 1.292c.175.213 .492.242 .704.067l9.8-8.071c.183-.15.45-.15.637 0l9.8 8.071c.213.175 .529.146 .704-.067l1.063-1.292c.175-.217.142-.529-.071-.704z"/>
<path id="sourceforge" class="svg_path" d="M2.43 11.361c0-.372.303-.705.675-.705h6.968c.271-.003.486-.219.486-.488V8.713c0-.27-.219-.487-.488-.487H2.43C1.088 8.227 0 9.314 0 10.654v2.695c0 1.342 1.086 2.431 2.426 2.431h5.021c.372 0 .676.331.676.706v1.282c0 .371-.304.707-.676.707H.486c-.271 0-.485.217-.485.486v1.453c0 .268.216.486.485.486H8.13c1.34 0 2.426-1.087 2.426-2.427v-2.697c0-1.34-1.086-2.428-2.427-2.428H3.104c-.372 0-.675-.334-.675-.704v-1.283zm21.088-3.13h-5.024V5.525h5.02c.266 0 .483-.217.483-.486V3.585c0-.271-.215-.486-.484-.486h-5.019c-1.34 0-2.427 1.087-2.427 2.427v2.706H13.74c-.27 0-.484.218-.484.485v1.459c0 .268.216.484.483.484h2.325v7.953c0 .24.099.284.303.284.488 0 2.124-.91 2.124-1.688v-6.551h5.024c.266 0 .484-.218.484-.484v-1.46c0-.266-.219-.483-.484-.483h.003z"/>
<path id="wiki" class="svg_path" d="M22.5 16.875V1.125c0-.623-.502-1.125-1.125-1.125H6C3.516 0 1.5 2.016 1.5 4.5v15c0 2.484 2.016 4.5 4.5 4.5h15.375c.623 0 1.125-.502 1.125-1.125v-.75c0-.352-.164-.67-.417-.877-.197-.722-.197-2.78 0-3.502.253-.202.417-.52.417-.872zM7.5 6.281c0-.155.127-.281.281-.281h9.938c.155 0 .281.127 .281.281v.938c0 .155-.127.281-.281.281H7.781c-.155 0-.281-.127-.281-.281v-.937zm0 3c0-.155.127-.281.281-.281h9.938c.155 0 .281.127 .281.281v.938c0 .155-.127.281-.281.281H7.781c-.155 0-.281-.127-.281-.281v-.937zm11.878 11.719H6c-.83 0-1.5-.67-1.5-1.5 0-.825.675-1.5 1.5-1.5h13.378c-.089.802-.089 2.198 0 3z"/>
<path id="windows" class="svg_path" d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

View File

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 276 KiB

View File

Before

Width:  |  Height:  |  Size: 348 KiB

After

Width:  |  Height:  |  Size: 348 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

View File

@ -8,7 +8,7 @@ $problems = Euler::listAll();
?>
<div class="blogcontent bc_euler bc_markdown">
<div class="blogcontent bc_euler base_markdown">
<div style="position: relative;">
<a href="https://github.com/Mikescher/Project-Euler_Befunge" style="position: absolute; top: 0; right: 0; border: 0;">
@ -41,6 +41,10 @@ $problems = Euler::listAll();
Similar to most Befunge content on this site I only used the Befunge-93 instruction-set but ignored the 80x25 size restriction.<br />
Still I tries to keep the programs in the Befunge-93 grid size, but that wasn't possible for all. So I guess some programs are <i>technically</i> Befunge-98.
</p>
<p>
Also the original <a href="https://github.com/catseye/Befunge-93/blob/master/doc/Befunge-93.markdown">befunge-93 spec</a> didn't specify the word size of the stack or the grid<br />
So, while most programs run happily with 32bit integers some need an interpreter that supports 64bit integers for both stack and grid.
</p>
</blockquote>
<p>
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).<br/>

View File

@ -25,7 +25,7 @@ $max = ceil($max / 20) * 20;
?>
<div class="blogcontent bc_euler bc_markdown">
<div class="blogcontent bc_euler base_markdown">
<div style="position: relative;">
<a href="https://github.com/Mikescher/Project-Euler_Befunge" style="position: absolute; top: 0; right: 0; border: 0;">

View File

@ -4,7 +4,7 @@ require_once (__DIR__ . '/../internals/blog.php');
require_once (__DIR__ . '/../internals/ParsedownCustom.php');
?>
<div class="blogcontent bc_markdown">
<div class="blogcontent base_markdown">
<div class="bc_header">
<?php echo $post['date']; ?>

View File

@ -1,4 +1,4 @@
<div id="footerdiv" class="content-responsive">
<hr />
made with vanilla PHP and MySQL<span class="footerspan2">, no frameworks, no bootstrap, no unnecessary javascript</span>
made with vanilla PHP and MySQL<span class="footerspan2">, no frameworks, no bootstrap, no unnecessary* javascript</span>
</div>

View File

@ -7,7 +7,7 @@
<div class="programs_pnl_base">
<div class="programs_pnl_header">
<a href="/programs">Newest Programs by me</a>
<a href="/programs">Newly added software</a>
</div>
<div class="programs_pnl_content">

View File

@ -129,7 +129,7 @@ try {
else if ($value === '%URL%')
{
if (!isset($urlparams[$optname])) { $match = false; break; }
$value = $urlparams[$optname];
$value = urldecode($urlparams[$optname]);
}
$opt[strtolower($optname)] = $value;
@ -169,3 +169,8 @@ try {
//TODO gzip (?)
//TODO better gh widget
//TODO remove db table prefixes
//TODO euler insert+show 32bit | 64bit mode
//TODO euler best of on top of list (?)
//TODO optimize image sizes for display/download (? - auto?)
//TODO send cache header (?)
//TODO programs add [license]

View File

@ -5,7 +5,7 @@ class Programs
public static function readSingle($a)
{
$a['thumbnail_url'] = '/data/images/program_thumbnails/' . $a['internal_name'] . '.png';
$a['file_longdescription'] = (__DIR__ . '/../statics/programs/' . $a['internal_name'] . '_descrition.md');
$a['file_longdescription'] = (__DIR__ . '/../statics/programs/' . $a['internal_name'] . '_description.md');
$a['url'] = '/programs/view/' . $a['internal_name'];
return $a;
@ -31,4 +31,18 @@ class Programs
$a = require (__DIR__ . '/../statics/updates/programupdates.php');
return $a;
}
public static function getProgramByInternalName($id)
{
foreach (self::listAll() as $prog) {
if (strcasecmp($prog['internal_name'], $id) === 0) return $prog;
if ($prog['internal_name_alt'] !== null && strcasecmp($prog['internal_name_alt'], $id) === 0) return $prog;
}
return null;
}
public static function getProgramDescription($prog)
{
return file_get_contents($prog['file_longdescription']);
}
}

View File

@ -42,6 +42,7 @@ $allprograms = Programs::listAllNewestFirst($filter);
echo ' </div>';
echo ' <div class="prgl_elem_right">';
echo ' <div class="prgl_elem_title">' . htmlspecialchars($prog['name']) . '</div>';
echo ' <div class="prgl_elem_sdesc">' . htmlspecialchars($prog['short_description']) . '</div>';
echo ' <div class="prgl_elem_info">';
echo ' <div class="prgl_elem_subinfo"><span class="prgl_elem_subinfo_caption">Date:</span><span class="prgl_elem_subinfo_data">'.$prog['add_date'].'</span></div>';
echo ' <div class="prgl_elem_subinfo"><span class="prgl_elem_subinfo_caption">Language:</span><span class="prgl_elem_subinfo_data">'.$prog['prog_language'].'</span></div>';

100
www/pages/programs_view.php Normal file
View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en">
<?php
require_once (__DIR__ . '/../internals/base.php');
require_once (__DIR__ . '/../internals/programs.php');
require_once (__DIR__ . '/../internals/ParsedownCustom.php');
$internalname = $OPTIONS['id'];
$prog = Programs::getProgramByInternalName($internalname);
if ($prog === NULL) httpError(404, 'Program not found');
?>
<head>
<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']; ?>"/>
<?php printCSS(); ?>
</head>
<body>
<div id="mastercontainer">
<?php $HEADER_ACTIVE = 'programs'; include (__DIR__ . '/../fragments/header.php'); ?>
<div id="content" class="content-responsive">
<div class="blockcontent">
<div class="prgv_content">
<div class="contentheader" id="prgv_header"><h1><?php echo htmlspecialchars($prog['name']); ?></h1><hr/></div>
<div class="prgv_top">
<div class="prgv_left">
<img src="<?php echo $prog['thumbnail_url']; ?>" alt="Thumbnail (<?php echo $prog['name'] ?>)" />
</div>
<div class="prgv_right">
<div class="prgv_right_key" style="grid-row:1">Name:</div>
<div class="prgv_right_value" style="grid-row:1"><a href="<?php echo $prog['url']; ?>"><?php echo htmlspecialchars($prog['name']) ?></a></div>
<div class="prgv_right_key" style="grid-row:2">Language:</div>
<div class="prgv_right_value" style="grid-row:2"><?php echo htmlspecialchars($prog['prog_language']) ?></div>
<div class="prgv_right_key" style="grid-row:3">Category:</div>
<div class="prgv_right_value" style="grid-row:3"><?php echo htmlspecialchars($prog['category']) ?></div>
<div class="prgv_right_key" style="grid-row:4">Date:</div>
<div class="prgv_right_value" style="grid-row:4"><?php echo htmlspecialchars($prog['add_date']) ?></div>
<div class="prgv_right_comb" style="grid-row:5">
<?php
foreach ($prog['urls'] as $type => $url)
{
if ($type === 'download') echo '<a class="prgv_dl_btn prgv_dl_download" href="'.$url.'"><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#download" /></svg><span>Download</span></a>';
if ($type === 'github') echo '<a class="prgv_dl_btn prgv_dl_github" href="'.$url.'"><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>';
if ($type === 'homepage') echo '<a class="prgv_dl_btn prgv_dl_homepage" href="'.$url.'"><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>';
if ($type === 'wiki') echo '<a class="prgv_dl_btn prgv_dl_wiki" href="'.$url.'"><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#wiki" /></svg><span>Wiki</span></a>';
if ($type === 'playstore') echo '<a class="prgv_dl_btn prgv_dl_playstore" href="'.$url.'"><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#playstore" /></svg><span>Google Playstore</span></a>';
if ($type === 'amazonappstore') echo '<a class="prgv_dl_btn prgv_dl_amznstore" href="'.$url.'"><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#amazon" /></svg><span>Amazon Appstore</span></a>';
if ($type === 'windowsstore') echo '<a class="prgv_dl_btn prgv_dl_winstore" href="'.$url.'"><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#windows" /></svg><span>Microsoft Store</span></a>';
if ($type === 'itunesstore') echo '<a class="prgv_dl_btn prgv_dl_appstore" href="'.$url.'"><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#apple" /></svg><span>App Store</span></a>';
if ($type === 'sourceforge') echo '<a class="prgv_dl_btn prgv_dl_sourceforge" href="'.$url.'"><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#sourceforge"/></svg><span>Sourceforge</span></a>';
}
?>
</div>
<div class="prgv_right_comb prgv_right_lang" style="grid-row:7">
<?php
foreach (explode('|', $prog['ui_language']) as $lang)
{
echo '<img src="'.convertLanguageToFlag($lang).'" title="'.$lang.'" alt="'.$lang[0].'" />' . "\n";
}
?>
</div>
</div>
</div>
<hr class="prgv_sep" />
<div class="prgv_center base_markdown">
<?php
$pd = new ParsedownCustom();
echo $pd->text(Programs::getProgramDescription($prog));
?>
</div>
</div>
</div>
</div>
<?php include (__DIR__ . '/../fragments/footer.php'); ?>
</div>
</body>
</html>

View File

@ -6,7 +6,7 @@ The code is note really optimized and will only run on newer browsers, but it's
Press **[Start]** to run the code, **[Edit]** to change the code and change the interpreter speed with the button on the right side of the **[Start]** button.
~~~befungerunner__speed-2
~~~befungerunner__speed-1
0".omed s"v
" >v
i 8

View File

@ -1,5 +1,3 @@
# AlephNote
An extensible, lightweight desktop note client for multiple back-ends
![](https://raw.githubusercontent.com/Mikescher/AlephNote/master/docs/preview.png)

View File

@ -1,6 +1,3 @@
BefunUtils
========
This is my collection of tools, libraries and transcompilers for the esoteric programming language [Befunge](http://esolangs.org/wiki/Befunge).
It consists of the following core components:

View File

@ -1,4 +1,4 @@
A while ago a friend and I developed a game for school. It was a Towerdefence game and i think it was pretty nice.
A long time ago a friend and I developed a game for school. It was a Towerdefence game and i think it was pretty nice.
The problem was that we developed it in Greenfoot - and we reached pretty fast the limitations of this framework.
So after all that I decided to rewrite it completely new in my own game-framework [absCanvas](/programs/view/absCanvas).

View File

@ -1,2 +1,2 @@
LIghtShow generates literally a light show with the LED's on your keyboard. I'm not really sure if this has any practical use, but it looks kinda nice.
LightShow generates literally a light show with the LED's on your keyboard. I'm not really sure if this has any practical use, but it looks kinda nice.
Perhaps you could impress someone with the cool things your keybaord is able to do

View File

@ -5,6 +5,7 @@ return
[
'name' => 'absCanvas',
'internal_name' => 'absCanvas',
'internal_name_alt' => null,
'category' => 'Engine',
'stars' => 3,
'ui_language' => 'English',
@ -20,12 +21,13 @@ return
[
'name' => 'All in One',
'internal_name' => 'All in One',
'internal_name' => 'All_in_One',
'internal_name_alt' => 'All in One',
'category' => 'Tool',
'stars' => 1,
'ui_language' => 'German',
'prog_language' => 'Delphi',
'short_description' => 'A little \"swiss army knife\" programm with over 100 different functionalities',
'short_description' => 'A little "swiss army knife" programm with over 100 different functionalities',
'add_date' => '2008-11-26',
'urls' =>
[
@ -37,6 +39,7 @@ return
[
'name' => 'Beepster',
'internal_name' => 'Beepster',
'internal_name_alt' => null,
'category' => 'Hoax',
'stars' => 0,
'ui_language' => 'English',
@ -53,11 +56,12 @@ return
[
'name' => 'BefunUtils',
'internal_name' => 'BefunUtils',
'internal_name_alt' => null,
'category' => 'Compiler',
'stars' => 4,
'ui_language' => 'English',
'prog_language' => 'C#',
'short_description' => 'My selfmade Code-to-Befunge93 compiler, with a few little extras.',
'short_description' => 'My collection of befunge93 tools. Including an interpreter, a transpiler, an compiler, an highlighter and more',
'add_date' => '2014-08-04',
'urls' =>
[
@ -70,11 +74,12 @@ return
[
'name' => 'BefunZ',
'internal_name' => 'BefunZ',
'internal_name_alt' => null,
'category' => 'Interpreter',
'stars' => 3,
'ui_language' => 'English',
'prog_language' => 'C#',
'short_description' => 'A Befunge-93 Interpreter compatible with Befunge-98 dimensions.',
'short_description' => 'A (very) simple visual Befunge-93 commandline interpreter',
'add_date' => '2013-05-03',
'urls' =>
[
@ -86,6 +91,7 @@ return
[
'name' => 'Blitzer',
'internal_name' => 'Blitzer',
'internal_name_alt' => null,
'category' => 'Hoax',
'stars' => 0,
'ui_language' => 'English',
@ -102,6 +108,7 @@ return
[
'name' => 'Borderline Defense',
'internal_name' => 'BorderlineDefense',
'internal_name_alt' => 'Borderline Defense',
'category' => 'Game',
'stars' => 4,
'ui_language' => 'English',
@ -119,6 +126,7 @@ return
[
'name' => 'Crystal Grid',
'internal_name' => 'CrystalGrid',
'internal_name_alt' => 'Crystal Grid',
'category' => 'Game',
'stars' => 4,
'ui_language' => 'English',
@ -134,7 +142,8 @@ return
[
'name' => 'Deal or no Deal',
'internal_name' => 'Deal or no Deal',
'internal_name' => 'Deal_or_no_Deal',
'internal_name_alt' => 'Deal or no Deal',
'category' => 'Game',
'stars' => 0,
'ui_language' => 'German',
@ -150,7 +159,8 @@ return
[
'name' => 'Dynamic Link Fighters',
'internal_name' => 'Dynamic Link Fighters',
'internal_name' => 'DLF',
'internal_name_alt' => 'Dynamic Link Fighters',
'category' => 'Game',
'stars' => 1,
'ui_language' => 'English|German',
@ -167,6 +177,7 @@ return
[
'name' => 'exeExtract',
'internal_name' => 'exeExtract',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 0,
'ui_language' => 'English',
@ -183,11 +194,12 @@ return
[
'name' => 'ExtendedGitGraph',
'internal_name' => 'ExtendedGitGraph',
'internal_name_alt' => null,
'category' => 'Library',
'stars' => 2,
'ui_language' => 'English',
'prog_language' => 'PHP',
'short_description' => 'A simple php module to display a overview of you github commits',
'short_description' => 'A simple php module to display an overview of you github commits',
'add_date' => '2014-06-08',
'urls' =>
[
@ -198,12 +210,13 @@ return
[
'name' => 'Graveyard of Numbers',
'internal_name' => 'Graveyard of Numbers',
'internal_name' => 'Graveyard_of_Numbers',
'internal_name_alt' => 'Graveyard of Numbers',
'category' => 'Tool',
'stars' => 0,
'ui_language' => 'German',
'prog_language' => 'Delphi',
'short_description' => 'A little tool to continuously rename files.',
'short_description' => 'A little tool to rename multiple files with increasing numbers.',
'add_date' => '2008-10-01',
'urls' =>
[
@ -215,6 +228,7 @@ return
[
'name' => 'H²O',
'internal_name' => 'H2O',
'internal_name_alt' => null,
'category' => 'Game',
'stars' => 2,
'ui_language' => 'English',
@ -231,6 +245,7 @@ return
[
'name' => 'HexSolver',
'internal_name' => 'HexSolver',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 5,
'ui_language' => 'English',
@ -248,6 +263,7 @@ return
[
'name' => 'Infinity Tournament',
'internal_name' => 'InfinityTournament',
'internal_name_alt' => 'Infinity Tournament',
'category' => 'Game',
'stars' => 4,
'ui_language' => 'English',
@ -264,6 +280,7 @@ return
[
'name' => 'jCircuits',
'internal_name' => 'jCircuits',
'internal_name_alt' => null,
'category' => 'Simulation',
'stars' => 4,
'ui_language' => 'English',
@ -281,6 +298,7 @@ return
[
'name' => 'jClipCorn',
'internal_name' => 'jClipCorn',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 4,
'ui_language' => 'English|German',
@ -299,11 +317,12 @@ return
[
'name' => 'jQCCounter',
'internal_name' => 'jQCCounter',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 3,
'ui_language' => 'English',
'prog_language' => 'Java',
'short_description' => 'A little tool to find the \"line of codes\" of multiple projects',
'short_description' => 'A little tool to find the "line of codes" of multiple projects',
'add_date' => '2014-04-27',
'urls' =>
[
@ -316,6 +335,7 @@ return
[
'name' => 'Keygen Dancer',
'internal_name' => 'KeygenDancer',
'internal_name_alt' => 'Keygen Dancer',
'category' => 'Gadget',
'stars' => 2,
'ui_language' => 'English',
@ -331,7 +351,8 @@ return
[
'name' => 'LAN-Control',
'internal_name' => 'LAN-Control',
'internal_name' => 'LanControl',
'internal_name_alt' => 'LAN-Control',
'category' => 'Network administration',
'stars' => 1,
'ui_language' => 'German',
@ -348,11 +369,12 @@ return
[
'name' => 'LightShow',
'internal_name' => 'LightShow',
'internal_name_alt' => null,
'category' => 'Hoax',
'stars' => 0,
'ui_language' => 'German',
'prog_language' => 'Delphi',
'short_description' => 'Turn you keyboard-LED\"s into a little lightshow',
'short_description' => 'Turn you keyboard LED\'s into a little lightshow',
'add_date' => '2008-10-12',
'urls' =>
[
@ -364,6 +386,7 @@ return
[
'name' => 'Logistixx',
'internal_name' => 'Logistixx',
'internal_name_alt' => null,
'category' => 'Mathematics',
'stars' => 1,
'ui_language' => 'German',
@ -380,11 +403,12 @@ return
[
'name' => 'NedSchend',
'internal_name' => 'NedSchend',
'internal_name_alt' => null,
'category' => 'Hoax',
'stars' => 1,
'ui_language' => 'German',
'prog_language' => 'Delphi',
'short_description' => 'Send anonymous messages over the Windows Messenger service to other pc\"s in your LAN',
'short_description' => 'Send anonymous messages over the Windows Messenger service to other pc\'s in your LAN',
'add_date' => '2009-02-11',
'urls' =>
[
@ -396,6 +420,7 @@ return
[
'name' => 'Passpad',
'internal_name' => 'Passpad',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 3,
'ui_language' => 'English',
@ -413,11 +438,12 @@ return
[
'name' => 'Serpilicum',
'internal_name' => 'Serpilicum',
'internal_name_alt' => null,
'category' => 'Game',
'stars' => 3,
'ui_language' => 'English',
'prog_language' => 'C++',
'short_description' => 'A crazy little Snake with an \"Console\" Style',
'short_description' => 'A crazy little snake with an "console" style',
'add_date' => '2013-07-08',
'urls' =>
[
@ -430,6 +456,7 @@ return
[
'name' => 'SharkSim',
'internal_name' => 'SharkSim',
'internal_name_alt' => null,
'category' => 'Simulation',
'stars' => 3,
'ui_language' => 'English',
@ -445,12 +472,13 @@ return
[
'name' => 'Sieb des Eratosthenes',
'internal_name' => 'Sieb des Eratosthenes',
'internal_name' => 'Sieb_des_Eratosthenes',
'internal_name_alt' => 'Sieb des Eratosthenes',
'category' => 'Mathematics',
'stars' => 1,
'ui_language' => 'German',
'prog_language' => 'Delphi',
'short_description' => 'Visualize the prime number calculation with the Sieve of Erastothenes algorithm.',
'short_description' => 'Visualize the prime number calculation with the Sieve Of Erastothenes algorithm.',
'add_date' => '2009-01-22',
'urls' =>
[
@ -461,7 +489,8 @@ return
[
'name' => 'Smart Directory Lister',
'internal_name' => 'Smart Directory Lister',
'internal_name' => 'SDL',
'internal_name_alt' => 'Smart Directory Lister',
'category' => 'Tool',
'stars' => 2,
'ui_language' => 'German',
@ -478,6 +507,7 @@ return
[
'name' => 'SuperBitBros',
'internal_name' => 'SuperBitBros',
'internal_name_alt' => null,
'category' => 'Game',
'stars' => 4,
'ui_language' => 'English',
@ -495,6 +525,7 @@ return
[
'name' => 'TicTacToe',
'internal_name' => 'TicTacToe',
'internal_name_alt' => null,
'category' => 'Game',
'stars' => 1,
'ui_language' => 'English',
@ -511,6 +542,7 @@ return
[
'name' => 'Ziegenproblem',
'internal_name' => 'Ziegenproblem',
'internal_name_alt' => null,
'category' => 'Mathematics',
'stars' => 0,
'ui_language' => 'German',
@ -527,6 +559,7 @@ return
[
'name' => 'Quick HiddenFolder Toggle',
'internal_name' => 'QuickHiddenFolderToggle',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 3,
'ui_language' => 'English',
@ -544,6 +577,7 @@ return
[
'name' => 'Cannon Conquest',
'internal_name' => 'CannonConquest',
'internal_name_alt' => null,
'category' => 'Game',
'stars' => 5,
'ui_language' => 'English|German|French|Italian|Spanish',
@ -564,6 +598,7 @@ return
[
'name' => 'AlephNote',
'internal_name' => 'AlephNote',
'internal_name_alt' => null,
'category' => 'Tool',
'stars' => 5,
'ui_language' => 'English',
@ -572,7 +607,7 @@ return
'add_date' => '2017-02-26',
'urls' =>
[
'download' => 'https://github.com/Mikescher/AlephNote//releases',
'download' => 'https://github.com/Mikescher/AlephNote/releases',
'github' => 'https://github.com/Mikescher/AlephNote/',
'homepage' => 'https://mikescher.github.io/AlephNote/',
],