nadesiko3 3.3.1 → 3.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/batch/browsers.template.md +3 -0
  2. package/batch/build_browsers.nako3 +72 -0
  3. package/batch/build_command.nako3 +44 -0
  4. package/batch/build_nako_version.nako3 +14 -0
  5. package/batch/calc_hash.nako3 +29 -0
  6. package/batch/cmd_txt2json.nako3 +72 -0
  7. package/batch/command.txt +1046 -0
  8. package/batch/command_nakopad.txt +996 -0
  9. package/batch/download-extlib.nako3 +43 -0
  10. package/batch/gen_command_nakopad.nako3 +57 -0
  11. package/batch/jsplugin2text.nako3 +269 -0
  12. package/batch/pickup_command.nako3 +84 -0
  13. package/batch/pickup_reserved_words.nako3 +11 -0
  14. package/batch/publish_version.nako3 +46 -0
  15. package/batch/show_agents.js +14 -0
  16. package/batch/turtle2js.nako3 +21 -0
  17. package/demo/runscript3.html +35 -0
  18. package/package.json +8 -6
  19. package/release/_hash.txt +20 -20
  20. package/release/_script-tags.txt +14 -14
  21. package/release/command.json +1 -1
  22. package/release/command.json.js +1 -1
  23. package/release/command_cnako3.json +1 -1
  24. package/release/command_list.json +1 -1
  25. package/release/editor.js +1 -1
  26. package/release/plugin_csv.js +1 -1
  27. package/release/plugin_weykturtle3d.js.LICENSE.txt +3 -0
  28. package/release/stats.json +1 -1
  29. package/release/version.js +1 -1
  30. package/release/wnako3.js +1 -1
  31. package/src/cnako3mod.mjs +78 -53
  32. package/src/nako3.mjs +18 -10
  33. package/src/nako_errors.mjs +2 -2
  34. package/src/nako_from_dncl.mjs +4 -3
  35. package/src/nako_indent.mjs +26 -22
  36. package/src/nako_prepare.mjs +45 -6
  37. package/src/nako_version.mjs +2 -2
  38. package/src/plugin_csv.mjs +2 -1
  39. package/src/plugin_keigo.mjs +1 -1
  40. package/src/wnako3.mjs +19 -9
  41. package/src/wnako3_editor.mjs +4 -4
  42. package/test/node/async_test.mjs +1 -2
  43. package/test/node/commander_ja_test.mjs +1 -1
  44. package/test/node/error_message_test.mjs +3 -3
  45. package/test/node/node_test.mjs +2 -2
  46. package/test/node/{plugin_browser_ut_ajax_test.mjs → plugin_browser_ut_ajax_test.mjs.todo} +2 -2
  47. package/test/node/plugin_browser_ut_location_test.mjs +1 -1
  48. package/test/node/plugin_markup_test.mjs +3 -3
  49. package/test/node/plugin_math_test.mjs +2 -2
  50. package/test/node/plugin_node_test.mjs +3 -3
  51. package/test/node/plugin_test.mjs +1 -1
  52. package/test/node/require_nako3_test.mjs +2 -2
  53. package/test/node/side_effects_test.mjs +4 -4
  54. package/test/node/wnako3_editor_test.mjs +5 -5
  55. package/tools/nako3edit/html/daisyui/LICENSE +22 -0
  56. package/tools/nako3edit/html/daisyui/full.css +1 -0
  57. package/tools/nako3edit/html/daisyui/tailwind.min.css +1 -0
  58. package/tools/nako3edit/html/daisyui/version_2.14.1 +1 -0
  59. package/tools/nako3edit/html/edit.html +104 -19
  60. package/tools/nako3edit/html/files.html +84 -8
  61. package/tools/nako3edit/html/nako3edit.css +6 -7
  62. package/tools/nako3edit/index.nako3 +44 -5
