coursegen 0.7.1 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +43 -35
- data/lib/coursegen/course/data/citem.rb +2 -1
- data/lib/coursegen/course/data/data_adaptor.rb +2 -0
- data/lib/coursegen/course/helpers/content_helpers.rb +79 -37
- data/lib/coursegen/course/helpers/list_of_helpers.rb +1 -0
- data/lib/coursegen/templates.rb +0 -3
- data/lib/coursegen/version.rb +1 -1
- data/templates/Guardfile +3 -3
- data/templates/Rules +21 -42
- data/templates/cg_config.rb +2 -1
- data/templates/cg_config.rb_sample +24 -30
- data/templates/content/bootstrap/css/custom.css +65 -23
- data/templates/content/bootstrap/css/full-width-pics.css +64 -0
- data/templates/content/bootstrap/css/prettyquote.css +31 -0
- data/templates/content/bootstrap/css/tipuesearch.css +163 -0
- data/templates/content/bootstrap/images/image1.jpg +0 -0
- data/templates/content/bootstrap/images/image10.jpg +0 -0
- data/templates/content/bootstrap/images/image2.jpg +0 -0
- data/templates/content/bootstrap/images/image22.jpg +0 -0
- data/templates/content/bootstrap/images/image3.png +0 -0
- data/templates/content/bootstrap/images/image4.jpg +0 -0
- data/templates/content/bootstrap/images/image8.jpg +0 -0
- data/templates/content/bootstrap/images/image8.png +0 -0
- data/templates/content/bootstrap/images/image9.jpg +0 -0
- data/templates/content/{tipuesearch/img → bootstrap/images}/loader.gif +0 -0
- data/templates/content/bootstrap/images/search.png +0 -0
- data/templates/content/{tipuesearch/tipuesearchnomin.js → bootstrap/js/tipuesearch.js} +106 -171
- data/templates/content/bootstrap/js/tipuesearch.min.js +12 -0
- data/templates/content/bootstrap/js/tipuesearch_content.js +13 -0
- data/templates/content/{tipuesearch → bootstrap/js}/tipuesearch_set.js +8 -7
- data/templates/content/content/intro/course_toc.md.erb +1 -0
- data/templates/layouts/banner.html.erb +9 -0
- data/templates/layouts/body_header.html.erb +4 -3
- data/templates/layouts/bottom_includes.html.erb +15 -0
- data/templates/layouts/course.html.erb +44 -0
- data/templates/layouts/main_navbar.html.erb +1 -1
- data/templates/layouts/nav-menus.html.erb +37 -0
- data/templates/layouts/sidebar.html.erb +14 -0
- data/templates/layouts/top_includes.html.erb +31 -0
- metadata +27 -19
- data/deleteme.rb +0 -2
- data/templates/body_footer.html +0 -8
- data/templates/body_header.html.erb +0 -6
- data/templates/content/chalkmark/chalkmark.js +0 -30
- data/templates/content/tipuesearch/img/search.png +0 -0
- data/templates/content/tipuesearch/tipuesearchmin.js +0 -14
- data/templates/content/tipuesearch_logic/search.md.erb +0 -8
- data/templates/content/tipuesearch_logic/tipuesearch_content.js.erb +0 -6
- data/templates/course.html +0 -59
- data/templates/helpful_box.html +0 -3
- data/templates/layouts/course.html +0 -59
- data/templates/main_navbar.html.erb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e9403029aa45dfc8bf3dc63e07b8fdec5c10dedc74ff77d48043e8a61ac1bdb
|
4
|
+
data.tar.gz: 257ec234d1ea117bf214ba4231d56fce4c561514d8d59161c39873502deab8aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b643b2ef9603c77fb13d4239a788c857d82c90dba2caa25137065e4b780e0c8868ce356e7257ab582686b6bf2b95a882f53c07208d324e1f8738697bee41f1db
|
7
|
+
data.tar.gz: 9df9e0a79160473a63f201352aaf047b4c08383be236b1b98cf1902bc90c211018765db85658b5b26abd945ddd5678995634b1f067f62b36f5996d3256a60215
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
coursegen (0.6
|
4
|
+
coursegen (0.7.6)
|
5
5
|
activesupport
|
6
6
|
adsf
|
7
7
|
byebug
|
@@ -19,29 +19,29 @@ PATH
|
|
19
19
|
GEM
|
20
20
|
remote: https://rubygems.org/
|
21
21
|
specs:
|
22
|
-
activesupport (5.2.
|
22
|
+
activesupport (5.2.3)
|
23
23
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
24
24
|
i18n (>= 0.7, < 2)
|
25
25
|
minitest (~> 5.1)
|
26
26
|
tzinfo (~> 1.1)
|
27
|
-
addressable (2.
|
27
|
+
addressable (2.6.0)
|
28
28
|
public_suffix (>= 2.0.2, < 4.0)
|
29
|
-
adsf (1.4.
|
29
|
+
adsf (1.4.1)
|
30
30
|
rack (>= 1.0.0, < 3.0.0)
|
31
|
-
byebug (
|
31
|
+
byebug (11.0.1)
|
32
32
|
coderay (1.1.2)
|
33
33
|
colored (1.2)
|
34
|
-
concurrent-ruby (1.
|
35
|
-
cri (2.
|
34
|
+
concurrent-ruby (1.1.5)
|
35
|
+
cri (2.15.3)
|
36
36
|
colored (~> 1.2)
|
37
|
-
ddmemoize (1.0.
|
38
|
-
|
37
|
+
ddmemoize (1.0.0)
|
38
|
+
ddmetrics (~> 1.0)
|
39
39
|
ref (~> 2.0)
|
40
|
-
|
41
|
-
|
42
|
-
ffi (1.
|
40
|
+
ddmetrics (1.0.1)
|
41
|
+
ddplugin (1.0.2)
|
42
|
+
ffi (1.10.0)
|
43
43
|
formatador (0.2.5)
|
44
|
-
guard (2.
|
44
|
+
guard (2.15.0)
|
45
45
|
formatador (>= 0.2.4)
|
46
46
|
listen (>= 2.7, < 4.0)
|
47
47
|
lumberjack (>= 1.0.12, < 2.0)
|
@@ -56,53 +56,61 @@ GEM
|
|
56
56
|
guard-compat (~> 1.0)
|
57
57
|
hamster (3.0.0)
|
58
58
|
concurrent-ruby (~> 1.0)
|
59
|
-
i18n (1.0
|
59
|
+
i18n (1.6.0)
|
60
60
|
concurrent-ruby (~> 1.0)
|
61
|
-
icalendar (2.
|
62
|
-
|
63
|
-
|
61
|
+
icalendar (2.5.3)
|
62
|
+
ice_cube (~> 0.16)
|
63
|
+
ice_cube (0.16.3)
|
64
|
+
json (2.2.0)
|
65
|
+
json_schema (0.20.4)
|
66
|
+
kramdown (2.1.0)
|
64
67
|
listen (3.1.5)
|
65
68
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
66
69
|
rb-inotify (~> 0.9, >= 0.9.7)
|
67
70
|
ruby_dep (~> 1.2)
|
68
|
-
lumberjack (1.0.
|
69
|
-
method_source (0.9.
|
70
|
-
mini_portile2 (2.
|
71
|
+
lumberjack (1.0.13)
|
72
|
+
method_source (0.9.2)
|
73
|
+
mini_portile2 (2.4.0)
|
71
74
|
minitest (5.11.3)
|
72
|
-
nanoc (4.
|
75
|
+
nanoc (4.11.0)
|
73
76
|
addressable (~> 2.5)
|
74
|
-
cri (~> 2.
|
75
|
-
ddmemoize (
|
77
|
+
cri (~> 2.15)
|
78
|
+
ddmemoize (~> 1.0)
|
79
|
+
ddmetrics (~> 1.0)
|
76
80
|
ddplugin (~> 1.0)
|
77
|
-
ddtelemetry (= 1.0.0a2)
|
78
81
|
hamster (~> 3.0)
|
82
|
+
json_schema (~> 0.19)
|
83
|
+
parallel (~> 1.12)
|
79
84
|
ref (~> 2.0)
|
80
85
|
slow_enumerator_tools (~> 1.0)
|
86
|
+
tomlrb (~> 1.2)
|
81
87
|
nenv (0.3.0)
|
82
|
-
nokogiri (1.
|
83
|
-
mini_portile2 (~> 2.
|
88
|
+
nokogiri (1.10.2)
|
89
|
+
mini_portile2 (~> 2.4.0)
|
84
90
|
notiffany (0.1.1)
|
85
91
|
nenv (~> 0.1)
|
86
92
|
shellany (~> 0.0)
|
87
|
-
|
93
|
+
parallel (1.17.0)
|
94
|
+
pry (0.12.2)
|
88
95
|
coderay (~> 1.1.0)
|
89
96
|
method_source (~> 0.9.0)
|
90
|
-
public_suffix (3.0.
|
91
|
-
rack (2.0.
|
92
|
-
rake (
|
97
|
+
public_suffix (3.0.3)
|
98
|
+
rack (2.0.7)
|
99
|
+
rake (12.3.2)
|
93
100
|
rb-fsevent (0.10.3)
|
94
|
-
rb-inotify (0.
|
95
|
-
ffi (
|
101
|
+
rb-inotify (0.10.0)
|
102
|
+
ffi (~> 1.0)
|
96
103
|
ref (2.0.0)
|
97
104
|
ruby_dep (1.5.0)
|
98
|
-
rubytree (1.0.
|
105
|
+
rubytree (1.0.1)
|
99
106
|
json (~> 2.1)
|
100
107
|
structured_warnings (~> 0.3)
|
101
108
|
shellany (0.0.1)
|
102
109
|
slow_enumerator_tools (1.1.0)
|
103
110
|
structured_warnings (0.3.0)
|
104
|
-
thor (0.20.
|
111
|
+
thor (0.20.3)
|
105
112
|
thread_safe (0.3.6)
|
113
|
+
tomlrb (1.2.8)
|
106
114
|
tzinfo (1.2.5)
|
107
115
|
thread_safe (~> 0.1)
|
108
116
|
|
@@ -115,4 +123,4 @@ DEPENDENCIES
|
|
115
123
|
rake
|
116
124
|
|
117
125
|
BUNDLED WITH
|
118
|
-
1.
|
126
|
+
1.17.2
|
@@ -6,7 +6,7 @@ require 'active_support/inflector'
|
|
6
6
|
#
|
7
7
|
class CItem
|
8
8
|
attr_reader :order, :section, :subsection, :subsection_citem, :title,
|
9
|
-
:type, :identifier, :short_name, :status, :nitem, :css_class, :homework, :desc, :cat
|
9
|
+
:type, :identifier, :short_name, :status, :nitem, :css_class, :homework, :desc, :cat, :assigned
|
10
10
|
attr_accessor :lecture_number, :lecture_date, :start_time, :end_time
|
11
11
|
|
12
12
|
# Callable with nitem=nil to create a mock
|
@@ -85,6 +85,7 @@ class CItem
|
|
85
85
|
@homework = @nitem[:homework]
|
86
86
|
@desc = @nitem[:desc]
|
87
87
|
@cat = @nitem[:cat]
|
88
|
+
@assigned = @nitem[:assigned]
|
88
89
|
end
|
89
90
|
|
90
91
|
def parse_identifier(ident)
|
@@ -1,54 +1,55 @@
|
|
1
1
|
# Helpers to be used to annotate content
|
2
|
+
require 'byebug'
|
2
3
|
module ContentHelpers
|
3
|
-
def include_topic
|
4
|
+
def include_topic(item_symbol)
|
4
5
|
incorporated_topic = lookup_nitem("topics", item_symbol.to_s)
|
5
6
|
items[incorporated_topic.identifier.to_s].compiled_content
|
6
7
|
end
|
7
8
|
|
8
|
-
def include_page
|
9
|
+
def include_page(item_symbol)
|
9
10
|
incorporated_topic = lookup_nitem("pages", item_symbol.to_s)
|
10
11
|
items[incorporated_topic.identifier.to_s].compiled_content
|
11
12
|
end
|
12
13
|
|
13
|
-
def include_background
|
14
|
+
def include_background(item_symbol)
|
14
15
|
incorporated_topic = lookup_nitem("background", item_symbol.to_s)
|
15
16
|
items[incorporated_topic.identifier.to_s].compiled_content
|
16
17
|
end
|
17
18
|
|
18
|
-
def include_intro
|
19
|
+
def include_intro(item_symbol)
|
19
20
|
incorporated_topic = lookup_nitem("intro", item_symbol.to_s)
|
20
21
|
items[incorporated_topic.identifier.to_s].compiled_content
|
21
22
|
end
|
22
23
|
|
23
|
-
def include_from_section
|
24
|
+
def include_from_section(sect_symbol, item_symbol)
|
24
25
|
incorporated_item = lookup_nitem(sect_symbol.to_s, item_symbol.to_s)
|
25
26
|
Toc.instance.record_inclusion @item, incorporated_item
|
26
27
|
items[incorporated_item.identifier.to_s].compiled_content
|
27
28
|
end
|
28
29
|
|
29
|
-
def lookup_nitem
|
30
|
+
def lookup_nitem(the_sect, short_name)
|
30
31
|
Toc.instance.lookup_citem(the_sect, short_name).nitem
|
31
32
|
end
|
32
33
|
|
33
|
-
def link_to_doc
|
34
|
+
def link_to_doc(label, file_name)
|
34
35
|
"<a href=\"/docs/#{file_name}\">#{label}</a>"
|
35
36
|
end
|
36
37
|
|
37
|
-
def toc_link_to
|
38
|
+
def toc_link_to(item)
|
38
39
|
link_to_unless_current item[:title], item
|
39
40
|
end
|
40
41
|
|
41
|
-
def bold_red
|
42
|
+
def bold_red(string)
|
42
43
|
"<span style=\"color: red; font-style: italic;\">#{string}</span>"
|
43
44
|
end
|
44
45
|
|
45
|
-
def italic_red
|
46
|
+
def italic_red(string)
|
46
47
|
" *#{string}*{: style=\"color: red\"} "
|
47
48
|
end
|
48
49
|
|
49
|
-
def ir
|
50
|
+
def ir(string); italic_red(string); end
|
50
51
|
|
51
|
-
def callout
|
52
|
+
def callout(title, body)
|
52
53
|
<<-HTMLSTRING
|
53
54
|
<div class="well well-sm">
|
54
55
|
<span class="themebg label label-primary">#{title}</span>#{body}
|
@@ -56,11 +57,11 @@ module ContentHelpers
|
|
56
57
|
HTMLSTRING
|
57
58
|
end
|
58
59
|
|
59
|
-
def textbadge
|
60
|
+
def textbadge(text, tooltip)
|
60
61
|
%(<span class="label label-info" data-toggle="tooltip" data-placement="top" title="#{tooltip}">#{text}</span>)
|
61
62
|
end
|
62
63
|
|
63
|
-
def iconbadge
|
64
|
+
def iconbadge(icon, tooltip)
|
64
65
|
%(<span class="glyphicon glyphicon-#{icon} themefg" data-toggle="tooltip" data-placement="top" title="#{tooltip}"></span>)
|
65
66
|
end
|
66
67
|
|
@@ -77,11 +78,11 @@ HTMLSTRING
|
|
77
78
|
end
|
78
79
|
|
79
80
|
def zipbadge
|
80
|
-
iconbadge("briefcase", "Submit
|
81
|
+
iconbadge("briefcase", "Submit work as an attachment")
|
81
82
|
end
|
82
83
|
|
83
84
|
def partbadge
|
84
|
-
iconbadge("check", "Graded for participation only")
|
85
|
+
iconbadge("check", "Graded for participation only - pass/fail")
|
85
86
|
end
|
86
87
|
|
87
88
|
def timebadge
|
@@ -92,8 +93,7 @@ HTMLSTRING
|
|
92
93
|
iconbadge("tent", "Team Deliverable")
|
93
94
|
end
|
94
95
|
|
95
|
-
|
96
|
-
def include_image_old filename_string, extra_class: nil
|
96
|
+
def include_image_old(filename_string, extra_class: nil)
|
97
97
|
css_class = "img-responsive"
|
98
98
|
css_class += " img-" + extra_class unless extra_class.nil?
|
99
99
|
<<-HTMLSTRING
|
@@ -101,7 +101,7 @@ HTMLSTRING
|
|
101
101
|
HTMLSTRING
|
102
102
|
end
|
103
103
|
|
104
|
-
def include_image
|
104
|
+
def include_image(filename_string, extra: "")
|
105
105
|
<<-HTMLSTRING
|
106
106
|
<div class="row">
|
107
107
|
<div class="col-md-offset-2 col-md-8">
|
@@ -111,7 +111,13 @@ HTMLSTRING
|
|
111
111
|
HTMLSTRING
|
112
112
|
end
|
113
113
|
|
114
|
-
def
|
114
|
+
def image(filename_string, extra: "")
|
115
|
+
<<-HTMLSTRING
|
116
|
+
<img src="/content/topics/images/#{filename_string}" class="img-responsive img-thumbnail" #{extra}/>
|
117
|
+
HTMLSTRING
|
118
|
+
end
|
119
|
+
|
120
|
+
def important(string = ":")
|
115
121
|
<<-HTMLSTRING
|
116
122
|
<div class="cg-important">
|
117
123
|
#{string}
|
@@ -119,17 +125,17 @@ HTMLSTRING
|
|
119
125
|
HTMLSTRING
|
120
126
|
end
|
121
127
|
|
122
|
-
def nb
|
128
|
+
def nb(string = ":")
|
123
129
|
<<-HTMLSTRING
|
124
130
|
<div class="label label-info">#{string}</div>
|
125
131
|
HTMLSTRING
|
126
132
|
end
|
127
133
|
|
128
|
-
def tbd
|
134
|
+
def tbd(string = "")
|
129
135
|
"*[TO BE DETERMINED#{string}]*{: style=\"color: red\"}"
|
130
136
|
end
|
131
137
|
|
132
|
-
def deliverable
|
138
|
+
def deliverable(string, append = "")
|
133
139
|
"*Deliverable:*{: style=\"color: red\"} #{string + append} "
|
134
140
|
end
|
135
141
|
|
@@ -141,20 +147,23 @@ HTMLSTRING
|
|
141
147
|
deliverable(string, " *(pdf with name and hw number, graded for participation only)*")
|
142
148
|
end
|
143
149
|
|
144
|
-
def team_deliverable
|
150
|
+
def team_deliverable(string)
|
145
151
|
"*Team Deliverable:*{: style=\"color: red\"} *#{string}*"
|
146
152
|
end
|
147
153
|
|
148
|
-
def discussion
|
154
|
+
def discussion(string)
|
149
155
|
"*Discussion:*{: style=\"color: blue\"} *#{string}*"
|
150
156
|
end
|
151
157
|
|
152
|
-
def discussion_box
|
158
|
+
def discussion_box(string)
|
153
159
|
%(<div class="alert alert-info"><strong>Discussion:</strong> #{string}</div>)
|
154
160
|
end
|
155
161
|
|
156
|
-
def homework_hdr
|
157
|
-
"#### Homework due for today"
|
162
|
+
def homework_hdr(show_legend: :on)
|
163
|
+
body = "#### Homework due for today"
|
164
|
+
legend = "\n**Legend**: #{partbadge}: Participation (pass/fail) | #{pdfbadge}: PDF | #{teambadge}: Team | #{zipbadge}: Attachment"
|
165
|
+
body += legend if show_legend == :on
|
166
|
+
body
|
158
167
|
end
|
159
168
|
|
160
169
|
def carousel(filenames)
|
@@ -175,7 +184,7 @@ HTMLSTRING
|
|
175
184
|
end
|
176
185
|
|
177
186
|
def carousel_new(filenames)
|
178
|
-
carousel_work(filenames.map {|filename| "/content/topics/images/" + filename })
|
187
|
+
carousel_work(filenames.map { |filename| "/content/topics/images/" + filename })
|
179
188
|
end
|
180
189
|
|
181
190
|
def carousel_work(filenames)
|
@@ -218,32 +227,31 @@ HTMLSTRING
|
|
218
227
|
"~~~~~~\n {: .language-python}"
|
219
228
|
end
|
220
229
|
|
221
|
-
def ruby_string
|
230
|
+
def ruby_string(str)
|
222
231
|
ruby_begin + "\n" + str + "\n" + ruby_end
|
223
232
|
end
|
224
233
|
|
225
|
-
def python_string
|
234
|
+
def python_string(str)
|
226
235
|
python_begin + "\n" + str + "\n" + python_end
|
227
236
|
end
|
228
237
|
|
229
|
-
def include_ruby
|
238
|
+
def include_ruby(name)
|
230
239
|
filename = Dir.pwd + "/content/content/topics/scripts/" + name.to_s + ".rb"
|
231
240
|
filecontents = File.new(filename).read
|
232
241
|
ruby_string filecontents
|
233
242
|
end
|
234
243
|
|
235
|
-
def include_python
|
244
|
+
def include_python(name)
|
236
245
|
filename = Dir.pwd + "/content/content/topics/robotcode/" + name.to_s + ".py"
|
237
246
|
filecontents = File.new(filename).read
|
238
247
|
ruby_string filecontents
|
239
248
|
end
|
240
249
|
|
241
|
-
|
242
250
|
def code_begin
|
243
251
|
"\n~~~~~~"
|
244
252
|
end
|
245
253
|
|
246
|
-
def code_end
|
254
|
+
def code_end(lang = "")
|
247
255
|
str = "~~~~~~\n"
|
248
256
|
if ["ruby", "css", "java", "html"].include? lang
|
249
257
|
str += "{: .language-#{lang}}"
|
@@ -251,13 +259,47 @@ HTMLSTRING
|
|
251
259
|
str
|
252
260
|
end
|
253
261
|
|
254
|
-
def code_string
|
262
|
+
def code_string(str)
|
255
263
|
code_begin + "\n" + str + code_end
|
256
264
|
end
|
257
265
|
|
258
|
-
def include_code
|
266
|
+
def include_code(name)
|
259
267
|
filename = Dir.pwd + "/content/content/topics/scripts/" + name
|
260
268
|
filecontents = File.new(filename).read
|
261
269
|
code_string filecontents
|
262
270
|
end
|
271
|
+
|
272
|
+
def postit_begin title
|
273
|
+
"<div class=\"postit\">" + "<h5>" + title + "</h5>"
|
274
|
+
end
|
275
|
+
|
276
|
+
def postit_end
|
277
|
+
"</div>"
|
278
|
+
end
|
279
|
+
|
280
|
+
def ul_begin
|
281
|
+
"<ul>"
|
282
|
+
end
|
283
|
+
|
284
|
+
def ul_end
|
285
|
+
"</ul>"
|
286
|
+
end
|
287
|
+
|
288
|
+
def ul body
|
289
|
+
"<ul>#{body}</ul>"
|
290
|
+
end
|
291
|
+
|
292
|
+
def list_items *items
|
293
|
+
items.reduce("") do |s, i|
|
294
|
+
if i.start_with?("<ul>")
|
295
|
+
s + i
|
296
|
+
else
|
297
|
+
s + "<li>" + i + "</li>"
|
298
|
+
end
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
def lab_note(title)
|
303
|
+
"<h5 style=\"font-family:cursive; font-weight:bold; font-szie:18px; color: red;\">#{title}</h5>"
|
304
|
+
end
|
263
305
|
end
|