Module: ContentHelpers
- Defined in:
- lib/coursegen/course/helpers/content_helpers.rb
Overview
ContentHelpers is used to annotate content.
Instance Method Summary collapse
- #bold_red(string) ⇒ Object
- #callout(title, body, style = "big") ⇒ Object
- #callout1(title, body) ⇒ Object
- #callout2(title, body) ⇒ Object
- #callout3(title, body, style = "big") ⇒ Object
-
#carousel_v4(filenames) ⇒ Object
def carousel_work(filenames) body = %(<div id=“myCarousel” class=“carousel slide” data-ride=“carousel” style=“width: 500px; margin: 0 auto;”> <div class=“carousel-inner” role=“listbox” style=“margin: 20px; ”>) counter = 0 filenames.each do |nam| ci = counter == 0 ? %(<div class=“item active”>) : %(<div class=“item”>) body << ci body << %(<img src=“) body << nam body << %(”/>“></div>) counter += 1 end body << %(</div> <a class=”left carousel-control“ role=”button“ href=”#myCarousel“ data-slide=”prev“> <span class=”glyphicon glyphicon-chevron-left“></span> <span class=”sr-only“>Previous</span> </a> <a class=”right carousel-control“ role=”button“ href=”#myCarousel“ data-slide=”next“> <span class=”glyphicon glyphicon-chevron-right“></span> <span class=”sr-only“>Next</span> </a> </div>) body end.
- #cloudbadge ⇒ Object
- #code_begin ⇒ Object
- #code_end(lang = '') ⇒ Object
- #code_string(str) ⇒ Object
- #codebadge ⇒ Object
- #deliverable(string, append = '') ⇒ Object
- #deliverable_po(string) ⇒ Object
- #deliverable_popdf(string) ⇒ Object
- #discussion(string) ⇒ Object
- #discussion_box(string) ⇒ Object
- #discussion_box1(string) ⇒ Object
- #homework_hdr(show_legend: :on) ⇒ Object
- #iconbadge(icon, tooltip, shorttext = "") ⇒ Object
- #iconbadge1(icon, tooltip) ⇒ Object
- #iconbadge2(icon, tooltip) ⇒ Object
- #iconbadge3(icon, tooltip, shorttext = "") ⇒ Object
- #image(filename_string, extra: '') ⇒ Object
- #important(string = ':') ⇒ Object
- #include_background(item_symbol) ⇒ Object
- #include_code(name) ⇒ Object
- #include_from_section(sect_symbol, item_symbol) ⇒ Object
- #include_image(filename_string, extra: '') ⇒ Object
- #include_image_old(filename_string, extra_class: nil) ⇒ Object
- #include_intro(item_symbol) ⇒ Object
- #include_page(item_symbol) ⇒ Object
- #include_python(name) ⇒ Object
- #include_ruby(name) ⇒ Object
- #include_topic(item_symbol) ⇒ Object
- #ir(string) ⇒ Object
- #italic_red(string) ⇒ Object
- #lab_note(title) ⇒ Object
- #link_to_doc(label, file_name) ⇒ Object
- #list_items(*items) ⇒ Object
- #lookup_nitem(the_sect, short_name) ⇒ Object
- #nb(string = ':') ⇒ Object
- #partbadge ⇒ Object
- #pdfbadge ⇒ Object
- #postit_begin(title) ⇒ Object
- #postit_end ⇒ Object
- #python_begin ⇒ Object
- #python_end ⇒ Object
- #python_string(str) ⇒ Object
- #ruby_begin ⇒ Object
- #ruby_end ⇒ Object
- #ruby_string(str) ⇒ Object
- #slide ⇒ Object
- #source_begin(language) ⇒ Object
- #source_end ⇒ Object
- #tbd(string = '') ⇒ Object
- #team_deliverable(string) ⇒ Object
- #teambadge ⇒ Object
- #textbadge(text, tooltip) ⇒ Object
- #timebadge ⇒ Object
- #toasty(header, *items) ⇒ Object
- #toc_link_to(item) ⇒ Object
- #ul(body) ⇒ Object
- #ul_begin ⇒ Object
- #ul_end ⇒ Object
- #zipbadge ⇒ Object
Instance Method Details
#bold_red(string) ⇒ Object
42 43 44 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 42 def bold_red(string) "<span style=\"color: red; font-style: italic;\">#{string}</span>" end |
#callout(title, body, style = "big") ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 87 def callout(title, body, style="big") style = style.to_s if style.class != String if (style == "big") %(<div class="callout callout-big"> <h1 class="display-5">#{title}</h1> <p class="lead">#{body}</p></div>) elsif (style == "small") <<~HTMLSTRING <div class="callout callout-small"> <span class="callout-badge">#{title}</span>#{body} </div> HTMLSTRING else "error in callout call: .#{style}. #{style.class}" end end |
#callout1(title, body) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 54 def callout1(title, body) <<~HTMLSTRING <div class="well well-sm callout"> <span class="themebg label label-primary">#{title}</span>#{body} </div> HTMLSTRING end |
#callout2(title, body) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 62 def callout2(title, body) <<~HTMLSTRING <div class="callout border border-primary rounded p-2 m-3"> <span class="badge badge-pill badge-primary">#{title}</span>#{body} </div> HTMLSTRING end |
#callout3(title, body, style = "big") ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 70 def callout3(title, body, style="big") style = style.to_s if style.class != String if (style == "big") %(<div class="jumbotron py-1 border border-primary border-rounded-lg"> <h1 class="display-5">#{title}</h1> <p class="lead">#{body}</p></div>) elsif (style == "small") <<~HTMLSTRING <div class="callout border border-primary rounded p-2 m-3"> <span class="badge badge-pill badge-primary">#{title}</span>#{body} </div> HTMLSTRING else "error in callout call: .#{style}. #{style.class}" end end |
#carousel_v4(filenames) ⇒ Object
def carousel_work(filenames)
body = %(<div id="myCarousel" class="carousel slide" data-ride="carousel" style="width: 500px; margin: 0 auto;">
<div class="carousel-inner" role="listbox" style="margin: 20px; ">)
counter = 0
filenames.each do |nam|
ci = counter == 0 ? %(<div class="item active">) : %(<div class="item">)
body << ci
body << %(<img src=")
body << nam
body << %("/>"></div>)
counter += 1
end
body << %(</div> <a class="left carousel-control" role="button" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" role="button" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>)
body
end
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 275 def carousel_v4(filenames) body = <<~HEREDOC <div id="carouselExampleControls" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> HEREDOC count = 0 filenames.each do |fname| active = count == 0 ? 'active' : '' body << <<~HEREDOC <div class="carousel-item #{active}"> <img class="d-block w-80" src="/content/topics/images/#{fname}"> </div> HEREDOC count += 1 end body << <<~HEREDOC </div> <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> HEREDOC body end |
#cloudbadge ⇒ Object
133 134 135 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 133 def cloudbadge iconbadge('cloud-fill', 'Work on code in your portfolio', 'portfolio') end |
#code_begin ⇒ Object
341 342 343 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 341 def code_begin "\n~~~~~~" end |
#code_end(lang = '') ⇒ Object
345 346 347 348 349 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 345 def code_end(lang = '') str = "~~~~~~\n" str += "{: .language-#{lang}}" if %w[ruby css java html].include? lang str end |
#code_string(str) ⇒ Object
351 352 353 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 351 def code_string(str) code_begin + "\n" + str + code_end end |
#codebadge ⇒ Object
129 130 131 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 129 def codebadge iconbadge('file-code-fill', 'Work on code in your portfolio', "portfolio") end |
#deliverable(string, append = '') ⇒ Object
195 196 197 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 195 def deliverable(string, append = '') "*Deliverable:*{: style=\"color: red\"} #{string + append} " end |
#deliverable_po(string) ⇒ Object
199 200 201 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 199 def deliverable_po(string) deliverable(string, ' *(graded for participation only)*') end |
#deliverable_popdf(string) ⇒ Object
203 204 205 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 203 def deliverable_popdf(string) deliverable(string, ' *(pdf with name and hw number, graded for participation only)*') end |
#discussion(string) ⇒ Object
211 212 213 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 211 def discussion(string) "*Discussion:*{: style=\"color: blue\"} *#{string}*" end |
#discussion_box(string) ⇒ Object
219 220 221 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 219 def discussion_box(string) %(<div class="discussionbox"><strong>Discussion:</strong> #{string}</div>) end |
#discussion_box1(string) ⇒ Object
215 216 217 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 215 def discussion_box1(string) %(<div class="alert alert-info"><strong>Discussion:</strong> #{string}</div>) end |
#homework_hdr(show_legend: :on) ⇒ Object
223 224 225 226 227 228 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 223 def homework_hdr(show_legend: :on) body = '## Homework due for today' legend = "\n**Legend**: #{partbadge}: Participation (pass/fail) | #{pdfbadge}: PDF | #{teambadge}: Team | #{zipbadge}: Attachment" body += legend if show_legend == :on body end |
#iconbadge(icon, tooltip, shorttext = "") ⇒ Object
113 114 115 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 113 def iconbadge(icon, tooltip, shorttext="") %(<svg class="iconbadge bi" title="#{tooltip}" data-placement="top" data-title="#{tooltip}" data-toggle="tooltip" fill="blue"><use xlink:href="/bootstrap/bootstrap-icons-1.0.0/bootstrap-icons.svg##{icon}"/></svg><span class="icontext" >#{shorttext}</span>) end |
#iconbadge1(icon, tooltip) ⇒ Object
105 106 107 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 105 def iconbadge1(icon, tooltip) %(<img src="/bootstrap/bootstrap-icons-1.0.0/#{icon}.svg" title="#{tooltip}" class="iconbadge">) end |
#iconbadge2(icon, tooltip) ⇒ Object
121 122 123 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 121 def iconbadge2(icon, tooltip) %(<span class="fas fa-#{icon} themefg" data-toggle="tooltip" data-placement="top" title="#{tooltip}"></span>) end |
#iconbadge3(icon, tooltip, shorttext = "") ⇒ Object
109 110 111 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 109 def iconbadge3(icon, tooltip, shorttext="") %(<svg class="iconbadge bi" title="#{tooltip}" data-placement="top" data-title="#{tooltip}" data-toggle="tooltip" fill="blue"><use xlink:href="/bootstrap/bootstrap-icons-1.0.0/bootstrap-icons.svg##{icon}"/></svg>#{shorttext}) end |
#image(filename_string, extra: '') ⇒ Object
171 172 173 174 175 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 171 def image(filename_string, extra: '') <<~HTMLSTRING <img src="/content/topics/images/#{filename_string}" class="img-responsive img-thumbnail" #{extra}/> HTMLSTRING end |
#important(string = ':') ⇒ Object
177 178 179 180 181 182 183 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 177 def important(string = ':') <<-HTMLSTRING <div class="cg-important"> #{string} </div> HTMLSTRING end |
#include_background(item_symbol) ⇒ Object
14 15 16 17 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 14 def include_background(item_symbol) incorporated_topic = lookup_nitem('background', item_symbol.to_s) items[incorporated_topic.identifier.to_s].compiled_content end |
#include_code(name) ⇒ Object
355 356 357 358 359 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 355 def include_code(name) filename = Dir.pwd + '/content/content/topics/scripts/' + name filecontents = File.new(filename).read code_string filecontents end |
#include_from_section(sect_symbol, item_symbol) ⇒ Object
24 25 26 27 28 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 24 def include_from_section(sect_symbol, item_symbol) incorporated_item = lookup_nitem(sect_symbol.to_s, item_symbol.to_s) Toc.instance.record_inclusion @item, incorporated_item items[incorporated_item.identifier.to_s].compiled_content end |
#include_image(filename_string, extra: '') ⇒ Object
161 162 163 164 165 166 167 168 169 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 161 def include_image(filename_string, extra: '') <<~HTMLSTRING <div class="row"> <div class="col-md-offset-2 col-md-8"> <img src="#{filename_string}" class="img-responsive img-thumbnail" #{extra}/> </div> </div> HTMLSTRING end |
#include_image_old(filename_string, extra_class: nil) ⇒ Object
153 154 155 156 157 158 159 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 153 def include_image_old(filename_string, extra_class: nil) css_class = 'img-responsive' css_class += ' img-' + extra_class unless extra_class.nil? <<-HTMLSTRING <img src="#{filename_string}" class=\"%s\" />" % css_class HTMLSTRING end |
#include_intro(item_symbol) ⇒ Object
19 20 21 22 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 19 def include_intro(item_symbol) incorporated_topic = lookup_nitem('intro', item_symbol.to_s) items[incorporated_topic.identifier.to_s].compiled_content end |
#include_page(item_symbol) ⇒ Object
9 10 11 12 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 9 def include_page(item_symbol) incorporated_topic = lookup_nitem('pages', item_symbol.to_s) items[incorporated_topic.identifier.to_s].compiled_content end |
#include_python(name) ⇒ Object
335 336 337 338 339 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 335 def include_python(name) filename = Dir.pwd + '/content/content/topics/robotcode/' + name.to_s + '.py' filecontents = File.new(filename).read ruby_string filecontents end |
#include_ruby(name) ⇒ Object
329 330 331 332 333 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 329 def include_ruby(name) filename = Dir.pwd + '/content/content/topics/scripts/' + name.to_s + '.rb' filecontents = File.new(filename).read ruby_string filecontents end |
#include_topic(item_symbol) ⇒ Object
4 5 6 7 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 4 def include_topic(item_symbol) incorporated_topic = lookup_nitem('topics', item_symbol.to_s) items[incorporated_topic.identifier.to_s].compiled_content end |
#ir(string) ⇒ Object
50 51 52 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 50 def ir(string) italic_red(string) end |
#italic_red(string) ⇒ Object
46 47 48 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 46 def italic_red(string) " *#{string}*{: style=\"color: red\"} " end |
#lab_note(title) ⇒ Object
403 404 405 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 403 def lab_note(title) "<h3 style=\"font-family:'Permanent Marker'; font-szie:18px; color: red;\">#{title}</h3>" end |
#link_to_doc(label, file_name) ⇒ Object
34 35 36 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 34 def link_to_doc(label, file_name) "<a href=\"/docs/#{file_name}\">#{label}</a>" end |
#list_items(*items) ⇒ Object
393 394 395 396 397 398 399 400 401 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 393 def list_items(*items) items.reduce('') do |s, i| if i.start_with?('<ul>') s + i else s + '<li>' + i + '</li>' end end end |
#lookup_nitem(the_sect, short_name) ⇒ Object
30 31 32 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 30 def lookup_nitem(the_sect, short_name) Toc.instance.lookup_citem(the_sect, short_name).nitem end |
#nb(string = ':') ⇒ Object
185 186 187 188 189 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 185 def nb(string = ':') <<-HTMLSTRING <div class="label label-info">#{string}</div> HTMLSTRING end |
#partbadge ⇒ Object
141 142 143 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 141 def partbadge iconbadge('heart-half', 'Graded for participation only - pass/fail', 'participation') end |
#pdfbadge ⇒ Object
125 126 127 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 125 def pdfbadge iconbadge('file-earmark-richtext-fill', 'Submit a pdf file', "pdf") end |
#postit_begin(title) ⇒ Object
369 370 371 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 369 def postit_begin(title) '<div class="postit">' + '<h5>' + title + '</h5>' end |
#postit_end ⇒ Object
373 374 375 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 373 def postit_end '</div>' end |
#python_begin ⇒ Object
313 314 315 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 313 def python_begin "\n~~~~~~" end |
#python_end ⇒ Object
317 318 319 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 317 def python_end "~~~~~~\n {: .language-python}" end |
#python_string(str) ⇒ Object
325 326 327 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 325 def python_string(str) python_begin + "\n" + str + "\n" + python_end end |
#ruby_begin ⇒ Object
305 306 307 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 305 def ruby_begin "\n~~~~~~" end |
#ruby_end ⇒ Object
309 310 311 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 309 def ruby_end "~~~~~~\n {: .language-ruby}" end |
#ruby_string(str) ⇒ Object
321 322 323 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 321 def ruby_string(str) ruby_begin + "\n" + str + "\n" + ruby_end end |
#slide ⇒ Object
389 390 391 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 389 def '<slide_break></slide_break>' end |
#source_begin(language) ⇒ Object
361 362 363 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 361 def source_begin(language) "<pre class=\"#{language}\">" end |
#source_end ⇒ Object
365 366 367 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 365 def source_end '</pre>' end |
#tbd(string = '') ⇒ Object
191 192 193 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 191 def tbd(string = '') "*[TO BE DETERMINED#{string}]*{: style=\"color: red\"}" end |
#team_deliverable(string) ⇒ Object
207 208 209 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 207 def team_deliverable(string) "*Team Deliverable:*{: style=\"color: red\"} *#{string}*" end |
#teambadge ⇒ Object
149 150 151 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 149 def teambadge iconbadge('people-fill', 'Team Deliverable', 'team deliverable') end |
#textbadge(text, tooltip) ⇒ Object
117 118 119 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 117 def textbadge(text, tooltip) %(<span class="label label-info" data-toggle="tooltip" data-placement="top" title="#{tooltip}">#{text}</span>) end |
#timebadge ⇒ Object
145 146 147 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 145 def timebadge iconbadge('alarm-fill', 'Must be submitted first thing on day of class', 'early submit') end |
#toasty(header, *items) ⇒ Object
407 408 409 410 411 412 413 414 415 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 407 def toasty(header, *items) str = %(<div class="border border-info rounded w-75 mx-auto p-2 m-3"> <h5>#{header}</h5><ul>) items.each do |itm| str += '<li>' + itm + '</li>' end str += '</ul></div>' str end |
#toc_link_to(item) ⇒ Object
38 39 40 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 38 def toc_link_to(item) link_to_unless_current item[:title], item end |
#ul(body) ⇒ Object
385 386 387 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 385 def ul(body) "<ul>#{body}</ul>" end |
#ul_begin ⇒ Object
377 378 379 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 377 def ul_begin '<ul>' end |
#ul_end ⇒ Object
381 382 383 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 381 def ul_end '</ul>' end |
#zipbadge ⇒ Object
137 138 139 |
# File 'lib/coursegen/course/helpers/content_helpers.rb', line 137 def zipbadge iconbadge('file-earmark-zip-fill', 'Submit work in a zipfile', 'zip') end |