1
0

befunge93_runner (WIP)

This commit is contained in:
2018-01-02 00:25:09 +01:00
parent e56ca264a3
commit 9f3ae53eb1
5 changed files with 205 additions and 24 deletions

View File

@@ -5,27 +5,52 @@ global $PARAM_CODE;
global $PARAM_URL;
global $PARAM_INTERACTIVE;
function fmtBef($str) {
$str = htmlspecialchars($str);
$str = str_replace("\r\n", "\n", $str);
$str = join("\n", array_map(function($p){return rtrim($p);}, explode("\n", $str)));
$str = str_replace(' ', ' ', $str);
$str = nl2br($str);
return $str;
}
$result = '';
$result .= '<div class="bce_code">' . "\n";
$result .= ' <div class="bce_code_data">' .htmlspecialchars($PARAM_CODE) . '</div>' . "\n";
$result .= ' <div class="bce_code_ctrl">' . "\n";
if ($PARAM_INTERACTIVE) {
$result .= '<div class="bce_code b93rnr_base">' . "\n";
$result .= ' <div class="bce_code_data b93rnr_data" data-befcode="' . base64_encode($PARAM_CODE) . '">' . fmtBef($PARAM_CODE) . '</div>' . "\n";
$result .= ' <div class="bce_code_ctrl">' . "\n";
$result .= ' <div class="ctrl_btn_left">' . "\n";
$result .= ' <div class="ctrl_btn">Start</div>' . "\n";
$result .= ' <div class="ctrl_btn">Stop</div>' . "\n";
$result .= ' <div class="ctrl_btn">Reset</div>' . "\n";
$result .= ' <div class="ctrl_btn b93rnr_start">Start</div>' . "\n";
$result .= ' <div class="ctrl_btn b93rnr_pause ctrl_btn_disabled">Pause</div>' . "\n";
$result .= ' <div class="ctrl_btn b93rnr_reset ctrl_btn_disabled">Reset</div>' . "\n";
$result .= ' </div>' . "\n";
}
if ($PARAM_URL !== '') {
$result .= ' <div class="ctrl_btn_right">' . "\n";
$result .= ' <a class="ctrl_btn" href="' .$PARAM_URL . '" download target="_blank">Download</a>' . "\n";
$result .= ' </div>' . "\n";
}
$result .= ' </div>' . "\n";
$result .= '</div>' . "\n";
if ($PARAM_URL !== '') {
$result .= ' <div class="ctrl_btn_right">' . "\n";
$result .= ' <a class="ctrl_btn" href="' . $PARAM_URL . '" download target="_blank">Download</a>' . "\n";
$result .= ' </div>' . "\n";
}
$result .= ' </div>' . "\n";
$result .= ' <div class="bce_code_out b93rnr_outpanel b93rnr_outpanel_hidden">' . "\n";
$result .= ' <div class="bce_code_out_text b93rnr_output"></div>' . "\n";
$result .= ' <div class="bce_code_out_stack b93rnr_stack"></div>' . "\n";
$result .= ' </div>' . "\n";
$result .= '</div>' . "\n";
$result .= includeScriptOnce("/data/javascript/blogpost_bef93runner.js", false) . "\n";
$result .= includeScriptOnce("/data/javascript/blogpost_bef93runner.js", false) . "\n";
}
else
{
$result .= '<div class="bce_code">' . "\n";
$result .= ' <div class="bce_code_data">' . fmtBef($PARAM_CODE) . '</div>' . "\n";
$result .= ' <div class="bce_code_ctrl">' . "\n";
if ($PARAM_URL !== '') {
$result .= ' <div class="ctrl_btn_right">' . "\n";
$result .= ' <a class="ctrl_btn" href="' . $PARAM_URL . '" download target="_blank">Download</a>' . "\n";
$result .= ' </div>' . "\n";
}
$result .= ' </div>' . "\n";
$result .= '</div>' . "\n";
}
return $result;