html_tags 0.1.183

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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