nadesiko3
Version:
Japanese Programming Language
172 lines (159 loc) • 6.5 kB
HTML
<html data-theme="winter">
<head>
<meta charset="utf-8" />
<title>Node版 なでしこ3 エディタ</title>
<!-- daisyUI-->
<link href="daisyui/tailwind.min.css" rel="stylesheet" type="text/css" />
<link href="daisyui/full.css" rel="stylesheet" type="text/css" />
<!-- nako3edit -->
<link href="/html/nako3edit.css" rel="stylesheet" type="text/css" />
<script defer type="text/javascript" src="/release/wnako3.js?run&v=1"></script>
<script defer type="text/javascript" src="/html/edit_plugin.js"></script>
<script type="なでしこ">
#-----------
APPKEY=""
HREF=WINDOW["location"]["href"]
HREFを表示
P=HREFをURLパラメータ解析
APPKEY=P["appkey"]
Pを表示。
FNAME="無題.nako3"
もし、P["file"]ならば、FNAME=P["file"]
エディタ初期化。
対象ファイル読込処理。
●対象ファイル読込処理とは
# ファイル名解決
もし、FNAME=「new」ならば
FNAME=(「/get_new_filename?appkey={APPKEY}」からAJAX_JSON取得)
FILE2 = "new"
違えば
FILE2 = FNAMEをURLエンコード。
ここまで。
# ロード
「#name」にFNAMEをDOMテキスト設定。
「/load?file={FILE2}&appkey={APPKEY}」へGET送信した時には
「#body」に対象をDOMテキスト設定。
ここまで。
ここまで。
●エディタ初期化
「エディタ初期化」を表示。
「#run_btn」の「onclick」に「P実行処理」をDOMイベント設定。
「#save_btn」の「onclick」に「P保存処理」をDOMイベント設定。
「#clear_btn」の「onclick」に「Pクリア処理」をDOMイベント設定。
# 戻るリンクをAPPKEYを入れて初期化
「.backlink」のDOM要素全取得して反復
対象["href"] = "/html/files.html?appkey={APPKEY}"
ここまで。
ここまで。
●P実行処理
「実行」を表示。
S=「#body」のDOMテキスト取得
{
"file": 「#name」のDOMテキスト取得,
"body": 「#body」のDOMテキスト取得,
"appkey": APPKEY
}のPOSTデータ生成して、Pに代入。
「/run?{P}」へGET送信した時には
H=対象をHTML変換して改行を「<br />」に置換。
Hで「エラー]」が何文字目。
もし、そうならば
Hの「(\[\d+m)」を「」に正規表現置換してHに代入。
Hの「(\[.*?\])」を「<span style='color:red;font-weight:bold;'>$1</span>」に正規表現置換してHに代入。
Hの「(『.*?』)」を「<span style='color:blue;font-weight:bold;'>$1</span>」に正規表現置換してHに代入。
ここまで。
「#result」にHをDOMテキスト設定。
ここまで。
ここまで
●P保存処理
「保存」を表示。
S=「#body」のDOMテキスト取得
{
"file": 「#name」のDOMテキスト取得,
"body": 「#body」のDOMテキスト取得,
"appkey": APPKEY
}のPOSTデータ生成して、Pに代入。
「/save?{P}」へGET送信した時には
H=対象をHTML変換。
「#result」にHをDOMテキスト設定。
ここまで。
ここまで。
●Pクリア処理とは
「#result」に「」をDOMテキスト設定。
ここまで。
#-----------
</script>
</head>
<body>
<div class="navbar bg-base-100">
<div class="dropdown">
<label tabindex="0" class="btn btn-ghost btn-circle">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h7" /></svg>
</label>
<ul tabindex="0" class="menu menu-compact dropdown-content mt-3 p-2 shadow bg-base-100 rounded-box w-52">
<li><a class="backlink">ファイル一覧</a></li>
<li><label for="my-modal-desc" class="modal-button">このエディタについて</label></li>
</ul>
</div>
<div class="flex-1">
<a class="btn btn-ghost normal-case text-xl">Node版 なでしこ3 エディタ</a>
</div>
<div class="flex-none">
<div class="namebox">file:
<input type="text" class="input input-bordered input-md max-w-xs" id="name" size="20" />
</div>
</div>
</div>
<div class="editbox">
<div class="text-sm breadcrumbs">
<ul>
<li>
<a class="backlink">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="w-4 h-4 mr-2 stroke-current"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"></path></svg>
ファイル一覧
</a>
</li>
<li><label for="my-modal-desc" class="modal-button">エディタ</label></li>
</ul>
</div>
<div style="margin:1em;">
<textarea id="body" class="textarea" style="resize:both;" rows="12" cols="60"></textarea>
</div>
<div class="cmd_btn">
<button id="run_btn" class="btn btn-primary">実行(cnako3)</button>
<button id="save_btn" class="btn">保存</button>
<button id="clear_btn" class="btn">クリア</button>
</div>
<!-- 実行画面 -->
<div style="margin: 1em">
<div class="mockup-window">
<div id="result" class="bg-base-200"></div>
</div>
</div>
<div class="divider"></div>
<!-- フッターのリンク -->
<div class="text-sm breadcrumbs">
<ul>
<li>
<a class="backlink">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="w-4 h-4 mr-2 stroke-current"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"></path></svg>
ファイル一覧
</a>
</li>
<li>
<label for="my-modal-desc" class="modal-button">エディタ</label>
</li>
</ul>
</div>
</div><!-- end of #editbox -->
</body>
<!-- エディタの説明モーダルダイアログ -->
<input type="checkbox" id="my-modal-desc" class="modal-toggle">
<div class="modal">
<div class="modal-box relative">
<label for="my-modal-desc" class="btn btn-sm btn-circle absolute right-2 top-2">✕</label>
<h3 class="text-lg font-bold">Node版 なでしこ3エディタとは</h3>
<p class="py-4">なでしこ3のNode.jsランタイムを実行するためのエディタです。</p>
</div>
</div>
</html>