@@ -0,0 +1,3 @@
1
+ # 対応機器/ブラウザ
2
+
3
+ {embed browser}
@@ -0,0 +1,72 @@
1
+ #-------------------------------------------------
2
+ # ブラウザ対応表を作成
3
+ #-------------------------------------------------
4
+ # 入力: src/browsers.txt
5
+ # 出力:
6
+ # - src/browsers.json (plugin_caniuse.jsで利用)
7
+ # - doc/browsers.md
8
+ # - demo/browsers.html
9
+ #-------------------------------------------------
10
+ # 【注意】
11
+ # このプログラムを実行する前に以下のコマンドを実行してください。
12
+ # $ npx browserslist > src/browsers.txt
13
+ # あるいは直接これを実行するのではなく以下のコマンドを実行します。
14
+ # $ npm run build:browsers を実行してください。
15
+ #-------------------------------------------------
16
+ !「../src/plugin_markup.mjs」を取り込む
17
+ !「../src/plugin_caniuse.mjs」を取り込む
18
+ #-------------------------------------------------
19
+ # src/browsers.jsonを作成
20
+ 基本パス=母艦パスを「../」で相対パス展開。
21
+ リストファイル=「{基本パス}/src/browsers.txt」
22
+ 対応表={}
23
+ リストファイルを開く。
24
+ 改行で区切って反復
25
+   トリム。もし、それが空ならば続ける。
26
+   変数[ブラウザ,バージョン] = (対象を「 」で区切る)。
27
+   もし(対応表にブラウザが辞書キー存在)でなければ
28
+     対応表@ブラウザ=[]
29
+     #ブラウザを表示。
30
+   ここまで。
31
+   対応表@ブラウザにバージョンを配列追加。
32
+ ここまで。
33
+ 対応表をJSONエンコードしてJSに代入。
34
+ 「export default {JS}」を「{基本パス}/src/browsers.mjs」へ保存。
35
+
36
+ #-------------------------------------------------
37
+ # doc/browsers.mjsを作成
38
+ MD="# なでしこ3 対応ブラウザ一覧"&改行&改行
39
+ MD=MD&"日本語プログラミング言語「なでしこ3」は以下のブラウザに対応しています。"&改行&改行
40
+ ブラウザ名変換表@"node"="Node.js"
41
+ TYPES={
42
+ "デスクトップ":["ie","edge","firefox","chrome","safari","opera","node"],
43
+ "モバイル":["ios_saf","op_mini","android","bb","op_mob","and_chr","and_ff","ie_mob","and_uc","samsung","and_qq","baidu","kaios"]
44
+ }
45
+ TYPESを反復
46
+   タイプ=対象キー。
47
+   ブラウザ一覧=対象。
48
+   MD=MD&"## {タイプ}"&改行&改行。
49
+   ブラウザ一覧を反復
50
+     ブラウザ=対象。
51
+     ブラウザ名=ブラウザ名変換表@ブラウザ。
52
+     対応バージョン=対応表@ブラウザ。
53
+     もし、対応バージョン=未定義ならば、続ける。
54
+     VER=対応バージョンを「/」で配列結合。
55
+     MD=MD&"- {ブラウザ名} ({VER}以上)"&改行
56
+   ここまで。
57
+   MD=MD&改行;
58
+ ここまで
59
+ MD=トリム(MD)&改行。# 必ず末尾の改行は1つだけに
60
+ MDを「{基本パス}/doc/browsers.md」へ保存。
61
+ MDを表示。
62
+ #-------------------------------------------------
63
+ # demo/browsers.html
64
+ MDをマークダウンHTML変換してHTML整形してHTMLに代入。
65
+ 「<html><head>
66
+ <title>対応ブラウザ - なでしこ3</title>
67
+ </head><body>
68
+ {HTML}
69
+ </body></html>」を「{基本パス}/demo/browsers.html」に保存
70
+ #-------------------------------------------------
71
+ 「ok」と表示。
72
+
@@ -0,0 +1,44 @@
1
+ #-------------------------------------------------
2
+ # なでしこのソースコードから命令一覧を生成する
3
+ #-------------------------------------------------
4
+ # 入力: src/plugin_xxx.js
5
+ # 出力: command.txt / command.json を生成
6
+ #-------------------------------------------------
7
+ # 実際の処理は個々のスクリプトにて
8
+
9
+ 基本パス=母艦パスを「../」で相対パス展開。
10
+
11
+ 「{基本パス}/release」のフォルダ作成
12
+
13
+ # バッチを実行
14
+ 基本パスを表示。
15
+ # 命令一覧をピックアップして必要な形式に変換
16
+ 「{基本パス}/batch/pickup_command.nako3」をCNAKO実行。
17
+ 「{基本パス}/batch/cmd_txt2json.nako3」をCNAKO実行。
18
+ # JSファイルのハッシュを計算
19
+ 「{基本パス}/batch/calc_hash」をCNAKO実行。
20
+ # 助詞一覧、予約語一覧を生成
21
+ 助詞一覧取得してJSONエンコード整形してSに代入。
22
+ 「{基本パス}/release/josi.json」にSを保存。
23
+ 予約語一覧取得してJSONエンコード整形してSに代入。
24
+ 「{基本パス}/release/yoyakugo.json」にSを保存。
25
+
26
+ # Windows版のnakopad用ファイルを生成してファイルをコピー
27
+ 「{基本パス}/batch/gen_command_nakopad.nako3」をCNAKO実行。
28
+ 「{基本パス}/batch/command_nakopad.txt」から「{基本パス}/installer/nako3-win32-template/bin/tools/command.txt」へファイルコピー。
29
+
30
+ ●CNAKO実行(Cを)
31
+ CMD=「node {基本パス}/src/cnako3.mjs {C}」
32
+ Cを表示。
33
+ S=CMDを起動待機。
34
+ 成功フラグ=はい。
35
+ # エラーなら処理を打ち切るように。
36
+ Sで「[エラー]」が何文字目か
37
+ もし、それ>0ならば、いいえを成功フラグに代入。
38
+ Sで「[警告]」が何文字目か
39
+ もし、それ>0ならば、いいえを成功フラグに代入。
40
+ もし、成功フラグ=いいえならば
41
+   「⚠︎⚠︎⚠︎[コマンド生成の失敗]: {S}」を表示
42
+   終わり。
43
+ ここまで。
44
+ ここまで。
@@ -0,0 +1,14 @@
1
+ 母艦パス取得してパス抽出して基本パスに代入。
2
+ 「{基本パス}/package.json」を読んでJSONデコードして、Pに代入。
3
+ VER=P@"version"
4
+ 定数[MAJOR,MINOR,PATCH]=(VERを「.」で区切る)
5
+ VS=「// なでしこバージョン
6
+ export default {波カッコ}
7
+ version: '{VER}',
8
+ major: {MAJOR},
9
+ minor: {MINOR},
10
+ patch: {PATCH}
11
+ {波カッコ閉}
12
+
13
+ VSを表示。
14
+ VSを「{基本パス}/src/nako_version.mjs」へ保存。
@@ -0,0 +1,29 @@
1
+ # release/*.js のハッシュを求める
2
+ ROOT_DIR=母艦パスを「../」で相対パス展開
3
+ VER=ナデシコバージョン
4
+ // aaaaa
5
+ JSDEF=""
6
+ JSHASH=""
7
+
8
+ 「{ROOT_DIR}/release/*.js」を全ファイル列挙
9
+ 反復
10
+   # 対象を表示。
11
+   F=対象のファイル名抽出。
12
+   S=対象を読む。
13
+   HASH=Sを「sha512」の「base64」でハッシュ値計算。
14
+   # HASHを表示。
15
+   HASH_MD5=Sを「md5」の「hex」でハッシュ値計算。
16
+   HASH_SHA256=Sを「sha256」の「base64」でハッシュ値計算。
17
+   HASH_SHA256HEX=Sを「sha256」の「hex」でハッシュ値計算。
18
+   HASH_SHA512=Sを「sha512」の「base64」でハッシュ値計算。
19
+   JSDEF=JSDEF&「<script defer src="https://nadesi.com/v3/cdn.php?v={VER}&f=release/{F}" integrity="sha512-{HASH}" crossorigin="anonymous"></script>」&改行
20
+   JSHASH=JSHASH&「{F}:
21
+ md5(hex): {HASH_MD5}
22
+ sha256(hex): {HASH_SHA256HEX}
23
+ sha256(base64): {HASH_SHA256}
24
+ sha512(base64): {HASH_SHA512}」&改行
25
+ ここまで
26
+
27
+ JSDEFを「{ROOT_DIR}/release/_script-tags.txt」に保存。
28
+ JSHASHを「{ROOT_DIR}/release/_hash.txt」に保存。
29
+
@@ -0,0 +1,72 @@
1
+ #-------------------------------------------------
2
+ # 命令一覧のJSONファイルを生成
3
+ #-------------------------------------------------
4
+ # 入力: command.txt
5
+ # 出力: command.json
6
+ #-------------------------------------------------
7
+ プラグイン名=空。
8
+ 表題=空。
9
+ P={}
10
+ P_cnako3={}
11
+ P_list=[]
12
+ 母艦パスからパス抽出して基本パスに代入。
13
+ 「{母艦パス}/command.txt」を開いて、改行で区切る。
14
+ ここから反復
15
+   トリム
16
+ Sはそれ。
17
+ #プラグイン名か?
18
+   Sを「/^■([a-zA-Z0-9\-\_]+)\((.+)\)/」で正規表現マッチ。
19
+   もしそうならば
20
+     プラグイン名は、抽出文字列[0]
21
+     プラグイン拡張は、抽出文字列[1]
22
+ P[プラグイン名] = {}
23
+     続ける。
24
+   ここまで。
25
+   Sを「/^■(.+)/」で正規表現マッチ。
26
+   もしそうならば
27
+     プラグイン名は、抽出文字列[0]
28
+     P[プラグイン名]={}
29
+     続ける。
30
+   ここまで。
31
+   Sを「/^●(.+)/」で正規表現マッチ。
32
+   もし、そうならば
33
+     表題は抽出文字列[0]
34
+     P[プラグイン名][表題] = []
35
+     続ける。
36
+   ここまで。
37
+   Sを「/^\|(.+)/」で正規表現マッチ。
38
+   もし、そうならば
39
+     CMDは抽出文字列[0]
40
+     CMDを「|」で区切る
41
+     C=それ
42
+     タイプ=トリム(C[0])
43
+     名前=トリム(C[1])
44
+     引数=トリム(C[2])
45
+     説明=トリム(C[3])
46
+  ヨミ_cnako3=トリム(C[4])
47
+     ヨミ=LEFT(ヨミ_cnako3,1)
48
+     もし、タイプ=「関数」ならば
49
+       #
50
+     違えば
51
+       説明の「"」を空に置換して説明に代入。
52
+     ここまで
53
+     V=[タイプ,名前,引数,説明,ヨミ]
54
+     P[プラグイン名][表題]にVを配列追加。
55
+ V_cnako3={}
56
+ V_cnako3[「タイプ」]=タイプ
57
+ V_cnako3[「名前」]=名前
58
+ V_cnako3[「ヨミ」]=ヨミ_cnako3
59
+ V_cnako3[「引数」]=引数
60
+ V_cnako3[「説明」]=説明
61
+     P_cnako3[名前]=V_cnako3
62
+ P_listに名前を配列追加
63
+   ここまで。
64
+ ここまで。
65
+ PをJSONエンコード整形して表示。
66
+ PをJSONエンコードしてJに代入。
67
+ P_cnako3をJSONエンコードしてJ_cnako3に代入。
68
+ P_listをJSONエンコードしてJ_listに代入。
69
+ 「{基本パス}/release/command.json」にJを保存。
70
+ 「{基本パス}/release/command.json.js」に(「module.exports = {J}」)を保存。
71
+ 「{基本パス}/release/command_cnako3.json」にJ_cnako3を保存。
72
+ 「{基本パス}/release/command_list.json」にJ_listを保存。