html_tags 0.1.183
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +456 -0
- data/USAGE.md +17 -0
- data/doc/README.gen +256 -0
- data/html_tags.gemspec +48 -0
- data/images/logo_for_the_html_tags_project.png +0 -0
- data/lib/html_tags/array_registered_html_tags.rb +126 -0
- data/lib/html_tags/autoinclude.rb +2 -0
- data/lib/html_tags/autoinclude_base_module.rb +7 -0
- data/lib/html_tags/base/README.md +3 -0
- data/lib/html_tags/base/base.rb +11 -0
- data/lib/html_tags/base/base_module.rb +271 -0
- data/lib/html_tags/base/prototype.rb +19 -0
- data/lib/html_tags/checks.rb +58 -0
- data/lib/html_tags/closing_tag/closing_tag.rb +76 -0
- data/lib/html_tags/constants/array_strip_newlines.rb +14 -0
- data/lib/html_tags/constants/misc.rb +21 -0
- data/lib/html_tags/constants.rb +26 -0
- data/lib/html_tags/html_closing_tags.rb +36 -0
- data/lib/html_tags/html_comment.rb +29 -0
- data/lib/html_tags/html_tags.rb +118 -0
- data/lib/html_tags/html_tags_constants.rb +14 -0
- data/lib/html_tags/individual_tags/a.rb +646 -0
- data/lib/html_tags/individual_tags/abbr.rb +44 -0
- data/lib/html_tags/individual_tags/address.rb +50 -0
- data/lib/html_tags/individual_tags/area.rb +60 -0
- data/lib/html_tags/individual_tags/article.rb +48 -0
- data/lib/html_tags/individual_tags/aside.rb +80 -0
- data/lib/html_tags/individual_tags/audio.rb +54 -0
- data/lib/html_tags/individual_tags/b.rb +22 -0
- data/lib/html_tags/individual_tags/bdo.rb +50 -0
- data/lib/html_tags/individual_tags/blockquote.rb +19 -0
- data/lib/html_tags/individual_tags/body.rb +19 -0
- data/lib/html_tags/individual_tags/br.rb +28 -0
- data/lib/html_tags/individual_tags/button.rb +143 -0
- data/lib/html_tags/individual_tags/canvas.rb +19 -0
- data/lib/html_tags/individual_tags/caption.rb +107 -0
- data/lib/html_tags/individual_tags/cite.rb +78 -0
- data/lib/html_tags/individual_tags/code.rb +105 -0
- data/lib/html_tags/individual_tags/del.rb +112 -0
- data/lib/html_tags/individual_tags/details.rb +79 -0
- data/lib/html_tags/individual_tags/dialog.rb +108 -0
- data/lib/html_tags/individual_tags/div.rb +99 -0
- data/lib/html_tags/individual_tags/em.rb +99 -0
- data/lib/html_tags/individual_tags/fieldset.rb +88 -0
- data/lib/html_tags/individual_tags/figure.rb +42 -0
- data/lib/html_tags/individual_tags/footer.rb +61 -0
- data/lib/html_tags/individual_tags/form.rb +93 -0
- data/lib/html_tags/individual_tags/h1.rb +48 -0
- data/lib/html_tags/individual_tags/h2.rb +46 -0
- data/lib/html_tags/individual_tags/h3.rb +78 -0
- data/lib/html_tags/individual_tags/h4.rb +36 -0
- data/lib/html_tags/individual_tags/h5.rb +36 -0
- data/lib/html_tags/individual_tags/h6.rb +40 -0
- data/lib/html_tags/individual_tags/head.rb +47 -0
- data/lib/html_tags/individual_tags/header.rb +54 -0
- data/lib/html_tags/individual_tags/hgroup.rb +78 -0
- data/lib/html_tags/individual_tags/html.rb +61 -0
- data/lib/html_tags/individual_tags/i.rb +47 -0
- data/lib/html_tags/individual_tags/iframe.rb +131 -0
- data/lib/html_tags/individual_tags/img.rb +135 -0
- data/lib/html_tags/individual_tags/input.rb +96 -0
- data/lib/html_tags/individual_tags/ins.rb +102 -0
- data/lib/html_tags/individual_tags/kbd.rb +109 -0
- data/lib/html_tags/individual_tags/keygen.rb +90 -0
- data/lib/html_tags/individual_tags/label.rb +77 -0
- data/lib/html_tags/individual_tags/legend.rb +48 -0
- data/lib/html_tags/individual_tags/li.rb +74 -0
- data/lib/html_tags/individual_tags/link.rb +58 -0
- data/lib/html_tags/individual_tags/main.rb +29 -0
- data/lib/html_tags/individual_tags/map.rb +95 -0
- data/lib/html_tags/individual_tags/mark.rb +78 -0
- data/lib/html_tags/individual_tags/menu.rb +79 -0
- data/lib/html_tags/individual_tags/nav.rb +64 -0
- data/lib/html_tags/individual_tags/object.rb +76 -0
- data/lib/html_tags/individual_tags/ol.rb +50 -0
- data/lib/html_tags/individual_tags/p.rb +92 -0
- data/lib/html_tags/individual_tags/pre.rb +16 -0
- data/lib/html_tags/individual_tags/progress.rb +114 -0
- data/lib/html_tags/individual_tags/script.rb +22 -0
- data/lib/html_tags/individual_tags/source.rb +42 -0
- data/lib/html_tags/individual_tags/span.rb +95 -0
- data/lib/html_tags/individual_tags/strong.rb +17 -0
- data/lib/html_tags/individual_tags/style.rb +29 -0
- data/lib/html_tags/individual_tags/summary.rb +77 -0
- data/lib/html_tags/individual_tags/sup.rb +57 -0
- data/lib/html_tags/individual_tags/table.rb +90 -0
- data/lib/html_tags/individual_tags/tbody.rb +19 -0
- data/lib/html_tags/individual_tags/td.rb +30 -0
- data/lib/html_tags/individual_tags/textarea.rb +72 -0
- data/lib/html_tags/individual_tags/th.rb +50 -0
- data/lib/html_tags/individual_tags/thead.rb +53 -0
- data/lib/html_tags/individual_tags/time.rb +50 -0
- data/lib/html_tags/individual_tags/title.rb +59 -0
- data/lib/html_tags/individual_tags/tr.rb +50 -0
- data/lib/html_tags/individual_tags/track.rb +59 -0
- data/lib/html_tags/individual_tags/u.rb +47 -0
- data/lib/html_tags/individual_tags/ul.rb +23 -0
- data/lib/html_tags/individual_tags/var.rb +46 -0
- data/lib/html_tags/individual_tags/video.rb +70 -0
- data/lib/html_tags/module.rb +5 -0
- data/lib/html_tags/opening_tag/opening_tag.rb +288 -0
- data/lib/html_tags/project/project_base_directory.rb +23 -0
- data/lib/html_tags/requires/require_the_html_tags_project.rb +9 -0
- data/lib/html_tags/requires/require_the_img_tag.rb +7 -0
- data/lib/html_tags/shared.rb +23 -0
- data/lib/html_tags/stag.rb +54 -0
- data/lib/html_tags/toplevel_methods/add.rb +22 -0
- data/lib/html_tags/toplevel_methods/full_output.rb +33 -0
- data/lib/html_tags/toplevel_methods/newline_or_empty.rb +21 -0
- data/lib/html_tags/toplevel_methods/strip_newlines.rb +27 -0
- data/lib/html_tags/version/version.rb +17 -0
- data/lib/html_tags/yaml/available_html_tags.yml +135 -0
- data/lib/html_tags/yaml/valid_tags_in_a_head_tag.yml +16 -0
- data/lib/html_tags.rb +5 -0
- data/test/testing_html_tags.rb +158 -0
- data/test/testing_the_a_tag.rb +162 -0
- data/test/testing_the_button_tag.rb +37 -0
- data/test/testing_the_details_tag.rb +38 -0
- metadata +171 -0
@@ -0,0 +1,102 @@
|
|
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.ins
|
13
|
+
# ========================================================================= #
|
14
|
+
def self.ins(
|
15
|
+
i = '',
|
16
|
+
css_class = '',
|
17
|
+
the_id = '',
|
18
|
+
css_style = '',
|
19
|
+
javascript = '',
|
20
|
+
&block
|
21
|
+
)
|
22
|
+
the_opening_tag = nil
|
23
|
+
# ======================================================================= #
|
24
|
+
# === Handle blocks next
|
25
|
+
# ======================================================================= #
|
26
|
+
if block_given?
|
27
|
+
yielded = yield
|
28
|
+
if i.is_a?(String) and i.empty?
|
29
|
+
i = { text: i }
|
30
|
+
i.update(yielded)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
if i.is_a? Hash
|
34
|
+
# ===================================================================== #
|
35
|
+
# === :css_class
|
36
|
+
# ===================================================================== #
|
37
|
+
if i.has_key? :css_class
|
38
|
+
css_class = i.delete(:css_class)
|
39
|
+
end
|
40
|
+
# ===================================================================== #
|
41
|
+
# === :id
|
42
|
+
# ===================================================================== #
|
43
|
+
if i.has_key? :id
|
44
|
+
the_id = i.delete(:id)
|
45
|
+
# ===================================================================== #
|
46
|
+
# === :the_id
|
47
|
+
# ===================================================================== #
|
48
|
+
elsif i.has_key? :the_id
|
49
|
+
the_id = i.delete(:the_id)
|
50
|
+
end
|
51
|
+
# ===================================================================== #
|
52
|
+
# === :text
|
53
|
+
#
|
54
|
+
# This should come last as it nullifies the variable i.
|
55
|
+
# ===================================================================== #
|
56
|
+
if i.has_key? :text
|
57
|
+
i = i.delete(:text).to_s
|
58
|
+
end
|
59
|
+
end
|
60
|
+
# ======================================================================= #
|
61
|
+
# === the_opening_tag
|
62
|
+
#
|
63
|
+
# We have to get a reference to the opening tag early on, so that we
|
64
|
+
# can add e. g. "onClick" to it.
|
65
|
+
# ======================================================================= #
|
66
|
+
if the_opening_tag.nil?
|
67
|
+
the_opening_tag = opening_tag(__method__, css_class, the_id, css_style, javascript) { :no_newline }
|
68
|
+
end
|
69
|
+
return HtmlTags.add(
|
70
|
+
the_opening_tag+
|
71
|
+
i.to_s+
|
72
|
+
close(__method__)
|
73
|
+
)
|
74
|
+
end
|
75
|
+
|
76
|
+
# ========================================================================= #
|
77
|
+
# === ins
|
78
|
+
# ========================================================================= #
|
79
|
+
def ins(
|
80
|
+
i = '',
|
81
|
+
css_class = '',
|
82
|
+
the_id = '',
|
83
|
+
css_style = '',
|
84
|
+
javascript = '',
|
85
|
+
&block
|
86
|
+
)
|
87
|
+
::HtmlTags.ins(
|
88
|
+
i,
|
89
|
+
css_class,
|
90
|
+
the_id,
|
91
|
+
css_style,
|
92
|
+
javascript,
|
93
|
+
&block
|
94
|
+
)
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
if __FILE__ == $PROGRAM_NAME
|
100
|
+
alias e puts
|
101
|
+
e 'This cat '+HtmlTags.ins('abc def ghi')+' is a super cat.'
|
102
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module HtmlTags
|
6
|
+
|
7
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
8
|
+
require 'html_tags/toplevel_methods/add.rb'
|
9
|
+
|
10
|
+
# ========================================================================= #
|
11
|
+
# === HtmlTags.kbd
|
12
|
+
# ========================================================================= #
|
13
|
+
def self.kbd(
|
14
|
+
i = '',
|
15
|
+
css_class = '',
|
16
|
+
the_id = '',
|
17
|
+
css_style = '',
|
18
|
+
optional_javascript = '',
|
19
|
+
&block
|
20
|
+
)
|
21
|
+
# ======================================================================= #
|
22
|
+
# === Handle Hashes first
|
23
|
+
# ======================================================================= #
|
24
|
+
if css_class.is_a? Hash
|
25
|
+
# ===================================================================== #
|
26
|
+
# === :css_style
|
27
|
+
# ===================================================================== #
|
28
|
+
if css_class.has_key? :css_style
|
29
|
+
css_style = css_class.delete(:css_style)
|
30
|
+
if css_class.is_a?(Hash) and css_class.empty?
|
31
|
+
css_class = ''
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
if i.is_a? Hash
|
36
|
+
# ===================================================================== #
|
37
|
+
# Next support elements such as:
|
38
|
+
# kbd(css_class: 'default') {
|
39
|
+
# ===================================================================== #
|
40
|
+
if i.has_key? :css_class
|
41
|
+
css_class = i.delete(:css_class)
|
42
|
+
end
|
43
|
+
# ===================================================================== #
|
44
|
+
# === :id
|
45
|
+
# ===================================================================== #
|
46
|
+
if i.has_key? :id
|
47
|
+
the_id = i.delete(:id)
|
48
|
+
end
|
49
|
+
# ===================================================================== #
|
50
|
+
# === :css_style
|
51
|
+
# ===================================================================== #
|
52
|
+
if i.has_key? :css_style
|
53
|
+
css_style = i.delete(:css_style)
|
54
|
+
end
|
55
|
+
i = '' # For now, we remove this.
|
56
|
+
end
|
57
|
+
content = i.to_s.dup
|
58
|
+
unless content.end_with?('%')
|
59
|
+
if content =~ /\d+/
|
60
|
+
content << '%'
|
61
|
+
end
|
62
|
+
end
|
63
|
+
if block_given?
|
64
|
+
content << yield.to_s
|
65
|
+
end
|
66
|
+
# ======================================================================= #
|
67
|
+
# Looks better with a newline, in my opinion:
|
68
|
+
# ======================================================================= #
|
69
|
+
content << "\n" unless content.end_with? "\n"
|
70
|
+
return HtmlTags.add(
|
71
|
+
opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
|
72
|
+
content+
|
73
|
+
close(__method__)
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
# ========================================================================= #
|
78
|
+
# === kbd
|
79
|
+
#
|
80
|
+
# This method will make a html <kbd> tag.
|
81
|
+
#
|
82
|
+
# Invocation example:
|
83
|
+
#
|
84
|
+
# HtmlTags.kbd(i = '', css_class = '', the_id = '', css_style = '')
|
85
|
+
#
|
86
|
+
# ========================================================================= #
|
87
|
+
def kbd(
|
88
|
+
i = '',
|
89
|
+
css_class = '',
|
90
|
+
the_id = '',
|
91
|
+
css_style = '',
|
92
|
+
javascript = nil
|
93
|
+
)
|
94
|
+
return HtmlTags.kbd(
|
95
|
+
i,
|
96
|
+
css_class,
|
97
|
+
the_id,
|
98
|
+
css_style,
|
99
|
+
javascript_code,
|
100
|
+
&block
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
if __FILE__ == $PROGRAM_NAME
|
107
|
+
alias e puts
|
108
|
+
e HtmlTags.kbd('Ctrl C')
|
109
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# The <keygen> tag is typically found in the <form> tag.
|
6
|
+
# =========================================================================== #
|
7
|
+
# require 'html_tags/individual_tags/keygen.rb'
|
8
|
+
# =========================================================================== #
|
9
|
+
module HtmlTags
|
10
|
+
|
11
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
12
|
+
require 'html_tags/toplevel_methods/add.rb'
|
13
|
+
|
14
|
+
# ========================================================================= #
|
15
|
+
# === HtmlTags.keygen
|
16
|
+
# ========================================================================= #
|
17
|
+
def self.keygen(
|
18
|
+
i = {},
|
19
|
+
css_class = '',
|
20
|
+
the_id = '',
|
21
|
+
css_style = '',
|
22
|
+
optional_javascript = '',
|
23
|
+
&block
|
24
|
+
)
|
25
|
+
# ======================================================================= #
|
26
|
+
# === Handle Hashes first
|
27
|
+
# ======================================================================= #
|
28
|
+
if css_class.is_a? Hash
|
29
|
+
# ===================================================================== #
|
30
|
+
# === :css_style
|
31
|
+
# ===================================================================== #
|
32
|
+
if css_class.has_key? :css_style
|
33
|
+
css_style = css_class.delete(:css_style)
|
34
|
+
if css_class.is_a?(Hash) and css_class.empty?
|
35
|
+
css_class = ''
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
_ = opening_tag(__method__, css_class, the_id, css_style, optional_javascript).dup
|
40
|
+
# ======================================================================= #
|
41
|
+
# === Handle Hashes next for the i (input) argument:
|
42
|
+
# ======================================================================= #
|
43
|
+
if i.is_a? Hash
|
44
|
+
# ===================================================================== #
|
45
|
+
# === :name
|
46
|
+
# ===================================================================== #
|
47
|
+
if i.has_key? :name
|
48
|
+
_[-2,0] = ' name="'+i[:name]+'"'
|
49
|
+
end
|
50
|
+
# ===================================================================== #
|
51
|
+
# === :keytype
|
52
|
+
# ===================================================================== #
|
53
|
+
if i.has_key? :keytype
|
54
|
+
_[-2,0] = ' keytype="'+i[:keytype]+'"'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
# ======================================================================= #
|
58
|
+
# <keygen> does not have a closing tag.
|
59
|
+
# ======================================================================= #
|
60
|
+
return HtmlTags.add(_)
|
61
|
+
end
|
62
|
+
|
63
|
+
# ========================================================================= #
|
64
|
+
# === keygen
|
65
|
+
# ========================================================================= #
|
66
|
+
def keygen(
|
67
|
+
i = {},
|
68
|
+
css_class = '',
|
69
|
+
the_id = '',
|
70
|
+
css_style = '',
|
71
|
+
optional_javascript = '',
|
72
|
+
&block
|
73
|
+
)
|
74
|
+
return HtmlTags.keygen(
|
75
|
+
i,
|
76
|
+
css_class,
|
77
|
+
the_id,
|
78
|
+
css_style,
|
79
|
+
javascript_code,
|
80
|
+
&block
|
81
|
+
)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
if __FILE__ == $PROGRAM_NAME
|
87
|
+
alias e puts
|
88
|
+
e HtmlTags.keygen(name: 'rsaPublicKey', keytype: 'RSA')
|
89
|
+
# <keygen name="rsaPublicKey" keytype="RSA">
|
90
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module HtmlTags
|
6
|
+
|
7
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
8
|
+
require 'html_tags/toplevel_methods/add.rb'
|
9
|
+
|
10
|
+
# ========================================================================= #
|
11
|
+
# === HtmlTags.label
|
12
|
+
#
|
13
|
+
# The html <label> tag is useful to specify text before an <input>
|
14
|
+
# field.
|
15
|
+
#
|
16
|
+
# The <label> tag defines a label for an <input> element.
|
17
|
+
#
|
18
|
+
# The <label> element does not render as anything special for the
|
19
|
+
# user. However, it provides a usability improvement for mouse
|
20
|
+
# users, because if the user clicks on the text within the <label>
|
21
|
+
# element, it toggles the control.
|
22
|
+
#
|
23
|
+
# The "for" attribute of the <label> tag should be equal to the id
|
24
|
+
# attribute of the related element to bind them together.
|
25
|
+
#
|
26
|
+
# This may be best explained through an example:
|
27
|
+
#
|
28
|
+
# <label for="male">Male</label>
|
29
|
+
# <input type="radio" name="sex" id="male" value="male">
|
30
|
+
#
|
31
|
+
# Documentation can be seen here:
|
32
|
+
#
|
33
|
+
# https://www.w3schools.com/tags/tag_label.asp
|
34
|
+
#
|
35
|
+
# ========================================================================= #
|
36
|
+
def self.label(
|
37
|
+
i = '',
|
38
|
+
css_class = '',
|
39
|
+
the_id = '',
|
40
|
+
css_style = ''
|
41
|
+
)
|
42
|
+
start = opening_tag(__method__, css_class, the_id, css_style)
|
43
|
+
for_label = i.to_s.downcase.strip # Right now the for-label is deduced from the input.
|
44
|
+
start[-2,0] = ' for="'+for_label+'"' # -2 because we also have a trailing newline.
|
45
|
+
return HtmlTags.add(
|
46
|
+
start+
|
47
|
+
i.to_s+
|
48
|
+
close(__method__)
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
# ========================================================================= #
|
53
|
+
# === label
|
54
|
+
# ========================================================================= #
|
55
|
+
def label(
|
56
|
+
i = '',
|
57
|
+
css_class = '',
|
58
|
+
the_id = '',
|
59
|
+
css_style = '',
|
60
|
+
javascript = nil
|
61
|
+
)
|
62
|
+
return HtmlTags.label(
|
63
|
+
i,
|
64
|
+
css_class,
|
65
|
+
the_id,
|
66
|
+
css_style,
|
67
|
+
javascript_code,
|
68
|
+
&block
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
if __FILE__ == $PROGRAM_NAME
|
75
|
+
alias e puts
|
76
|
+
e HtmlTags.label('My savings', css_style: 'text-align: right')
|
77
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module HtmlTags
|
6
|
+
|
7
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
8
|
+
require 'html_tags/toplevel_methods/add.rb'
|
9
|
+
|
10
|
+
# ========================================================================= #
|
11
|
+
# === HtmlTags.legend
|
12
|
+
# ========================================================================= #
|
13
|
+
def self.legend(
|
14
|
+
i = '',
|
15
|
+
css_class = '',
|
16
|
+
the_id = '',
|
17
|
+
css_style = ''
|
18
|
+
)
|
19
|
+
return HtmlTags.add(
|
20
|
+
opening_tag(__method__, css_class, the_id, css_style)+
|
21
|
+
i.to_s+
|
22
|
+
close(__method__)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
# ========================================================================= #
|
27
|
+
# === legend
|
28
|
+
# ========================================================================= #
|
29
|
+
def legend(
|
30
|
+
i = '',
|
31
|
+
css_class = '',
|
32
|
+
the_id = '',
|
33
|
+
css_style = ''
|
34
|
+
)
|
35
|
+
return HtmlTags.legend(
|
36
|
+
i,
|
37
|
+
css_class,
|
38
|
+
the_id,
|
39
|
+
css_style
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
if __FILE__ == $PROGRAM_NAME
|
46
|
+
alias e puts
|
47
|
+
e HtmlTags.legend('My savings', css_style: 'text-align: right')
|
48
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module HtmlTags
|
6
|
+
|
7
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
8
|
+
require 'html_tags/toplevel_methods/add.rb'
|
9
|
+
|
10
|
+
# ========================================================================= #
|
11
|
+
# === HtmlTags.li (li tag)
|
12
|
+
#
|
13
|
+
# This is essentially a HTML representation for the <li> tag.
|
14
|
+
#
|
15
|
+
# The first input argument to this method will constitute the content
|
16
|
+
# of said <li> tag. Note that the block form to li {} can also be
|
17
|
+
# used for content, so use whichever way you prefer.
|
18
|
+
# ========================================================================= #
|
19
|
+
def self.li(
|
20
|
+
i = '', # <- This is the content.
|
21
|
+
css_class = '',
|
22
|
+
the_id = '',
|
23
|
+
css_style = '',
|
24
|
+
optional_javascript = '',
|
25
|
+
&block
|
26
|
+
)
|
27
|
+
if i.is_a? Hash
|
28
|
+
# === :css_class
|
29
|
+
if i.has_key? :css_class
|
30
|
+
css_class = i.delete(:css_class)
|
31
|
+
end
|
32
|
+
i = ''
|
33
|
+
end
|
34
|
+
i = i.to_s.dup # And avoid frozen-errors.
|
35
|
+
# ======================================================================= #
|
36
|
+
# Blocks will be assumed to be used for the first argument, `i`.
|
37
|
+
# ======================================================================= #
|
38
|
+
if block_given?
|
39
|
+
i << yield.to_s
|
40
|
+
end
|
41
|
+
return HtmlTags.add(
|
42
|
+
opening_tag(__method__, css_class, the_id, css_style, optional_javascript)+
|
43
|
+
i+
|
44
|
+
close(__method__)
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
# ========================================================================= #
|
49
|
+
# === li
|
50
|
+
# ========================================================================= #
|
51
|
+
def li(
|
52
|
+
i = '',
|
53
|
+
css_class = '',
|
54
|
+
the_id = '',
|
55
|
+
css_style = '',
|
56
|
+
optional_javascript = '',
|
57
|
+
&block
|
58
|
+
)
|
59
|
+
return HtmlTags.li(
|
60
|
+
i,
|
61
|
+
css_class,
|
62
|
+
the_id,
|
63
|
+
css_style,
|
64
|
+
optional_javascript,
|
65
|
+
&block
|
66
|
+
)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
if __FILE__ == $PROGRAM_NAME
|
72
|
+
alias e puts
|
73
|
+
e HtmlTags.li('My savings')
|
74
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'html_tags/individual_tags/link.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module HtmlTags
|
8
|
+
|
9
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
10
|
+
require 'html_tags/toplevel_methods/add.rb'
|
11
|
+
|
12
|
+
# ========================================================================= #
|
13
|
+
# === HtmlTags.link
|
14
|
+
#
|
15
|
+
# The job of this method is to create a String such as:
|
16
|
+
#
|
17
|
+
# <link rel="stylesheet" href="styles.css">
|
18
|
+
#
|
19
|
+
# Note that normally the link-HTML tag comes in between the <head> tag.
|
20
|
+
#
|
21
|
+
# The second argument, `rel`, can be any of the following:
|
22
|
+
#
|
23
|
+
# alternate, author, dns-prefetch, help, icon, license, next, pingback,
|
24
|
+
# preconnect, prefetch, preload, prerender, prev, search, stylesheet
|
25
|
+
#
|
26
|
+
# The default is 'stylesheet', as that is the most commonly used variant
|
27
|
+
# for the <link> tag.
|
28
|
+
# ========================================================================= #
|
29
|
+
def self.link(
|
30
|
+
href = '',
|
31
|
+
rel = 'stylesheet'
|
32
|
+
)
|
33
|
+
_ = opening_tag(__method__).dup
|
34
|
+
if rel
|
35
|
+
_[-2,0] = ' rel="'+rel+'"'
|
36
|
+
end
|
37
|
+
if href
|
38
|
+
_[-2,0] = ' href="'+href+'"'
|
39
|
+
end
|
40
|
+
return HtmlTags.add(_)
|
41
|
+
end
|
42
|
+
|
43
|
+
# ========================================================================= #
|
44
|
+
# === link
|
45
|
+
# ========================================================================= #
|
46
|
+
def link(
|
47
|
+
href = '',
|
48
|
+
rel = ''
|
49
|
+
)
|
50
|
+
return HtmlTags.link(href, rel)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
if __FILE__ == $PROGRAM_NAME
|
56
|
+
alias e puts
|
57
|
+
e HtmlTags.link('styles.css','stylesheet')
|
58
|
+
end # <link rel="stylesheet" href="styles.css">
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
module HtmlTags
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === main
|
9
|
+
#
|
10
|
+
# Usage example:
|
11
|
+
#
|
12
|
+
# HtmlTags.main('<h1>APP NAME</h1><nav></nav>') => '<header><h1>APP NAME</h1><nav></nav></header>'
|
13
|
+
#
|
14
|
+
# ========================================================================= #
|
15
|
+
def main(
|
16
|
+
i = '', css_class = '', the_id = '', css_style = '', &block
|
17
|
+
)
|
18
|
+
content = i.to_s
|
19
|
+
if block_given?
|
20
|
+
content = content.to_s+yield.to_s
|
21
|
+
end
|
22
|
+
return HtmlTags.add(
|
23
|
+
opening_tag(__method__, css_class, the_id, css_style)+
|
24
|
+
content+
|
25
|
+
close(__method__)
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# See this API reference:
|
6
|
+
#
|
7
|
+
# https://www.w3schools.com/TagS/tag_map.asp
|
8
|
+
#
|
9
|
+
# =========================================================================== #
|
10
|
+
module HtmlTags
|
11
|
+
|
12
|
+
require 'html_tags/opening_tag/opening_tag.rb'
|
13
|
+
require 'html_tags/toplevel_methods/add.rb'
|
14
|
+
|
15
|
+
# ========================================================================= #
|
16
|
+
# === HtmlTags.map (map tag)
|
17
|
+
#
|
18
|
+
# An example for the usage of the map-HTML tag goes like this:
|
19
|
+
#
|
20
|
+
# <map name="workmap">
|
21
|
+
# </map>
|
22
|
+
#
|
23
|
+
# ========================================================================= #
|
24
|
+
def self.map(
|
25
|
+
i = '', # <- This is the content.
|
26
|
+
css_class = '',
|
27
|
+
the_id = '',
|
28
|
+
css_style = '',
|
29
|
+
optional_javascript = '',
|
30
|
+
&block
|
31
|
+
)
|
32
|
+
if i.is_a? Hash
|
33
|
+
# ===================================================================== #
|
34
|
+
# === :css_class
|
35
|
+
# ===================================================================== #
|
36
|
+
if i.has_key? :css_class
|
37
|
+
css_class = i.delete(:css_class)
|
38
|
+
end
|
39
|
+
i = ''
|
40
|
+
end
|
41
|
+
i = i.to_s.dup # And avoid frozen-errors.
|
42
|
+
start = opening_tag(__method__, css_class, the_id, css_style, optional_javascript)
|
43
|
+
# ======================================================================= #
|
44
|
+
# Blocks will be assumed to be used for the first argument, `i`.
|
45
|
+
# ======================================================================= #
|
46
|
+
if block_given?
|
47
|
+
yielded = yield
|
48
|
+
if yielded.is_a? Hash
|
49
|
+
# =================================================================== #
|
50
|
+
# === :name
|
51
|
+
# =================================================================== #
|
52
|
+
if yielded.has_key? :name
|
53
|
+
start[-2,0] = ' name="'+yielded.delete(:name)+'"'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
return HtmlTags.add(
|
58
|
+
start+
|
59
|
+
i+
|
60
|
+
"\n"+
|
61
|
+
close(__method__)
|
62
|
+
)
|
63
|
+
end
|
64
|
+
|
65
|
+
# ========================================================================= #
|
66
|
+
# === map
|
67
|
+
# ========================================================================= #
|
68
|
+
def map(
|
69
|
+
i = '',
|
70
|
+
css_class = '',
|
71
|
+
the_id = '',
|
72
|
+
css_style = '',
|
73
|
+
optional_javascript = '',
|
74
|
+
&block
|
75
|
+
)
|
76
|
+
return HtmlTags.map(
|
77
|
+
i,
|
78
|
+
css_class,
|
79
|
+
the_id,
|
80
|
+
css_style,
|
81
|
+
optional_javascript,
|
82
|
+
&block
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
if __FILE__ == $PROGRAM_NAME
|
89
|
+
alias e puts
|
90
|
+
e HtmlTags.map('<area shape="rect" coords="34,44,270,350" alt="Computer" href="computer.htm">
|
91
|
+
<area shape="rect" coords="290,172,333,250" alt="Phone" href="phone.htm">
|
92
|
+
<area shape="circle" coords="337,300,44" alt="Cup of coffee" href="coffee.htm">') {{
|
93
|
+
name: 'workmap'
|
94
|
+
}}
|
95
|
+
end
|