diff --git a/SilkReRoad/quiz/image/a.jpg b/SilkReRoad/quiz/image/a.jpg new file mode 100644 index 0000000..db330c1 --- /dev/null +++ b/SilkReRoad/quiz/image/a.jpg Binary files differ diff --git a/SilkReRoad/quiz/image/b.jpg b/SilkReRoad/quiz/image/b.jpg new file mode 100644 index 0000000..08de687 --- /dev/null +++ b/SilkReRoad/quiz/image/b.jpg Binary files differ diff --git a/SilkReRoad/quiz/lib/csv.min.js b/SilkReRoad/quiz/lib/csv.min.js new file mode 100644 index 0000000..e10eb33 --- /dev/null +++ b/SilkReRoad/quiz/lib/csv.min.js @@ -0,0 +1 @@ +!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():t.CSV=e()}(this,function(){"use strict";function t(t){var e=typeof t;return"function"===e||"object"===e&&!!t}function e(t){return"string"==typeof t}function n(t){return!isNaN(+t)}function i(t){return 0==t||1==t}function r(t){return null==t}function o(t){return null!=t}function c(t,e){return o(t)?t:e}function u(t,e){for(var n=0,i=t.length;i>n&&e(t[n],n)!==!1;n+=1);}function s(t){return t.replace(/"/g,'\\"')}function a(t){return"attrs["+t+"]"}function l(t,e){return n(t)?"Number("+a(e)+")":i(t)?"Boolean("+a(e)+" == true)":"String("+a(e)+")"}function f(t,n,i,r){var o=[];return 3==arguments.length?(n?g(n)?u(i,function(i,r){e(n[r])?n[r]=n[r].toLowerCase():t[n[r]]=n[r],o.push("deserialize[cast["+r+"]]("+a(r)+")")}):u(i,function(t,e){o.push(l(t,e))}):u(i,function(t,e){o.push(a(e))}),o="return ["+o.join(",")+"]"):(n?g(n)?u(i,function(i,c){e(n[c])?n[c]=n[c].toLowerCase():t[n[c]]=n[c],o.push('"'+s(r[c])+'": deserialize[cast['+c+"]]("+a(c)+")")}):u(i,function(t,e){o.push('"'+s(r[e])+'": '+l(t,e))}):u(i,function(t,e){o.push('"'+s(r[e])+'": '+a(e))}),o="return {"+o.join(",")+"}"),Function("attrs","deserialize","cast",o)}function h(t,e){var n,i=0;return u(e,function(e){var r,o=e;-1!=p.indexOf(e)&&(o="\\"+o),r=t.match(RegExp(o,"g")),r&&r.length>i&&(i=r.length,n=e)}),n||e[0]}var p=["|","^"],d=[",",";"," ","|","^"],m=["\r\n","\r","\n"],g=Array.isArray||function(t){return"[object Array]"===toString.call(t)},y=function(){function n(t,n){if(n||(n={}),g(t))this.mode="encode";else{if(!e(t))throw Error("Incompatible format!");this.mode="parse"}this.data=t,this.options={header:c(n.header,!1),cast:c(n.cast,!0)};var i=n.lineDelimiter||n.line,r=n.cellDelimiter||n.delimiter;this.isParser()?(this.options.lineDelimiter=i||h(this.data,m),this.options.cellDelimiter=r||h(this.data,d),this.data=o(this.data,this.options.lineDelimiter)):this.isEncoder()&&(this.options.lineDelimiter=i||"\r\n",this.options.cellDelimiter=r||",")}function i(t,e,n,i,r){t(new e(n,i,r))}function o(t,e){return t.slice(-e.length)!=e&&(t+=e),t}function s(n){return g(n)?"array":t(n)?"object":e(n)?"string":r(n)?"null":"primitive"}return n.prototype.set=function(t,e){return this.options[t]=e},n.prototype.isParser=function(){return"parse"==this.mode},n.prototype.isEncoder=function(){return"encode"==this.mode},n.prototype.parse=function(t){function e(){s={escaped:!1,quote:!1,cell:!0}}function n(){m.cell=""}function r(){m.line=[]}function o(t){m.line.push(s.escaped?t.slice(1,-1).replace(/""/g,'"'):t),n(),e()}function c(t){o(t.slice(0,1-p.lineDelimiter.length))}function u(){d?g(d)?(a=f(y,p.cast,m.line,d),(u=function(){i(t,a,m.line,y,p.cast)})()):d=m.line:(a||(a=f(y,p.cast,m.line)),(u=function(){i(t,a,m.line,y,p.cast)})())}if("parse"==this.mode){if(0===this.data.trim().length)return[];var s,a,l,h=this.data,p=this.options,d=p.header,m={cell:"",line:[]},y=this.deserialize;t||(l=[],t=function(t){l.push(t)}),1==p.lineDelimiter.length&&(c=o);var v,A,D,b=h.length,j=p.cellDelimiter.charCodeAt(0),w=p.lineDelimiter.charCodeAt(p.lineDelimiter.length-1);for(e(),v=0,A=0;b>v;v++)D=h.charCodeAt(v),s.cell&&(s.cell=!1,34==D)?s.escaped=!0:s.escaped&&34==D?s.quote=!s.quote:(s.escaped&&s.quote||!s.escaped)&&(D==j?(o(m.cell+h.slice(A,v)),A=v+1):D==w&&(c(m.cell+h.slice(A,v)),A=v+1,(m.line.length>1||""!==m.line[0])&&u(),r()));return l?l:this}},n.prototype.deserialize={string:function(t){return t+""},number:function(t){return+t},"boolean":function(t){return!!t}},n.prototype.serialize={object:function(t){var e=this,n=Object.keys(t),i=Array(n.length);return u(n,function(n,r){i[r]=e[s(t[n])](t[n])}),i},array:function(t){var e=this,n=Array(t.length);return u(t,function(t,i){n[i]=e[s(t)](t)}),n},string:function(t){return'"'+(t+"").replace(/"/g,'""')+'"'},"null":function(){return""},primitive:function(t){return t}},n.prototype.encode=function(t){function n(t){return t.join(c.cellDelimiter)}if("encode"==this.mode){if(0==this.data.length)return"";var i,r,o=this.data,c=this.options,a=c.header,l=o[0],f=this.serialize,h=0;t||(r=Array(o.length),t=function(t,e){r[e+h]=t}),a&&(g(a)||(i=Object.keys(l),a=i),t(n(f.array(a)),0),h=1);var p,d=s(l);return"array"==d?(g(c.cast)?(p=Array(c.cast.length),u(c.cast,function(t,n){e(t)?p[n]=t.toLowerCase():(p[n]=t,f[t]=t)})):(p=Array(l.length),u(l,function(t,e){p[e]=s(t)})),u(o,function(e,i){var r=Array(p.length);u(e,function(t,e){r[e]=f[p[e]](t)}),t(n(r),i)})):"object"==d&&(i=Object.keys(l),g(c.cast)?(p=Array(c.cast.length),u(c.cast,function(t,n){e(t)?p[n]=t.toLowerCase():(p[n]=t,f[t]=t)})):(p=Array(i.length),u(i,function(t,e){p[e]=s(l[t])})),u(o,function(e,r){var o=Array(i.length);u(i,function(t,n){o[n]=f[p[n]](e[t])}),t(n(o),r)})),r?r.join(c.lineDelimiter):this}},n.prototype.forEach=function(t){return this[this.mode](t)},n}();return y.parse=function(t,e){return new y(t,e).parse()},y.encode=function(t,e){return new y(t,e).encode()},y.forEach=function(t,e,n){return 2==arguments.length&&(n=e),new y(t,e).forEach(n)},y}); \ No newline at end of file diff --git a/SilkReRoad/quiz/mondai.html b/SilkReRoad/quiz/mondai.html new file mode 100644 index 0000000..930c288 --- /dev/null +++ b/SilkReRoad/quiz/mondai.html @@ -0,0 +1,29 @@ + + + + + + 鶴岡と養蚕の歴史 + + + + +
+ +

問題のたいとる

+

問題文

+ + + + + +
+
+ + + + + diff --git a/SilkReRoad/quiz/mondai.js b/SilkReRoad/quiz/mondai.js new file mode 100644 index 0000000..d8aa7b5 --- /dev/null +++ b/SilkReRoad/quiz/mondai.js @@ -0,0 +1,50 @@ +function init() { + var number = 0; // Current quiz Number + var csvquestion; // Questions read from "quiz.csv" + + function prepare(n) { // Prepare Question Page of Number n + var qn = csvquestion[n]; + for (var id of ["title", "q", "choice0", "choice1", "choice2"]) { + document.getElementById(id).innerHTML = qn[id]; + } + document.forms[0].reset(); // Reset radio buttons + document.getElementById("image").setAttribute("src", "image/"+qn.image); + } + function judge() { + var input = document.forms[0].q1.value; + var selection = parseInt(input); + var q = csvquestion[number]; + var ans = q.a + var output = document.getElementById("output"); + output.innerHTML = ""; + if (input == "") { + alert('ボタンが選択されていません。'); + return; + } else if (selection == ans) { + output.innerHTML = "正解です: " + } else { + output.innerHTML = "不正解です: "; + } + output.innerHTML += q["comment"+selection]; + } + function prev() { + number = Math.max(0, number-1); + prepare(number); + } + function next() { + number = Math.min(number+1, csvquestion.length-1); + prepare(number); + } + fetch("./quiz.csv", {method: "GET"}). + then(function(resp) { + return resp.text().then(function(text) { + csvquestion = new CSV(text, {header: true}).parse(); + prepare(0); + }); + }); + document.getElementById("judge").addEventListener("click", judge); + document.getElementById("prev").addEventListener("click", prev); + document.getElementById("next").addEventListener("click", next); + // prepare(0); +} +window.onload = init; diff --git a/SilkReRoad/quiz/ods2csv.rb b/SilkReRoad/quiz/ods2csv.rb new file mode 100755 index 0000000..1d364af --- /dev/null +++ b/SilkReRoad/quiz/ods2csv.rb @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +Encoding.default_external = 'utf-8' +require 'roo' + +ARGV.each do |f| + csvfile = (f+".csv").sub(/\.ods/i, "") + open(csvfile, "w"){|c| c.write(Roo::OpenOffice.new(f).to_csv)} +end diff --git a/SilkReRoad/quiz/quiz.csv b/SilkReRoad/quiz/quiz.csv new file mode 100644 index 0000000..b1a092e --- /dev/null +++ b/SilkReRoad/quiz/quiz.csv @@ -0,0 +1,3 @@ +"title","q","choice0","choice1","choice2","a","comment0","comment1","comment2","image" +"養蚕編-問題1","鶴岡を含む庄内地域は、あることに関して日本唯一の地域であると言われてます。その「あること」とは次のうちどれでしょう?","絹織物の一貫した生産工程があること","力織機(りきしょっき)が作られたこと。","蚕(かいこ)を利用した養蚕業(ようさんぎょう)が行われていること",0,"庄内地域は「養蚕」、「製糸」、「製織」、「精練」、「捺染」、「縫製」といった絹織物の一貫した生産工程が集約されている日本で唯一の地域です。","力織機は庄内地域だけではなく、多くの場所で作られています。","養蚕業は日本各地で行われています。","a.jpg" +"養蚕編-問題2","「鶴岡シルク」の始まりは庄内藩の武士がある戦争に敗れたことがきっかけになっていると言えます。その戦争の名称は何でしょう","太平洋戦争","下関戦争","戊辰戦争",2,"太平洋戦争は第二次世界大戦の局面の1つです。","下関戦争は長州藩とイギリス・フランス・オランダ・アメリカの列強四国との間に起きた、武力衝突事件の事です。","戊辰戦争に敗れた庄内藩の武士が、刀を鍬(くわ)にかえて原生林を開墾したことが「鶴岡シルク」のはじまりと言われています。","b.jpg" diff --git a/SilkReRoad/quiz/quiz.ods b/SilkReRoad/quiz/quiz.ods new file mode 100644 index 0000000..623c1ac --- /dev/null +++ b/SilkReRoad/quiz/quiz.ods Binary files differ