md2site 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +30 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +138 -0
  6. data/.rubocop_todo.yml +47 -0
  7. data/.travis.yml +7 -0
  8. data/Gemfile +8 -0
  9. data/Gemfile.lock +98 -0
  10. data/LICENSE +8 -0
  11. data/LICENSE.txt +8 -0
  12. data/README.md +39 -0
  13. data/Rakefile +6 -0
  14. data/bin/console +14 -0
  15. data/bin/md2site +157 -0
  16. data/bin/setup +8 -0
  17. data/data/conf/conf-sample.yml +5 -0
  18. data/data/conf/conf.sh +32 -0
  19. data/data/conf/setting.yml +3 -0
  20. data/data/conf/site.tsv +1 -0
  21. data/data/template/5col_no_attr.erb +72 -0
  22. data/data/template/5col_no_attr_b.erb +72 -0
  23. data/data/template/functions_static.erb +10 -0
  24. data/data/template/functions_variable.erb +3 -0
  25. data/data/template2/contest_notification.erb +16 -0
  26. data/data/template2/contest_notification_2.erb +34 -0
  27. data/data/template2/contest_winners.erb +69 -0
  28. data/data/template2/contest_winners_statement.erb +1 -0
  29. data/data/testdata/conf-blog.yml +6 -0
  30. data/data/testdata/conf-download.yml +6 -0
  31. data/data/testdata/conf-link.yml +6 -0
  32. data/data/testdata/conf-profile.yml +6 -0
  33. data/data/testdata/conf-top.yml +6 -0
  34. data/data/testdata/site.tsv +5 -0
  35. data/data/testdata0/conf-appliction.yml +1 -0
  36. data/data/testdata0/conf-attempt.yml +69 -0
  37. data/data/testdata0/conf-autosar.yml +11 -0
  38. data/data/testdata0/conf-community.yml +3 -0
  39. data/data/testdata0/conf-document.yml +1 -0
  40. data/data/testdata0/conf-download.yml +1 -0
  41. data/data/testdata0/conf-edu.yml +52 -0
  42. data/data/testdata0/conf-etc.yml +1 -0
  43. data/data/testdata0/conf-members.yml +2 -0
  44. data/data/testdata0/conf-product.yml +37 -0
  45. data/data/testdata0/conf-project.yml +14 -0
  46. data/data/testdata0/conf-rtk.yml +25 -0
  47. data/data/testdata0/conf-top.yml +1 -0
  48. data/data/testdata0/setting.yml +33 -0
  49. data/data/testdata0/site.tsv +123 -0
  50. data/lib/md2site/env.rb +649 -0
  51. data/lib/md2site/htmlutils.rb +142 -0
  52. data/lib/md2site/htmlutils0.rb +223 -0
  53. data/lib/md2site/info.rb +17 -0
  54. data/lib/md2site/init.rb +90 -0
  55. data/lib/md2site/listfile.rb +22 -0
  56. data/lib/md2site/make.rb +295 -0
  57. data/lib/md2site/nkfguess.rb +33 -0
  58. data/lib/md2site/setup.rb +358 -0
  59. data/lib/md2site/statusfile.rb +75 -0
  60. data/lib/md2site/testdata.rb +50 -0
  61. data/lib/md2site/testx.rb +73 -0
  62. data/lib/md2site/version.rb +3 -0
  63. data/lib/md2site.rb +161 -0
  64. data/md2site.gemspec +59 -0
  65. metadata +359 -0
