nadesiko3 3.3.49 → 3.3.52
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.
- package/LICENSE +21 -21
- package/README.md +143 -143
- package/batch/.DS_Store +0 -0
- package/batch/browsers.template.md +3 -3
- package/batch/build_browsers.nako3 +72 -72
- package/batch/build_command.nako3 +44 -44
- package/batch/build_nako_version.nako3 +42 -42
- package/batch/calc_hash.nako3 +29 -29
- package/batch/cmd_txt2json.nako3 +74 -74
- package/batch/command.txt +162 -83
- package/batch/command_nakopad.txt +69 -0
- package/batch/download-extlib.nako3 +43 -43
- package/batch/gen_command_nakopad.nako3 +57 -57
- package/batch/jsplugin2text.nako3 +285 -285
- package/batch/pickup_command.nako3 +113 -110
- package/batch/pickup_reserved_words.nako3 +11 -11
- package/batch/publish_version.nako3 +46 -46
- package/batch/show_agents.js +14 -14
- package/batch/turtle2js.nako3 +21 -21
- package/bin/cnako3 +10 -10
- package/core/LICENSE +21 -21
- package/core/README.md +66 -66
- package/core/batch/build_nako_version.nako3 +42 -42
- package/core/command/snako.mjs +105 -105
- package/core/command/snako.mts +116 -116
- package/core/index.mjs +21 -21
- package/core/package.json +47 -47
- package/core/sample/hello.nako3 +7 -7
- package/core/sample/hoge.mjs +4 -4
- package/core/sample/hoge.mts +6 -6
- package/core/src/nako3.mjs +870 -858
- package/core/src/nako3.mts +983 -967
- package/core/src/nako_colors.mjs +78 -78
- package/core/src/nako_colors.mts +86 -86
- package/core/src/nako_core_version.mjs +8 -8
- package/core/src/nako_core_version.mts +19 -19
- package/core/src/nako_csv.mjs +185 -185
- package/core/src/nako_csv.mts +188 -188
- package/core/src/nako_errors.mjs +173 -173
- package/core/src/nako_errors.mts +197 -197
- package/core/src/nako_from_dncl.mjs +255 -255
- package/core/src/nako_from_dncl.mts +250 -250
- package/core/src/nako_gen.mjs +1647 -1648
- package/core/src/nako_gen.mts +1718 -1719
- package/core/src/nako_gen_async.mjs +1659 -1659
- package/core/src/nako_gen_async.mts +1732 -1732
- package/core/src/nako_global.mjs +109 -107
- package/core/src/nako_global.mts +141 -138
- package/core/src/nako_indent.mjs +445 -445
- package/core/src/nako_indent.mts +492 -492
- package/core/src/nako_josi_list.mjs +38 -38
- package/core/src/nako_josi_list.mts +45 -45
- package/core/src/nako_lex_rules.mjs +253 -253
- package/core/src/nako_lex_rules.mts +260 -260
- package/core/src/nako_lexer.mjs +609 -609
- package/core/src/nako_lexer.mts +612 -612
- package/core/src/nako_logger.mjs +199 -199
- package/core/src/nako_logger.mts +232 -232
- package/core/src/nako_parser3.mjs +2441 -2439
- package/core/src/nako_parser3.mts +2197 -2195
- package/core/src/nako_parser_base.mjs +371 -370
- package/core/src/nako_parser_base.mts +372 -370
- package/core/src/nako_parser_const.mjs +37 -37
- package/core/src/nako_parser_const.mts +37 -37
- package/core/src/nako_prepare.mjs +304 -304
- package/core/src/nako_prepare.mts +315 -315
- package/core/src/nako_reserved_words.mjs +38 -38
- package/core/src/nako_reserved_words.mts +38 -38
- package/core/src/nako_source_mapping.mjs +207 -207
- package/core/src/nako_source_mapping.mts +262 -262
- package/core/src/nako_test.mjs +37 -37
- package/core/src/nako_types.mjs +13 -25
- package/core/src/nako_types.mts +144 -151
- package/core/src/plugin_csv.mjs +49 -49
- package/core/src/plugin_csv.mts +50 -50
- package/core/src/plugin_math.mjs +328 -328
- package/core/src/plugin_math.mts +326 -326
- package/core/src/plugin_promise.mjs +91 -91
- package/core/src/plugin_promise.mts +91 -91
- package/core/src/plugin_system.mjs +2832 -2832
- package/core/src/plugin_system.mts +2690 -2690
- package/core/src/plugin_test.mjs +34 -34
- package/core/src/plugin_test.mts +34 -34
- package/demo/.DS_Store +0 -0
- package/demo/ace_editor.html +89 -89
- package/demo/ace_editor_tabs.html +161 -161
- package/demo/basic.html +71 -71
- package/demo/browsers.html +10 -9
- package/demo/css/basic.css +3 -3
- package/demo/css/common.css +157 -157
- package/demo/css/editor.css +8 -8
- package/demo/css/flow.css +3 -3
- package/demo/css/index.css +3 -3
- package/demo/extlib/.DS_Store +0 -0
- package/demo/flow.html +98 -98
- package/demo/graph.html +53 -53
- package/demo/image/nakopad-icon256.png +0 -0
- package/demo/index.html +133 -133
- package/demo/js/common.js +17 -17
- package/demo/js/turtle3d_test.js +44 -44
- package/demo/js/turtle_test.js +45 -45
- package/demo/nako3/calc.nako3 +4 -4
- package/demo/runscript.html +47 -47
- package/demo/runscript2.html +33 -33
- package/demo/runscript3.html +35 -35
- package/demo/runscript4.html +33 -33
- package/demo/turtle.html +58 -58
- package/demo/turtle2.html +141 -141
- package/demo/turtle3.html +279 -279
- package/demo/turtle3d.html +58 -58
- package/demo/turtle3d2.html +107 -107
- package/demo/version.html +24 -24
- package/doc/SETUP.md +157 -157
- package/doc/about.md +17 -17
- package/doc/browsers.md +26 -26
- package/doc/docgen.md +21 -21
- package/doc/editor.md +44 -44
- package/doc/files.md +39 -39
- package/doc/plugins.md +234 -234
- package/doc/release.md +79 -79
- package/doc/textlint.md +43 -43
- package/doc/win32.md +57 -57
- package/package.json +195 -195
- package/release/_hash.txt +28 -28
- package/release/_script-tags.txt +14 -14
- package/release/command.json +1 -1
- package/release/command.json.js +1 -1
- package/release/command_cnako3.json +1 -1
- package/release/command_list.json +1 -1
- package/release/editor.js +1 -1
- package/release/nako_gen_async.js +2 -1
- package/release/nako_gen_async.js.LICENSE.txt +35 -0
- package/release/plugin_caniuse.js.LICENSE.txt +11 -0
- package/release/plugin_csv.js +1 -1
- package/release/plugin_csv.js.LICENSE.txt +15 -0
- package/release/plugin_datetime.js.LICENSE.txt +15 -0
- package/release/plugin_kansuji.js.LICENSE.txt +3 -0
- package/release/plugin_markup.js.LICENSE.txt +11 -0
- package/release/plugin_turtle.js.LICENSE.txt +15 -0
- package/release/plugin_webworker.js.LICENSE.txt +3 -0
- package/release/plugin_weykturtle3d.js.LICENSE.txt +3 -0
- package/release/stats.json +1 -1
- package/release/version.js +1 -1
- package/release/wnako3.js +1 -1
- package/release/wnako3.js.LICENSE.txt +203 -1
- package/release/wnako3webworker.js +2 -1
- package/release/wnako3webworker.js.LICENSE.txt +131 -0
- package/src/.DS_Store +0 -0
- package/src/browsers.txt +12 -11
- package/src/browsers_agents.json +2 -2
- package/src/browsers_agents.mjs +1 -1
- package/src/cnako3.mjs +17 -17
- package/src/cnako3.mts +18 -18
- package/src/cnako3mod.mjs +682 -707
- package/src/cnako3mod.mts +688 -712
- package/src/commander_ja.mjs +164 -164
- package/src/commander_ja.mts +161 -161
- package/src/enako3.mjs +68 -68
- package/src/era.mjs +22 -22
- package/src/image_turtle-elephant.mjs +2 -2
- package/src/image_turtle-panda.mjs +2 -2
- package/src/image_turtle64.mjs +2 -2
- package/src/index.mjs +9 -9
- package/src/index.mts +10 -10
- package/src/nako3editorfix.sfd +106 -106
- package/src/nako_version.mjs +8 -8
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser.mjs +213 -213
- package/src/plugin_browser.mts +206 -206
- package/src/plugin_browser_ajax.mjs +399 -399
- package/src/plugin_browser_audio.mjs +109 -109
- package/src/plugin_browser_canvas.mjs +449 -449
- package/src/plugin_browser_chart.mjs +294 -294
- package/src/plugin_browser_color.mjs +49 -49
- package/src/plugin_browser_crypto.mjs +26 -26
- package/src/plugin_browser_dialog.mjs +53 -53
- package/src/plugin_browser_dom_basic.mjs +336 -336
- package/src/plugin_browser_dom_event.mjs +193 -193
- package/src/plugin_browser_dom_parts.mjs +396 -396
- package/src/plugin_browser_geolocation.mjs +51 -51
- package/src/plugin_browser_hotkey.mjs +25 -25
- package/src/plugin_browser_html.mjs +59 -59
- package/src/plugin_browser_in_worker.mjs +45 -45
- package/src/plugin_browser_location.mjs +21 -21
- package/src/plugin_browser_speech.mjs +111 -111
- package/src/plugin_browser_storage.mjs +121 -121
- package/src/plugin_browser_system.mjs +31 -31
- package/src/plugin_browser_websocket.mjs +73 -73
- package/src/plugin_caniuse.mjs +29 -29
- package/src/plugin_datetime.mjs +394 -394
- package/src/plugin_httpserver.mjs +277 -277
- package/src/plugin_httpserver.mts +286 -286
- package/src/plugin_kansuji.mjs +224 -224
- package/src/plugin_keigo.mjs +55 -55
- package/src/plugin_markup.mjs +32 -32
- package/src/plugin_node.mjs +1047 -1047
- package/src/plugin_node.mts +980 -980
- package/src/plugin_turtle.mjs +647 -647
- package/src/plugin_webworker.mjs +334 -334
- package/src/plugin_weykturtle3d.mjs +1214 -1214
- package/src/plugin_worker.mjs +95 -95
- package/src/repl.nako3 +63 -63
- package/src/wnako3.mjs +12 -12
- package/src/wnako3.mts +11 -11
- package/src/wnako3_editor.css +215 -215
- package/src/wnako3_editor.mjs +1542 -1542
- package/src/wnako3_editor.mts +1658 -1657
- package/src/wnako3mod.mjs +213 -213
- package/src/wnako3mod.mts +214 -214
- package/src/wnako3webworker.mjs +69 -69
- package/test/.DS_Store +0 -0
- package/test/ace_editor/karma.config.js +94 -94
- package/test/ace_editor/test/.babelrc.json +3 -3
- package/test/ace_editor/test/ace_editor_test.js +178 -178
- package/test/ace_editor/test/html/custom_context.html +139 -139
- package/test/async/async_basic_test.mjs +122 -122
- package/test/browser/.DS_Store +0 -0
- package/test/browser/karma.config.js +221 -221
- package/test/browser/test/.babelrc.json +3 -3
- package/test/browser/test/compare_util.js +50 -50
- package/test/browser/test/html/div_basic.html +2 -2
- package/test/browser/test/html/event_dom_form.html +4 -4
- package/test/browser/test/html/event_dom_scrolldiv.html +5 -5
- package/test/browser/test/import_plugin_checker.js +24 -24
- package/test/browser/test/plugin_browser_test.js +51 -51
- package/test/browser/test/plugin_browser_test_ajax.js +123 -123
- package/test/browser/test/plugin_browser_test_color.js +18 -18
- package/test/browser/test/plugin_browser_test_dialog.js +72 -72
- package/test/browser/test/plugin_browser_test_dom_event.js +598 -598
- package/test/browser/test/plugin_browser_test_dom_parts.js +125 -125
- package/test/browser/test/plugin_browser_test_system.js +9 -9
- package/test/browser/test/plugin_turtle_test.js +817 -817
- package/test/browser/test/plugin_webworker_test.js +86 -86
- package/test/browser/test/require_test.js +68 -68
- package/test/bundled/.DS_Store +0 -0
- package/test/bundled/karma.config.base.js +117 -117
- package/test/bundled/karma.config.js +86 -86
- package/test/bundled/test/.babelrc.json +3 -3
- package/test/bundled/test/bundled_test.js +69 -69
- package/test/bundled/test/html/custom_context.html +65 -65
- package/test/bundled/test/html/custom_debug.html +66 -66
- package/test/bundled/test4b.cmd +52 -52
- package/test/bundled/test_base/.DS_Store +0 -0
- package/test/bundled/test_base/.babelrc.json +3 -3
- package/test/bundled/test_base/_checktool_test.js +25 -25
- package/test/bundled/test_base/basic_ajax_test.js +56 -56
- package/test/bundled/test_base/basic_async_test.js +18 -18
- package/test/bundled/test_base/basic_test.js +153 -153
- package/test/bundled/test_base/calc_test.js +132 -132
- package/test/bundled/test_base/css/browsers_box.css +114 -114
- package/test/bundled/test_base/html/custom_context.html +69 -69
- package/test/bundled/test_base/html/custom_debug.html +71 -71
- package/test/bundled/test_base/js/browsers_box.js +72 -72
- package/test/bundled/test_base/plugin_csv_test.js +37 -37
- package/test/bundled/test_base/plugin_datetime_test.js +115 -115
- package/test/bundled/test_base/plugin_kansuji_test.js +49 -49
- package/test/bundled/test_base/plugin_system_test.js +410 -410
- package/test/bundled/test_base/plugin_webworker_test.js +53 -53
- package/test/bundled/test_base/test_utils.js +191 -191
- package/test/common/.DS_Store +0 -0
- package/test/common/plugin_browser_test.mjs +22 -22
- package/test/common/plugin_browser_ut_audio_test.mjs +108 -108
- package/test/common/plugin_browser_ut_color_test.mjs +21 -21
- package/test/common/plugin_browser_ut_dialog_test.mjs +100 -100
- package/test/common/plugin_browser_ut_html_test.mjs +13 -13
- package/test/common/plugin_browser_ut_system_test.mjs +10 -10
- package/test/common/plugin_markup_test.mjs +23 -23
- package/test/jsconfig.json +19 -19
- package/test/karma.config.js +91 -91
- package/test/node/.DS_Store +0 -0
- package/test/node/async_test.mjs +96 -96
- package/test/node/commander_ja_test.mjs +89 -89
- package/test/node/error_message_test.mjs +243 -243
- package/test/node/kai_test.nako3 +6 -6
- package/test/node/node_test.mjs +60 -60
- package/test/node/plugin_broken.js.txt +3 -3
- package/test/node/plugin_browser_ut_ajax_test.mjs.todo +357 -357
- package/test/node/plugin_browser_ut_location_test.mjs +42 -42
- package/test/node/plugin_markup_test.mjs +47 -47
- package/test/node/plugin_math_test.mjs +45 -45
- package/test/node/plugin_node_test.mjs +98 -98
- package/test/node/plugin_test.mjs +44 -44
- package/test/node/relative_import_test_1.nako3 +1 -1
- package/test/node/relative_import_test_2.nako3 +2 -2
- package/test/node/require_nako3_test.mjs +67 -67
- package/test/node/requiretest.nako3 +4 -4
- package/test/node/requiretest_indirect.nako3 +1 -1
- package/test/node/requiretest_name.nako3 +5 -5
- package/test/node/runtime_error.nako3 +2 -2
- package/test/node/scope1.nako3 +10 -10
- package/test/node/scope2.nako3 +12 -12
- package/test/node/side_effects_test.mjs +39 -39
- package/test/node/sjis.txt +5 -5
- package/test/node/syntax_error.nako3 +1 -1
- package/test/node/wnako3_editor_test.mjs +384 -384
- package/tools/.DS_Store +0 -0
- package/tools/README.md +12 -12
- package/tools/check_new_version.nako3 +25 -25
- package/tools/nako3edit/.DS_Store +0 -0
- package/tools/nako3edit/a.sqlite3 +0 -0
- package/tools/nako3edit/html/.DS_Store +0 -0
- package/tools/nako3edit/html/daisyui/LICENSE +22 -22
- package/tools/nako3edit/html/daisyui/version_2.14.1 +1 -1
- package/tools/nako3edit/html/edit.html +170 -170
- package/tools/nako3edit/html/edit_plugin.js +6 -6
- package/tools/nako3edit/html/files.html +125 -125
- package/tools/nako3edit/html/nako3edit.css +65 -65
- package/tools/nako3edit/index.mjs +248 -248
- package/tools/nako3server/index.html +10 -10
- package/tools/nako3server/index.mjs +116 -116
- package/tools/nako3server/index.nako3 +34 -34
- package/core/.editorconfig +0 -6
- package/core/.eslintrc.cjs +0 -33
- package/core/.github/dependabot.yml +0 -7
- package/core/.github/workflows/nodejs.yml +0 -37
- package/core/.github/workflows/super-linter.yml +0 -61
- package/core/.github/workflows/textlint.yml +0 -199
- package/core/index.mts +0 -21
- package/core/test/array_test.mjs +0 -34
- package/core/test/basic_test.mjs +0 -344
- package/core/test/calc_test.mjs +0 -140
- package/core/test/core_module_test.mjs +0 -23
- package/core/test/debug_test.mjs +0 -16
- package/core/test/dncl_test.mjs +0 -94
- package/core/test/error_message_test.mjs +0 -210
- package/core/test/error_test.mjs +0 -16
- package/core/test/flow_test.mjs +0 -373
- package/core/test/func_call.mjs +0 -160
- package/core/test/func_test.mjs +0 -149
- package/core/test/indent_test.mjs +0 -364
- package/core/test/lex_test.mjs +0 -168
- package/core/test/literal_test.mjs +0 -73
- package/core/test/nako_lexer_test.mjs +0 -35
- package/core/test/nako_logger_test.mjs +0 -76
- package/core/test/nako_logger_test.mts +0 -78
- package/core/test/plugin_csv_test.mjs +0 -38
- package/core/test/plugin_promise_test.mjs +0 -18
- package/core/test/plugin_system_test.mjs +0 -630
- package/core/test/prepare_test.mjs +0 -96
- package/core/test/re_test.mjs +0 -22
- package/core/test/side_effects_test.mjs +0 -92
- package/core/test/variable_scope_test.mjs +0 -149
- package/core/tsconfig.json +0 -101
package/src/plugin_kansuji.mjs
CHANGED
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
const PluginKansuji = {
|
|
3
|
-
|
|
4
|
-
'初期化': {
|
|
5
|
-
type: 'func',
|
|
6
|
-
josi: [],
|
|
7
|
-
pure: true,
|
|
8
|
-
fn: function (sys) {
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
// @漢数字関連
|
|
13
|
-
'漢数字': { // @引数を数字と解釈して漢数字の文字列を返す // @かんすうじ
|
|
14
|
-
type: 'func',
|
|
15
|
-
josi: [['を', 'の']],
|
|
16
|
-
pure: true,
|
|
17
|
-
fn: function (input) {
|
|
18
|
-
function preprocesser (input) {
|
|
19
|
-
// eslint-disable-next-line camelcase
|
|
20
|
-
function if_number_is_exponent (input) {
|
|
21
|
-
const match = input.match(/[0-9]*\.?[0-9]+[eE][-+]?[0-9]+/)
|
|
22
|
-
if (match && match[0] === input) {
|
|
23
|
-
const base = input.match(/[0-9]*\.?[0-9]+[eE]/)[0].slice(0, -1)
|
|
24
|
-
const exponent = input.match(/[eE][-+]?[0-9]+/)[0].slice(1)
|
|
25
|
-
// eslint-disable-next-line no-inner-declarations
|
|
26
|
-
function movepoint (base, exponent) {
|
|
27
|
-
const sign = exponent[0]
|
|
28
|
-
const curpointidx = base.includes('.') ? base.indexOf('.') : base.length
|
|
29
|
-
const idx = sign === '-' ? curpointidx - parseInt(exponent.slice(1)) : curpointidx + parseInt(exponent.match(/[0-9]+$/)[0])
|
|
30
|
-
function strIns (str, idx, val) {
|
|
31
|
-
return str.slice(0, idx) + val + str.slice(idx)
|
|
32
|
-
}
|
|
33
|
-
if (idx > 0) {
|
|
34
|
-
if (base.length - curpointidx > idx) {
|
|
35
|
-
return strIns(base.replace('.', ''), idx, '.')
|
|
36
|
-
} else {
|
|
37
|
-
if (base.includes('.')) {
|
|
38
|
-
return base.replace('.', '') + '0'.repeat(idx - base.length + curpointidx)
|
|
39
|
-
} else {
|
|
40
|
-
return base + '0'.repeat(idx - base.length + curpointidx - 1)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
} else {
|
|
44
|
-
return '0.' + '0'.repeat(-idx) + base.replace('.', '')
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
input = movepoint(base, exponent)
|
|
48
|
-
}
|
|
49
|
-
return input
|
|
50
|
-
}
|
|
51
|
-
function asciify (input) { // 全角数字を半角数字に
|
|
52
|
-
return input.replace(/[0-9]/g, s => {
|
|
53
|
-
return String.fromCharCode(s.charCodeAt(0) - 65248)
|
|
54
|
-
})
|
|
55
|
-
}
|
|
56
|
-
input = asciify(input)
|
|
57
|
-
if (Number.isNaN(Number(input))) { throw new Error('『漢数字』命令の中に無効な文字が含まれています。') }
|
|
58
|
-
const output = if_number_is_exponent(input.toString())
|
|
59
|
-
// eslint-disable-next-line no-loss-of-precision
|
|
60
|
-
if (output > BigInt(999999999999999999999999999999999999999999999999999999999999999999999999)) { throw new Error('『漢数字』命令の中に含められる数の大きさを超えています。') }
|
|
61
|
-
return output
|
|
62
|
-
}
|
|
63
|
-
input = preprocesser(String(input))
|
|
64
|
-
function separater (str) {
|
|
65
|
-
let isminus = str.includes('.')
|
|
66
|
-
return str.split('').reverse().reduce((acc, cur) => {
|
|
67
|
-
if (cur === '.') {
|
|
68
|
-
isminus = false
|
|
69
|
-
acc.splice(1, 0, '.')
|
|
70
|
-
return acc
|
|
71
|
-
} else if (isminus) {
|
|
72
|
-
acc.splice(1, 0, cur)
|
|
73
|
-
return acc
|
|
74
|
-
}
|
|
75
|
-
if (acc[0].length === 軸数字.length) {
|
|
76
|
-
acc.unshift([])
|
|
77
|
-
}
|
|
78
|
-
acc[0].unshift(cur)
|
|
79
|
-
return acc
|
|
80
|
-
}, [[]])
|
|
81
|
-
}
|
|
82
|
-
function converter (arr) {
|
|
83
|
-
function replacer (str) {
|
|
84
|
-
return 基本漢数字[基本算用数字.indexOf(str)]
|
|
85
|
-
}
|
|
86
|
-
let adjuster = 0
|
|
87
|
-
const result = arr.reverse().reduce((acc, cur, idx) => {
|
|
88
|
-
if (typeof cur === 'string') {
|
|
89
|
-
if (cur === '.') {
|
|
90
|
-
acc = '・' + acc
|
|
91
|
-
adjuster = idx + 1
|
|
92
|
-
} else {
|
|
93
|
-
acc = replacer(cur) + acc
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
const unit = cur.reduce((acc, cur, idx, src) => {
|
|
97
|
-
if (cur === '0') {
|
|
98
|
-
return acc
|
|
99
|
-
} else if (cur === '1' && 軸数字[src.length - 1 - idx] !== '') {
|
|
100
|
-
return acc + 軸数字[src.length - 1 - idx]
|
|
101
|
-
} else {
|
|
102
|
-
return acc + replacer(cur) + 軸数字[src.length - 1 - idx]
|
|
103
|
-
}
|
|
104
|
-
}, '')
|
|
105
|
-
acc = (unit ? unit + 単位数字[idx - adjuster] : '') + acc
|
|
106
|
-
}
|
|
107
|
-
return acc
|
|
108
|
-
}, '')
|
|
109
|
-
return result[0] === '・' ? '零' + result : result
|
|
110
|
-
}
|
|
111
|
-
// フラグを覚えておく #874
|
|
112
|
-
let flag = ''
|
|
113
|
-
if (input.charAt(0) === '+' || input.charAt(0) === '-') {
|
|
114
|
-
flag = input.charAt(0)
|
|
115
|
-
input = input.substr(1)
|
|
116
|
-
}
|
|
117
|
-
let res = converter(separater(input))
|
|
118
|
-
if (res === '') { res = '零' }
|
|
119
|
-
return flag + res
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
'算用数字': { // @U引数を漢数字と解釈して数値を返す // @さんようすうじ
|
|
123
|
-
type: 'func',
|
|
124
|
-
josi: [['を', 'の']],
|
|
125
|
-
pure: true,
|
|
126
|
-
fn: function (input) {
|
|
127
|
-
function converter (src) {
|
|
128
|
-
const multibytes = 単位数字.filter(a => a.length > 1)
|
|
129
|
-
const result = []
|
|
130
|
-
for (let idx = 0; idx < src.length; idx++) {
|
|
131
|
-
const cur = src.slice(idx, idx + 1)
|
|
132
|
-
const 指数 = 単位数字.includes(cur) ? cur : multibytes.find(v => v === src.slice(idx, idx + v.length))
|
|
133
|
-
const 位 = 軸数字.includes(cur) ? cur : null
|
|
134
|
-
const 底 = 基本漢数字.includes(cur) ? cur : null
|
|
135
|
-
if (指数) {
|
|
136
|
-
if (指数.length > 1) {
|
|
137
|
-
idx += 指数.length - 1
|
|
138
|
-
}
|
|
139
|
-
result.push(BigInt('1' + '0'.repeat(4 * 単位数字.indexOf(指数))))
|
|
140
|
-
} else if (位) {
|
|
141
|
-
result.push(10 ** (軸数字.indexOf(位)))
|
|
142
|
-
} else if (底) {
|
|
143
|
-
result.push(基本漢数字.indexOf(底))
|
|
144
|
-
} else if (cur === '・') {
|
|
145
|
-
result.push('.')
|
|
146
|
-
} else if (cur === '零') {
|
|
147
|
-
result.push('0')
|
|
148
|
-
} else {
|
|
149
|
-
throw new Error('『算用数字』命令の中に無効な文字が含まれています。')
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return result
|
|
153
|
-
}
|
|
154
|
-
function separater (arr) {
|
|
155
|
-
let base = []
|
|
156
|
-
let unit = []
|
|
157
|
-
let isminus = false
|
|
158
|
-
return arr.reduce((acc, cur, idx) => {
|
|
159
|
-
if (cur === '.') {
|
|
160
|
-
if (base.length === 0) { base.push(0, 1) }
|
|
161
|
-
if (base.length === 1) { base.push(1) }
|
|
162
|
-
unit.push(base)
|
|
163
|
-
base = []
|
|
164
|
-
acc.push(unit)
|
|
165
|
-
acc.push('.')
|
|
166
|
-
unit = []
|
|
167
|
-
isminus = true
|
|
168
|
-
} else if (isminus) {
|
|
169
|
-
acc.push(String(cur))
|
|
170
|
-
} else if (cur > 1000) {
|
|
171
|
-
if (base.length === 0) { base.push(0, 1) }
|
|
172
|
-
if (base.length === 1) { base.push(1) }
|
|
173
|
-
unit.push(base)
|
|
174
|
-
base = []
|
|
175
|
-
unit.push(cur)
|
|
176
|
-
acc.push(unit)
|
|
177
|
-
unit = []
|
|
178
|
-
} else if (cur >= 10 && cur <= 1000) {
|
|
179
|
-
if (base.length === 0) { base.push(1) }
|
|
180
|
-
base.push(cur)
|
|
181
|
-
unit.push(base)
|
|
182
|
-
base = []
|
|
183
|
-
} else if (cur < 10) {
|
|
184
|
-
base.push(cur)
|
|
185
|
-
}
|
|
186
|
-
if (idx + 1 === arr.length && isminus === false) {
|
|
187
|
-
if (base.length === 1) {
|
|
188
|
-
base.push(1)
|
|
189
|
-
unit.push(base)
|
|
190
|
-
}
|
|
191
|
-
acc.push(unit)
|
|
192
|
-
}
|
|
193
|
-
return acc
|
|
194
|
-
}, [])
|
|
195
|
-
}
|
|
196
|
-
function calculator (arr) {
|
|
197
|
-
return arr.reduce((acc, cur, idx) => {
|
|
198
|
-
return typeof cur === 'string'
|
|
199
|
-
? acc + cur
|
|
200
|
-
: acc + cur.reduce((acc, cur, idx) => {
|
|
201
|
-
return cur > 1000 ? acc * cur : acc + BigInt(cur[0] * cur[1])
|
|
202
|
-
}, BigInt(0))
|
|
203
|
-
}, BigInt(0))
|
|
204
|
-
}
|
|
205
|
-
const tmp = calculator(separater(converter(input.toString())))
|
|
206
|
-
return tmp > Number.MAX_SAFE_INTEGER ? tmp : Number(tmp)
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
const 単位数字 = [
|
|
212
|
-
'', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正',
|
|
213
|
-
'載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'
|
|
214
|
-
]
|
|
215
|
-
const 軸数字 = [
|
|
216
|
-
'', '十', '百', '千'
|
|
217
|
-
]
|
|
218
|
-
const 基本算用数字 = '0123456789'.split('')
|
|
219
|
-
const 基本漢数字 = '〇一二三四五六七八九'.split('')
|
|
220
|
-
|
|
221
|
-
export default PluginKansuji
|
|
222
|
-
|
|
223
|
-
// scriptタグで取り込んだ時、自動で登録する
|
|
224
|
-
if (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') { navigator.nako3.addPluginObject('PluginKansuji', PluginKansuji) }
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
const PluginKansuji = {
|
|
3
|
+
|
|
4
|
+
'初期化': {
|
|
5
|
+
type: 'func',
|
|
6
|
+
josi: [],
|
|
7
|
+
pure: true,
|
|
8
|
+
fn: function (sys) {
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
// @漢数字関連
|
|
13
|
+
'漢数字': { // @引数を数字と解釈して漢数字の文字列を返す // @かんすうじ
|
|
14
|
+
type: 'func',
|
|
15
|
+
josi: [['を', 'の']],
|
|
16
|
+
pure: true,
|
|
17
|
+
fn: function (input) {
|
|
18
|
+
function preprocesser (input) {
|
|
19
|
+
// eslint-disable-next-line camelcase
|
|
20
|
+
function if_number_is_exponent (input) {
|
|
21
|
+
const match = input.match(/[0-9]*\.?[0-9]+[eE][-+]?[0-9]+/)
|
|
22
|
+
if (match && match[0] === input) {
|
|
23
|
+
const base = input.match(/[0-9]*\.?[0-9]+[eE]/)[0].slice(0, -1)
|
|
24
|
+
const exponent = input.match(/[eE][-+]?[0-9]+/)[0].slice(1)
|
|
25
|
+
// eslint-disable-next-line no-inner-declarations
|
|
26
|
+
function movepoint (base, exponent) {
|
|
27
|
+
const sign = exponent[0]
|
|
28
|
+
const curpointidx = base.includes('.') ? base.indexOf('.') : base.length
|
|
29
|
+
const idx = sign === '-' ? curpointidx - parseInt(exponent.slice(1)) : curpointidx + parseInt(exponent.match(/[0-9]+$/)[0])
|
|
30
|
+
function strIns (str, idx, val) {
|
|
31
|
+
return str.slice(0, idx) + val + str.slice(idx)
|
|
32
|
+
}
|
|
33
|
+
if (idx > 0) {
|
|
34
|
+
if (base.length - curpointidx > idx) {
|
|
35
|
+
return strIns(base.replace('.', ''), idx, '.')
|
|
36
|
+
} else {
|
|
37
|
+
if (base.includes('.')) {
|
|
38
|
+
return base.replace('.', '') + '0'.repeat(idx - base.length + curpointidx)
|
|
39
|
+
} else {
|
|
40
|
+
return base + '0'.repeat(idx - base.length + curpointidx - 1)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
return '0.' + '0'.repeat(-idx) + base.replace('.', '')
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
input = movepoint(base, exponent)
|
|
48
|
+
}
|
|
49
|
+
return input
|
|
50
|
+
}
|
|
51
|
+
function asciify (input) { // 全角数字を半角数字に
|
|
52
|
+
return input.replace(/[0-9]/g, s => {
|
|
53
|
+
return String.fromCharCode(s.charCodeAt(0) - 65248)
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
input = asciify(input)
|
|
57
|
+
if (Number.isNaN(Number(input))) { throw new Error('『漢数字』命令の中に無効な文字が含まれています。') }
|
|
58
|
+
const output = if_number_is_exponent(input.toString())
|
|
59
|
+
// eslint-disable-next-line no-loss-of-precision
|
|
60
|
+
if (output > BigInt(999999999999999999999999999999999999999999999999999999999999999999999999)) { throw new Error('『漢数字』命令の中に含められる数の大きさを超えています。') }
|
|
61
|
+
return output
|
|
62
|
+
}
|
|
63
|
+
input = preprocesser(String(input))
|
|
64
|
+
function separater (str) {
|
|
65
|
+
let isminus = str.includes('.')
|
|
66
|
+
return str.split('').reverse().reduce((acc, cur) => {
|
|
67
|
+
if (cur === '.') {
|
|
68
|
+
isminus = false
|
|
69
|
+
acc.splice(1, 0, '.')
|
|
70
|
+
return acc
|
|
71
|
+
} else if (isminus) {
|
|
72
|
+
acc.splice(1, 0, cur)
|
|
73
|
+
return acc
|
|
74
|
+
}
|
|
75
|
+
if (acc[0].length === 軸数字.length) {
|
|
76
|
+
acc.unshift([])
|
|
77
|
+
}
|
|
78
|
+
acc[0].unshift(cur)
|
|
79
|
+
return acc
|
|
80
|
+
}, [[]])
|
|
81
|
+
}
|
|
82
|
+
function converter (arr) {
|
|
83
|
+
function replacer (str) {
|
|
84
|
+
return 基本漢数字[基本算用数字.indexOf(str)]
|
|
85
|
+
}
|
|
86
|
+
let adjuster = 0
|
|
87
|
+
const result = arr.reverse().reduce((acc, cur, idx) => {
|
|
88
|
+
if (typeof cur === 'string') {
|
|
89
|
+
if (cur === '.') {
|
|
90
|
+
acc = '・' + acc
|
|
91
|
+
adjuster = idx + 1
|
|
92
|
+
} else {
|
|
93
|
+
acc = replacer(cur) + acc
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
const unit = cur.reduce((acc, cur, idx, src) => {
|
|
97
|
+
if (cur === '0') {
|
|
98
|
+
return acc
|
|
99
|
+
} else if (cur === '1' && 軸数字[src.length - 1 - idx] !== '') {
|
|
100
|
+
return acc + 軸数字[src.length - 1 - idx]
|
|
101
|
+
} else {
|
|
102
|
+
return acc + replacer(cur) + 軸数字[src.length - 1 - idx]
|
|
103
|
+
}
|
|
104
|
+
}, '')
|
|
105
|
+
acc = (unit ? unit + 単位数字[idx - adjuster] : '') + acc
|
|
106
|
+
}
|
|
107
|
+
return acc
|
|
108
|
+
}, '')
|
|
109
|
+
return result[0] === '・' ? '零' + result : result
|
|
110
|
+
}
|
|
111
|
+
// フラグを覚えておく #874
|
|
112
|
+
let flag = ''
|
|
113
|
+
if (input.charAt(0) === '+' || input.charAt(0) === '-') {
|
|
114
|
+
flag = input.charAt(0)
|
|
115
|
+
input = input.substr(1)
|
|
116
|
+
}
|
|
117
|
+
let res = converter(separater(input))
|
|
118
|
+
if (res === '') { res = '零' }
|
|
119
|
+
return flag + res
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
'算用数字': { // @U引数を漢数字と解釈して数値を返す // @さんようすうじ
|
|
123
|
+
type: 'func',
|
|
124
|
+
josi: [['を', 'の']],
|
|
125
|
+
pure: true,
|
|
126
|
+
fn: function (input) {
|
|
127
|
+
function converter (src) {
|
|
128
|
+
const multibytes = 単位数字.filter(a => a.length > 1)
|
|
129
|
+
const result = []
|
|
130
|
+
for (let idx = 0; idx < src.length; idx++) {
|
|
131
|
+
const cur = src.slice(idx, idx + 1)
|
|
132
|
+
const 指数 = 単位数字.includes(cur) ? cur : multibytes.find(v => v === src.slice(idx, idx + v.length))
|
|
133
|
+
const 位 = 軸数字.includes(cur) ? cur : null
|
|
134
|
+
const 底 = 基本漢数字.includes(cur) ? cur : null
|
|
135
|
+
if (指数) {
|
|
136
|
+
if (指数.length > 1) {
|
|
137
|
+
idx += 指数.length - 1
|
|
138
|
+
}
|
|
139
|
+
result.push(BigInt('1' + '0'.repeat(4 * 単位数字.indexOf(指数))))
|
|
140
|
+
} else if (位) {
|
|
141
|
+
result.push(10 ** (軸数字.indexOf(位)))
|
|
142
|
+
} else if (底) {
|
|
143
|
+
result.push(基本漢数字.indexOf(底))
|
|
144
|
+
} else if (cur === '・') {
|
|
145
|
+
result.push('.')
|
|
146
|
+
} else if (cur === '零') {
|
|
147
|
+
result.push('0')
|
|
148
|
+
} else {
|
|
149
|
+
throw new Error('『算用数字』命令の中に無効な文字が含まれています。')
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return result
|
|
153
|
+
}
|
|
154
|
+
function separater (arr) {
|
|
155
|
+
let base = []
|
|
156
|
+
let unit = []
|
|
157
|
+
let isminus = false
|
|
158
|
+
return arr.reduce((acc, cur, idx) => {
|
|
159
|
+
if (cur === '.') {
|
|
160
|
+
if (base.length === 0) { base.push(0, 1) }
|
|
161
|
+
if (base.length === 1) { base.push(1) }
|
|
162
|
+
unit.push(base)
|
|
163
|
+
base = []
|
|
164
|
+
acc.push(unit)
|
|
165
|
+
acc.push('.')
|
|
166
|
+
unit = []
|
|
167
|
+
isminus = true
|
|
168
|
+
} else if (isminus) {
|
|
169
|
+
acc.push(String(cur))
|
|
170
|
+
} else if (cur > 1000) {
|
|
171
|
+
if (base.length === 0) { base.push(0, 1) }
|
|
172
|
+
if (base.length === 1) { base.push(1) }
|
|
173
|
+
unit.push(base)
|
|
174
|
+
base = []
|
|
175
|
+
unit.push(cur)
|
|
176
|
+
acc.push(unit)
|
|
177
|
+
unit = []
|
|
178
|
+
} else if (cur >= 10 && cur <= 1000) {
|
|
179
|
+
if (base.length === 0) { base.push(1) }
|
|
180
|
+
base.push(cur)
|
|
181
|
+
unit.push(base)
|
|
182
|
+
base = []
|
|
183
|
+
} else if (cur < 10) {
|
|
184
|
+
base.push(cur)
|
|
185
|
+
}
|
|
186
|
+
if (idx + 1 === arr.length && isminus === false) {
|
|
187
|
+
if (base.length === 1) {
|
|
188
|
+
base.push(1)
|
|
189
|
+
unit.push(base)
|
|
190
|
+
}
|
|
191
|
+
acc.push(unit)
|
|
192
|
+
}
|
|
193
|
+
return acc
|
|
194
|
+
}, [])
|
|
195
|
+
}
|
|
196
|
+
function calculator (arr) {
|
|
197
|
+
return arr.reduce((acc, cur, idx) => {
|
|
198
|
+
return typeof cur === 'string'
|
|
199
|
+
? acc + cur
|
|
200
|
+
: acc + cur.reduce((acc, cur, idx) => {
|
|
201
|
+
return cur > 1000 ? acc * cur : acc + BigInt(cur[0] * cur[1])
|
|
202
|
+
}, BigInt(0))
|
|
203
|
+
}, BigInt(0))
|
|
204
|
+
}
|
|
205
|
+
const tmp = calculator(separater(converter(input.toString())))
|
|
206
|
+
return tmp > Number.MAX_SAFE_INTEGER ? tmp : Number(tmp)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const 単位数字 = [
|
|
212
|
+
'', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正',
|
|
213
|
+
'載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'
|
|
214
|
+
]
|
|
215
|
+
const 軸数字 = [
|
|
216
|
+
'', '十', '百', '千'
|
|
217
|
+
]
|
|
218
|
+
const 基本算用数字 = '0123456789'.split('')
|
|
219
|
+
const 基本漢数字 = '〇一二三四五六七八九'.split('')
|
|
220
|
+
|
|
221
|
+
export default PluginKansuji
|
|
222
|
+
|
|
223
|
+
// scriptタグで取り込んだ時、自動で登録する
|
|
224
|
+
if (typeof (navigator) === 'object' && typeof (navigator.nako3) === 'object') { navigator.nako3.addPluginObject('PluginKansuji', PluginKansuji) }
|
package/src/plugin_keigo.mjs
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
// 敬語を使いたい人のためのプラグイン (お遊び機能)
|
|
3
|
-
|
|
4
|
-
const PluginKeigo = {
|
|
5
|
-
'初期化': {
|
|
6
|
-
type: 'func',
|
|
7
|
-
josi: [],
|
|
8
|
-
pure: true,
|
|
9
|
-
fn: function (sys) {
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
// @丁寧語
|
|
13
|
-
'お世話': { type: 'const', value: 1 }, // @おせわ
|
|
14
|
-
'な': { // @Aになる // @なる
|
|
15
|
-
type: 'func',
|
|
16
|
-
josi: [['に', 'へ']],
|
|
17
|
-
pure: true,
|
|
18
|
-
fn: function (a, sys) {
|
|
19
|
-
return a
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
'おります': { // @ソースコードを読む人を気持ちよくする // @おります
|
|
23
|
-
type: 'func',
|
|
24
|
-
josi: [],
|
|
25
|
-
pure: true,
|
|
26
|
-
fn: function (sys) {
|
|
27
|
-
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
28
|
-
sys.__reisetu++
|
|
29
|
-
},
|
|
30
|
-
return_none: true
|
|
31
|
-
},
|
|
32
|
-
'どうぞ': { // @ソースコードを読む人を気持ちよくする // @どうぞ
|
|
33
|
-
type: 'func',
|
|
34
|
-
josi: [],
|
|
35
|
-
pure: true,
|
|
36
|
-
fn: function (sys) {
|
|
37
|
-
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
38
|
-
sys.__reisetu++
|
|
39
|
-
},
|
|
40
|
-
return_none: true
|
|
41
|
-
},
|
|
42
|
-
'よろしくお願': { // @ソースコードを読む人を気持ちよくする // @よろしくおねがいします
|
|
43
|
-
type: 'func',
|
|
44
|
-
josi: [],
|
|
45
|
-
pure: true,
|
|
46
|
-
fn: function (sys) {
|
|
47
|
-
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
48
|
-
sys.__reisetu++
|
|
49
|
-
},
|
|
50
|
-
return_none: true
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export default PluginKeigo
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// 敬語を使いたい人のためのプラグイン (お遊び機能)
|
|
3
|
+
|
|
4
|
+
const PluginKeigo = {
|
|
5
|
+
'初期化': {
|
|
6
|
+
type: 'func',
|
|
7
|
+
josi: [],
|
|
8
|
+
pure: true,
|
|
9
|
+
fn: function (sys) {
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
// @丁寧語
|
|
13
|
+
'お世話': { type: 'const', value: 1 }, // @おせわ
|
|
14
|
+
'な': { // @Aになる // @なる
|
|
15
|
+
type: 'func',
|
|
16
|
+
josi: [['に', 'へ']],
|
|
17
|
+
pure: true,
|
|
18
|
+
fn: function (a, sys) {
|
|
19
|
+
return a
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
'おります': { // @ソースコードを読む人を気持ちよくする // @おります
|
|
23
|
+
type: 'func',
|
|
24
|
+
josi: [],
|
|
25
|
+
pure: true,
|
|
26
|
+
fn: function (sys) {
|
|
27
|
+
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
28
|
+
sys.__reisetu++
|
|
29
|
+
},
|
|
30
|
+
return_none: true
|
|
31
|
+
},
|
|
32
|
+
'どうぞ': { // @ソースコードを読む人を気持ちよくする // @どうぞ
|
|
33
|
+
type: 'func',
|
|
34
|
+
josi: [],
|
|
35
|
+
pure: true,
|
|
36
|
+
fn: function (sys) {
|
|
37
|
+
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
38
|
+
sys.__reisetu++
|
|
39
|
+
},
|
|
40
|
+
return_none: true
|
|
41
|
+
},
|
|
42
|
+
'よろしくお願': { // @ソースコードを読む人を気持ちよくする // @よろしくおねがいします
|
|
43
|
+
type: 'func',
|
|
44
|
+
josi: [],
|
|
45
|
+
pure: true,
|
|
46
|
+
fn: function (sys) {
|
|
47
|
+
if (!sys.__reisetu) { sys.__reisetu = 0 }
|
|
48
|
+
sys.__reisetu++
|
|
49
|
+
},
|
|
50
|
+
return_none: true
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export default PluginKeigo
|
package/src/plugin_markup.mjs
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
/**
|
|
3
|
-
* file: plugin_markup.js
|
|
4
|
-
* マークアップ言語関連のプラグイン
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { parse as parseMD } from 'marked'
|
|
8
|
-
import html from 'html'
|
|
9
|
-
|
|
10
|
-
const PluginMarkup = {
|
|
11
|
-
// @マークアップ
|
|
12
|
-
'マークダウンHTML変換': { // @マークダウン形式で記述された文字列SをHTML形式に変換する // @まーくだうんHTMLへんかん
|
|
13
|
-
type: 'func',
|
|
14
|
-
josi: [['を']],
|
|
15
|
-
pure: true,
|
|
16
|
-
fn: function (s) {
|
|
17
|
-
const html = parseMD(s)
|
|
18
|
-
return html
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
'HTML整形': { // @HTML形式で記述された文字列Sを整形する // @HTMLせいけい
|
|
22
|
-
type: 'func',
|
|
23
|
-
josi: [['を']],
|
|
24
|
-
pure: true,
|
|
25
|
-
fn: function (s) {
|
|
26
|
-
return html.prettyPrint(s, { indent_size: 2 })
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export default PluginMarkup
|
|
31
|
-
// scriptタグで取り込んだ時、自動で登録する
|
|
32
|
-
if (typeof (navigator) === 'object') { navigator.nako3.addPluginObject('PluginMarkup', PluginMarkup) }
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/**
|
|
3
|
+
* file: plugin_markup.js
|
|
4
|
+
* マークアップ言語関連のプラグイン
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { parse as parseMD } from 'marked'
|
|
8
|
+
import html from 'html'
|
|
9
|
+
|
|
10
|
+
const PluginMarkup = {
|
|
11
|
+
// @マークアップ
|
|
12
|
+
'マークダウンHTML変換': { // @マークダウン形式で記述された文字列SをHTML形式に変換する // @まーくだうんHTMLへんかん
|
|
13
|
+
type: 'func',
|
|
14
|
+
josi: [['を']],
|
|
15
|
+
pure: true,
|
|
16
|
+
fn: function (s) {
|
|
17
|
+
const html = parseMD(s)
|
|
18
|
+
return html
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
'HTML整形': { // @HTML形式で記述された文字列Sを整形する // @HTMLせいけい
|
|
22
|
+
type: 'func',
|
|
23
|
+
josi: [['を']],
|
|
24
|
+
pure: true,
|
|
25
|
+
fn: function (s) {
|
|
26
|
+
return html.prettyPrint(s, { indent_size: 2 })
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export default PluginMarkup
|
|
31
|
+
// scriptタグで取り込んだ時、自動で登録する
|
|
32
|
+
if (typeof (navigator) === 'object') { navigator.nako3.addPluginObject('PluginMarkup', PluginMarkup) }
|