diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai.html" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai.html" new file mode 100644 index 0000000..be8280d --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai.html" @@ -0,0 +1,153 @@ + +
+ + + +Driven by +s4 +©2015-2021 by +yuuji + + +
\ No newline at end of file diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_AC6D7BF3-8E24-453C-B0F5-1ED570925849.jpeg" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_AC6D7BF3-8E24-453C-B0F5-1ED570925849.jpeg" new file mode 100644 index 0000000..18ccfb0 --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_AC6D7BF3-8E24-453C-B0F5-1ED570925849.jpeg" Binary files differ diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_M_houtin2.png" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_M_houtin2.png" new file mode 100644 index 0000000..0d73a2b --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/S_M_houtin2.png" Binary files differ diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/default.css" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/default.css" new file mode 100644 index 0000000..9c71018 --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/default.css" @@ -0,0 +1,447 @@ +/* + * Default CSS definitions + */ +body {background: #eff; margin: 2px; padding: 6px;} +h2, h3, hr {clear: both;} +*.warn {color: red;} +*.warnbg {background: red;} +*.hidden {visibility: hidden;} +*.border {border: 1px solid #113;} +div.topmenu { + margin: 0; padding: 0; width: 100%; height: 2em; +} +div.topmenu ul {width: 100%; position: fixed; z-index: 5; margin: 0; + margin: 0 auto;} +div.topmenu ul li { + float: left; width: 18%; + background: rgba(68,255,102,0.8); border: #3e5 2px groove; margin: 0; + text-align: center; font-size: 80%; list-style: none; + box-shadow: #242 2px 3px 5px; + text-shadow: #fff 0px 0px 10px; +} +div.topmenu ul li.worldname {background: #eeeeff;} +div.topmenu ul li:hover {background: #8fa;} +div.topmenu ul a {text-decoration: none;} + +ldiv.topmenu + h1 {clear: both; margin-top: 3em;} +pre.list { + overflow: auto; width: 96%; height: 40%; background: white; + border: 2px inset; +} +p.copyright { + border-top: 2px inset #555; text-align: right; clear: both; + font-size: 50%; +} +p.copyright a, a#reload {text-decoration: none;} + +td {padding-left: 0.5ex; padding-right: 0.5ex;} +table.td2r td:nth-child(2) {text-align: right;} +table.td3r td:nth-child(3) {text-align: right;} +table.td3rr td:nth-child(n+3) {text-align: right;} +table.td3evw th:nth-child(2n+4), span.textdigest { + background: white; +} +table.thl th {text-align: left;} +span#reverse {background: white; padding: 0 0 0 0.4ex; border: outset;} + +table.form, table.b, table.b tr, table.b td, table.b th { + border: 1px solid black; border-collapse: collapse; +} +table.b, table.bloghead { + border-radius: 1ex; box-shadow: rgb(250,222,222) 1px 2px 3px; +} +td.warn {background: #fcc;} +input[type="checkbox"][name="rm"]:checked ~ table {background: red;} +input[type="checkbox"][name="rm"] ~ span {display: none;} +input[type="checkbox"][name="rm"]:checked ~ span {display: inline;} + +input[type="radio"][value="replace"] + input.replace[type="file"] { + visibility: hidden;} +input[type="radio"][value="replace"]:checked + input.replace[type="file"] { + visibility: visible; +} +button#morefile {visibility: hidden; background: #fe9;} +label.admin span {border-bottom: 1px solid blue;} +label.admin:after {content: "(ADMIN)"; color: red; text-decoration: none;} + +/* keep/edit/rm action selector */ +input.action ~ input:not(.action), input.action ~ textarea { + display: none; +} +input.action[value="edit"]:checked ~ input[class="edit"], +input.action[value="mv"]:checked ~ input[type="text"] {display: inline;} +input.action[value="edit"]:checked ~ textarea {display: block;} +input.action[value="edit"]:checked ~ span, +input.action[value="mv"]:checked ~ span {display: none;} +input.action[value="rm"]:checked ~ span {background: red;} +label.confirm {display: none;} +*.inline, +input.action[value="rm"]:checked ~ label.confirm { + display: inline; +} + +input.hidesub ~ input[type="submit"] {visibility: hidden;} +input.hidesub:focus ~ input[type="submit"], +p:active input[type="submit"] +{visibility: visible;} +input[type=text]:focus {background: #ffa;} + +form.replyblog {xxx-margin-bottom: 40%;} +div.blogcomment { + position: fixed; bottom: 0; left: 0; + z-index: 2; background-color: rgba(250,222,222,0.6); +} +/* div.blogcomment textarea:focus {background: yellow; + position: fixed; top: 0; bottom: auto; } Need to consider narrow display */ +div.blogcomment * {opacity: 1.0;} +table.bloghead, .bloghead tr, .bloghead td { + border: 1px solid black; border-collapse: collapse; + min-width: 30em; +} +table.bloghead tr.preface { + font-size: 150%; background: yellow; /* text-align: center; */ + white-space: pre-wrap; +} +table.bloghead tr.frozen { + background: #ccf; border: blue thick solid; color: navy; +} + +table.bloghead {margin-bottom: 1em;} + +table.blog_replies, .blog_replies tr, .blog_replies td { + border: 1px solid #999; border-collapse: collapse; + white-space: pre-wrap; +} +table.bloghead tr.preface td ul, +table.bloghead tr.preface td ol, +table.bloghead tr.preface h2, +table.bloghead tr.preface h3, +table.bloghead tr.preface h4, +table.bloghead tr.preface h5, +table.bloghead tr.preface h5, +table.blog_replies video, +table.blog_replies iframe, +table.blog_replies ul, .blog_replies tr ul, .blog_replies td ul, +table.blog_replies ol, .blog_replies tr ol, .blog_replies td ol { + text-align: left; white-space: normal; margin: 1ex 0; +} +table.bloghead tr.preface h2, +table.bloghead tr.preface h3, +table.bloghead tr.preface h4, +table.bloghead tr.preface h5, +table.bloghead tr.preface h5 +{ + display: inline-block; +} +table.blog_replies p.proficon { + float: right; margin: 0 1ex 0 0; +} +table.blog_replies+p.update_link {margin-top: 0; margin-bottom: 14em;} +.blog_replies td.repl { + vertical-align: top; min-width: 30em; height: 3em; + max-width: 50em; +} +.blog_replies td.repl img {max-width: 30%;} +td.repl h2, td.repl h3, td.repl h4 { + display: inline; /* Because td.repl's white space is pre-wrap */ + /* text-shadow: blue 0px 1px; */ +} +td.repl hr {display: inline-block; width: 95%; color: #cde} +td.repl em {color: #a00; text-decoration: underline; padding-right: 0.3ex;} +td.repl strong {color: white; background: #00a; padding: 0 0.5ex;} +td.repl h2:before {content: "■"; color: #a22;} +td.repl h3:before {content: "◆"; color: #a22;} +td.repl h4:before {content: "○";} +td.repl div.atall { + color: white; background: #66f; padding: 0 0.8ex; + display: inline-block; border-radius: 0.8ex; +} +.blog_replies td.repatt {min-width: 12em;} +table.blog_replies iframe { + width: 80%; min-height: 300px; max-width: 50em; max-height: 80vw; + padding: 0; border: 0; +} +table.blog_replies td.new { /* New Article from last visit */ + background: white +} +table.mini, table.mini tr, table.mini th, table.mini td { + margin: 0; border-width: 0; + border-collapse: collapse; + vertical-align: top; width: auto; height: 1em; +} +table.mini th {background: #cee;} +table.mini tr {border-bottom: solid 1px #bcc;} +table.mini th, table.mini td {text-align: justify;} +table.mini td, table.mini th {padding: 1px 0.5ex; min-width: 1em;} +table.mini {margin-left: 1em; border-left: 2px solid #686;} +div.pjaxview, div.pjaxview2 { + position: fixed; top: 1ex; left: 0; width: 9vw; height: 9vh; + background: #ffffee; border: 1px double navy; border-radius: 2em; + z-index: 7; +} +div.pjaxview2 { + width: 100vw; height: 98vh; transition: 0.5s; +} +div.pjaxview iframe { + width: 98%; height: 90%; object-fit: scale-down; +} +div.pjaxview p { + padding: 0.5ex; text-align: left; margin: 0 2em; + white-space: nowrap; overflow: hidden; +} +div.pjaxview p button { font-size: large; padding: 0 1em;} +div.pjaxview p button { background: #eeeee0; } +div.pjaxview p button:focus { background: #fffff8; } + +/* "visibility: collapse" not working on chromium browser */ +div.noprofimg tr.profimg {visibility: collapse; display: none;} +div.noprofimg tr:hover + tr.profimg, div.noprofimg tr:active + tr.profimg, +div.noprofimg tr.profimg:hover, div.noprofimg tr.profimg:active { + visibility: visible; display: table-row;} + +/* Used for overlapping image */ +img.overlap {position: absolute; top: 40px; left: 50px; z-index: 2;} + +/* Used in user's home page */ +p.profimg {float: left; max-width: 50%; max-height: 400px; + overflow: hidden; margin: 0 1em 1ex; + padding: 0; border: white 1px solid; box-shadow: 2px 3px 4px + } +p.profimg img {max-width: 400px;} +div.home+* {clear: both;} +body.grouphome p.groupimg { + float: right; margin: 0 1em 1ex; + overflow: hidden;} +body.grouphome p.groupimg img { + max-width: 380px; max-height: 380px;} + +div.fold {margin-top: 1em; border-top: 1px solid black; padding-top: 1em;} +div.noborder {border: 0px; margin: 0;} +div.fold > div { + xxdisplay: none; max-height: 80%; overflow: auto; + height: 0px; opacity: 0; padding: 0 1ex; +} +div.fold input[type="checkbox"]:checked ~ div, +div.fold input[type="radio"]:checked ~ div { + display: block; background: #fadede; + height: auto; opacity: 1.0; transition: 1s; +} +input.fold + label + *.folded {opacity: 0; display: none; hight: 0;} +input[type="checkbox"].fold:checked + label + *.folded { + opacity: 1.0; transition: 2s; +} +input[type="checkbox"].fold:checked + label + div.folded { + display: block; hight: auto; transition: 2s; +} + +/* fold2!! */ +div.foldtabs { + position: relative; height: 5em; margin-top: 1em; + border-top: 1px solid black; padding-top: 1em; +} +div.foldtabs > div { + position: absolute; top: 2.5em; opacity: 0.0; background: pink; + margin: 2px; overflow: auto; +} +div.foldtabs input[type="radio"] {display: none;} +div.foldtabs input[type="radio"]:checked + label + div { + display: block; opacity: 1.0; transition: 0.2s; width: 100%; + margin: 0; z-index: 2; +} +div.foldtabs > label { + border: 1px outset #ddd; background: #ddd; xbackground: pink; + border-top-left-radius: 0.8em; border-top-right-radius: 0.8em; + margin: 0; + padding: 0.2ex 0.5em; height: 3em; +} +div.foldtabs > input:active + label {background: white;} +div.foldtabs input:checked + label { + background: pink; border: pink 1px solid; border-bottom-width: 6px; +} +div.foldtabs input:checked + label:last-of-type {border-width: 1px;} +input[type="checkbox"] + label + input[type="submit"] {display: none;} +input[type="checkbox"]:checked + label + input[type="submit"] { + display: inline;} +div.foldtabs p {margin: 0;} + +/* ToDo List CheckBox inspired by https://cultureacademia.jp/webcreate/303/ */ +input.s4-checkbox {display: none;} /* Do not show real checkbox */ +input.s4-checkbox + label { + position: relative; padding-left: 0.8em; margin-right: 1em; +} +input.s4-checkbox + label:before, +input.s4-checkbox + label:after { + content: ""; display: block; /* Mimic Checkbox by absolute box */ + position: absolute; top: 0; left: 0; margin: 0; +} +input.s4-checkbox + label:before { /* checkbox frame */ + width: 0.8em; height: 0.8em; border: 1px solid #aaa; border-radius: 20%; + background: #ddd; +} +input.s4-checkbox:checked + label:before { /* checked frame bg */ + background: pink; +} +input.s4-checkbox:checked + label { /* checked text */ + /* text-shadow: red 1px 1px; */ +} +input.s4-checkbox:checked + label:after { /* checked mark */ + width: 0.6em; height: 0.4em; top: 0.05em; left: 0.1em; + border-bottom: 3px solid navy; + border-left: 3px solid navy; + transform: rotate(-40deg); +} +/* ---------------------------------------------------- */ + +div.dumptable {max-height: 70vw; overflow: auto;} +div.dumptable tr:hover {background-color: #fee;} +table.dumpblogs td, +div.lcto td { /* LINK + CTIME + TITLE + OWNER + something... */ + white-space: nowrap; overflow: hidden;} +table.dumpblogs td:nth-child(4), +div.lcto td:nth-child(2) {max-width: 8em;} +table.dumpblogs td:nth-child(5), /* team */ +table.dumpblogs td:nth-child(6), /* title */ +table.dumpblogs td:nth-child(7), /* heading */ +div.lcto td:nth-child(3), /* title */ +div.lcto td:nth-child(4) /* owner */ + {max-width: 14em;} +/* https://curecode.jp/tech/css-table-position-sticky-with-background-border-vanished/ */ +div.dumptable table.dumpblogs th { + position: sticky; top: 0; z-index: 0; background: #fcf0f0; + border: 1px solid black; border-collapse: collapse; + background-clip: padding-box; +} + +table.dumpblogs tr.凍結 td:nth-child(n+2) {opacity: 0.5;} +table.dumpblogs tr.凍結 td:last-child {opacity: 1.0; color: blue;} +*.frozen, *.凍結 {color: blue;} + +/* +table.dumpblogs td:nth-child(4) { + max-width: 7.6em; overflow: hidden;} +table.dumpblogs td:nth-child(5), +table.dumpblogs td:nth-child(6) { + max-width: 12em; overflow: hidden;} +table.dumpblogs td:nth-child(7) { + min-width: 5em; overflow: hidden;} +*/ + +/********************* icon list *********************/ +div.iconlist { + text-align: center; float: left; margin: 1ex 1em; + border: dotted #dfd 2px; padding: 1ex; +} +div.iconlist p {margin: 0; padding: 0;} +div.iconlist p.tag {background: #ffa; border-radius: 4em;} +div.iconlist p._temp {background: cyan;} +div.iconlist p._lecture {background: pink;} +div.iconlist p._admin {background: yellow;} +div.iconlist p._friend {background: fuchsia;} +div.iconlist p._fellows {background: #9f9;} /* light green */ +div.iconlist p._club {background: #4bb;} /* light teal */ +div.iconlist p._event {background: maroon; color: white;} +div.iconlist p._misc {background: purple; color: white;} +div.iconlist p._record {background: red; color: white;} +div.iconlist p._info {background: #eff;} /* light cyan */ +div.iconlist p._support {background: #ffe;} /* light yellow */ +div.iconlist p._test {background: #ffb6c1;} /* light pink */ +input#ismembtn:checked ~ div.iconlist, +input#isadmbtn:checked ~ div.iconlist {display: none;} +input#ismembtn:checked ~ div.iconlist.Member, +input#isadmbtn:checked ~ div.iconlist.ADMIN, +input#ismembtn:checked ~ div.iconlist.ADMIN {display: block;} +div.xy120x120 {min-width: 120px; min-height: 140px;} +div.xy96x96 {min-width: 96px; min-height: 116px;} +div.xy96x96 img {max-width: 96px;} +div.xy50x50 {min-width: 50px; min-height: 70px;} +div.xy50x50 img {max-width: 50px;} +div.moderated {background: rgba(255, 215, 0, 0.3);} /* gold */ +body.moderated {background: #fffec4;} /* #faed8a */ +body.ismember, div.ismember {border-top: 4px red solid; margin-top: 0;} +div.right, div.search {clear: both; float: right;} +*.clear {clear: both;} +div.search input[type="text"] { + border: solid 1px #bbb; border-radius: 0.5ex; min-height: 20px; + margin: 1em; padding: 0 0.5ex; padding-left: 18px; + background: url("../../img/loupe.png") left center no-repeat + rgba(242,240,240,0.7); + position: relative; +} +div.search div.fr, *.relative {position: relative;} +div.search p.help, textarea + p.help {display: none;} +div.search input:focus + p.help, +textarea:focus + p.help { + display: block; background: white; + position: absolute; right: 15em; white-space: pre; + border: 1px solid #888; border-radius: 1em; padding: 1ex; + box-shadow: #555 2px 2px; +} +textarea:focus + p.help { + position: fixed; + top: 0em; left: 0; +} +form.summary input[type=submit], +input[type="submit"].all, button.all { + background: #cfc; padding: 0.4ex 2ex; +} +input[type="reset"] {margin-left: 4em;} + +/* + * World List + */ +li.casmenu div {display: none; position: relative; width: 200%; + min-width: 80%; margin-right: 0;} +li.casmenu div table { + background: white; position: absolute; top: 0em; border: 3px solid navy; + max-width: 100%; +} +li.casmenu div table td {text-align: left; padding: 0.5ex 1em;} +li.casmenu:hover div, li.casmenu:active div, +li.casmenu div:hover, li.casmenu div:active +{display: block;} +span.pre {white-space: pre;} + +/* + * Frozen toggle button + */ +td.稼動状態 {text-align: center;} +button.toggle-frozen { + padding: 0 1emex; + background: #fdb585; + border-radius: 1ex; + border-bottom: solid 2px #d27d88; + box-shadow: inset 0 2px 0 rgba(255,255,255,0.2), 0 2px 2px rgba(0,0,0, 0.19); + background: linear-gradient(#fdeaea, #fdb2b2); // ffc8a8 +} +.凍結 button.toggle-frozen, .凍結 button.toggle-frozen::before { + background: linear-gradient(#d8e2ea, #83bbea); +} +.凍結 button.toggle-frozen::before { + content: attr(frozen-marker); color: blue; +} +.toggle-frozen::before { + content: attr(running-marker); +} +.info-tooltip { + position: absolute; padding: 1ex; + background: ivory; + border-radius: 1em; border: double 5px blue; + min-width: 10em; right: 0; bottom: 0; +} +.dissolving {opacity: 0; transition: 3.0s;} +.emerging {opacity: 1; transition: 3s;} +button#c, button#reload {display: inline-block;} +span.loading, button#c:disabled, button#reload:disabled { + visibility: visible; transform: rotateX(3600deg); transition: 30s; +} +span.loading {padding: 0 1em;} +input.aux {margin-left: 10em; transform: scale(0.7);} + +/* + * PR Web + */ +body.pr {font-size: 200%;} +body.pr h1 { + text-align: center; width: 80%; padding: 3ex 0; margin: 0 auto; + background: #ffefef; border: double 5px navy; +} diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/file-icon.png" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/file-icon.png" new file mode 100644 index 0000000..d82f259 --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/file-icon.png" Binary files differ diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/jds4.css" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/jds4.css" new file mode 100644 index 0000000..acec5ff --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/jds4.css" @@ -0,0 +1,10 @@ +/* + * Default CSS definitions + */ +@import("default.css"); +body {background: #ccc3f3 url("img/jds4_bg_2022.png") no-repeat center fixed; + background-size: cover; margin: 2px; padding: 6px;} +div.topmenu ul li { + background: #afeeeecc; border: #35e 2px groove; margin: 0; +} +div.topmenu ul li:hover {background: #adf;} diff --git "a/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/s4-main.js" "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/s4-main.js" new file mode 100644 index 0000000..3554794 --- /dev/null +++ "b/12_3\346\234\254\350\254\233\347\276\251\357\274\210CSV\345\275\242\345\274\217\357\274\211 |JDs4 - JD-Chokai_files/s4-main.js" @@ -0,0 +1,1191 @@ +// 愛 +(function (){ + var isOlderJS; // Set in init(); + var hoverTextLines = 10; + var hasTouchPad = + (navigator.maxTouchPoints && navigator.maxTouchPoints >0); + var myurl = document.URL, + mypath = myurl.substring(myurl.lastIndexOf("/")); + var art_m_list = []; + var mathjax = false; + let input_pdfsw = 'input[name="comppdf"]'; + if (mypath.match(/(.*)\/(.*)/)) { + mypath = RegExp.$2; + mypath = mypath.substring(0, mypath.lastIndexOf("?")); + //alert("mypath="+mypath); + } + function escapeChars(old) { + return old.replaceAll('"', '"') + .replaceAll("<", '<') + .replaceAll(">", '>'); + } + function collectElementsByAttr(elm, attr, val) { + var e = document.getElementsByTagName(elm); + if (!e) return null; + var list = []; + for (var i of e) { + if (i.getAttribute(attr) == val) + list.push(i) + } + return list; + } + function nthChildOf(parent, n, elem) { // Return Nth child of type ELEM + // N begins with 1 + var i=0; + var le = elem.toLowerCase(); + for (var c of parent.childNodes) { + if (!c.tagName) continue; + if (c.tagName.toLowerCase() == le) { + if (++i >= n) return c; + } + } + return null; + } + function insertRedirect(e) { + var articleId, textarea = document.getElementById("text"); + var p = e.target, checked = p.checked; + while (p = p.parentNode) + if (p.nodeName.match(/^td$/i)) break; + if (!p) return; + while (p = p.nextSibling) + if (p.nodeName.match(/^td$/i)) break; + if (!p) return; + articleId = p.getAttribute("id"); + if (textarea && articleId) { + var tv = textarea.value, lines; + if (tv) + lines = tv.split("\n"); + else + lines = [""]; + var re = new RegExp("[, ]*#"+articleId+"(?![0-9])"); + checked = (p.nodeName.match(/^input$/) + ? p.checked // checkbox obeys its status + : !lines[0].match(re)) // a-elment toggles redirection + if (checked) { + if (!lines[0].match(re)) { + var re2 = new RegExp(/>#[#0-9, ]+[0-9]/); + if (lines[0].match(re2)) + lines[0] = lines[0].replace( + re2, '$&, '+'#'+articleId); + else { + if (lines[0] > "") lines[0] = " "+lines[0]; + lines[0] = ">#"+articleId+lines[0]; + } + } + } else { // Remove #xxxxx + if (lines[0].match(/^>#[0-9 ,]+#/)) // 2 or more #id's + lines[0] = lines[0].replace( + new RegExp("^>#"+articleId+"[ ,]*"), ">").replace( + new RegExp("[ ,]*#"+articleId), ""); + else { + lines[0] = lines[0].replace( + new RegExp(">#"+articleId+"[ ,]*"), ""); + } + } + lines[0] = lines[0].replace(/^> *$/, ''); + textarea.value = lines.join("\n"); + } + } + function registPjaxViewers(aHrefList) { + let apos=art_m_list.length; + for (let a of aHrefList) { + let href = a.getAttribute("href"); + let localvar = apos; + let td = a.parentNode, + tr = td.parentNode, + id = td.id, + text = td.textContent, + author = tr.getElementsByTagName("a"); + if (author) author = author[0].getAttribute("title"); + if (href.match(/\?showattc\+article_m\+([0-9]+)$/)) { + if (td.innerHTML.match(/読み取り不可/)) { + a.removeAttribute("href"); + continue; + } + let url = RegExp.lastMatch; + // console.log("pjaxView(e, "+href+", "+apos+")"); + a.addEventListener("click", function(e) { + // Shoud use closure local variable: localvar + pjaxView(e, href, localvar); + }, false); + apos++; + art_m_list.push({ + url: href, id: id, author: author, text: text + }); + } + } + } + function registInsertDirect(aHrefList) { + for (i of aHrefList) + if (i.getAttribute("href").match(/^#[0-9]+$/)) + if (RegExp.lastMatch == i.innerHTML) + i.addEventListener("click", insertRedirect, false) + } + function mathjaxUpdate(arg) { + try { + if (MathJax && MathJax.typesetPromise) { + MathJax.texReset(); // Reset Math counters + MathJax.typesetPromise(arg); // MathJax v3 + } + } catch (err) {console.log(err);} + } + var ajaxSubmit; + function replAddNews(newtable) { + let newids = [], idlist=[]; + let getArticleID = function (td) { + return parseInt(td.parentNode.getElementsByTagName("td")[1].id); + } + for (let i of newtable.querySelectorAll("td.repl")) + newids.push(i); + newids = newids.sort((a,b)=> { + return (getArticleID(a) - getArticleID(b)); + }); + for (i of newids) + idlist.push(getArticleID(i)); + console.log("IDList="+idlist.join()); + let cnt=0, ntr; + let current = collectElementsByAttr("td", "class", "repl"), + ncur=0, n, icur=0, o, oid, nid, otr; + current = document.querySelectorAll('td[class="repl"]'); + let last=current[current.length-1], + tbody = last.parentNode.parentNode; + let addEventsToNewTr = function(tr) { + let td = tr.getElementsByTagName("td"), + td0 = td[0], td1 = td[1]; + td0.classList.add("new"); + registInsertDirect(td0.querySelectorAll("a[href]")); + registPjaxViewers(td1.querySelectorAll("a[href]")); + } + // Erase all "new article" flags before merging + for (let i of document.querySelectorAll("td.new")) + i.classList.remove("new"); + // Now reconstruct articles with merge-sort like method + outer: for (; ncur+ // + //
info1 info2
+ // + //[[ RAW TEXT(DOWNLOAD here) ]]
+
+#!/usr/koeki/bin/ruby
+# -*- coding: utf-8 -*-
+
+#初期設定
+
+require 'curses'
+include Curses
+
+init_screen
+cbreak
+noecho
+
+rt = []
+
+begin
+ sleep(0)
+
+ 10.times do
+ system("display -geometry +0+0 before.jpg&")
+ sleep(2)
+ system('pkill magick -U `whoami`')
+ srand
+ i = rand(3)+1
+ if i == 1
+ system("display -geometry +400+0 quiz1.jpg&")
+ sleep(0.5)
+ system("display -geometry +0+0 after1.jpg&")
+ elsif i == 2
+ system("display -geometry +400+0 quiz1.jpg")
+ sleep(0.5)
+ system("display -geometry +0+0 after2.jpg&")
+ elsif i == 3
+ system("display -geometry +400+0 quiz1.jpg&")
+ sleep(0.5)
+ system("display -geometry +0+0 after3.jpg&")
+ end
+ setpos(0,0)
+ addstr("\n 1:安全 2:危険")
+ refresh
+ start = Time.now
+ answer = getch
+ stop = Time.now
+ rt << [i,answer,stop.to_f - start.to_f]
+ refresh
+
+ system('pkill magick -U `whoami`')
+ setpos(0,0)
+ addstr("\n ")
+ refresh
+ sleep(2)
+ end
+
+ correct = 0
+ total = 0
+ for j in rt
+ total += j[2]
+ if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2")
+ correct += 1
+ end
+ end
+
+ensure
+ close_screen
+end
+
+printf("正答%d回 反応時間%5.3f秒\n", correct, total/10)
+
+
+
+
diff --git a/kankou.rb b/kankou.rb
new file mode 100755
index 0000000..16905d2
--- /dev/null
+++ b/kankou.rb
@@ -0,0 +1,38 @@
+
+require 'csv' # CSVライブラリ読み込み
+#観光スポット一覧で使うcsvファイル読み込み
+data = CSV.read("shonai.csv", :headers => true)
+#webページ検索で使うcsvファイル読み込み
+meisho = CSV.read("web.csv", headers: true)
+while true
+ puts "1 観光スポット一覧"
+ puts "2 観光スポットwebページ検索"
+ puts "0 終了"
+ print "どれかひとつ選んでください => "
+ input=gets.to_i
+ if input == 0 then #もしinputが0だったとき
+ break #終了する
+ elsif input == 1 then #もしinputが1だったとき
+ #↓行ごとに取り出す
+ n = 0
+ data.each{|row| # rowには1行ずつ値が入り繰り返される
+ printf("%d: %sとはどんなところ?\n", n+=1, row["建物名"])
+ printf("住所 => %s \n特徴 => %s \n",row["住所"], row["特徴"])
+ print("--------------------------\n") }#仕切りの機能(何個あってもいい)
+ elsif input == 2 then #もしinputが2だったとき
+ i=0
+ for x in meisho # 1行ずつxに取り出す
+ printf("%d: %s\n", i+=1, x['place']) # 添字に見出し項目を指定して取り出す
+ end
+ print("何番のWebを見たいですか: ")
+ num = gets.to_i-1
+ if num >= 0 && num < meisho.length
+ printf("%s ですね。%s をブラウザで開きます.\n",
+ meisho[num]['place'], meisho[num]['url'])
+ # ↑meishoのnum行目のレコードの ['place'] 項目を取り出す
+ system("firefox "+meisho[num]['url']+"&")
+ end
+ else
+ print "1/2/0から選んでください\n"
+ end
+end
\ No newline at end of file
diff --git a/kensaku.rb b/kensaku.rb
new file mode 100755
index 0000000..6c4cae2
--- /dev/null
+++ b/kensaku.rb
@@ -0,0 +1,12 @@
+#!/usr/bin/env ruby
+# coding: utf-8
+
+print "検索パターン"
+pattern = STDIN.gets.chomp!
+regexp = Regexp.new(pattern,nil)
+
+while line = gets
+ if regexp =~ line
+ print line
+ end
+end
diff --git a/kuku.rb b/kuku.rb
new file mode 100755
index 0000000..fb369cd
--- /dev/null
+++ b/kuku.rb
@@ -0,0 +1,18 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+
+def kuku(kakerareru, kakeru)
+ if kakerareru 0 || kakeru 0
+ return nil
+ end
+ return
+end
+
+puts "ワープポイントを決める。"
+print "x座標を入力:"
+suzi1 = gets.to_i
+print "y座標を入力:"
+suzi2 = gets.to_i
+print "z座標を入力:"
+suzi3 = gets.to_i
+printf("座標は%dです。\n", kuku())
diff --git a/kyoutsuugo.txt b/kyoutsuugo.txt
new file mode 100644
index 0000000..4f07c3e
--- /dev/null
+++ b/kyoutsuugo.txt
@@ -0,0 +1,13 @@
+いや~今日のテストわからなくて苦労したよ
+わからなくても大丈夫さ
+大丈夫なんてお前たちダメでしょう
+しっかり勉強しないと偉くなれないよ
+偉くなんてならなくてもいいよ
+ぺらぺら言わないで早く勉強しなさい
+お父さんはいつもうるさいね~
+いいか言うこと聞かないと怒るぞ
+でも今日のテストのプリントどこにやったかわからないんだもの
+わからないなんてきちんとさがして勉強しなさい
+勉強の前にご飯食べさせて
+たくさん食べなさい
+はい食べます
\ No newline at end of file
diff --git a/program.rb b/program.rb
new file mode 100644
index 0000000..1fbc504
--- /dev/null
+++ b/program.rb
@@ -0,0 +1,60 @@
+#!/usr/koeki/bin/ruby
+# -*- coding: utf-8 -*-
+
+#初期設定
+
+require 'curses'
+include Curses
+
+init_screen
+cbreak
+noecho
+
+rt = []
+
+begin
+ sleep(0)
+
+ 10.times do
+ system("display -geometry +0+0 before.jpg&")
+ sleep(2)
+ system('pkill magick -U `whoami`')
+ srand
+ i = rand(3)+1
+ if i == 1
+ system("display -geometry +0+0 after1.jpg&")
+ elsif i == 2
+ system("display -geometry +0+0 after2.jpg&")
+ elsif i == 3
+ system("display -geometry +0+0 after3.jpg&")
+ end
+ setpos(0,0)
+ addstr("\n 1:安全 2:危険")
+ refresh
+ start = Time.now
+ answer = getch
+ stop = Time.now
+ rt << [i,answer,stop.to_f - start.to_f]
+ refresh
+
+ system('pkill magick -U `whoami`')
+ setpos(0,0)
+ addstr("\n ")
+ refresh
+ sleep(2)
+ end
+
+ correct = 0
+ total = 0
+ for j in rt
+ total += j[2]
+ if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2")
+ correct += 1
+ end
+ end
+
+ensure
+ close_screen
+end
+
+printf("正答%d回 反応時間%5.3f秒\n", correct, total/10)
diff --git a/program_advanced.rb b/program_advanced.rb
new file mode 100644
index 0000000..d740d94
--- /dev/null
+++ b/program_advanced.rb
@@ -0,0 +1,66 @@
+#!/usr/koeki/bin/ruby
+# -*- coding: utf-8 -*-
+
+#初期設定
+
+require 'curses'
+include Curses
+
+init_screen
+cbreak
+noecho
+
+rt = []
+
+begin
+ sleep(0)
+
+ 10.times do
+ system("display -geometry +0+0 before.jpg&")
+ sleep(2)
+ system('pkill magick -U `whoami`')
+ srand
+ i = rand(3)+1
+ if i == 1
+ system("display -geometry +400+0 quiz1.jpg&")
+ sleep(0.5)
+ system("display -geometry +0+0 after1.jpg&")
+ elsif i == 2
+ system("display -geometry +400+0 quiz1.jpg")
+ sleep(0.5)
+ system("display -geometry +0+0 after2.jpg&")
+ elsif i == 3
+ system("display -geometry +400+0 quiz1.jpg&")
+ sleep(0.5)
+ system("display -geometry +0+0 after3.jpg&")
+ end
+ setpos(0,0)
+ addstr("\n 1:安全 2:危険")
+ refresh
+ start = Time.now
+ answer = getch
+ stop = Time.now
+ rt << [i,answer,stop.to_f - start.to_f]
+ refresh
+
+ system('pkill magick -U `whoami`')
+ setpos(0,0)
+ addstr("\n ")
+ refresh
+ sleep(2)
+ end
+
+ correct = 0
+ total = 0
+ for j in rt
+ total += j[2]
+ if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2")
+ correct += 1
+ end
+ end
+
+ensure
+ close_screen
+end
+
+printf("正答%d回 反応時間%5.3f秒\n", correct, total/10)
diff --git a/reiwa.rb b/reiwa.rb
new file mode 100755
index 0000000..90f3533
--- /dev/null
+++ b/reiwa.rb
@@ -0,0 +1,26 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+
+puts "問題!"
+puts "今の元号は何でしょうか?"
+puts "1:昭和"
+puts "2:平成"
+puts "3:令和"
+
+while true
+ print "答えを入力:"
+ kotae = gets.chomp.to_i
+ if kotae == 1
+ puts "ブブー!不正解・・・"
+ break
+ elsif kotae == 2
+ puta "ブブー!不正解・・・"
+ break
+ elsif kotae == 3
+ puts "ピンポーン!正解!!"
+ break
+ else
+ puts "その選択肢はないよ!"
+ redo
+ end
+end
diff --git a/sannpo.rb b/sannpo.rb
new file mode 100644
index 0000000..6bbebdf
--- /dev/null
+++ b/sannpo.rb
@@ -0,0 +1,14 @@
+# coding: utf-8
+# codi: utf - 8
+puts "爆弾のたいまーを起動します"
+print "爆発する秒数を記入してください:"
+x = gets.chomp.to_i
+puts "爆弾を起動します。"
+
+while x > 0
+ sleep (1)
+ x = x-1
+ printf("%d\n",x+1)
+end
+
+puts "ドカーン"
diff --git a/score.sq3 b/score.sq3
new file mode 100644
index 0000000..bbfec0f
--- /dev/null
+++ b/score.sq3
Binary files differ
diff --git a/shonai.csv b/shonai.csv
new file mode 100644
index 0000000..760ec50
--- /dev/null
+++ b/shonai.csv
@@ -0,0 +1,9 @@
+建物名,住所,特徴
+羽黒山 五重塔,山形県鶴岡市羽黒町手向,羽黒山参道、一の坂上り口の杉並木の中にあり、東北北地方では最古の塔といわれ、平将門の創建と伝えられています。,
+白山島,山形県鶴岡市由良2丁目,"由良海岸のシンボルである島で、3,000万年前の火山性噴火によってできたといわれています。",
+加茂水族館,山形県鶴岡市今泉字大久保657-1,約1万のミズクラゲが漂う直径5mの水槽「クラゲドリームシアター」や「クラゲ解説コーナー」など、「見て、触れて、知る。発見と感動」の展示が行われています。,
+庄内観光物産館 ふるさと本舗,山形県鶴岡市布目字中通80-1,プロが選ぶお土産施設で7位となったお土産屋として、庄内地方をはじめとするお土産・特産品・海産物を数多く取り揃えています。,
+酒田米菓(オランダせんべいFACTORY),山形県酒田市両羽町2-24,「オランダせんべいFACTORY」ではその工程を見学できるほか、お米とせんべいについての歴史や、子供も楽しめるトリックワールドなどがあります。,
+丸池様,山形県飽海郡遊佐町直世荒川57,直径20メートル、水深3.5メートル、湧き水だけで満たされた池です。水の色は幻想的なエメラルドグリーンです。,
+山居倉庫,山形県酒田市山居町1-1-20,米どころ庄内のシンボル山居倉庫。1893(明治26)年に建てられた米保管倉庫です。米の積出港として賑わった酒田の歴史を今に伝えています。,
+道の駅「とざわ」高麗館,山形県最上郡戸沢村蔵岡黒淵3008-1,最上川舟下りで知られる戸沢村にある道の駅。韓国文化を再現した建物が特徴で、ビビンバや冷麺など本格的な韓国料理が味わえるレストランが併設されています。,
\ No newline at end of file
diff --git a/shonaiben_translator.rb b/shonaiben_translator.rb
new file mode 100644
index 0000000..18ce909
--- /dev/null
+++ b/shonaiben_translator.rb
@@ -0,0 +1,44 @@
+#!/usr/koeki/bin/ruby
+# -*- coding: utf-8 -*-
+
+def levenshtein(string1, string2, memo={}) # レーベンシュタイン距離を計算するメソッド
+ return memo[[string1, string2]] if memo[[string1, string2]]
+ return string2.size if string1.empty?
+ return string1.size if string2.empty?
+ return levenshtein(string1[1..], string2[1..], memo) if string1[0] == string2[0]
+ min_dist = 1 + [levenshtein(string1[1..], string2, memo),
+ levenshtein(string1, string2[1..], memo),
+ levenshtein(string1[1..], string2[1..], memo)
+ ].min
+ memo[[string1, string2]] = min_dist
+ min_dist
+end
+
+source = File.readlines("shounaiben.txt") # 庄内弁の文章をファイルから読み込み、配列に保存
+candidates = File.readlines("kyoutsuugo.txt") # 共通語の訳文をファイルから読み込み、配列に保存
+
+i = 0
+while i < source.length # 庄内弁の文章ごとに同じ処理を繰り返す
+ dist2target = levenshtein(source[i].chomp, candidates[i].chomp) # 正解訳文への編集距離の計算
+ min_dist = dist2target # 最短編集距離の初期値(=正解訳文への編集距離)
+ count_same_or_lower = 0 # 編集距離が正解への距離以下である文章の総数の初期値
+ best_cand = candidates[i].chomp # 最短編集距離の訳文の初期値(=正解訳文)
+ for cand in candidates # それぞれの共通語の文章への編集距離を調べる
+ dist = levenshtein(source[i].chomp, cand.chomp)
+ if dist < min_dist
+ min_dist = dist
+ best_cand = cand
+ end
+ if dist <= dist2target
+ count_same_or_lower += 1
+ end
+ end
+ printf("庄内弁の文章: %s\n", source[i].chomp)
+ printf("共通語の訳文(正解): %s\n", candidates[i].chomp)
+ printf("最短編集距離の訳文: %s\n", best_cand.chomp)
+ printf("正解訳文への編集距離: %d\n", dist2target)
+ printf("最短編集距離: %d\n", min_dist)
+ printf("編集距離が正解訳文への距離以下である文章の総数: %d\n", count_same_or_lower)
+ puts
+ i += 1
+end
\ No newline at end of file
diff --git a/shounaiben.txt b/shounaiben.txt
new file mode 100644
index 0000000..8266081
--- /dev/null
+++ b/shounaiben.txt
@@ -0,0 +1,13 @@
+いや~今日のテストわがらねぐでよいでねけ~
+わがらねたってなんでもね~
+なんでもでねんでろおめだだめだんねあんが
+ちゃんと勉強しねど偉ぐならんねさげの~
+偉ぐなんてなんねぐてもいさげ
+しゃべっちょこいでねでちゃっちゃど勉強せ
+だだはいっつもやがましちゃ
+いがの~言うごど聞がねどごげっぞ
+したって今日のテストのプリントどごさやたがわがらねもの~
+わがらねどちゃんとさがして勉強せ
+勉強の前さままかせでくれ
+ほれいっぺけ~
+せばく~
\ No newline at end of file
diff --git a/six.rb b/six.rb
new file mode 100755
index 0000000..c2f34db
--- /dev/null
+++ b/six.rb
@@ -0,0 +1,5 @@
+#!/usr/bin/env ruby
+# coding: utf-8
+# -*- cobing: utf-8
+
+print("加湿器を買おう。")
diff --git a/taima-.rb b/taima-.rb
new file mode 100644
index 0000000..a5f1c63
--- /dev/null
+++ b/taima-.rb
@@ -0,0 +1,42 @@
+# coding: utf-8
+puts "タイマーとストップウォッチどちらがいいですか?"
+
+while true
+puts "タイマーなら1、ストップウォッチは2を入力してください"
+puts "終了したいなら3を押してください"
+ erabu = gets.to_i
+ if erabu == 1
+ puts "タイマーを起動します"
+ print "秒数を記入してください:"
+ x = gets.chomp.to_i
+ puts "タイマーをスタートします"
+
+ while x > 0 #xが0以上の場合
+ sleep (1) #1秒待つ
+ x = x - 1 #xから1を引く
+ printf("%d\n", x) #秒数を表示
+ end
+ puts "時間になりました"
+ sleep (1)
+
+ elsif erabu == 2 #ここからは一部予習
+ puts "ストップウォッチを起動します"
+ puts "enterキーでスタート,ストップ"
+ saisyo = gets.chomp #gets.chompで待機させる
+ kaisi = Time.now.to_i #タイマースタート
+ teisi = gets.chomp
+ syuryo = Time.now.to_i #タイマーストップ
+ taimu = syuryo - kaisi #開始時間から終了時間を引く
+ printf("タイムは%d秒です\n", taimu) #タイム表示
+ sleep (1)
+
+ elsif erabu == 3
+ puts "このプログラムを終了します"
+ break
+ else
+ puts "その選択肢はありません"
+ next
+ end
+puts
+puts
+end
diff --git a/tenmon.txt b/tenmon.txt
new file mode 100644
index 0000000..96fa89c
--- /dev/null
+++ b/tenmon.txt
@@ -0,0 +1,12 @@
+アンドロメダ Andoromeda 秋
+オリオン Orion 冬
+オトメ Virgo 春
+ミズガメ Aquarius 秋
+ワシ Aquila 夏
+カシオペヤ Cassiopeia 秋
+オヒツジ Aries 秋
+テンビン Libra 春
+カニ Cancer 春
+フタゴ Gemini 冬
+ウオ Pisces 秋
+トカゲ Lecerta 秋
diff --git a/web.csv b/web.csv
new file mode 100644
index 0000000..9c33ad2
--- /dev/null
+++ b/web.csv
@@ -0,0 +1,9 @@
+place,url
+羽黒山 五重塔,http://www.dewasanzan.jp/publics/index/71/
+白山島,https://mokkedano.net/spot/30325
+加茂水族館,http://kamo-kurage.jp/
+庄内観光物産館 ふるさと本舗,https://www.shoko-corpo.jp/bussan/
+酒田米菓(オランダせんべいFACTORY),https://www.sakatabeika.co.jp/
+丸池様,https://mokkedano.net/spot/30180
+山居倉庫,https://www.pref.yamagata.jp/110001/sangyo/sangyoushinkou/him_top/him_maincat4/him_05.html
+道の駅「とざわ」高麗館,http://www.kouraikan.com/
\ No newline at end of file