nadesiko3
Version:
Japanese Programming Language
135 lines (132 loc) • 4.67 kB
HTML
<html data-theme="winter">
<head>
<meta charset="utf-8" />
<title>プラグインの追加</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"></script>
<script defer type="text/javascript" src="/html/edit_plugin.js"></script>
<script type="なでしこ">
#-----------
PLUGINS=[]
APPKEY=""
HREF=WINDOW["location"]["href"]
HREFを表示。
P=HREFをURLパラメータ解析
Pを表示。
APPKEY=P["appkey"]
「APPKEY={APPKEY}」を表示。
プラグイン取得処理
#-----------
# 新規ボタン
FILES_A=「#gotoFilesLink」のDOM要素取得
「@@@{FILES_A}」を表示。
FILES_A["href"]=「/html/files.html?appkey={APPKEY}」
#-----------
●プラグイン取得処理
API=「/get_plugins?appkey={APPKEY}」
J=APIからHTTP取得
JをJSONデコードしてFILESに代入。
FILESを表示。
S=「<table>」
FILESを反復
NAME=対象["name"]
# --- リストに表示したくない場合はここに記述 ---
もし、NAME=「nadesiko3」ならば、続ける。
もし、NAME=「nadesiko3-googlehome」ならば、続ける。
# --- ここまで
NAMEで「-」が何文字目
もし、それが0ならば、続ける。
DESC=対象["description"]
AUTH="-"
もし、対象["maintainers"]ならば
AUTH=対象["maintainers"][0]["username"]
ここまで。
もし、対象["author"]ならば
AUTH=対象["author"]["name"]
ここまで。
もし、AUTH="kujirahand"ならば
AUTH="公式"
ここまで。
VER=対象["version"]
AV="{VER}.0.0.0"を「.」で区切る
MAJOR=AV[0]
MINOR=AV[1]
PATCH=AV[2]
# v3.6以下のプラグインは表示しない
もし、AUTH="公式"かつ(MAJOR≠3)ならば、続ける
もし、AUTH="公式"かつ(MINOR<6)ならば、続ける
URL=""
もし、対象["links"]ならば
URL=対象["links"]["npm"]
ここまで。
NAME_ENC=NAMEをURLエンコード
NO=PLUGINSの要素数
PLUGINSにNAMEを配列追加。
NAME_H=NAMEをHTML変換
AUTH_H=AUTHをHTML変換
URL_H=URLをHTML変換
DESC_H=DESCをHTML変換
VER_H=VERをHTML変換
S=S&「<TR>
<TH style="text-align: left">
<a class="btn" id="btn-{NO}" data-no="{NO}">追加</a>
{NAME_H}
</TH>
<TD>{AUTH_H}</TD>
<TD><a target="_new" href="{URL_H}">🔗</a> {DESC_H}({VER_H})<TD></TR>」
「{対象キー}@」&NAMEを表示。
ここまで。
S=S&「</table>」
「#files」にSをHTML設定。
# ボタンに対応するイベントを設定する
PLUGINSを反復
NO=対象キー
「#btn-{NO}」をクリックした時には
PLUGINSを表示。
対象を表示。
NO=INT(対象["dataset"]["no"])
NOを表示。
NAME=PLUGINS[NO]
NAMEを表示。
NAME_ENC=NAMEをURLエンコード
URL="/add_plugins?appkey={APPKEY}&name={NAME_ENC}"
「#stdout」に「インストールしています。少々お待ちください。」をDOM_HTML設定。
R=URLをHTTP取得
「#stdout」にRをDOM_HTML設定。
ここまで。
ここまで。
ここまで。
#-----------
</script>
</head>
<body>
<div class="navbar bg-base-100">
<div class="flex-1">
<a class="btn btn-ghost normal-case text-xl" href="#" id="gotoFilesLink">Node版 なでしこ3 エディタ</a>
> プラグインの追加
</div>
</div>
<div id="filesbox">
<div class="menu-box">
「追加」ボタンを押すと、システムにプラグインを追加します。
以下に列挙したプラグインはnpmに登録されているものを全て表示しています。
<b>信用できるプラグインのみ</b>を追加してください。
「🔗」をクリックするとnpmで詳細を確認できます。
</div>
<br>
<div class="menu-box">
<div id="files">現在取得中です。少々お待ちください。</div>
</div>
<br>
<div class="menu-box">
<div class="result_output">出力結果:</div>
<div id="stdout"></div>
</div>
</div>
</body>
</html>