ocoge/index.html
2021-03-24 22:11:48 +09:00

934 lines
32 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="./scripts/prettify_desert.css">
</link>
<link rel="stylesheet" href="./fonts/css/all.min.css">
</link>
<link rel="stylesheet" href="./index.css">
</link>
</head>
<body>
<!-- コードダイアログ -->
<dialog id="codeDlg">
<div id="dlgTitle">Javascript Code:</div>
<pre id="dlgContent" class="prettyprint lang-js linenums"></pre>
<button id="dlgClose" title="このダイアログを閉じます。">閉じる</button>
<button id="dlgExport" title="JavaScript コードをファイルに保存します。">ファイルに保存</button>
<span class="dlgCli" title="コードをファイルに保存する際、黒板表示ブロックのコードを console.log() に変更します。コマンドラインで動かしたい場合にちょっと便利です。"><input
type="checkbox" id="dlgCli">CLI</span>
<div id="conmenu">
<ul>
<li><a href="#" onclick="document.execCommand('copy');" class="conCopy">コピー</a></li>
</ul>
</div>
</dialog>
<!-- ツールバー(左) -->
<div class="toolbar">
<div class="toolbar-left">
<span class="appTitle" title="大岩産 Code Generator" onclick="testfunc()"><span class="o"></span><span
class="co"></span><span class="ge"></span></span>
</div>
<!-- ツールバー(右) -->
<div class="toolbar-right" id="toolbar-right">
<button class="toolbarButton" title="JavaScriptのプログラムコードを表示・保存します。" onclick="ugj_showCode()"><i
class="fas fa-code"></i> CODE</button>
<button class="toolbarButton" title="ワークスペースや設定を削除して最初から始めます。" onclick="ugj_newWorkspace()"><i
class="fas fa-file"></i> 新規</button>
<button onclick="ugj_loadWorkspaceFromFile()" class="toolbarButton"
title="ファイルに保存したブロックプログラムを読み込みます。既にワークスペースにあるブロックは削除されません。"><i class="fas fa-folder-open"></i> 開く</button>
<button onclick="ugj_saveWorkspaceToFile()" class="toolbarButton" title="ワークスペースのブロックプログラムをファイルに保存します。"><i
class="fas fa-save"></i> 保存</button>
<button class="toolbarButton" title="ワークスペースのブロックプログラムを別名でファイルに保存します。" onclick="ugj_saveWorkspaceAs()"><i
class="fas fa-clone"></i> 別名</button>
<button class="toolbarButton" title="ブロックプログラムを実行します。" onclick="ugj_runCode()" id="runbtn"><i
class="fas fa-play-circle"></i> 実行</button>
<button class="iconbutton" title="アプリを再読み込みします。" onclick="location.reload()"><i
class="fas fa-redo-alt"></i></button>
</div>
</div>
<!-- Blockly -->
<div id="blocklyArea"></div>
<div id="blocklyDiv" style="position: absolute"></div>
<!-- ディスプレイカラム(ビデオ・ターミナル表示) -->
<div class="rightPane" id="dispColumn">
<div id="display_area"><canvas id="canvas_bg" class="display" width="480" height="360"></canvas><canvas id="canvas"
class="display" width="480" height="360"></canvas><canvas id="gcanvas" class="display" width="480"
height="360"></canvas><video id="maindisplay" class="display" width="480" height="360" autoplay
muted></video><video id="subdisplay" class="subdisplay" width="160" height="120" autoplay muted></video></div>
<pre id="blackboard" disabled></pre>
<form name="inputForm" onsubmit="return false" autocomplete="off" id="inputForm">
<div class="inputDiv"><input type="text" id="inputBox">
<div class="inputBtnDiv"><input type="submit" value="&#xf058" class="inputBtn fas"></div>
</div>
</form>
</div>
<!-- ツールボックス定義 -->
<xml xmlns="https://developers.google.com/blockly/xml" id="toolbox" style="display: none">
<category name="論理" css-icon="customIcon fas fa-random" categorystyle="logic_category">
<block type="controls_if"></block>
<block type="logic_compare">
<field name="OP">EQ</field>
</block>
<block type="logic_operation">
<field name="OP">AND</field>
</block>
<block type="logic_negate"></block>
<block type="logic_boolean">
<field name="BOOL">TRUE</field>
</block>
<block type="logic_null"></block>
<block type="logic_ternary"></block>
</category>
<category name="ループ" css-icon="customIcon fas fa-redo-alt" categorystyle="loop_category">
<block type="controls_repeat_ext">
<value name="TIMES">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="controls_whileUntil">
<field name="MODE">WHILE</field>
</block>
<block type="ugj_control_for">
<field name="index" id="wcdXljeguV+HoJ=u4|_8">番号</field>
<field name="crease">increase</field>
<value name="from">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="to">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="by">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_controls_forEach">
<field name="item" id="~!WaafBNY_R,9DB`?.cd" variabletype="">項目</field>
</block>
<block type="controls_flow_statements">
<field name="FLOW">BREAK</field>
</block>
</category>
<category name="数・計算" css-icon="customIcon fas fa-calculator" categorystyle="math_category">
<block type="math_number">
<field name="NUM">0</field>
</block>
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="math_round">
<field name="OP">ROUND</field>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">3.1</field>
</shadow>
</value>
</block>
<block type="math_single">
<field name="OP">ROOT</field>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">9</field>
</shadow>
</value>
</block>
<block type="math_modulo">
<value name="DIVIDEND">
<shadow type="math_number">
<field name="NUM">64</field>
</shadow>
</value>
<value name="DIVISOR">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
</block>
<block type="math_random_int">
<value name="FROM">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="math_random_float"></block>
</category>
<category name="文字列" css-icon="customIcon fas fa-font" categorystyle="text_category">
<block type="text">
<field name="TEXT"></field>
</block>
<block type="text_print">
<value name="TEXT">
<shadow type="text">
<field name="TEXT">こんにちは!</field>
</shadow>
</value>
</block>
<block type="text_join">
<mutation items="2"></mutation>
</block>
<block type="text_length">
<value name="VALUE">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
</block>
<block type="text_indexOf">
<value name="VALUE">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
<value name="FIND">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
</block>
<block type="text_charAt">
<value name="VALUE">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
</block>
<block type="text_getSubstring">
<value name="STRING">
<block type="variables_get">
<field name="VAR">text</field>
</block>
</value>
</block>
</category>
<category name="リスト" css-icon="customIcon fas fa-list-ol" categorystyle="list_category">
<block type="lists_create_with">
<mutation items="0"></mutation>
</block>
<block type="lists_create_with">
<mutation items="3"></mutation>
</block>
<block type="lists_length"></block>
<block type="lists_isEmpty"></block>
<block type="lists_indexOf">
<field name="END">FIRST</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_getIndex">
<mutation statement="false" at="true"></mutation>
<field name="MODE">GET</field>
<field name="WHERE">FROM_START</field>
<value name="VALUE">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_setIndex">
<mutation at="true"></mutation>
<field name="MODE">SET</field>
<field name="WHERE">FROM_START</field>
<value name="LIST">
<block type="variables_get">
<field name="VAR" id="3kh{pye%.qbQf]}y64q6" variabletype="">list</field>
</block>
</value>
</block>
<block type="lists_split">
<mutation mode="SPLIT"></mutation>
<field name="MODE">SPLIT</field>
<value name="DELIM">
<shadow type="text">
<field name="TEXT">,</field>
</shadow>
</value>
</block>
<block type="lists_sort">
<field name="TYPE">NUMERIC</field>
<field name="DIRECTION">1</field>
</block>
</category>
<category name="変数" css-icon="customIcon fas fa-bars" categorystyle="variable_category" custom="VARIABLE">
</category>
<category name="関数" css-icon="customIcon fas fa-yin-yang" categorystyle="procedure_category" custom="PROCEDURE">
</category>
<sep></sep>
<category name="GPIO" css-icon="customIcon fab fa-raspberry-pi" categorystyle="gpio_category">
<label text="基本"></label>
<block type="ugj_gpio_start"></block>
<block type="ugj_gpio_stop"></block>
<block type="ugj_gpio_setoutput">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_write">
<value name="ugj_gpio_num">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
<value name="ugj_gpio_value">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_setinput">
<field name="updown">pi.PUD_DOWN</field>
<value name="gpio">
<shadow type="math_number">
<field name="NUM">6</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_read">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">6</field>
</shadow>
</value>
</block>
<label text="パルス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_gpio_setpwmfreqrange">
<field name="pwmfreq">50</field>
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_setpwmdutycycle">
<value name="dutycycle">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="gpio">
<shadow type="math_number">
<field name="NUM">5</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_servo">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">12</field>
</shadow>
</value>
<value name="pulsewidth">
<shadow type="math_number">
<field name="NUM">1500</field>
</shadow>
</value>
</block>
<label text="シリアル" web-line="4.0" web-line-width="200"></label>
<block type="ugj_serial_openclose">
<field name="baud">9600</field>
<value name="tty">
<shadow type="text">
<field name="TEXT">/dev/serial0</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_serialread">
<value name="count">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_serial_write">
<value name="data">
<shadow type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<shadow type="text">
<field name="TEXT">ohayo-.</field>
</shadow>
</value>
<value name="ADD1">
<shadow type="ugj_text_cr"></shadow>
</value>
</shadow>
</value>
</block>
<label text="I2C" web-line="4.0" web-line-width="200"></label>
<block type="ugj_gpio_i2copen">
<value name="i2c_addr">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_i2cclose"></block>
<block type="ugj_gpio_i2cwritebyte">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="byteData">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="ugj_gpio_i2creadbyte">
<value name="reg">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<label text="センサー" web-line="4.0" web-line-width="200"></label>
<label text="Extra" web-line="4.0" web-line-width="200"></label>
<block type="ugj_gpio_start_remote">
<field name="host"></field>
</block>
<block type="ugj_gpio_sleep">
<field name="sec">1</field>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="マルチメディア" css-icon="customIcon fas fa-gamepad" categorystyle="multimedia_category">
<label text="キャンバス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_canvas_init"></block>
<block type="ugj_canvas_clearrect">
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_width"></block>
<block type="ugj_canvas_height"></block>
<block type="ugj_canvas_drawcircle">
<value name="x">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="r">
<shadow type="math_number">
<field name="NUM">10</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#9999ff</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_drawrect">
<value name="x">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="y">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
<value name="w">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="h">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#ff0000</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_loadimg">
<value name="imgfilename">
<shadow type="text">
<field name="TEXT">photo.jpg</field>
</shadow>
</value>
</block>
<block type="ugj_canvas_finalize"></block>
<label text="イベント" web-line="4.0" web-line-width="200"></label>
<block type="ugj_event_key">
<field name="key" id="MRLP/?IZ:[U}[AV@bf6%" variabletype="">キー</field>
<field name="updown">keydown</field>
</block>
<label text="色" web-line="4.0" web-line-width="200"></label>
<block type="colour_random"></block>
<block type="colour_rgb">
<value name="RED">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
<value name="GREEN">
<shadow type="math_number">
<field name="NUM">50</field>
</shadow>
</value>
<value name="BLUE">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<label text="サウンド" web-line="4.0" web-line-width="200"></label>
<block type="ugj_sound_play">
<field name="sound">meow</field>
</block>
<block type="ugj_multimedia_webspeech_recognition" disabled="true">
<field name="transcript" id="=3;~1sjv_R.pRhO)=wQY" variabletype="">ことば</field>
<field name="continuous">once</field>
<field name="interim">TRUE</field>
</block>
<label text="画像認識" web-line="4.0" web-line-width="200"></label>
<block type="ugj_library_load">
<value name="lib">
<shadow type="ugj_library_tensorflow"></shadow>
</value>
</block>
<block type="ugj_tfpredict_init"></block>
<block type="ugj_tfpredict_loadmodel"></block>
<block type="ugj_tfpredict_predict">
<field name="result" id="!=~_{T-;nZXP-rWM|beL" variabletype="">結果</field>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="ネットワーク" css-icon="customIcon fas fa-wifi" categorystyle="network_category">
<label text="基本" web-line="4.0" web-line-width="200"></label>
<block type="ugj_network_axios_geturl">
<value name="url">
<shadow type="text">
<field name="TEXT">http://www.yahoo.co.jp/</field>
</shadow>
</value>
</block>
<block type="ugj_network_sendmail">
<value name="from">
<shadow type="text">
<field name="TEXT">from@ocoge.club</field>
</shadow>
</value>
<value name="to">
<shadow type="text">
<field name="TEXT">to@example.com</field>
</shadow>
</value>
<value name="subject">
<shadow type="text">
<field name="TEXT">おはよう</field>
</shadow>
</value>
<value name="text">
<shadow type="text">
<field name="TEXT">朝ですよ</field>
</shadow>
</value>
</block>
<label text="サーバー" web-line="4.0" web-line-width="200"></label>
<block type="ugj_network_httpserver">
<field name="URL" id="fIVY=P=^1=p?6=+h:,Dt" variabletype="">url</field>
<value name="response">
<shadow type="text">
<field name="TEXT">オコゲ</field>
</shadow>
</value>
</block>
<label text="リモートGPIO" web-line="4.0" web-line-width="200"></label>
<block type="ugj_gpio_start_remote">
<value name="host">
<shadow type="text">
<field name="TEXT">192.168.0.229</field>
</shadow>
</value>
</block>
<label text="ウェブチャット" web-line="4.0" web-line-width="200"></label>
<block type="ugj_library_load">
<value name="lib">
<shadow type="ugj_library_skyway"></shadow>
</value>
</block>
<block type="ugj_webchat"></block>
<block type="ugj_getusermedia"></block>
<block type="ugj_skyway_newpeer">
<field name="my_id">自分のID</field>
</block>
<block type="ugj_skyway_called"></block>
<block type="ugj_skyway_events">
<field name="remote_id" id="0H.)5,:R#6)mx{rc2O.6" variabletype="">相手のID</field>
</block>
<block type="ugj_skyway_eventopen"></block>
<block type="ugj_skyway_eventdata">
<field name="data" id="q[DF.B~59aE(90^posFt" variabletype="">発言</field>
</block>
<block type="ugj_skyway_eventsend">
<field name="data" id="vN/_]nnKA$wVHSxh2_9f" variabletype="">内容</field>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="特殊" css-icon="customIcon fas fa-plug" categorystyle="special_category">
<label text="出入力" web-line="4.0" web-line-width="200"></label>
<block type="ugj_canvas_say">
<value name="say">
<shadow type="text">
<field name="TEXT">コンニチワ!</field>
</shadow>
</value>
<value name="sec">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
<block type="ugj_event_answer">
<field name="answer" id="_m@Uj#wHnIuGJNVwdUR+" variabletype="">答え</field>
<value name="question">
<shadow type="text">
<field name="TEXT">お名前は?</field>
</shadow>
</value>
</block>
<block type="ugj_blackboard_show"></block>
<block type="ugj_blackboard_write">
<field name="style">normal</field>
<field name="line">new</field>
<field name="cursor">FALSE</field>
<value name="text">
<shadow type="text">
<field name="TEXT">コンニチワ!</field>
</shadow>
</value>
<value name="color">
<shadow type="colour_picker">
<field name="COLOUR">#ccffff</field>
</shadow>
</value>
</block>
<block type="ugj_blackboard_content"></block>
<block type="ugj_clearblackboard"></block>
<block type="ugj_control_button">
<field name="title" id="j{fM0uCAB9~3y=|~dd?:" variabletype="">ツールチップ</field>
<value name="label">
<shadow type="text">
<field name="TEXT">ボタン1</field>
</shadow>
</value>
<value name="textcolor">
<shadow type="colour_picker">
<field name="COLOUR">#ffffff</field>
</shadow>
</value>
<value name="bgcolor">
<shadow type="colour_picker">
<field name="COLOUR">#00cccc</field>
</shadow>
</value>
<value name="title">
<shadow type="text">
<field name="TEXT">データの保存に使えます。</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_save">
<value name="keyValue">
<shadow type="text">
<field name="TEXT">abc</field>
</shadow>
</value>
<value name="keyName">
<shadow type="text">
<field name="TEXT">storage</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_load">
<value name="keyName">
<shadow type="text">
<field name="TEXT">storage</field>
</shadow>
</value>
</block>
<block type="ugj_localstorage_keylist"></block>
<label text="制御" web-line="4.0" web-line-width="200"></label>
<block type="ugj_sleep">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_set_timeout">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_set_interval">
<value name="sec">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="ugj_special_clearinterval"></block>
<label text="プロセス" web-line="4.0" web-line-width="200"></label>
<block type="ugj_spawnsync">
<field name="data" id="^B.zQ~+BcS!dKNmb,+AX" variabletype="">実行結果</field>
</block>
<block type="ugj_spawn">
<field name="data" id=")H{jxG09B6}[PcO%4H1d" variabletype="">データ</field>
</block>
<block type="ugj_child_julius"></block>
<block type="aquestalk_pi">
<value name="talk">
<shadow type="text">
<field name="TEXT">こんにちは</field>
</shadow>
</value>
</block>
<block type="ugj_child_openjtalk">
<field name="voice">m001</field>
<value name="talk">
<shadow type="text">
<field name="TEXT">こんにちは!</field>
</shadow>
</value>
</block>
<block type="ugj_child_gesture"></block>
<block type="ugj_child_irrecord">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_child_irplayback">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">22</field>
</shadow>
</value>
<value name="signal">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="ugj_child_irrcvr">
<value name="gpio">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_child_fswebcam">
<value name="filename">
<shadow type="text">
<field name="TEXT">photo.jpg</field>
</shadow>
</value>
</block>
<block type="ugj_child_oledtext">
<value name="line1">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="line2">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="line3">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
<value name="line4">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
</value>
</block>
<block type="ugj_child_testpy"></block>
<block type="ugj_child_testjs"></block>
<label text="特殊記号" web-line="4.0" web-line-width="200"></label>
<block type="ugj_text_cr"></block>
<block type="ugj_text_lf"></block>
<block type="ugj_text_cursor"></block>
<label text="特殊" web-line="4.0" web-line-width="200"></label>
<block type="ugj_socket">
<field name="data" id="Y^@?sd}wN]H+nmK=[{wL" variabletype="">受信データ</field>
<value name="host">
<shadow type="text">
<field name="TEXT">localhost</field>
</shadow>
</value>
<value name="port">
<shadow type="math_number">
<field name="NUM">23</field>
</shadow>
</value>
</block>
<block type="ugj_socket_write">
<value name="cmd">
<shadow type="text">
<field name="TEXT">Hello</field>
</shadow>
</value>
</block>
<block type="ugj_file_readsync">
<field name="encoding">utf8</field>
<value name="filename">
<shadow type="text">
<field name="TEXT">example.txt</field>
</shadow>
</value>
</block>
<label text="_" web-line="4.0" web-line-width="200"></label>
</category>
<category name="スニペット" css-icon="customIcon fas fa-egg" categorystyle="snippets_category">
<label text="入出力" web-line="4.0" web-line-width="200"></label>
<block type="ugj_event_answer">
<field name="answer" id="_m@Uj#wHnIuGJNVwdUR+" variabletype="">答え</field>
<value name="question">
<shadow type="text">
<field name="TEXT">お名前は?</field>
</shadow>
</value>
<statement name="do">
<block type="ugj_canvas_say">
<value name="say">
<shadow type="text">
<field name="TEXT">・・・</field>
</shadow>
</value>
<value name="sec">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<next>
<block type="ugj_sleep">
<value name="sec">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
<next>
<block type="ugj_canvas_say">
<value name="say">
<block type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="variables_get">
<field name="VAR" id="_m@Uj#wHnIuGJNVwdUR+">答え</field>
</block>
</value>
<value name="ADD1">
<block type="text">
<field name="TEXT">たん</field>
</block>
</value>
</block>
</value>
<value name="sec">
<shadow type="math_number">
<field name="NUM">2</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</category>
</xml>
<script src="./google-blockly/blockly_compressed.js"></script>
<script src="./google-blockly/javascript_compressed.js"></script>
<script src="./google-blockly/blocks_compressed.js"></script>
<script src="./google-blockly/msg/js/ja.js"></script>
<script src="./scripts/custom-dialog.js"></script>
<script src="./scripts/ugj_blocks.js"></script>
<script src="./scripts/ugj_script.js"></script>
<script src="./scripts/beautify.min.js"></script>
<script src="./scripts/prettify.js"></script>
<script src="./.shared/skyway_key.js"></script>
</body>
</html>