@@ -0,0 +1,72 @@
1
+ <% unless defined?(array)
2
+ hs={}
3
+ hs["name"]=name if defined?(name)
4
+ hs["heads"]=heads if defined?(heads)
5
+ hs["items"]=items if defined?(items)
6
+ array=[]
7
+ array << hs
8
+ end
9
+ %>
10
+ <tbody>
11
+ <% array.each do |x| %>
12
+ <% if x["name"] %>
13
+ :colspan="5" class="bh2"><%= x["name"] %>
14
+ <% end %>
15
+ <% if x["heads"] %>
16
+ <% fields = x["heads"].size %>
17
+ <% case fields %>
18
+ <% when 5 %>
19
+ :th><%= x["heads"][0] %>
20
+ ::th><%= x["heads"][1] %>
21
+ :::th><%= x["heads"][2] %>
22
+ ::::th><%= x["heads"][3] %>
23
+ :::::th><%= x["heads"][4] %>
24
+ <% when 4 %>
25
+ :th><%= x["heads"][0] %>
26
+ ::th><%= x["heads"][1] %>
27
+ :::th><%= x["heads"][2] %>
28
+ ::::th><%= x["heads"][3] %>
29
+ <% when 3 %>
30
+ :th><%= x["heads"][0] %>
31
+ ::th><%= x["heads"][1] %>
32
+ :::th><%= x["heads"][2] %>
33
+ <% when 2 %>
34
+ :th><%= x["heads"][0] %>
35
+ ::th><%= x["heads"][1] %>
36
+ <% when 1 %>
37
+ :th><%= x["heads"][0] %>
38
+ <% else %>
39
+ <% # do nothing %>
40
+ <% end %>
41
+ <% end %>
42
+ <% if x["items"] %>
43
+ <% x["items"].each do |y| %>
44
+ <% fields = y.size %>
45
+ <% case fields %>
46
+ <% when 5 %>
47
+ :<%= y[0] %>
48
+ ::<%= y[1] %>
49
+ :::<%= y[2] %>
50
+ ::::<%= y[3] %>
51
+ :::::<%= y[4] %>
52
+ <% when 4 %>
53
+ :<%= y[0] %>
54
+ ::<%= y[1] %>
55
+ :::<%= y[2] %>
56
+ ::::<%= y[3] %>
57
+ <% when 3 %>
58
+ :<%= y[0] %>
59
+ ::<%= y[1] %>
60
+ :::<%= y[2] %>
61
+ <% when 2 %>
62
+ :<%= y[0] %>
63
+ ::<%= y[1] %>
64
+ <% when 1 %>
65
+ : colspan="3" align="right"><%= y[0] %>
66
+ <% else %>
67
+ <% # do nothing %>
68
+ <% end %>
69
+ <% end %>
70
+ <% end %>
71
+ <% end %>
72
+ </tbody>
@@ -0,0 +1,72 @@
1
+ <% unless defined?(array)
2
+ hs={}
3
+ hs["name"]=name if defined?(name)
4
+ hs["heads"]=heads if defined?(heads)
5
+ hs["items"]=items if defined?(items)
6
+ array=[]
7
+ array << hs
8
+ end
9
+ %>
10
+ <tbody>
11
+ <% array.each do |x| %>
12
+ <% if x["name"] %>
13
+ :colspan="5" class="bh2"><%= x["name"] %>
14
+ <% end %>
15
+ <% if x["heads"] %>
16
+ <% fields = x["heads"].size %>
17
+ <% case fields %>
18
+ <% when 5 %>
19
+ :th><%= x["heads"][0] %>
20
+ ::th><%= x["heads"][1] %>
21
+ :::th><%= x["heads"][2] %>
22
+ ::::th><%= x["heads"][3] %>
23
+ :::::th><%= x["heads"][4] %>
24
+ <% when 4 %>
25
+ :th><%= x["heads"][0] %>
26
+ ::th><%= x["heads"][1] %>
27
+ :::th><%= x["heads"][2] %>
28
+ ::::th><%= x["heads"][3] %>
29
+ <% when 3 %>
30
+ :th><%= x["heads"][0] %>
31
+ ::th><%= x["heads"][1] %>
32
+ :::th><%= x["heads"][2] %>
33
+ <% when 2 %>
34
+ :th><%= x["heads"][0] %>
35
+ ::th><%= x["heads"][1] %>
36
+ <% when 1 %>
37
+ :th><%= x["heads"][0] %>
38
+ <% else %>
39
+ <% # do nothing %>
40
+ <% end %>
41
+ <% end %>
42
+ <% if x["items"] %>
43
+ <% x["items"].each do |y| %>
44
+ <% fields = y.size %>
45
+ <% case fields %>
46
+ <% when 5 %>
47
+ :valign="top" nowrap><%= y[0] %>
48
+ ::<%= y[1] %>
49
+ :::<%= y[2] %>
50
+ ::::<%= y[3] %>
51
+ :::::<%= y[4] %>
52
+ <% when 4 %>
53
+ :valign="top" nowrap><%= y[0] %>
54
+ ::<%= y[1] %>
55
+ :::<%= y[2] %>
56
+ ::::<%= y[3] %>
57
+ <% when 3 %>
58
+ :valign="top" nowrap><%= y[0] %>
59
+ ::<%= y[1] %>
60
+ :::<%= y[2] %>
61
+ <% when 2 %>
62
+ :valign="top" nowrap><%= y[0] %>
63
+ ::<%= y[1] %>
64
+ <% when 1 %>
65
+ : colspan="3" align="right"><%= y[0] %>
66
+ <% else %>
67
+ <% # do nothing %>
68
+ <% end %>
69
+ <% end %>
70
+ <% end %>
71
+ <% end %>
72
+ </tbody>
@@ -0,0 +1,10 @@
1
+ def getFileTypeImage(str)
2
+ case str
3
+ when "pdf"
4
+ <%= img_pdf %>
5
+ when "archive"
6
+ <%= img_archive %>
7
+ else
8
+ ""
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ def fileRead(path)
2
+ File.read( File.join(<%= parentDir %>, path) )
3
+ end
@@ -0,0 +1,16 @@
1
+ <table align="center" width="540" border="1" cellpadding="3" cellspacing="0" id="<%= attr_id %>">
2
+ :class="bh2"><%= title %>
3
+ :
4
+ <%= statement %>
5
+
6
+ <% if period and !period.empty? %>
7
+ 募集期間: <%= period %>
8
+ <% end %>
9
+
10
+ <table border="0" align="center">
11
+ <% files.each do |x| %>
12
+ :width="10" valign="top"><%= getFileTypeImage(x["file_type"]) %>
13
+ ::[<%= x["file_title"] %>](<%= x["url"] %>)<br>(公開:<%= x["publish"] %>、最終更新:<%= x["last_update"] %>)
14
+ <% end %>
15
+ </table>
16
+ </table>
@@ -0,0 +1,34 @@
1
+ <table align="center" width="540" border="1" cellpadding="3" cellspacing="0" id="<%= attr_id %>">
2
+ :class="bh2"><%= title %>
3
+ :
4
+ <%= statement %>
5
+
6
+ 募集期間: <%= period %>
7
+
8
+ <table border="0" align="center">
9
+ <% files.each do |x| %>
10
+ :width="10" valign="top"><%= getFileTypeImage(x["file_type"]) %>
11
+ ::[<%= x["file_title"] %>](<%= x["url"] %>)<br>(公開:<%= x["publish"] %>、最終更新:<%= x["last_update"] %>)
12
+ <% end %>
13
+ </table>
14
+
15
+ <table border="0" align="left">
16
+ <% organizations.each do |x| %>
17
+ :width="50" valign="top"> <%= x["kind"] %>:
18
+ ::<%= x["orgs"].map{ |y| y["name"] }.join("<br>") %>
19
+ <% end %>
20
+ </table>
21
+
22
+ <table border="0" align="center">
23
+ <% organizations.each do |x|
24
+ if x["kind"] == "協賛"
25
+ x["orgs"].each_with_index do |y,index| %>
26
+ <%= ':'*(index+1) %>width="180" height="50" align="center"><a href=<%= %Q!"#{y["url"]}"! %> target="_blank"><%= y["img_src"] %></a>
27
+ <%
28
+ end
29
+ end
30
+ end
31
+ %>
32
+ </table>
33
+
34
+ </table>
@@ -0,0 +1,69 @@
1
+ <% unless defined?(array)
2
+ array=[{"category" => category, "items" => items}]
3
+ else
4
+ xarray=[]
5
+ array.each do |c|
6
+ if c["category"]
7
+ category=c["category"]
8
+ end
9
+ if c["items"]
10
+ if c["items"][0]
11
+ if c["items"][0]["class"]
12
+ c["items"].each do |y|
13
+ v={}
14
+ if category
15
+ v["category"]=category
16
+ category=nil
17
+ end
18
+ v["name"]=y["class"]
19
+ v["items"]=y["items"]
20
+ xarray << v
21
+ end
22
+ else
23
+ v={}
24
+ if category
25
+ v["category"]=category
26
+ category=nil
27
+ end
28
+ v["name"]=nil
29
+ v["items"]=c["items"]
30
+ xarray << v
31
+ end
32
+ end
33
+ end
34
+ end
35
+ array=xarray
36
+ end
37
+ %>
38
+ <%
39
+ array.each do |c|
40
+ if c["category"] %>
41
+ <%= %Q!* #{c["category"]}! %>
42
+ <%
43
+ end %>
44
+ <%
45
+ if c["name"] %>
46
+ <%= %Q!◆ #{c["name"]}! %>
47
+ <%
48
+ end
49
+ if c["items"]
50
+ c["items"].each do |x| %>
51
+ <table align="center" width="500" border=1>
52
+ :class="bh2" colspan="2"><%= x["prize"] %>
53
+ <table align="center" border="0">
54
+ :align="center"><%= x["work"] %>
55
+ :align="center"><%= x["applicant"] %>
56
+ </table>
57
+ <% if x["files"] %>
58
+ <table align="center" border="0">
59
+ <% x["files"].each do |y| %>
60
+ :<%= getFileTypeImage(y["file_type"]) %>
61
+ ::[<%= y["file_title"] %>](<%= y["url"] %>)
62
+ <% end %>
63
+ </table>
64
+ <% end %>
65
+ </table>
66
+ <%
67
+ end
68
+ end
69
+ end %>
@@ -0,0 +1 @@
1
+ <%= statement %>
@@ -0,0 +1,6 @@
1
+ blog:
2
+ #sample:
3
+ #sample2:
4
+ # - sample2,:include,sample/sample2/work
5
+ #sample3:
6
+ # - sample3_timetable,5col_no_attr_b.erb
@@ -0,0 +1,6 @@
1
+ download:
2
+ #sample:
3
+ #sample2:
4
+ # - sample2,:include,sample/sample2/work
5
+ #sample3:
6
+ # - sample3_timetable,5col_no_attr_b.erb
@@ -0,0 +1,6 @@
1
+ link:
2
+ #sample:
3
+ #sample2:
4
+ # - sample2,:include,sample/sample2/work
5
+ #sample3:
6
+ # - sample3_timetable,5col_no_attr_b.erb
@@ -0,0 +1,6 @@
1
+ profile:
2
+ #sample:
3
+ #sample2:
4
+ # - sample2,:include,sample/sample2/work
5
+ #sample3:
6
+ # - sample3_timetable,5col_no_attr_b.erb
@@ -0,0 +1,6 @@
1
+ top:
2
+ #sample:
3
+ #sample2:
4
+ # - sample2,:include,sample/sample2/work
5
+ #sample3:
6
+ # - sample3_timetable,5col_no_attr_b.erb
@@ -0,0 +1,5 @@
1
+ t t top index.html
2
+ b b blog wordpress
3
+ p p profile profile.html
4
+ d d download download.html
5
+ l l link links.html
@@ -0,0 +1 @@
1
+ applications:
@@ -0,0 +1,69 @@
1
+ conference2018:
2
+ entrust:
3
+ etrobo:
4
+ newsletter:
5
+ press:
6
+ public_funding:
7
+ puboffer:
8
+ contest:
9
+ - contest2018,:include,attempt/contest2018/work
10
+ - contest2017,:include,attempt/contest2017/work
11
+ - contest2016,:include,attempt/contest2016/work
12
+ - contest2015,:include,attempt/contest2015/work
13
+ - contest2014,:include,attempt/contest2014/work
14
+ - contest2013,:include,attempt/contest2013/work
15
+ - contest2012,:include,attempt/contest2012/work
16
+ - contest2011,:include,attempt/contest2011/work
17
+ contest_archive:
18
+ - contest2018,:include,attempt/contest2018/work
19
+ - contest2017,:include,attempt/contest2017/work
20
+ - contest2016,:include,attempt/contest2016/work
21
+ - contest2015,:include,attempt/contest2015/work
22
+ - contest2014,:include,attempt/contest2014/work
23
+ - contest2013,:include,attempt/contest2013/work
24
+ - contest2012,:include,attempt/contest2012/work
25
+ - contest2011,:include,attempt/contest2011/work
26
+ contest2011:
27
+ - notification,contest_notification.erb
28
+ - winners,contest_winners.erb
29
+ - winners_statement,contest_winners_statement.erb
30
+ contest2012:
31
+ - notification,contest_notification.erb
32
+ - winners,contest_winners.erb
33
+ - winners_statement,contest_winners_statement.erb
34
+ contest2013:
35
+ - notification,contest_notification.erb
36
+ - winners,contest_winners.erb
37
+ - winners_statement,contest_winners_statement.erb
38
+ contest2014:
39
+ - notification,contest_notification.erb
40
+ - winners,contest_winners.erb
41
+ - winners_statement,contest_winners_statement.erb
42
+ contest2015:
43
+ - notification,contest_notification.erb
44
+ - winners,contest_winners.erb
45
+ - winners_statement,contest_winners_statement.erb
46
+ contest2016:
47
+ - winners,contest_winners.erb
48
+ - notification,contest_notification.erb
49
+ - winners_statement,contest_winners_statement.erb
50
+ contest2017:
51
+ - notification,contest_notification_2.erb
52
+ - winners,contest_winners.erb
53
+ - winners_statement,contest_winners_statement.erb
54
+ contest2018:
55
+ - notification,contest_notification_2.erb
56
+ - winners,contest_winners.erb
57
+ - winners_statement,contest_winners_statement.erb
58
+ devconf2016:
59
+ - timetable_day1,5col_no_attr_b.erb
60
+ - timetable_day2,5col_no_attr_b.erb
61
+ - timetable_day3,5col_no_attr_b.erb
62
+ devconf2017:
63
+ - timetable_day1,5col_no_attr_b.erb
64
+ - timetable_day2,5col_no_attr_b.erb
65
+ - timetable_day3,5col_no_attr_b.erb
66
+ devconf2018:
67
+ - timetable_day1,5col_no_attr_b.erb
68
+ - timetable_day2,5col_no_attr_b.erb
69
+ - timetable_day3,5col_no_attr_b.erb
@@ -0,0 +1,11 @@
1
+ a_can_download:
2
+ a_comstack_download:
3
+ a_comstack:
4
+ a_osbench:
5
+ a_rtegen_download:
6
+ a_rtegen:
7
+ a_wdg_download:
8
+ a_wdgstack:
9
+ atk2_download:
10
+ atk2_e_download:
11
+ atk2:
@@ -0,0 +1,3 @@
1
+ community:
2
+ ide:
3
+ software:
@@ -0,0 +1 @@
1
+ documents:
@@ -0,0 +1 @@
1
+ download:
@@ -0,0 +1,52 @@
1
+ edu_base1:
2
+ - for_instructor_members
3
+ - members
4
+ edu_base123_2013:
5
+ - base1_timetable_day1
6
+ - base1_timetable_day2
7
+ - base2_timetable_day1
8
+ - base2_timetable_day2
9
+ - base3_timetable_day1
10
+ - base3_timetable_day2
11
+ - members
12
+ edu_base12_2014:
13
+ - base1_timetable_day1
14
+ - base1_timetable_day2
15
+ - base2_timetable_day1
16
+ - base2_timetable_day2
17
+ - members
18
+ edu_base12_2015:
19
+ - base1_timetable_day1
20
+ - base1_timetable_day2
21
+ - base2_timetable_day1
22
+ - base2_timetable_day2
23
+ edu_base12_2016:
24
+ - base1_timetable_day1
25
+ - base1_timetable_day2
26
+ - base2_timetable_day1
27
+ - base2_timetable_day2
28
+ edu_base2:
29
+ - timetable_day1_output
30
+ - timetable_day2_output
31
+ - members
32
+ edu_base3:
33
+ - timetable_day1_output
34
+ - timetable_day2_output
35
+ - members
36
+ edu_basebp:
37
+ - base1_timetable_day1
38
+ - base1_timetable_day2
39
+ - base2_timetable_day1
40
+ - base2_timetable_day2
41
+ - base3_timetable_day1
42
+ - base3_timetable_day2
43
+ edu_basehd:
44
+ edu_baseplatform:
45
+ edu_begin:
46
+ - timetable
47
+ - members
48
+ - pre_members
49
+ edu_download:
50
+ edu_middle:
51
+ edu_robot:
52
+ edu_shishi:
@@ -0,0 +1 @@
1
+ books:
@@ -0,0 +1,2 @@
1
+ events_members:
2
+ members:
@@ -0,0 +1,37 @@
1
+ builder:
2
+ cfg:
3
+ clm_download:
4
+ clm:
5
+ cxx_api:
6
+ cxx_download:
7
+ dlm:
8
+ ecnl_download:
9
+ ecnl:
10
+ fatfs_download:
11
+ fatfs:
12
+ mda_download:
13
+ mda:
14
+ mdcom:
15
+ park:
16
+ products:
17
+ rll:
18
+ safeg:
19
+ sim:
20
+ ssp_kernel:
21
+ tecs:
22
+ - tecs_specific,5col_no_attr.erb
23
+ - tecs_mruby_ev3rt,5col_no_attr.erb
24
+ - tecs_mruby_grpeach_tecs
25
+ tecs_archive:
26
+ - tecs_e_package
27
+ - tecs_tecscde
28
+ - tecs_mruby_bridge
29
+ - tecs_mruby_asp
30
+ - tecs_atk1_tecs
31
+ - tecs_edu_stm32
32
+ testsuites_download:
33
+ testsuites:
34
+ tinet_download:
35
+ tinet:
36
+ tlv:
37
+ ttsp:
@@ -0,0 +1,14 @@
1
+ contacts:
2
+ events_public:
3
+ index:
4
+ joinus:
5
+ license:
6
+ logo:
7
+ mascot:
8
+ old_wg:
9
+ org:
10
+ prize:
11
+ project:
12
+ projmembers:
13
+ report:
14
+ rulebook:
@@ -0,0 +1,25 @@
1
+ asp_d_download:
2
+ asp_e_download:
3
+ asp_kernel:
4
+ asp3_d_download:
5
+ asp3_e_download:
6
+ asp3_kernel:
7
+ atk1_download:
8
+ atk1:
9
+ cfg_download:
10
+ etrobo_jsp:
11
+ fdmp_download:
12
+ fdmp_kernel:
13
+ fi4_download:
14
+ fi4_kernel:
15
+ fmp_d_download:
16
+ fmp_e_download:
17
+ fmp_kernel:
18
+ fmp_old_download:
19
+ hrp_download:
20
+ hrp_kernel:
21
+ hrp2_download:
22
+ hrp2_kernel:
23
+ hrp3_kernel:
24
+ jsp_download:
25
+ jsp_kernel:
@@ -0,0 +1 @@
1
+ index:
@@ -0,0 +1,33 @@
1
+ img_xls: <img src="./imgs/xls.gif" width="16" height="16">
2
+ img_pdf: '%Q!<img src="./imgs/pdf.gif" width="16" height="16">!'
3
+ img_archive: '%Q!<img src="./imgs/archive.gif" width="16" height="16">!'
4
+ img_cqpub: <img src="imgs/cqpub_logo.jpg" width="150">!
5
+ img_afrel: <img src="imgs/afrel_logo.jpg" width="150">
6
+ img_renesas: <img src="imgs/renesas_logo.jpg" width="150">
7
+ img_secretariat: <img src="./imgs/secretariat.gif">
8
+ img_secretariat_2: ![](./imgs/secretariat.gif)
9
+ img_takeuchiat: ![](./imgs/secretariat.gif)
10
+ photo_seminar_081127: <img src="./photos/seminar-081127.jpg" width="200" height="150" alt="基礎1実装講師教育セミナー風景" align="right" border="0">
11
+ photo_seminar_080128: <img src="./photos/seminar-080128.jpg" width="200" height="150" alt="基礎1実装セミナー風景" align="right" border="0">
12
+ photo_seminar_091204: <img src="./photos/seminar-091204.jpg" width="200" height="150" alt="基礎2実装セミナー風景" align="right" border="0">
13
+ photo_seminar_040701: <img src="./photos/seminar-040701.jpg" width="200" height="135" alt="初級実装講師育成セミナー風景" align="right" border="0">
14
+ photo_seminar_040219: <img src="./photos/seminar-040219.jpg" width="200" height="135" alt="初級実装準備セミナー風景" align="right" border="0">
15
+ photo_base1_1307_1: <img src="./photos/base1_1307_1.jpg" width="270" alt="基礎1実装セミナー風景" align="right" border="0">
16
+ photo_base1_1307_2: <img src="./photos/base1_1307_2.jpg" width="270" alt="基礎1実装セミナー風景" align="right" border="0">
17
+ photo_base2_1307_1: <img src="./photos/base2_1307_1.jpg" width="270" alt="基礎2実装セミナー風景" align="right" border="0">
18
+ photo_base2_1307_2: <img src="./photos/base2_1307_2.jpg" width="270" alt="基礎2実装セミナー風景" align="right" border="0">
19
+ photo_base3_1309_1: <img src="./photos/base3_1309_1.jpg" width="270" alt="基礎3実装セミナー風景" align="right" border="0">
20
+ photo_base1_1_2014: <img src="./photos/base1-1-2014.jpg" width="270" alt="基礎1実装セミナー風景" align="right" border="0">
21
+ photo_base1_2_2014: <img src="./photos/base1-2-2014.jpg" width="270" alt="基礎1実装セミナー風景" align="right" border="0">
22
+ photo_base2_1_2014: <img src="./photos/base2-1-2014.jpg" width="270" alt="基礎2実装セミナー風景" align="right" border="0">
23
+ photo_base2_2_2014: <img src="./photos/base2-2-2014.jpg" width="270" alt="基礎2実装セミナー風景" align="right" border="0">
24
+ photo_base3_1212_1: <img src="./photos/base3_1212_1.jpg" width="270" alt="基礎3実装セミナー風景" align="right" border="0">
25
+ photo_base3_1212_2: <img src="./photos/base3_1212_2.jpg" width="270" alt="基礎3実装セミナー風景" align="right" border="0">
26
+ contest_2018_dir: ./docs/contest/2018
27
+ contest_2017_dir: ./docs/contest/2017
28
+ contest_2016_dir: ./docs/contest/2016
29
+ contest_2015_dir: ./docs/contest/2015
30
+ contest_2014_dir: ./docs/contest/2014
31
+ contest_2013_dir: ./docs/contest/2013
32
+ contest_2012_dir: ./docs/contest/2012
33
+ contest_2011_dir: ./docs/contest