site_validator 1.2.4 → 1.2.5
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/site_validator/message.rb +4 -3
- data/lib/site_validator/page.rb +17 -3
- data/lib/site_validator/templates/site_validator.html.erb +223 -499
- data/lib/site_validator/version.rb +1 -1
- data/spec/message_spec.rb +29 -9
- data/spec/mocks/mocked_validator.rb +6 -6
- data/spec/page_spec.rb +24 -6
- data/spec/spec_helper.rb +6 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f105d17ef7988b25bce51050e6a105274aa6d932
|
4
|
+
data.tar.gz: a3dbd8a3c79709d8a361efb93f4c7e5cd3061378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 493c0530a53153b7c390ad05c0407d9c1f114f0afacddce3dac27fedfbc3c57c2f544dbd2980d6582830d33062ed9e95bcdd5390657b461769cf52b142ff349a
|
7
|
+
data.tar.gz: 7b19c35d266d833da7787dd0ece2eba65074ea1b8c86e1836f70616cccf215e626a9fd09fbb39864abfc56883e2c033094a458e6b572b2343d157fa5dbadc2c8
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
###Site Validator Gem [](http://travis-ci.org/jaimeiniesta/site_validator)
|
2
2
|
|
3
|
-
site_validator is the free, open source version of the
|
3
|
+
site_validator is the free, open source version of the [Site Validator app](https://sitevalidator.com).
|
4
4
|
|
5
|
-
Just pass it your site's URL and it will crawl
|
5
|
+
Just pass it your site's URL and it will crawl its internal links and validate their HTML for you, generating a comprehensive validation report (see [an example](http://sitevalidator.com/gem/report.html)).
|
6
6
|
|
7
7
|
[](https://sitevalidator.com/video_gem?autoplay=true)
|
8
8
|
|
@@ -2,9 +2,10 @@
|
|
2
2
|
|
3
3
|
module SiteValidator
|
4
4
|
##
|
5
|
-
# A message holds a message_id, a line, a text
|
5
|
+
# A message holds a message_id, a line, a text a type
|
6
|
+
# and a source (for the code snippet)
|
6
7
|
#
|
7
8
|
# See the W3C message explanation list on
|
8
9
|
# http://validator.w3.org/docs/errors.html
|
9
|
-
Message = Struct.new(:message_id, :line, :text, :type)
|
10
|
-
end
|
10
|
+
Message = Struct.new(:message_id, :line, :col, :text, :type, :source, :explanation)
|
11
|
+
end
|
data/lib/site_validator/page.rb
CHANGED
@@ -35,7 +35,7 @@ module SiteValidator
|
|
35
35
|
@errors ||= validations.errors
|
36
36
|
.select {|e| e.message_id && !e.message_id.empty?}
|
37
37
|
.map do |e|
|
38
|
-
SiteValidator::Message.new(e.message_id, e.line, e.message, :error)
|
38
|
+
SiteValidator::Message.new(e.message_id, e.line, e.col, e.message, :error, e.source, prepare_w3c_explanation(e))
|
39
39
|
end
|
40
40
|
rescue Exception => e
|
41
41
|
@exception = e.to_s
|
@@ -50,7 +50,7 @@ module SiteValidator
|
|
50
50
|
@warnings ||= validations.warnings
|
51
51
|
.select {|w| w.message_id && !w.message_id.empty?}
|
52
52
|
.map do |w|
|
53
|
-
SiteValidator::Message.new(w.message_id, w.line, w.message, :warning)
|
53
|
+
SiteValidator::Message.new(w.message_id, w.line, w.col, w.message, :warning, w.source, prepare_w3c_explanation(w))
|
54
54
|
end
|
55
55
|
rescue Exception => e
|
56
56
|
@exception = e.to_s
|
@@ -70,5 +70,19 @@ module SiteValidator
|
|
70
70
|
def markup_validator
|
71
71
|
@markup_validator ||= MarkupValidator.new(:validator_uri => ENV['W3C_MARKUP_VALIDATOR_URI'] || 'http://validator.w3.org/check')
|
72
72
|
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Fixes the link to give feedback to the W3C
|
76
|
+
def prepare_w3c_explanation(message)
|
77
|
+
explanation = message.explanation
|
78
|
+
|
79
|
+
if explanation
|
80
|
+
explanation.strip!
|
81
|
+
explanation.gsub!("our feedback channels", "the W3C feedback channels")
|
82
|
+
explanation.gsub!("feedback.html", "http://validator.w3.org/feedback.html")
|
83
|
+
end
|
84
|
+
|
85
|
+
explanation
|
86
|
+
end
|
73
87
|
end
|
74
|
-
end
|
88
|
+
end
|
@@ -1,534 +1,258 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<meta charset=utf-8>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
|
5
7
|
<title>Site Validator report for <%= @url %></title>
|
6
|
-
<style type="text/css">
|
7
|
-
/* Bootstrap 1.4.0 */
|
8
|
-
html,body{margin:0;padding:0;}
|
9
|
-
h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;}
|
10
|
-
table{border-collapse:collapse;border-spacing:0;}
|
11
|
-
ol,ul{list-style:none;}
|
12
|
-
q:before,q:after,blockquote:before,blockquote:after{content:"";}
|
13
|
-
html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
|
14
|
-
a:focus{outline:thin dotted;}
|
15
|
-
a:hover,a:active{outline:0;}
|
16
|
-
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
|
17
|
-
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
|
18
|
-
audio:not([controls]){display:none;}
|
19
|
-
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
|
20
|
-
sup{top:-0.5em;}
|
21
|
-
sub{bottom:-0.25em;}
|
22
|
-
img{border:0;-ms-interpolation-mode:bicubic;}
|
23
|
-
button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;}
|
24
|
-
button,input{line-height:normal;*overflow:visible;}
|
25
|
-
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
|
26
|
-
button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
|
27
|
-
input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
|
28
|
-
input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
|
29
|
-
textarea{overflow:auto;vertical-align:top;}
|
30
|
-
body{background-color:#ffffff;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;color:#404040;}
|
31
|
-
.container{width:940px;margin-left:auto;margin-right:auto;zoom:1;}.container:before,.container:after{display:table;content:"";zoom:1;}
|
32
|
-
.container:after{clear:both;}
|
33
|
-
.container-fluid{position:relative;min-width:940px;padding-left:20px;padding-right:20px;zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";zoom:1;}
|
34
|
-
.container-fluid:after{clear:both;}
|
35
|
-
.container-fluid>.sidebar{position:absolute;top:0;left:20px;width:220px;}
|
36
|
-
.container-fluid>.content{margin-left:240px;}
|
37
|
-
a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#00438a;text-decoration:underline;}
|
38
|
-
.pull-right{float:right;}
|
39
|
-
.pull-left{float:left;}
|
40
|
-
.hide{display:none;}
|
41
|
-
.show{display:block;}
|
42
|
-
.row{zoom:1;margin-left:-20px;}.row:before,.row:after{display:table;content:"";zoom:1;}
|
43
|
-
.row:after{clear:both;}
|
44
|
-
.row>[class*="span"]{display:inline;float:left;margin-left:20px;}
|
45
|
-
.span1{width:40px;}
|
46
|
-
.span2{width:100px;}
|
47
|
-
.span3{width:160px;}
|
48
|
-
.span4{width:220px;}
|
49
|
-
.span5{width:280px;}
|
50
|
-
.span6{width:340px;}
|
51
|
-
.span7{width:400px;}
|
52
|
-
.span8{width:460px;}
|
53
|
-
.span9{width:520px;}
|
54
|
-
.span10{width:580px;}
|
55
|
-
.span11{width:640px;}
|
56
|
-
.span12{width:700px;}
|
57
|
-
.span13{width:760px;}
|
58
|
-
.span14{width:820px;}
|
59
|
-
.span15{width:880px;}
|
60
|
-
.span16{width:940px;}
|
61
|
-
.span17{width:1000px;}
|
62
|
-
.span18{width:1060px;}
|
63
|
-
.span19{width:1120px;}
|
64
|
-
.span20{width:1180px;}
|
65
|
-
.span21{width:1240px;}
|
66
|
-
.span22{width:1300px;}
|
67
|
-
.span23{width:1360px;}
|
68
|
-
.span24{width:1420px;}
|
69
|
-
.row >.offset1{margin-left:80px;}
|
70
|
-
.row >.offset2{margin-left:140px;}
|
71
|
-
.row >.offset3{margin-left:200px;}
|
72
|
-
.row >.offset4{margin-left:260px;}
|
73
|
-
.row >.offset5{margin-left:320px;}
|
74
|
-
.row >.offset6{margin-left:380px;}
|
75
|
-
.row >.offset7{margin-left:440px;}
|
76
|
-
.row >.offset8{margin-left:500px;}
|
77
|
-
.row >.offset9{margin-left:560px;}
|
78
|
-
.row >.offset10{margin-left:620px;}
|
79
|
-
.row >.offset11{margin-left:680px;}
|
80
|
-
.row >.offset12{margin-left:740px;}
|
81
|
-
.span-one-third{width:300px;}
|
82
|
-
.span-two-thirds{width:620px;}
|
83
|
-
.offset-one-third{margin-left:340px;}
|
84
|
-
.offset-two-thirds{margin-left:660px;}
|
85
|
-
p{font-size:13px;font-weight:normal;line-height:18px;margin-bottom:9px;}p small{font-size:11px;color:#bfbfbf;}
|
86
|
-
h1,h2,h3,h4,h5,h6{font-weight:bold;color:#404040;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf;}
|
87
|
-
h1{margin-bottom:18px;font-size:30px;line-height:36px;}h1 small{font-size:18px;}
|
88
|
-
h2{font-size:24px;line-height:36px;}h2 small{font-size:14px;}
|
89
|
-
h3,h4,h5,h6{line-height:36px;}
|
90
|
-
h3{font-size:18px;}h3 small{font-size:14px;}
|
91
|
-
h4{font-size:16px;}h4 small{font-size:12px;}
|
92
|
-
h5{font-size:14px;}
|
93
|
-
h6{font-size:13px;color:#bfbfbf;text-transform:uppercase;}
|
94
|
-
ul,ol{margin:0 0 18px 25px;}
|
95
|
-
ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
|
96
|
-
ul{list-style:disc;}
|
97
|
-
ol{list-style:decimal;}
|
98
|
-
li{line-height:18px;color:#808080;}
|
99
|
-
ul.unstyled{list-style:none;margin-left:0;}
|
100
|
-
dl{margin-bottom:18px;}dl dt,dl dd{line-height:18px;}
|
101
|
-
dl dt{font-weight:bold;}
|
102
|
-
dl dd{margin-left:9px;}
|
103
|
-
hr{margin:20px 0 19px;border:0;border-bottom:1px solid #eee;}
|
104
|
-
strong{font-style:inherit;font-weight:bold;}
|
105
|
-
em{font-style:italic;font-weight:inherit;line-height:inherit;}
|
106
|
-
.muted{color:#bfbfbf;}
|
107
|
-
blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px;}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0;}
|
108
|
-
blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf;}blockquote small:before{content:'\2014 \00A0';}
|
109
|
-
address{display:block;line-height:18px;margin-bottom:18px;}
|
110
|
-
code,pre{padding:0 3px 2px;font-family:Monaco, Andale Mono, Courier New, monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
111
|
-
code{background-color:#fee9cc;color:rgba(0, 0, 0, 0.75);padding:1px 3px;}
|
112
|
-
pre{background-color:#f5f5f5;display:block;padding:8.5px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
|
113
|
-
form{margin-bottom:18px;}
|
114
|
-
fieldset{margin-bottom:18px;padding-top:18px;}fieldset legend{display:block;padding-left:150px;font-size:19.5px;line-height:1;color:#404040;*padding:0 0 5px 145px;*line-height:1.5;}
|
115
|
-
form .clearfix{margin-bottom:18px;zoom:1;}form .clearfix:before,form .clearfix:after{display:table;content:"";zoom:1;}
|
116
|
-
form .clearfix:after{clear:both;}
|
117
|
-
label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:normal;}
|
118
|
-
label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040;}
|
119
|
-
form .input{margin-left:150px;}
|
120
|
-
input[type=checkbox],input[type=radio]{cursor:pointer;}
|
121
|
-
input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
122
|
-
select{padding:initial;}
|
123
|
-
input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none;}
|
124
|
-
input[type=file]{background-color:#ffffff;padding:initial;border:initial;line-height:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
125
|
-
input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;}
|
126
|
-
select,input[type=file]{height:27px;*height:auto;line-height:27px;*margin-top:4px;}
|
127
|
-
select[multiple]{height:inherit;background-color:#ffffff;}
|
128
|
-
textarea{height:auto;}
|
129
|
-
.uneditable-input{background-color:#ffffff;display:block;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
|
130
|
-
:-moz-placeholder{color:#bfbfbf;}
|
131
|
-
::-webkit-input-placeholder{color:#bfbfbf;}
|
132
|
-
input,textarea{-webkit-transform-style:preserve-3d;-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);}
|
133
|
-
input:focus,textarea:focus{outline:0;border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);}
|
134
|
-
input[type=file]:focus,input[type=checkbox]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:1px dotted #666;}
|
135
|
-
form .clearfix.error>label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48;}
|
136
|
-
form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b;}form .clearfix.error input:focus,form .clearfix.error textarea:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
|
137
|
-
form .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48;}
|
138
|
-
form .clearfix.warning>label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853;}
|
139
|
-
form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64;}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1;}
|
140
|
-
form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853;}
|
141
|
-
form .clearfix.success>label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847;}
|
142
|
-
form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957;}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a;}
|
143
|
-
form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847;}
|
144
|
-
.input-mini,input.mini,textarea.mini,select.mini{width:60px;}
|
145
|
-
.input-small,input.small,textarea.small,select.small{width:90px;}
|
146
|
-
.input-medium,input.medium,textarea.medium,select.medium{width:150px;}
|
147
|
-
.input-large,input.large,textarea.large,select.large{width:210px;}
|
148
|
-
.input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px;}
|
149
|
-
.input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px;}
|
150
|
-
textarea.xxlarge{overflow-y:auto;}
|
151
|
-
input.span1,textarea.span1{display:inline-block;float:none;width:30px;margin-left:0;}
|
152
|
-
input.span2,textarea.span2{display:inline-block;float:none;width:90px;margin-left:0;}
|
153
|
-
input.span3,textarea.span3{display:inline-block;float:none;width:150px;margin-left:0;}
|
154
|
-
input.span4,textarea.span4{display:inline-block;float:none;width:210px;margin-left:0;}
|
155
|
-
input.span5,textarea.span5{display:inline-block;float:none;width:270px;margin-left:0;}
|
156
|
-
input.span6,textarea.span6{display:inline-block;float:none;width:330px;margin-left:0;}
|
157
|
-
input.span7,textarea.span7{display:inline-block;float:none;width:390px;margin-left:0;}
|
158
|
-
input.span8,textarea.span8{display:inline-block;float:none;width:450px;margin-left:0;}
|
159
|
-
input.span9,textarea.span9{display:inline-block;float:none;width:510px;margin-left:0;}
|
160
|
-
input.span10,textarea.span10{display:inline-block;float:none;width:570px;margin-left:0;}
|
161
|
-
input.span11,textarea.span11{display:inline-block;float:none;width:630px;margin-left:0;}
|
162
|
-
input.span12,textarea.span12{display:inline-block;float:none;width:690px;margin-left:0;}
|
163
|
-
input.span13,textarea.span13{display:inline-block;float:none;width:750px;margin-left:0;}
|
164
|
-
input.span14,textarea.span14{display:inline-block;float:none;width:810px;margin-left:0;}
|
165
|
-
input.span15,textarea.span15{display:inline-block;float:none;width:870px;margin-left:0;}
|
166
|
-
input.span16,textarea.span16{display:inline-block;float:none;width:930px;margin-left:0;}
|
167
|
-
input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;}
|
168
|
-
.actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;}.actions .secondary-action{float:right;}.actions .secondary-action a{line-height:30px;}.actions .secondary-action a:hover{text-decoration:underline;}
|
169
|
-
.help-inline,.help-block{font-size:13px;line-height:18px;color:#bfbfbf;}
|
170
|
-
.help-inline{padding-left:5px;*position:relative;*top:-5px;}
|
171
|
-
.help-block{display:block;max-width:600px;}
|
172
|
-
.inline-inputs{color:#808080;}.inline-inputs span{padding:0 2px 0 1px;}
|
173
|
-
.input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
174
|
-
.input-prepend .add-on,.input-append .add-on{position:relative;background:#f5f5f5;border:1px solid #ccc;z-index:2;float:left;display:block;width:auto;min-width:16px;height:18px;padding:4px 4px 4px 5px;margin-right:-1px;font-weight:normal;line-height:18px;color:#bfbfbf;text-align:center;text-shadow:0 1px 0 #ffffff;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
175
|
-
.input-prepend .active,.input-append .active{background:#a9dba9;border-color:#46a546;}
|
176
|
-
.input-prepend .add-on{*margin-top:1px;}
|
177
|
-
.input-append input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
178
|
-
.input-append .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin-right:0;margin-left:-1px;}
|
179
|
-
.inputs-list{margin:0 0 5px;width:100%;}.inputs-list li{display:block;padding:0;width:100%;}
|
180
|
-
.inputs-list label{display:block;float:none;width:auto;padding:0;margin-left:20px;line-height:18px;text-align:left;white-space:normal;}.inputs-list label strong{color:#808080;}
|
181
|
-
.inputs-list label small{font-size:11px;font-weight:normal;}
|
182
|
-
.inputs-list .inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0;}
|
183
|
-
.inputs-list:first-child{padding-top:6px;}
|
184
|
-
.inputs-list li+li{padding-top:2px;}
|
185
|
-
.inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;margin-left:-20px;float:left;}
|
186
|
-
.form-stacked{padding-left:20px;}.form-stacked fieldset{padding-top:9px;}
|
187
|
-
.form-stacked legend{padding-left:0;}
|
188
|
-
.form-stacked label{display:block;float:none;width:auto;font-weight:bold;text-align:left;line-height:20px;padding-top:0;}
|
189
|
-
.form-stacked .clearfix{margin-bottom:9px;}.form-stacked .clearfix div.input{margin-left:0;}
|
190
|
-
.form-stacked .inputs-list{margin-bottom:0;}.form-stacked .inputs-list li{padding-top:0;}.form-stacked .inputs-list li label{font-weight:normal;padding-top:0;}
|
191
|
-
.form-stacked div.clearfix.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px;}
|
192
|
-
.form-stacked .actions{margin-left:-20px;padding-left:20px;}
|
193
|
-
table{width:100%;margin-bottom:18px;padding:0;font-size:13px;border-collapse:collapse;}table th,table td{padding:10px 10px 9px;line-height:18px;text-align:left;}
|
194
|
-
table th{padding-top:9px;font-weight:bold;vertical-align:middle;}
|
195
|
-
table td{vertical-align:top;border-top:1px solid #ddd;}
|
196
|
-
table tbody th{border-top:1px solid #ddd;vertical-align:top;}
|
197
|
-
.condensed-table th,.condensed-table td{padding:5px 5px 4px;}
|
198
|
-
.bordered-table{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.bordered-table th+th,.bordered-table td+td,.bordered-table th+td{border-left:1px solid #ddd;}
|
199
|
-
.bordered-table thead tr:first-child th:first-child,.bordered-table tbody tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
|
200
|
-
.bordered-table thead tr:first-child th:last-child,.bordered-table tbody tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
|
201
|
-
.bordered-table tbody tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
|
202
|
-
.bordered-table tbody tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
|
203
|
-
table .span1{width:20px;}
|
204
|
-
table .span2{width:60px;}
|
205
|
-
table .span3{width:100px;}
|
206
|
-
table .span4{width:140px;}
|
207
|
-
table .span5{width:180px;}
|
208
|
-
table .span6{width:220px;}
|
209
|
-
table .span7{width:260px;}
|
210
|
-
table .span8{width:300px;}
|
211
|
-
table .span9{width:340px;}
|
212
|
-
table .span10{width:380px;}
|
213
|
-
table .span11{width:420px;}
|
214
|
-
table .span12{width:460px;}
|
215
|
-
table .span13{width:500px;}
|
216
|
-
table .span14{width:540px;}
|
217
|
-
table .span15{width:580px;}
|
218
|
-
table .span16{width:620px;}
|
219
|
-
.zebra-striped tbody tr:nth-child(odd) td,.zebra-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
|
220
|
-
.zebra-striped tbody tr:hover td,.zebra-striped tbody tr:hover th{background-color:#f5f5f5;}
|
221
|
-
table .header{cursor:pointer;}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden;}
|
222
|
-
table .headerSortUp,table .headerSortDown{background-color:rgba(141, 192, 219, 0.25);text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);}
|
223
|
-
table .header:hover:after{visibility:visible;}
|
224
|
-
table .headerSortDown:after,table .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
|
225
|
-
table .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
|
226
|
-
table .blue{color:#049cdb;border-bottom-color:#049cdb;}
|
227
|
-
table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe;}
|
228
|
-
table .green{color:#46a546;border-bottom-color:#46a546;}
|
229
|
-
table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd;}
|
230
|
-
table .red{color:#9d261d;border-bottom-color:#9d261d;}
|
231
|
-
table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5;}
|
232
|
-
table .yellow{color:#ffc40d;border-bottom-color:#ffc40d;}
|
233
|
-
table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9;}
|
234
|
-
table .orange{color:#f89406;border-bottom-color:#f89406;}
|
235
|
-
table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc;}
|
236
|
-
table .purple{color:#7a43b6;border-bottom-color:#7a43b6;}
|
237
|
-
table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0;}
|
238
|
-
.topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible;}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
|
239
|
-
.topbar h3 a:hover,.topbar .brand:hover,.topbar ul .active>a{background-color:#333;background-color:rgba(255, 255, 255, 0.05);color:#ffffff;text-decoration:none;}
|
240
|
-
.topbar h3{position:relative;}
|
241
|
-
.topbar h3 a,.topbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#ffffff;font-size:20px;font-weight:200;line-height:1;}
|
242
|
-
.topbar p{margin:0;line-height:40px;}.topbar p a:hover{background-color:transparent;color:#ffffff;}
|
243
|
-
.topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;}
|
244
|
-
.topbar form.pull-right{float:right;}
|
245
|
-
.topbar input{background-color:#444;background-color:rgba(255, 255, 255, 0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#ffffff;color:rgba(255, 255, 255, 0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-webkit-transform-style:preserve-3d;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.topbar input:-moz-placeholder{color:#e6e6e6;}
|
246
|
-
.topbar input::-webkit-input-placeholder{color:#e6e6e6;}
|
247
|
-
.topbar input:hover{background-color:#bfbfbf;background-color:rgba(255, 255, 255, 0.5);color:#ffffff;}
|
248
|
-
.topbar input:focus,.topbar input.focused{outline:0;background-color:#ffffff;color:#404040;text-shadow:0 1px 0 #ffffff;border:0;padding:5px 10px;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);}
|
249
|
-
.topbar-inner,.topbar .fill{background-color:#222;background-color:#222222;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);}
|
250
|
-
.topbar div>ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0;}.topbar div>ul>li,.nav>li{display:block;float:left;}
|
251
|
-
.topbar div>ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none;}.topbar div>ul a:hover,.nav a:hover{color:#ffffff;text-decoration:none;}
|
252
|
-
.topbar div>ul .active>a,.nav .active>a{background-color:#222;background-color:rgba(0, 0, 0, 0.5);}
|
253
|
-
.topbar div>ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0;}.topbar div>ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div>ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;border:0;}
|
254
|
-
.topbar div>ul a.menu:hover,.nav a.menu:hover,.topbar div>ul li.open .menu,.nav li.open .menu,.topbar div>ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div>ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255, 255, 255, 0.05);}
|
255
|
-
.topbar div>ul .menu-dropdown,.nav .menu-dropdown,.topbar div>ul .dropdown-menu,.nav .dropdown-menu{background-color:#333;}.topbar div>ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div>ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div>ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div>ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#ffffff;}.topbar div>ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div>ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div>ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div>ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255, 255, 255, 0.05);}
|
256
|
-
.topbar div>ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div>ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0, 0, 0, 0.5);}.topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919));background-image:-moz-linear-gradient(top, #292929, #191919);background-image:-ms-linear-gradient(top, #292929, #191919);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919));background-image:-webkit-linear-gradient(top, #292929, #191919);background-image:-o-linear-gradient(top, #292929, #191919);background-image:linear-gradient(top, #292929, #191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0);color:#ffffff;}
|
257
|
-
.topbar div>ul .menu-dropdown .active a,.nav .menu-dropdown .active a,.topbar div>ul .dropdown-menu .active a,.nav .dropdown-menu .active a{color:#ffffff;}
|
258
|
-
.topbar div>ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div>ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444;}
|
259
|
-
.topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px;}
|
260
|
-
li.menu,.dropdown{position:relative;}
|
261
|
-
a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"↓";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #ffffff;filter:alpha(opacity=50);-khtml-opacity:0.5;-moz-opacity:0.5;opacity:0.5;}
|
262
|
-
.menu-dropdown,.dropdown-menu{background-color:#ffffff;float:left;display:none;position:absolute;top:40px;z-index:900;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none;}
|
263
|
-
.menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid #ffffff;}
|
264
|
-
.topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:normal;line-height:18px;color:#808080;text-shadow:0 1px 0 #ffffff;}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover,.topbar .dropdown-menu a.hover,.dropdown-menu a.hover{background-color:#dddddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd));background-image:-moz-linear-gradient(top, #eeeeee, #dddddd);background-image:-ms-linear-gradient(top, #eeeeee, #dddddd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd));background-image:-webkit-linear-gradient(top, #eeeeee, #dddddd);background-image:-o-linear-gradient(top, #eeeeee, #dddddd);background-image:linear-gradient(top, #eeeeee, #dddddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);}
|
265
|
-
.open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
|
266
|
-
.open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block;}
|
267
|
-
.tabs,.pills{margin:0 0 18px;padding:0;list-style:none;zoom:1;}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";zoom:1;}
|
268
|
-
.tabs:after,.pills:after{clear:both;}
|
269
|
-
.tabs>li,.pills>li{float:left;}.tabs>li>a,.pills>li>a{display:block;}
|
270
|
-
.tabs{border-color:#ddd;border-style:solid;border-width:0 0 1px;}.tabs>li{position:relative;margin-bottom:-1px;}.tabs>li>a{padding:0 15px;margin-right:2px;line-height:34px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.tabs>li>a:hover{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd;}
|
271
|
-
.tabs .active>a,.tabs .active>a:hover{color:#808080;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
|
272
|
-
.tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
|
273
|
-
.tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px;}
|
274
|
-
.tabs li.open.menu .menu,.tabs .open.dropdown .dropdown-toggle{border-color:#999;}
|
275
|
-
.tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555;}
|
276
|
-
.pills a{margin:5px 3px 5px 0;padding:0 15px;line-height:30px;text-shadow:0 1px 1px #ffffff;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.pills a:hover{color:#ffffff;text-decoration:none;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#00438a;}
|
277
|
-
.pills .active a{color:#ffffff;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#0069d6;}
|
278
|
-
.pills-vertical>li{float:none;}
|
279
|
-
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
|
280
|
-
.tab-content>.active,.pill-content>.active{display:block;}
|
281
|
-
.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;}
|
282
|
-
.breadcrumb .divider{padding:0 5px;color:#bfbfbf;}
|
283
|
-
.breadcrumb .active a{color:#404040;}
|
284
|
-
.hero-unit{background-color:#f5f5f5;margin-bottom:30px;padding:60px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;}
|
285
|
-
.hero-unit p{font-size:18px;font-weight:200;line-height:27px;}
|
286
|
-
footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee;}
|
287
|
-
.page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}.page-header h1{margin-bottom:8px;}
|
288
|
-
.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#ffffff;}
|
289
|
-
.btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px;}
|
290
|
-
.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
291
|
-
.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
292
|
-
.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
293
|
-
.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-webkit-transform-style:preserve-3d;-webkit-transition:0.1s linear all;-moz-transition:0.1s linear all;-ms-transition:0.1s linear all;-o-transition:0.1s linear all;transition:0.1s linear all;}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none;}
|
294
|
-
.btn:focus{outline:1px dotted #666;}
|
295
|
-
.btn.primary{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
|
296
|
-
.btn.active,.btn :active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);}
|
297
|
-
.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
298
|
-
.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
299
|
-
.btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
|
300
|
-
.btn.small{padding:7px 9px 7px;font-size:11px;}
|
301
|
-
:root .alert-message,:root .btn{border-radius:0 \0;}
|
302
|
-
button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0;}
|
303
|
-
.close{float:right;color:#000000;font-size:20px;font-weight:bold;line-height:13.5px;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=25);-khtml-opacity:0.25;-moz-opacity:0.25;opacity:0.25;}.close:hover{color:#000000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:0.4;-moz-opacity:0.4;opacity:0.4;}
|
304
|
-
.alert-message{position:relative;padding:7px 15px;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);}.alert-message .close{margin-top:1px;*margin-top:0;}
|
305
|
-
.alert-message a{font-weight:bold;color:#404040;}
|
306
|
-
.alert-message.danger p a,.alert-message.error p a,.alert-message.success p a,.alert-message.info p a{color:#ffffff;}
|
307
|
-
.alert-message h5{line-height:18px;}
|
308
|
-
.alert-message p{margin-bottom:0;}
|
309
|
-
.alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px;}
|
310
|
-
.alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);}
|
311
|
-
.alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}.alert-message.block-message ul,.alert-message.block-message p{margin-right:30px;}
|
312
|
-
.alert-message.block-message ul{margin-bottom:0;}
|
313
|
-
.alert-message.block-message li{color:#404040;}
|
314
|
-
.alert-message.block-message .alert-actions{margin-top:5px;}
|
315
|
-
.alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
|
316
|
-
.alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6;}
|
317
|
-
.alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf;}
|
318
|
-
.alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9;}
|
319
|
-
.alert-message.block-message.danger p a,.alert-message.block-message.error p a,.alert-message.block-message.success p a,.alert-message.block-message.info p a{color:#404040;}
|
320
|
-
.pagination{height:36px;margin:18px 0;}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
|
321
|
-
.pagination li{display:inline;}
|
322
|
-
.pagination a{float:left;padding:0 14px;line-height:34px;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0, 0, 0, 0.15);*border-right-color:#ddd;text-decoration:none;}
|
323
|
-
.pagination a:hover,.pagination .active a{background-color:#c7eefe;}
|
324
|
-
.pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf;}
|
325
|
-
.pagination .next a{border:0;}
|
326
|
-
.well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
|
327
|
-
.modal-backdrop{background-color:#000000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;}.modal-backdrop.fade{opacity:0;}
|
328
|
-
.modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}
|
329
|
-
.modal{position:fixed;top:50%;left:50%;z-index:11000;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal .close{margin-top:7px;}
|
330
|
-
.modal.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
|
331
|
-
.modal.fade.in{top:50%;}
|
332
|
-
.modal-header{border-bottom:1px solid #eee;padding:5px 15px;}
|
333
|
-
.modal-body{padding:15px;}
|
334
|
-
.modal-body form{margin-bottom:0;}
|
335
|
-
.modal-footer{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;zoom:1;margin-bottom:0;}.modal-footer:before,.modal-footer:after{display:table;content:"";zoom:1;}
|
336
|
-
.modal-footer:after{clear:both;}
|
337
|
-
.modal-footer .btn{float:right;margin-left:5px;}
|
338
|
-
.modal .popover,.modal .twipsy{z-index:12000;}
|
339
|
-
.twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}.twipsy.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}
|
340
|
-
.twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
341
|
-
.twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
342
|
-
.twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
343
|
-
.twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
344
|
-
.twipsy-inner{padding:3px 8px;background-color:#000000;color:white;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
345
|
-
.twipsy-arrow{position:absolute;width:0;height:0;}
|
346
|
-
.popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none;}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
347
|
-
.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
348
|
-
.popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
349
|
-
.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
350
|
-
.popover .arrow{position:absolute;width:0;height:0;}
|
351
|
-
.popover .inner{background:#000000;background:rgba(0, 0, 0, 0.8);padding:3px;overflow:hidden;width:280px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);}
|
352
|
-
.popover .title{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee;}
|
353
|
-
.popover .content{background-color:#ffffff;padding:14px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover .content p,.popover .content ul,.popover .content ol{margin-bottom:0;}
|
354
|
-
.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;}
|
355
|
-
.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}.label.important{background-color:#c43c35;}
|
356
|
-
.label.warning{background-color:#f89406;}
|
357
|
-
.label.success{background-color:#46a546;}
|
358
|
-
.label.notice{background-color:#62cffc;}
|
359
|
-
.media-grid{margin-left:-20px;margin-bottom:0;zoom:1;}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1;}
|
360
|
-
.media-grid:after{clear:both;}
|
361
|
-
.media-grid li{display:inline;}
|
362
|
-
.media-grid a{float:left;padding:4px;margin:0 0 18px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}.media-grid a img{display:block;}
|
363
|
-
.media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
|
364
|
-
</style>
|
365
8
|
|
9
|
+
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
|
366
10
|
<style type="text/css">
|
367
|
-
/*
|
368
|
-
|
369
|
-
|
370
|
-
|
11
|
+
/*
|
12
|
+
* Style tweaks from http://getbootstrap.com/examples/offcanvas/offcanvas.css
|
13
|
+
* --------------------------------------------------
|
14
|
+
*/
|
371
15
|
body {
|
372
|
-
padding-top:
|
16
|
+
padding-top: 70px;
|
373
17
|
}
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
.container {
|
378
|
-
width: 820px; /* downsize our container to make the content feel a bit tighter and more cohesive. NOTE: this removes two full columns from the grid, meaning you only go to 14 columns and not 16. */
|
18
|
+
footer {
|
19
|
+
padding-left: 15px;
|
20
|
+
padding-right: 15px;
|
379
21
|
}
|
380
22
|
|
381
|
-
/*
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
23
|
+
/*
|
24
|
+
* Off Canvas
|
25
|
+
* --------------------------------------------------
|
26
|
+
*/
|
27
|
+
@media screen and (max-width: 768px) {
|
28
|
+
.row-offcanvas {
|
29
|
+
position: relative;
|
30
|
+
-webkit-transition: all 0.25s ease-out;
|
31
|
+
-moz-transition: all 0.25s ease-out;
|
32
|
+
transition: all 0.25s ease-out;
|
33
|
+
}
|
34
|
+
|
35
|
+
.row-offcanvas-right
|
36
|
+
.sidebar-offcanvas {
|
37
|
+
right: -50%; /* 6 columns */
|
38
|
+
}
|
39
|
+
|
40
|
+
.row-offcanvas-left
|
41
|
+
.sidebar-offcanvas {
|
42
|
+
left: -50%; /* 6 columns */
|
43
|
+
}
|
393
44
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
45
|
+
.row-offcanvas-right.active {
|
46
|
+
right: 50%; /* 6 columns */
|
47
|
+
}
|
48
|
+
|
49
|
+
.row-offcanvas-left.active {
|
50
|
+
left: 50%; /* 6 columns */
|
51
|
+
}
|
52
|
+
|
53
|
+
.sidebar-offcanvas {
|
54
|
+
position: absolute;
|
55
|
+
top: 0;
|
56
|
+
width: 50%; /* 6 columns */
|
57
|
+
}
|
399
58
|
}
|
59
|
+
</style>
|
60
|
+
|
61
|
+
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
62
|
+
<!--[if lt IE 9]>
|
63
|
+
<script src="http://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2/html5shiv.js"></script>
|
64
|
+
<script src="http://cdnjs.cloudflare.com/ajax/libs/respond.js/1.3.0/respond.js"></script>
|
65
|
+
<![endif]-->
|
66
|
+
|
67
|
+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
|
68
|
+
|
69
|
+
<link rel="stylesheet" href="https://sitevalidator.com/cdn/highlightjs/7.3/styles/default.min.css">
|
70
|
+
|
71
|
+
<style type="text/css">
|
72
|
+
|
73
|
+
h1 { margin-top: 0px; margin-bottom: 15px; }
|
74
|
+
|
75
|
+
a.navbar-brand { color: #FFF !important; }
|
76
|
+
|
77
|
+
footer { margin-top: 10px; font-weight: bold; font-size: 0.95em; }
|
400
78
|
|
401
|
-
/*
|
402
|
-
.content
|
403
|
-
|
404
|
-
|
405
|
-
|
79
|
+
/* Tabs */
|
80
|
+
.tab-content {
|
81
|
+
border: 1px solid #ddd;
|
82
|
+
border-top: 0px;
|
83
|
+
padding: 10px;
|
406
84
|
}
|
407
85
|
|
408
|
-
.
|
409
|
-
|
86
|
+
.nav-tabs {
|
87
|
+
margin-bottom: 0;
|
410
88
|
}
|
411
89
|
|
90
|
+
/* Explanations */
|
91
|
+
.w3c_explanation { border: 1px solid #ddd; background-color: #ffe; padding: 10px; margin: 5px 5px 25px 5px; font-size: 0.8em; }
|
92
|
+
.helpwanted { float: right; font-size: 2em; }
|
93
|
+
.coordinates { float: right; margin: 10px; background-color: #fff; color: #333; border: 1px solid #aaa;}
|
94
|
+
|
412
95
|
</style>
|
413
96
|
</head>
|
97
|
+
|
414
98
|
<body>
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
<
|
420
|
-
<
|
99
|
+
|
100
|
+
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
|
101
|
+
<div class="container">
|
102
|
+
<div class="navbar-header">
|
103
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
104
|
+
<span class="icon-bar"></span>
|
105
|
+
<span class="icon-bar"></span>
|
106
|
+
<span class="icon-bar"></span>
|
107
|
+
</button>
|
108
|
+
<a class="navbar-brand" href="https://sitevalidator.com">Site Validator</a>
|
109
|
+
</div>
|
110
|
+
<div class="collapse navbar-collapse">
|
111
|
+
<ul class="nav navbar-nav">
|
421
112
|
<li><a href="http://sitevalidator.com/plans-and-pricing">Plans and pricing</a></li>
|
422
|
-
<li><a href="
|
113
|
+
<li><a href="https://sitevalidator.com/faqs">FAQs</a></li>
|
114
|
+
<li><a href="mailto:support@sitevalidator.com">Contact</a></li>
|
423
115
|
</ul>
|
424
|
-
</div
|
425
|
-
</div
|
426
|
-
</div
|
116
|
+
</div><!-- /.nav-collapse -->
|
117
|
+
</div><!-- /.container -->
|
118
|
+
</div><!-- /.navbar -->
|
427
119
|
|
428
120
|
<div class="container">
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
<
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
<
|
121
|
+
|
122
|
+
<h1>Site validation for <a href='<%= @url %>'><%= @url %></a></h1>
|
123
|
+
|
124
|
+
<ul class="nav nav-tabs">
|
125
|
+
<li class="active"><a href="#urls">List of URLs</a></li>
|
126
|
+
<li><a href="#errors"><%= errors.length %> HTML errors</a></li>
|
127
|
+
<li><a href="#warnings"><%= warnings.length %> HTML warnings</a></li>
|
128
|
+
</ul>
|
129
|
+
|
130
|
+
<div class="tab-content">
|
131
|
+
<div class="tab-pane active" id="urls">
|
132
|
+
<% processed_pages = pages.select{|p| !p.exception} %>
|
133
|
+
<% if processed_pages.size > 0 %>
|
134
|
+
<div class="accordion">
|
135
|
+
<% processed_pages.each do |page| %>
|
136
|
+
<h3>
|
137
|
+
<%= page.url %>
|
138
|
+
<div class="pull-right">
|
139
|
+
<span class="label label-danger"><%= "#{page.errors.length} ERRORS" %></span>
|
140
|
+
<span class="label label-warning"><%= "#{page.warnings.length} WARNINGS" %></span>
|
141
|
+
</div>
|
142
|
+
</h3>
|
143
|
+
|
144
|
+
<div style="padding:10px;">
|
145
|
+
<div class="accordion">
|
146
|
+
<% page.errors.sort_by {|e| e.line.to_i}.each do |error| %>
|
147
|
+
<h3>
|
148
|
+
<span class="label label-danger">ERROR</span>
|
149
|
+
<%= CGI::escapeHTML(error.text.capitalize) %>
|
150
|
+
</h3>
|
151
|
+
|
152
|
+
<div>
|
153
|
+
<% if error.line && error.col %>
|
154
|
+
<span class="coordinates label">
|
155
|
+
LINE <%= error.line %>, COL <%= error.col %>
|
156
|
+
</span>
|
157
|
+
<% end %>
|
158
|
+
|
159
|
+
<% if error.source && error.source.strip.length > 0 %>
|
160
|
+
<pre><code class="html"><%= error.source.strip %></code></pre>
|
161
|
+
<% end %>
|
162
|
+
|
163
|
+
<% if error.explanation && error.explanation.strip.length > 0 %>
|
164
|
+
<div class="w3c_explanation"><%= error.explanation.strip %></div>
|
165
|
+
<% end %>
|
166
|
+
</div>
|
167
|
+
<% end %>
|
168
|
+
|
169
|
+
<% page.warnings.sort_by {|w| w.line.to_i}.each do |warning| %>
|
170
|
+
<h3>
|
171
|
+
<span class="label label-warning">WARNING</span>
|
172
|
+
<%= CGI::escapeHTML(warning.text.capitalize) %>
|
173
|
+
</h3>
|
174
|
+
|
175
|
+
<div>
|
176
|
+
<% if warning.line && warning.col %>
|
177
|
+
<span class="coordinates label">
|
178
|
+
LINE <%= warning.line %>, COL <%= warning.col %>
|
179
|
+
</span>
|
180
|
+
<% end %>
|
181
|
+
|
182
|
+
<% if warning.source && warning.source.strip.length > 0 %>
|
183
|
+
<pre><code class="html"><%= warning.source.strip %></code></pre>
|
184
|
+
<% end %>
|
185
|
+
|
186
|
+
<% if warning.explanation && warning.explanation.strip.length > 0 %>
|
187
|
+
<div class="w3c_explanation"><%= warning.explanation.strip %></div>
|
188
|
+
<% end %>
|
189
|
+
</div>
|
190
|
+
<% end %>
|
191
|
+
</div>
|
192
|
+
</div>
|
193
|
+
<% end %>
|
194
|
+
</div>
|
195
|
+
<% end %>
|
196
|
+
</div>
|
197
|
+
|
198
|
+
<div class="tab-pane" id="errors">
|
199
|
+
<% if errors.length > 0 %>
|
200
|
+
<div class="accordion">
|
201
|
+
<% errors.group_by {|e| e.text}.sort_by {|t, e| e.length}.reverse.each do |text, errors| %>
|
202
|
+
<h3><span class="label label-danger"><%= errors.length %></span> <%= CGI::escapeHTML(text.capitalize) %></h3>
|
203
|
+
<div>
|
204
|
+
<% if errors.first.explanation && errors.first.explanation.strip.length > 0 %>
|
205
|
+
<div class="w3c_explanation"><%= errors.first.explanation.strip %></div>
|
448
206
|
<% end %>
|
449
|
-
|
450
|
-
</li>
|
451
|
-
<% elsif message_id %>
|
452
|
-
<li>error <a href="http://validator.w3.org/docs/errors.html#ve-<%= message_id %>"><%= message_id %></a>
|
453
|
-
happens <%= errors.length %> times</li>
|
207
|
+
</div>
|
454
208
|
<% end %>
|
209
|
+
</div>
|
455
210
|
<% end %>
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
<ul>
|
467
|
-
<% warnings.select{|w| w.message_id == 'html5'}
|
468
|
-
.group_by {|w| w.text}
|
469
|
-
.sort_by {|m,w| w.length}
|
470
|
-
.reverse.each do |text, warnings| %>
|
471
|
-
<li><%= warnings.length %> times: <strong><%= CGI::escapeHTML(text) %></strong></li>
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div class="tab-pane" id="warnings">
|
214
|
+
<% if warnings.length > 0 %>
|
215
|
+
<div class="accordion">
|
216
|
+
<% warnings.group_by {|w| w.text}.sort_by {|t, w| w.length}.reverse.each do |text, warnings| %>
|
217
|
+
<h3><span class="label label-warning"><%= warnings.length %></span> <%= CGI::escapeHTML(text.capitalize) %></h3>
|
218
|
+
<div>
|
219
|
+
<% if warnings.first.explanation && warnings.first.explanation.strip.length > 0 %>
|
220
|
+
<div class="w3c_explanation"><%= warnings.first.explanation.strip %></div>
|
472
221
|
<% end %>
|
473
|
-
|
474
|
-
</li>
|
475
|
-
<% elsif message_id %>
|
476
|
-
<li>warning <a href="http://validator.w3.org/docs/errors.html#ve-<%= message_id %>"><%= message_id %></a>
|
477
|
-
found <%= warnings.length %> times</li>
|
222
|
+
</div>
|
478
223
|
<% end %>
|
479
|
-
<% end %>
|
480
|
-
</ul>
|
481
|
-
<% end %>
|
482
|
-
|
483
|
-
<% processed_pages = pages.select{|p| !p.exception} %>
|
484
|
-
<% if processed_pages.size > 0 %>
|
485
|
-
<h2>DETAILS PER PAGE</h2>
|
486
|
-
<% processed_pages.each do |page| %>
|
487
|
-
<div class='page'>
|
488
|
-
<h3><a href='<%= page.url %>'><%= page.url %></a></h3>
|
489
|
-
<p class='page_summary'>
|
490
|
-
<%= "#{page.errors.length} errors, #{page.warnings.length} warnings" %>
|
491
|
-
</p>
|
492
|
-
|
493
|
-
<ul class="page_errors">
|
494
|
-
<% page.errors.sort_by {|e| e.line.to_i}.each do |error| %>
|
495
|
-
<li>
|
496
|
-
<% if error.message_id == 'html5' %>
|
497
|
-
HTML5 error on line <%= error.line %>:
|
498
|
-
<% else %>
|
499
|
-
Error <a href="http://validator.w3.org/docs/errors.html#ve-<%= error.message_id %>"><%= error.message_id %></a>
|
500
|
-
on line <%= error.line %>:
|
501
|
-
<% end %>
|
502
|
-
|
503
|
-
<%= CGI::escapeHTML(error.text) %>
|
504
|
-
</li>
|
505
|
-
<% end %>
|
506
|
-
</ul>
|
507
|
-
|
508
|
-
<ul class="page_warnings">
|
509
|
-
<% page.warnings.sort_by {|w| w.line.to_i}.each do |warning| %>
|
510
|
-
<li>
|
511
|
-
<% if warning.message_id == 'html5' %>
|
512
|
-
HTML5 warning on line <%= warning.line %>:
|
513
|
-
<% else %>
|
514
|
-
Warning <a href="http://validator.w3.org/docs/errors.html#ve-<%= warning.message_id %>"><%= warning.message_id %></a>
|
515
|
-
on line <%= warning.line %>:
|
516
|
-
<% end %>
|
517
|
-
|
518
|
-
<%= CGI::escapeHTML(warning.text) %>
|
519
|
-
</li>
|
520
|
-
<% end %>
|
521
|
-
</ul>
|
522
224
|
</div>
|
523
225
|
<% end %>
|
524
|
-
|
525
|
-
|
526
|
-
<footer>
|
527
|
-
<p>This markup validation report has been generated using the <a href="https://github.com/jaimeiniesta/site_validator">SiteValidator</a> gem.</p>
|
528
|
-
<p>You can also find an online version that lets you store the results and re-check the URLs later, at <a href="http://sitevalidator.com">sitevalidator.com</a>.</p>
|
529
|
-
<p><strong>SiteValidator</strong> is a lovely site-wide markup validator. We're not associated with the W3C but we love it!</p>
|
530
|
-
</footer>
|
226
|
+
</div>
|
531
227
|
</div>
|
228
|
+
|
229
|
+
<footer class="well well-lg">
|
230
|
+
<p>This site validation report has been generated using the free, open source <a href="http://gem.sitevalidator.com">Site Validator ruby gem</a>.</p>
|
231
|
+
<p>For deep link crawling, HTML+CSS validation, storage of results and team collaborations, you can use the <a href="https://sitevalidator.com">Site Validator app</a>.</p>
|
232
|
+
<p class="small">We're independent, not associated with the W3C.</p>
|
233
|
+
</footer>
|
234
|
+
|
532
235
|
</div>
|
236
|
+
|
237
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
238
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
|
239
|
+
<script type="text/javascript">
|
240
|
+
$('.accordion').accordion({active: 'false', heightStyle: 'content' });
|
241
|
+
</script>
|
242
|
+
|
243
|
+
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
|
244
|
+
|
245
|
+
<script type="text/javascript">
|
246
|
+
$('.nav-tabs a').click(function (e) {
|
247
|
+
e.preventDefault();
|
248
|
+
$(this).tab('show');
|
249
|
+
})
|
250
|
+
</script>
|
251
|
+
|
252
|
+
<script src="https://sitevalidator.com/cdn/highlightjs/7.3/highlight.min.js"></script>
|
253
|
+
<script type="text/javascript">
|
254
|
+
hljs.initHighlightingOnLoad();
|
255
|
+
</script>
|
256
|
+
|
533
257
|
</body>
|
534
258
|
</html>
|
data/spec/message_spec.rb
CHANGED
@@ -5,13 +5,19 @@ require_relative 'spec_helper'
|
|
5
5
|
describe SiteValidator::Message do
|
6
6
|
before(:each) do
|
7
7
|
@error_message = SiteValidator::Message.new('25',
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
100,
|
9
|
+
20,
|
10
|
+
message_text('25'),
|
11
|
+
:error,
|
12
|
+
'a code snippet',
|
13
|
+
'an explanation')
|
11
14
|
@warning_message = SiteValidator::Message.new('25',
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
+
100,
|
16
|
+
20,
|
17
|
+
message_text('25'),
|
18
|
+
:warning,
|
19
|
+
'a code snippet',
|
20
|
+
'an explanation')
|
15
21
|
end
|
16
22
|
|
17
23
|
it "should have a message_id" do
|
@@ -22,12 +28,26 @@ describe SiteValidator::Message do
|
|
22
28
|
@error_message.line.should == 100
|
23
29
|
end
|
24
30
|
|
31
|
+
it "should have a col" do
|
32
|
+
@error_message.col.should == 20
|
33
|
+
end
|
34
|
+
|
25
35
|
it "should have a text" do
|
26
36
|
@error_message.text.should == message_text('25')
|
27
37
|
end
|
28
38
|
|
29
39
|
it "should have a type" do
|
30
|
-
@error_message.type
|
31
|
-
@warning_message.type
|
40
|
+
@error_message.type.should == :error
|
41
|
+
@warning_message.type.should == :warning
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have a source" do
|
45
|
+
@error_message.source.should == 'a code snippet'
|
46
|
+
@warning_message.source.should == 'a code snippet'
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should have an explanation" do
|
50
|
+
@error_message.explanation.should == 'an explanation'
|
51
|
+
@warning_message.explanation.should == 'an explanation'
|
32
52
|
end
|
33
|
-
end
|
53
|
+
end
|
@@ -6,14 +6,14 @@ module SiteValidator
|
|
6
6
|
@errors, @warnings = [], []
|
7
7
|
end
|
8
8
|
|
9
|
-
def add_error(message_id, line, message)
|
10
|
-
@errors << SiteValidator::MockedMessage.new(message_id, line, message)
|
9
|
+
def add_error(message_id, line, col, message, source, explanation)
|
10
|
+
@errors << SiteValidator::MockedMessage.new(message_id, line, col, message, source, explanation)
|
11
11
|
end
|
12
12
|
|
13
|
-
def add_warning(message_id, line, message)
|
14
|
-
@warnings << SiteValidator::MockedMessage.new(message_id, line, message)
|
13
|
+
def add_warning(message_id, line, col, message, source, explanation)
|
14
|
+
@warnings << SiteValidator::MockedMessage.new(message_id, line, col, message, source, explanation)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
MockedMessage = Struct.new(:message_id, :line, :message)
|
19
|
-
end
|
18
|
+
MockedMessage = Struct.new(:message_id, :line, :col, :message, :source, :explanation)
|
19
|
+
end
|
data/spec/page_spec.rb
CHANGED
@@ -50,18 +50,27 @@ describe SiteValidator::Page do
|
|
50
50
|
|
51
51
|
@page.errors[0].message_id.should == '25'
|
52
52
|
@page.errors[0].line.should == '92'
|
53
|
+
@page.errors[0].col.should == '22'
|
53
54
|
@page.errors[0].text.should == message_text('25')
|
54
55
|
@page.errors[0].type.should == :error
|
56
|
+
@page.errors[0].source.should == 'a code snippet for line 92'
|
57
|
+
@page.errors[0].explanation.should == 'an explanation for error 25'
|
55
58
|
|
56
59
|
@page.errors[1].message_id.should == '325'
|
57
60
|
@page.errors[1].line.should == '92'
|
61
|
+
@page.errors[1].col.should == '22'
|
58
62
|
@page.errors[1].text.should == message_text('325')
|
59
63
|
@page.errors[1].type.should == :error
|
64
|
+
@page.errors[1].source.should == 'another code snippet for line 92'
|
65
|
+
@page.errors[1].explanation.should == 'an explanation for error 325'
|
60
66
|
|
61
67
|
@page.errors[2].message_id.should == '325'
|
62
68
|
@page.errors[2].line.should == '224'
|
69
|
+
@page.errors[2].col.should == '17'
|
63
70
|
@page.errors[2].text.should == message_text('325')
|
64
71
|
@page.errors[2].type.should == :error
|
72
|
+
@page.errors[2].source.should == 'another code snippet for line 325'
|
73
|
+
@page.errors[2].explanation.should == 'an explanation for error 325'
|
65
74
|
end
|
66
75
|
|
67
76
|
it "should get its validation warnings from the W3C" do
|
@@ -73,18 +82,27 @@ describe SiteValidator::Page do
|
|
73
82
|
|
74
83
|
@page.warnings[0].message_id.should == '338'
|
75
84
|
@page.warnings[0].line.should == '92'
|
85
|
+
@page.warnings[0].col.should == '22'
|
76
86
|
@page.warnings[0].text.should == message_text('338')
|
77
87
|
@page.warnings[0].type.should == :warning
|
88
|
+
@page.warnings[0].source.should == 'a code snippet for line 338'
|
89
|
+
@page.warnings[0].explanation.should == 'an explanation for warning 338'
|
78
90
|
|
79
91
|
@page.warnings[1].message_id.should == '247'
|
80
92
|
@page.warnings[1].line.should == '112'
|
93
|
+
@page.warnings[1].col.should == '18'
|
81
94
|
@page.warnings[1].text.should == message_text('247')
|
82
95
|
@page.warnings[1].type.should == :warning
|
96
|
+
@page.warnings[1].source.should == 'another code snippet for line 247'
|
97
|
+
@page.warnings[1].explanation.should == 'an explanation for warning 247'
|
83
98
|
|
84
99
|
@page.warnings[2].message_id.should == '247'
|
85
100
|
@page.warnings[2].line.should == '202'
|
101
|
+
@page.warnings[2].col.should == '47'
|
86
102
|
@page.warnings[2].text.should == message_text('247')
|
87
103
|
@page.warnings[2].type.should == :warning
|
104
|
+
@page.warnings[2].source.should == 'another code snippet for line 247'
|
105
|
+
@page.warnings[2].explanation.should == 'an explanation for warning 247'
|
88
106
|
end
|
89
107
|
|
90
108
|
it "should recover from timeouts when checking for errors" do
|
@@ -111,9 +129,9 @@ describe SiteValidator::Page do
|
|
111
129
|
|
112
130
|
it "should not record empty errors returned by the validator" do
|
113
131
|
mocked_validator = SiteValidator::MockedValidator.new
|
114
|
-
mocked_validator.add_error('25', '92', message_text('25'))
|
115
|
-
mocked_validator.add_error('', '', '')
|
116
|
-
mocked_validator.add_error(nil, nil, nil)
|
132
|
+
mocked_validator.add_error('25', '92', '22', message_text('25'), 'code snippet', 'an explanation')
|
133
|
+
mocked_validator.add_error('', '', '', '', '', '')
|
134
|
+
mocked_validator.add_error(nil, nil, nil, nil, nil, nil)
|
117
135
|
MarkupValidator.any_instance
|
118
136
|
.stubs(:validate_uri)
|
119
137
|
.with('http://example.com/emptyerrors')
|
@@ -125,9 +143,9 @@ describe SiteValidator::Page do
|
|
125
143
|
|
126
144
|
it "should not record empty warnings returned by the validator" do
|
127
145
|
mocked_validator = SiteValidator::MockedValidator.new
|
128
|
-
mocked_validator.add_warning('25', '92', message_text('25'))
|
129
|
-
mocked_validator.add_warning('', '', '')
|
130
|
-
mocked_validator.add_warning(nil, nil, nil)
|
146
|
+
mocked_validator.add_warning('25', '92', '22', message_text('25'), 'code snippet', 'an explanation')
|
147
|
+
mocked_validator.add_warning('', '', '', '', '', '')
|
148
|
+
mocked_validator.add_warning(nil, nil, nil, nil, nil, nil)
|
131
149
|
MarkupValidator.any_instance
|
132
150
|
.stubs(:validate_uri)
|
133
151
|
.with('http://example.com/emptyerrors')
|
data/spec/spec_helper.rb
CHANGED
@@ -37,15 +37,15 @@ def stubbed_validator_results(with_errors=true, with_warnings=true)
|
|
37
37
|
fake_validator = SiteValidator::MockedValidator.new
|
38
38
|
|
39
39
|
if with_errors
|
40
|
-
fake_validator.add_error('25',
|
41
|
-
fake_validator.add_error('325', '92', message_text('325'))
|
42
|
-
fake_validator.add_error('325', '224', message_text('325'))
|
40
|
+
fake_validator.add_error('25', '92', '22', message_text('25'), 'a code snippet for line 92', 'an explanation for error 25')
|
41
|
+
fake_validator.add_error('325', '92', '22', message_text('325'), 'another code snippet for line 92', 'an explanation for error 325')
|
42
|
+
fake_validator.add_error('325', '224', '17', message_text('325'), 'another code snippet for line 325', 'an explanation for error 325')
|
43
43
|
end
|
44
44
|
|
45
45
|
if with_warnings
|
46
|
-
fake_validator.add_warning('338', '92', message_text('338'))
|
47
|
-
fake_validator.add_warning('247', '112', message_text('247'))
|
48
|
-
fake_validator.add_warning('247', '202', message_text('247'))
|
46
|
+
fake_validator.add_warning('338', '92', '22', message_text('338'), 'a code snippet for line 338', 'an explanation for warning 338')
|
47
|
+
fake_validator.add_warning('247', '112', '18', message_text('247'), 'another code snippet for line 247', 'an explanation for warning 247')
|
48
|
+
fake_validator.add_warning('247', '202', '47', message_text('247'), 'another code snippet for line 247', 'an explanation for warning 247')
|
49
49
|
end
|
50
50
|
|
51
51
|
fake_validator
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jaime Iniesta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: w3c_validators
|