html_tags 0.1.183

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +456 -0
  3. data/USAGE.md +17 -0
  4. data/doc/README.gen +256 -0
  5. data/html_tags.gemspec +48 -0
  6. data/images/logo_for_the_html_tags_project.png +0 -0
  7. data/lib/html_tags/array_registered_html_tags.rb +126 -0
  8. data/lib/html_tags/autoinclude.rb +2 -0
  9. data/lib/html_tags/autoinclude_base_module.rb +7 -0
  10. data/lib/html_tags/base/README.md +3 -0
  11. data/lib/html_tags/base/base.rb +11 -0
  12. data/lib/html_tags/base/base_module.rb +271 -0
  13. data/lib/html_tags/base/prototype.rb +19 -0
  14. data/lib/html_tags/checks.rb +58 -0
  15. data/lib/html_tags/closing_tag/closing_tag.rb +76 -0
  16. data/lib/html_tags/constants/array_strip_newlines.rb +14 -0
  17. data/lib/html_tags/constants/misc.rb +21 -0
  18. data/lib/html_tags/constants.rb +26 -0
  19. data/lib/html_tags/html_closing_tags.rb +36 -0
  20. data/lib/html_tags/html_comment.rb +29 -0
  21. data/lib/html_tags/html_tags.rb +118 -0
  22. data/lib/html_tags/html_tags_constants.rb +14 -0
  23. data/lib/html_tags/individual_tags/a.rb +646 -0
  24. data/lib/html_tags/individual_tags/abbr.rb +44 -0
  25. data/lib/html_tags/individual_tags/address.rb +50 -0
  26. data/lib/html_tags/individual_tags/area.rb +60 -0
  27. data/lib/html_tags/individual_tags/article.rb +48 -0
  28. data/lib/html_tags/individual_tags/aside.rb +80 -0
  29. data/lib/html_tags/individual_tags/audio.rb +54 -0
  30. data/lib/html_tags/individual_tags/b.rb +22 -0
  31. data/lib/html_tags/individual_tags/bdo.rb +50 -0
  32. data/lib/html_tags/individual_tags/blockquote.rb +19 -0
  33. data/lib/html_tags/individual_tags/body.rb +19 -0
  34. data/lib/html_tags/individual_tags/br.rb +28 -0
  35. data/lib/html_tags/individual_tags/button.rb +143 -0
  36. data/lib/html_tags/individual_tags/canvas.rb +19 -0
  37. data/lib/html_tags/individual_tags/caption.rb +107 -0
  38. data/lib/html_tags/individual_tags/cite.rb +78 -0
  39. data/lib/html_tags/individual_tags/code.rb +105 -0
  40. data/lib/html_tags/individual_tags/del.rb +112 -0
  41. data/lib/html_tags/individual_tags/details.rb +79 -0
  42. data/lib/html_tags/individual_tags/dialog.rb +108 -0
  43. data/lib/html_tags/individual_tags/div.rb +99 -0
  44. data/lib/html_tags/individual_tags/em.rb +99 -0
  45. data/lib/html_tags/individual_tags/fieldset.rb +88 -0
  46. data/lib/html_tags/individual_tags/figure.rb +42 -0
  47. data/lib/html_tags/individual_tags/footer.rb +61 -0
  48. data/lib/html_tags/individual_tags/form.rb +93 -0
  49. data/lib/html_tags/individual_tags/h1.rb +48 -0
  50. data/lib/html_tags/individual_tags/h2.rb +46 -0
  51. data/lib/html_tags/individual_tags/h3.rb +78 -0
  52. data/lib/html_tags/individual_tags/h4.rb +36 -0
  53. data/lib/html_tags/individual_tags/h5.rb +36 -0
  54. data/lib/html_tags/individual_tags/h6.rb +40 -0
  55. data/lib/html_tags/individual_tags/head.rb +47 -0
  56. data/lib/html_tags/individual_tags/header.rb +54 -0
  57. data/lib/html_tags/individual_tags/hgroup.rb +78 -0
  58. data/lib/html_tags/individual_tags/html.rb +61 -0
  59. data/lib/html_tags/individual_tags/i.rb +47 -0
  60. data/lib/html_tags/individual_tags/iframe.rb +131 -0
  61. data/lib/html_tags/individual_tags/img.rb +135 -0
  62. data/lib/html_tags/individual_tags/input.rb +96 -0
  63. data/lib/html_tags/individual_tags/ins.rb +102 -0
  64. data/lib/html_tags/individual_tags/kbd.rb +109 -0
  65. data/lib/html_tags/individual_tags/keygen.rb +90 -0
  66. data/lib/html_tags/individual_tags/label.rb +77 -0
  67. data/lib/html_tags/individual_tags/legend.rb +48 -0
  68. data/lib/html_tags/individual_tags/li.rb +74 -0
  69. data/lib/html_tags/individual_tags/link.rb +58 -0
  70. data/lib/html_tags/individual_tags/main.rb +29 -0
  71. data/lib/html_tags/individual_tags/map.rb +95 -0
  72. data/lib/html_tags/individual_tags/mark.rb +78 -0
  73. data/lib/html_tags/individual_tags/menu.rb +79 -0
  74. data/lib/html_tags/individual_tags/nav.rb +64 -0
  75. data/lib/html_tags/individual_tags/object.rb +76 -0
  76. data/lib/html_tags/individual_tags/ol.rb +50 -0
  77. data/lib/html_tags/individual_tags/p.rb +92 -0
  78. data/lib/html_tags/individual_tags/pre.rb +16 -0
  79. data/lib/html_tags/individual_tags/progress.rb +114 -0
  80. data/lib/html_tags/individual_tags/script.rb +22 -0
  81. data/lib/html_tags/individual_tags/source.rb +42 -0
  82. data/lib/html_tags/individual_tags/span.rb +95 -0
  83. data/lib/html_tags/individual_tags/strong.rb +17 -0
  84. data/lib/html_tags/individual_tags/style.rb +29 -0
  85. data/lib/html_tags/individual_tags/summary.rb +77 -0
  86. data/lib/html_tags/individual_tags/sup.rb +57 -0
  87. data/lib/html_tags/individual_tags/table.rb +90 -0
  88. data/lib/html_tags/individual_tags/tbody.rb +19 -0
  89. data/lib/html_tags/individual_tags/td.rb +30 -0
  90. data/lib/html_tags/individual_tags/textarea.rb +72 -0
  91. data/lib/html_tags/individual_tags/th.rb +50 -0
  92. data/lib/html_tags/individual_tags/thead.rb +53 -0
  93. data/lib/html_tags/individual_tags/time.rb +50 -0
  94. data/lib/html_tags/individual_tags/title.rb +59 -0
  95. data/lib/html_tags/individual_tags/tr.rb +50 -0
  96. data/lib/html_tags/individual_tags/track.rb +59 -0
  97. data/lib/html_tags/individual_tags/u.rb +47 -0
  98. data/lib/html_tags/individual_tags/ul.rb +23 -0
  99. data/lib/html_tags/individual_tags/var.rb +46 -0
  100. data/lib/html_tags/individual_tags/video.rb +70 -0
  101. data/lib/html_tags/module.rb +5 -0
  102. data/lib/html_tags/opening_tag/opening_tag.rb +288 -0
  103. data/lib/html_tags/project/project_base_directory.rb +23 -0
  104. data/lib/html_tags/requires/require_the_html_tags_project.rb +9 -0
  105. data/lib/html_tags/requires/require_the_img_tag.rb +7 -0
  106. data/lib/html_tags/shared.rb +23 -0
  107. data/lib/html_tags/stag.rb +54 -0
  108. data/lib/html_tags/toplevel_methods/add.rb +22 -0
  109. data/lib/html_tags/toplevel_methods/full_output.rb +33 -0
  110. data/lib/html_tags/toplevel_methods/newline_or_empty.rb +21 -0
  111. data/lib/html_tags/toplevel_methods/strip_newlines.rb +27 -0
  112. data/lib/html_tags/version/version.rb +17 -0
  113. data/lib/html_tags/yaml/available_html_tags.yml +135 -0
  114. data/lib/html_tags/yaml/valid_tags_in_a_head_tag.yml +16 -0
  115. data/lib/html_tags.rb +5 -0
  116. data/test/testing_html_tags.rb +158 -0
  117. data/test/testing_the_a_tag.rb +162 -0
  118. data/test/testing_the_button_tag.rb +37 -0
  119. data/test/testing_the_details_tag.rb +38 -0
  120. metadata +171 -0
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/address.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/closing_tag/closing_tag.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+ require 'html_tags/toplevel_methods/add.rb'
12
+
13
+ # ========================================================================= #
14
+ # === HtmlTags.address
15
+ # ========================================================================= #
16
+ def self.address(
17
+ i = ''
18
+ )
19
+ return HtmlTags.add(
20
+ opening_tag(__method__)+
21
+ "#{i}\n"+
22
+ close(__method__)
23
+ )
24
+ end
25
+
26
+ # ========================================================================= #
27
+ # === address
28
+ # ========================================================================= #
29
+ def address(
30
+ i = '',
31
+ &block
32
+ )
33
+ HtmlTags.address(
34
+ i,
35
+ &block
36
+ )
37
+ end
38
+
39
+ end
40
+
41
+ if __FILE__ == $PROGRAM_NAME
42
+ alias e puts
43
+ puts HtmlTags.address(
44
+ 'Written by <a href="mailto:webmaster@example.com">Jon Doe</a>.<br>
45
+ Visit us at:<br>
46
+ Example.com<br>
47
+ Box 564, Disneyland<br>
48
+ USA'
49
+ )
50
+ end
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/area.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/closing_tag/closing_tag.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+ require 'html_tags/toplevel_methods/add.rb'
12
+
13
+ # ========================================================================= #
14
+ # === HtmlTags.area
15
+ #
16
+ # This should create a String such as:
17
+ #
18
+ # <area shape="rect" coords="34,44,270,350" alt="Computer" href="computer.htm">
19
+ #
20
+ # Invocation example:
21
+ #
22
+ # HtmlTags.area('rect','20,40,50,80','foobar.html')
23
+ #
24
+ # ========================================================================= #
25
+ def self.area(
26
+ shape = 'rect',
27
+ coords = '34,44,270,350',
28
+ href = 'foobar.html'
29
+ )
30
+ return HtmlTags.add(
31
+ '<area shape="'+shape.to_s+'" coords="'+coords.to_s+'" href="'+href.to_s+'">'+
32
+ "\n"
33
+ )
34
+ end
35
+
36
+ # ========================================================================= #
37
+ # === area
38
+ # ========================================================================= #
39
+ def area(
40
+ i = '',
41
+ &block
42
+ )
43
+ HtmlTags.area(
44
+ i,
45
+ &block
46
+ )
47
+ end
48
+
49
+ end
50
+
51
+ if __FILE__ == $PROGRAM_NAME
52
+ alias e puts
53
+ puts HtmlTags.area(
54
+ 'Written by <a href="mailto:webmaster@example.com">Jon Doe</a>.<br>
55
+ Visit us at:<br>
56
+ Example.com<br>
57
+ Box 564, Disneyland<br>
58
+ USA'
59
+ )
60
+ end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/area.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/closing_tag/closing_tag.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+ require 'html_tags/toplevel_methods/add.rb'
12
+
13
+ # ========================================================================= #
14
+ # === HtmlTags.article
15
+ # ========================================================================= #
16
+ def self.article(
17
+ i = '',
18
+ &block
19
+ )
20
+ return HtmlTags.add(
21
+ opening_tag(__method__)+
22
+ "#{i}\n"+
23
+ close(__method__)
24
+ )
25
+ end
26
+
27
+ # ========================================================================= #
28
+ # === article
29
+ # ========================================================================= #
30
+ def article(
31
+ i = '',
32
+ &block
33
+ )
34
+ HtmlTags.article(
35
+ i,
36
+ &block
37
+ )
38
+ end
39
+
40
+ end
41
+
42
+ if __FILE__ == $PROGRAM_NAME
43
+ alias e puts
44
+ e HtmlTags.article(
45
+ '<h2>Google Chrome</h2>
46
+ <p>Google Chrome is a web browser developed by Google.</p>'
47
+ )
48
+ end
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/aside.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/toplevel_methods/add.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+
12
+ # ========================================================================= #
13
+ # === HtmlTags.aside
14
+ # ========================================================================= #
15
+ def self.aside(
16
+ i = '',
17
+ css_class = '',
18
+ the_id = '',
19
+ css_style = '',
20
+ &block
21
+ )
22
+ use_a_trailing_newline = false
23
+ if i.is_a? Hash
24
+ # ===================================================================== #
25
+ # === Handle entries such as p(css_style: 'padding:2em')
26
+ # ===================================================================== #
27
+ if i.has_key? :css_style
28
+ css_style = i.delete(:css_style)
29
+ i = '' if i.empty?
30
+ end
31
+ if i.is_a?(Hash) and i.has_key?(:css_class)
32
+ css_class = i.delete(:css_class)
33
+ i = '' if i.empty?
34
+ end
35
+ end
36
+ result = opening_tag(__method__, css_class, the_id, css_style).dup
37
+ # ======================================================================= #
38
+ # === Handle blocks given to this method next.
39
+ #
40
+ # Symbols will be treated differently.
41
+ # ======================================================================= #
42
+ if block_given?
43
+ yielded = yield
44
+ if yielded.is_a? Symbol
45
+ case yielded
46
+ # =================================================================== #
47
+ # === :newline
48
+ # =================================================================== #
49
+ when :newline
50
+ use_a_trailing_newline = true
51
+ end
52
+ else
53
+ result << yielded.to_s
54
+ end
55
+ end
56
+ result << i.to_s+close(__method__).to_s
57
+ if use_a_trailing_newline
58
+ result << "\n"
59
+ end
60
+ return HtmlTags.add(result)
61
+ end
62
+
63
+ # ========================================================================= #
64
+ # === aside
65
+ # ========================================================================= #
66
+ def aside(
67
+ i = '',
68
+ css_class = '',
69
+ the_id = '',
70
+ css_style = ''
71
+ )
72
+ HtmlTags.aside(i, css_class, the_id, css_style)
73
+ end
74
+
75
+ end
76
+
77
+ if __FILE__ == $PROGRAM_NAME
78
+ alias e puts
79
+ e HtmlTags.aside('This is a test.','mars3em')
80
+ end
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/audio.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/toplevel_methods/add.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+
12
+ # ========================================================================= #
13
+ # === HtmlTags.audio
14
+ #
15
+ # Use a HTML5 audio tag.
16
+ #
17
+ # See also this link:
18
+ #
19
+ # https://www.w3schools.com/tags/att_audio_autoplay.asp
20
+ #
21
+ # ========================================================================= #
22
+ def self.audio(
23
+ url = '',
24
+ optional_autoplay = false
25
+ )
26
+ case File.extname(url).delete('.')
27
+ when '','ogg'
28
+ use_this_audio_type = 'ogg'
29
+ when 'mp3'
30
+ use_this_audio_type = 'mpeg'
31
+ when 'wav'
32
+ use_this_audio_type = 'wav'
33
+ else
34
+ use_this_audio_type = nil # Else we will not play it.
35
+ end
36
+ if use_this_audio_type
37
+ result = '<audio controls'.dup
38
+ result << ' autoplay' if optional_autoplay
39
+ result << ">\n"
40
+ result << '<source src="'+url.to_s+'" type="audio/'+use_this_audio_type.to_s+'">'+"\n"
41
+ result << 'Your browser does not support the audio element.'
42
+ result << close(__method__)
43
+ else
44
+ nil
45
+ end
46
+ return HtmlTags.add(result)
47
+ end
48
+
49
+ end
50
+
51
+ if __FILE__ == $PROGRAM_NAME
52
+ alias e puts
53
+ e HtmlTags.audio('foobar.mp3',true)
54
+ end
@@ -0,0 +1,22 @@
1
+ module HtmlTags
2
+
3
+ # ========================================================================= #
4
+ # === b
5
+ #
6
+ # This is the same as bold. Note that since HTML 5, it is recommended
7
+ # to use <strong> instead.
8
+ # ========================================================================= #
9
+ def b(
10
+ i = '',
11
+ css_class = '',
12
+ the_id = '',
13
+ css_style = ''
14
+ )
15
+ return HtmlTags.add(
16
+ opening_tag(__method__, css_class, the_id, css_style)+
17
+ i.to_s+
18
+ close(__method__)
19
+ )
20
+ end; alias bold b
21
+
22
+ end
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/area.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/closing_tag/closing_tag.rb'
10
+ require 'html_tags/opening_tag/opening_tag.rb'
11
+ require 'html_tags/toplevel_methods/add.rb'
12
+
13
+ # ========================================================================= #
14
+ # === HtmlTags.bdo
15
+ # ========================================================================= #
16
+ def self.bdo(
17
+ i = '',
18
+ direction = 'rtl',
19
+ &block
20
+ )
21
+ _ = '<bdo'.dup
22
+ _ << ' dir="'+direction.to_s+'">'+"\n"
23
+ _ << "#{i}\n"
24
+ _ << close(__method__)
25
+ return HtmlTags.add(_)
26
+ end
27
+
28
+ # ========================================================================= #
29
+ # === bdo
30
+ # ========================================================================= #
31
+ def bdo(
32
+ i = '',
33
+ direction = 'rtl',
34
+ &block
35
+ )
36
+ HtmlTags.bdo(
37
+ i,
38
+ direction,
39
+ &block
40
+ )
41
+ end
42
+
43
+ end
44
+
45
+ if __FILE__ == $PROGRAM_NAME
46
+ alias e puts
47
+ e HtmlTags.bdo(
48
+ 'This is a test.'
49
+ )
50
+ end
@@ -0,0 +1,19 @@
1
+ module HtmlTags
2
+
3
+ # ========================================================================= #
4
+ # === blockquote
5
+ # ========================================================================= #
6
+ def blockquote(
7
+ i = '',
8
+ css_class = '',
9
+ the_id = '',
10
+ css_style = ''
11
+ )
12
+ HtmlTags.add(
13
+ opening_tag(__method__, css_class, the_id, css_style)+
14
+ i.to_s+
15
+ close(__method__)
16
+ )
17
+ end
18
+
19
+ end
@@ -0,0 +1,19 @@
1
+ module HtmlTags
2
+
3
+ # ========================================================================= #
4
+ # === body
5
+ # ========================================================================= #
6
+ def body(
7
+ i = '',
8
+ css_class = '',
9
+ the_id = '',
10
+ css_style = ''
11
+ )
12
+ return HtmlTags.add(
13
+ opening_tag(__method__, css_class, the_id, css_style)+
14
+ i.to_s+
15
+ close(__method__)
16
+ )
17
+ end
18
+
19
+ end
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'html_tags/individual_tags/br.rb'
6
+ # =========================================================================== #
7
+ module HtmlTags
8
+
9
+ require 'html_tags/toplevel_methods/add.rb'
10
+ require 'html_tags/closing_tag/closing_tag.rb'
11
+
12
+ # ========================================================================= #
13
+ # === HtmlTags.br
14
+ # ========================================================================= #
15
+ def self.br
16
+ return HtmlTags.add(
17
+ close(__method__)
18
+ )
19
+ end
20
+
21
+ # ========================================================================= #
22
+ # === br
23
+ # ========================================================================= #
24
+ def br
25
+ ::HtmlTags.br
26
+ end
27
+
28
+ end
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module HtmlTags
6
+
7
+ require 'html_tags/closing_tag/closing_tag.rb'
8
+ require 'html_tags/opening_tag/opening_tag.rb'
9
+ require 'html_tags/toplevel_methods/add.rb'
10
+
11
+ # ========================================================================= #
12
+ # === HtmlTags.button
13
+ #
14
+ # This tag should yield something like:
15
+ #
16
+ # <button type="button">Click Me!</button>
17
+ #
18
+ # Usage example:
19
+ #
20
+ # x = HtmlTags.button(text: 'Move the mouse cursor here.', css_class: 'glow_on_hover')
21
+ #
22
+ # ========================================================================= #
23
+ def self.button(
24
+ i = '',
25
+ css_class = '',
26
+ the_id = '',
27
+ css_style = '',
28
+ javascript = '',
29
+ &block
30
+ )
31
+ the_opening_tag = nil
32
+ # ======================================================================= #
33
+ # === Handle blocks next
34
+ # ======================================================================= #
35
+ if block_given?
36
+ yielded = yield
37
+ if i.is_a?(String) and i.empty?
38
+ i = { text: i }
39
+ i.update(yielded)
40
+ end
41
+ end
42
+ if i.is_a? Hash
43
+ # ===================================================================== #
44
+ # === :css_class
45
+ # ===================================================================== #
46
+ if i.has_key? :css_class
47
+ css_class = i.delete(:css_class)
48
+ end
49
+ # ===================================================================== #
50
+ # === :id
51
+ # ===================================================================== #
52
+ if i.has_key? :id
53
+ the_id = i.delete(:id)
54
+ # ===================================================================== #
55
+ # === :the_id
56
+ # ===================================================================== #
57
+ elsif i.has_key? :the_id
58
+ the_id = i.delete(:the_id)
59
+ end
60
+ # ===================================================================== #
61
+ # === :on_click
62
+ # ===================================================================== #
63
+ if i.has_key? :on_click
64
+ on_click_string = i.delete(:on_click)
65
+ case on_click_string
66
+ # =================================================================== #
67
+ # === :reload_this_page
68
+ #
69
+ # This symbol basically means that we will use javascript to
70
+ # allow for a "reload this page" effect upon clicking the
71
+ # button.
72
+ # =================================================================== #
73
+ when :reload_this_page
74
+ on_click_string = 'onClick="window.location.href=window.location.href"'
75
+ end
76
+ the_opening_tag = opening_tag(__method__, css_class, the_id, css_style, javascript).dup
77
+ the_opening_tag.sub!(/<button/, '<button '+on_click_string.to_s)
78
+ end
79
+ # ===================================================================== #
80
+ # === :text
81
+ #
82
+ # This should come last as it nullifies the variable i.
83
+ # ===================================================================== #
84
+ if i.has_key? :text
85
+ i = i.delete(:text).to_s
86
+ end
87
+ end
88
+ # ======================================================================= #
89
+ # === the_opening_tag
90
+ #
91
+ # We have to get a reference to the opening tag early on, so that we
92
+ # can add e. g. "onClick" to it.
93
+ # ======================================================================= #
94
+ if the_opening_tag.nil?
95
+ the_opening_tag = opening_tag(__method__, css_class, the_id, css_style, javascript)
96
+ end
97
+ return HtmlTags.add(
98
+ the_opening_tag+
99
+ i.to_s+
100
+ close(__method__)
101
+ )
102
+ end
103
+
104
+ # ========================================================================= #
105
+ # === button
106
+ #
107
+ # This tag should yield something like:
108
+ #
109
+ # <button type="button">Click Me!</button>
110
+ #
111
+ # Usage example:
112
+ #
113
+ # x = HtmlTags.button(text: 'Move the mouse cursor here.', css_class: 'glow_on_hover')
114
+ #
115
+ # ========================================================================= #
116
+ def button(
117
+ i = '',
118
+ css_class = '',
119
+ the_id = '',
120
+ css_style = '',
121
+ javascript = '',
122
+ &block
123
+ )
124
+ ::HtmlTags.button(
125
+ i,
126
+ css_class,
127
+ the_id,
128
+ css_style,
129
+ javascript,
130
+ &block
131
+ )
132
+ end
133
+
134
+ end
135
+
136
+ if __FILE__ == $PROGRAM_NAME
137
+ alias e puts
138
+ e HtmlTags.button {{
139
+ text: 'Refresh this page',
140
+ css_class: 'bblack2 pad5px marl1em',
141
+ on_click: :reload_this_page
142
+ }}
143
+ end
@@ -0,0 +1,19 @@
1
+ module HtmlTags
2
+
3
+ # ========================================================================= #
4
+ # === canvas (canvas tag)
5
+ # ========================================================================= #
6
+ def canvas(
7
+ i = '',
8
+ css_class = '',
9
+ the_id = '',
10
+ css_style = ''
11
+ )
12
+ return HtmlTags.add(
13
+ opening_tag(__method__, css_class, the_id, css_style)+
14
+ i.to_s+
15
+ close(__method__)
16
+ )
17
+ end
18
+
19
+ end