validate-website 0.5.3 → 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +0 -2
- data/Rakefile +4 -4
- data/bin/validate-website +1 -14
- data/bin/validate-website-static +25 -0
- data/lib/validate_website.rb +60 -39
- data/lib/validator.rb +11 -20
- data/man/man1/validate-website.1 +2 -7
- data/spec/data/index.cs.html +243 -0
- data/spec/validate_website_spec.rb +8 -4
- data/spec/validator_spec.rb +5 -4
- metadata +16 -30
data/README.rdoc
CHANGED
@@ -29,8 +29,6 @@ found urls.
|
|
29
29
|
Url to exclude (ex: redirect|news)
|
30
30
|
-f, --file FILE
|
31
31
|
Save not well formed or not found (with -n used) urls
|
32
|
-
-a, --authorization USER,PASS
|
33
|
-
Basic http authentification
|
34
32
|
-c, --cookies COOKIES
|
35
33
|
Set defaults cookies
|
36
34
|
-m, --[no-]markup-validation
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ require "rspec/core/rake_task" # RSpec 2.0
|
|
7
7
|
# Globals
|
8
8
|
|
9
9
|
PKG_NAME = 'validate-website'
|
10
|
-
PKG_VERSION = '0.5.
|
10
|
+
PKG_VERSION = '0.5.7'
|
11
11
|
|
12
12
|
PKG_FILES = ['README.rdoc', 'Rakefile', 'LICENSE']
|
13
13
|
Find.find('bin/', 'lib/', 'man/', 'spec/') do |f|
|
@@ -43,15 +43,15 @@ spec = Gem::Specification.new do |s|
|
|
43
43
|
s.summary = 'Web crawler for checking the validity of your documents'
|
44
44
|
s.name = PKG_NAME
|
45
45
|
s.version = PKG_VERSION
|
46
|
-
s.requirements << '
|
47
|
-
s.add_dependency('
|
46
|
+
s.requirements << 'anemone' << 'rainbow'
|
47
|
+
s.add_dependency('anemone', '>= 0.5.0')
|
48
48
|
s.add_dependency('rainbow', '>= 1.1')
|
49
|
-
s.add_dependency('spk-html5', '= 0.10.1')
|
50
49
|
s.add_development_dependency('rspec', '>= 2.0.0')
|
51
50
|
s.add_development_dependency('fakeweb', '>= 1.3.0')
|
52
51
|
s.require_path = 'lib'
|
53
52
|
s.bindir = 'bin'
|
54
53
|
s.executables << 'validate-website'
|
54
|
+
s.executables << 'validate-website-static'
|
55
55
|
s.files = PKG_FILES
|
56
56
|
s.description = 'validate-website is a web crawler for checking the markup' +
|
57
57
|
'validity and not found urls.'
|
data/bin/validate-website
CHANGED
@@ -11,19 +11,6 @@ require 'rubygems' if developer_mode
|
|
11
11
|
require 'validate_website'
|
12
12
|
|
13
13
|
validate_website = ValidateWebsite.new(ARGV)
|
14
|
-
|
15
|
-
|
16
|
-
validate_website.crawl options[:site],
|
17
|
-
:markup_validation => options[:markup_validation],
|
18
|
-
:user_agent => options[:user_agent],
|
19
|
-
:exclude => options[:exclude],
|
20
|
-
:file => options[:file],
|
21
|
-
:authorization => options[:authorization],
|
22
|
-
:not_found => options[:not_found],
|
23
|
-
:cookies => options[:cookies],
|
24
|
-
:accept_cookies => options[:accept_cookies],
|
25
|
-
:verbose => options[:debug],
|
26
|
-
:validate_verbose => options[:verbose],
|
27
|
-
:quiet => options[:quiet]
|
14
|
+
validate_website.crawl
|
28
15
|
|
29
16
|
exit(validate_website.exit_status)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
lib_dir = File.join(File.dirname(__FILE__), '..', 'lib')
|
5
|
+
$:.unshift(File.expand_path(lib_dir))
|
6
|
+
|
7
|
+
developer_mode = false
|
8
|
+
developer_mode = true if __FILE__ == $0
|
9
|
+
require 'rubygems' if developer_mode
|
10
|
+
|
11
|
+
require 'validate_website'
|
12
|
+
|
13
|
+
validate_website = ValidateWebsite.new(ARGV)
|
14
|
+
|
15
|
+
files = Dir.glob(File.join("**", "*.html"))
|
16
|
+
files.each do |f|
|
17
|
+
next unless File.file?(f)
|
18
|
+
|
19
|
+
body = open(f).read
|
20
|
+
doc = Nokogiri::HTML(body)
|
21
|
+
|
22
|
+
validate_website.validate(doc, body, f)
|
23
|
+
end
|
24
|
+
|
25
|
+
exit(validate_website.exit_status)
|
data/lib/validate_website.rb
CHANGED
@@ -2,12 +2,15 @@
|
|
2
2
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'open-uri'
|
5
|
+
|
5
6
|
require 'validator'
|
6
|
-
require 'anemone'
|
7
7
|
require 'colorful_messages'
|
8
8
|
|
9
|
+
require 'anemone'
|
10
|
+
|
9
11
|
class ValidateWebsite
|
10
12
|
|
13
|
+
attr_accessor :site
|
11
14
|
attr_reader :options, :anemone
|
12
15
|
|
13
16
|
include ColorfulMessages
|
@@ -17,34 +20,42 @@ class ValidateWebsite
|
|
17
20
|
EXIT_FAILURE_NOT_FOUND = 65
|
18
21
|
EXIT_FAILURE_MARKUP_NOT_FOUND = 66
|
19
22
|
|
20
|
-
def initialize(args=[])
|
23
|
+
def initialize(args=[], validation_type = :crawl)
|
21
24
|
@markup_error = nil
|
22
25
|
@not_found_error = nil
|
23
26
|
|
24
|
-
@
|
27
|
+
@options_crawl = {
|
25
28
|
:site => 'http://localhost:3000/',
|
26
29
|
:markup_validation => true,
|
27
|
-
:user_agent => Anemone::Core::DEFAULT_OPTS[:user_agent],
|
28
30
|
:exclude => nil,
|
29
31
|
:file => nil,
|
30
|
-
:authorization => nil,
|
31
32
|
# log not found url (404 status code)
|
32
33
|
:not_found => false,
|
34
|
+
# internal verbose for ValidateWebsite
|
35
|
+
:validate_verbose => false,
|
36
|
+
:quiet => false,
|
37
|
+
|
38
|
+
# Anemone options see anemone/lib/anemone/core.rb
|
39
|
+
:verbose => false,
|
40
|
+
:user_agent => Anemone::Core::DEFAULT_OPTS[:user_agent],
|
33
41
|
:cookies => nil,
|
34
42
|
:accept_cookies => true,
|
35
|
-
:
|
36
|
-
:debug => false,
|
37
|
-
:quiet => false,
|
43
|
+
:redirect_limit => 0,
|
38
44
|
}
|
39
|
-
|
45
|
+
send("parse_#{validation_type}_options", args)
|
40
46
|
|
41
|
-
|
42
|
-
if
|
43
|
-
|
47
|
+
@file = @options[:file]
|
48
|
+
if @file
|
49
|
+
# truncate file
|
50
|
+
open(@file, 'w').write('')
|
44
51
|
end
|
52
|
+
|
53
|
+
@site = @options[:site]
|
45
54
|
end
|
46
55
|
|
47
|
-
def
|
56
|
+
def parse_crawl_options(args)
|
57
|
+
@options = @options_crawl
|
58
|
+
|
48
59
|
opts = OptionParser.new do |o|
|
49
60
|
o.set_summary_indent(' ')
|
50
61
|
o.banner = 'Usage: validate-website [OPTIONS]'
|
@@ -66,12 +77,10 @@ class ValidateWebsite
|
|
66
77
|
}
|
67
78
|
o.on("-f", "--file 'FILE'", String,
|
68
79
|
"Save not well formed or not found urls") { |v| @options[:file] = v }
|
69
|
-
|
70
|
-
"Basic http authentification") { |v|
|
71
|
-
@options[:authorization] = v
|
72
|
-
}
|
80
|
+
|
73
81
|
o.on("-c", "--cookies 'COOKIES'", String,
|
74
82
|
"Set defaults cookies") { |v| @options[:cookies] = v }
|
83
|
+
|
75
84
|
o.on("-m", "--[no-]markup-validation",
|
76
85
|
"Markup validation (Default: #{@options[:markup_validation]})") { |v|
|
77
86
|
@options[:markup_validation] = v
|
@@ -81,16 +90,16 @@ class ValidateWebsite
|
|
81
90
|
@options[:not_found] = v
|
82
91
|
}
|
83
92
|
o.on("-v", "--verbose",
|
84
|
-
"Show validator errors (Default: #{@options[:
|
85
|
-
@options[:
|
93
|
+
"Show validator errors (Default: #{@options[:validate_verbose]})") { |v|
|
94
|
+
@options[:validate_verbose] = v
|
86
95
|
}
|
87
96
|
o.on("-q", "--quiet",
|
88
97
|
"Only report errors (Default: #{@options[:quiet]})") { |v|
|
89
98
|
@options[:quiet] = v
|
90
99
|
}
|
91
100
|
o.on("-d", "--debug",
|
92
|
-
"Show anemone log (Default: #{@options[:
|
93
|
-
@options[:
|
101
|
+
"Show anemone log (Default: #{@options[:verbose]})") { |v|
|
102
|
+
@options[:verbose] = v
|
94
103
|
}
|
95
104
|
|
96
105
|
o.separator ""
|
@@ -99,12 +108,32 @@ class ValidateWebsite
|
|
99
108
|
opts.parse!(args)
|
100
109
|
end
|
101
110
|
|
102
|
-
def
|
103
|
-
|
111
|
+
def validate(doc, body, url, opts={})
|
112
|
+
opts = @options.merge(opts)
|
113
|
+
validator = Validator.new(doc, body)
|
114
|
+
msg = " well formed? %s" % validator.valid?
|
115
|
+
if validator.valid?
|
116
|
+
unless opts[:quiet]
|
117
|
+
print info(url)
|
118
|
+
puts success(msg)
|
119
|
+
end
|
120
|
+
else
|
121
|
+
@markup_error = true
|
122
|
+
print info(url)
|
123
|
+
puts error(msg)
|
124
|
+
puts error(validator.errors.join(", ")) if opts[:validate_verbose]
|
125
|
+
to_file(url)
|
126
|
+
end
|
127
|
+
end
|
104
128
|
|
105
|
-
|
129
|
+
def crawl(opts={})
|
130
|
+
opts = @options.merge(opts)
|
131
|
+
puts note("Validating #{@site}") if opts[:validate_verbose]
|
132
|
+
|
133
|
+
@anemone = Anemone.crawl(@site, opts) do |anemone|
|
106
134
|
anemone.skip_links_like Regexp.new(opts[:exclude]) if opts[:exclude]
|
107
135
|
|
136
|
+
# select the links on each page to follow (iframe, link, css url)
|
108
137
|
anemone.focus_crawl { |p|
|
109
138
|
links = []
|
110
139
|
if p.html?
|
@@ -134,20 +163,7 @@ class ValidateWebsite
|
|
134
163
|
if opts[:markup_validation]
|
135
164
|
# validate html/html+xml
|
136
165
|
if page.html? && page.fetched?
|
137
|
-
|
138
|
-
msg = " well formed? %s" % validator.valid?
|
139
|
-
if validator.valid?
|
140
|
-
unless opts[:quiet]
|
141
|
-
print info(url)
|
142
|
-
puts success(msg)
|
143
|
-
end
|
144
|
-
else
|
145
|
-
@markup_error = true
|
146
|
-
print info(url)
|
147
|
-
puts error(msg)
|
148
|
-
puts error(validator.errors.join(", ")) if opts[:validate_verbose]
|
149
|
-
to_file(url)
|
150
|
-
end
|
166
|
+
validate(page.doc, page.body, url, opts)
|
151
167
|
end
|
152
168
|
end
|
153
169
|
|
@@ -156,6 +172,9 @@ class ValidateWebsite
|
|
156
172
|
puts error("%s linked in %s but not exist" % [url, page.referer])
|
157
173
|
to_file(url)
|
158
174
|
end
|
175
|
+
|
176
|
+
# throw away the page (hope this saves memory)
|
177
|
+
page = nil
|
159
178
|
}
|
160
179
|
end
|
161
180
|
end
|
@@ -174,7 +193,9 @@ class ValidateWebsite
|
|
174
193
|
|
175
194
|
private
|
176
195
|
def to_file(msg)
|
177
|
-
|
196
|
+
if @file && File.exist?(@file)
|
197
|
+
open(@file, 'a').write("#{msg}\n")
|
198
|
+
end
|
178
199
|
end
|
179
200
|
|
180
201
|
def get_url(page, elem, attrname)
|
data/lib/validator.rb
CHANGED
@@ -3,19 +3,21 @@
|
|
3
3
|
class Validator
|
4
4
|
XHTML_PATH = File.join(File.dirname(__FILE__), '..', 'lib', 'xhtml')
|
5
5
|
|
6
|
-
attr_reader :
|
6
|
+
attr_reader :original_doc, :body, :dtd, :doc, :namespace, :xsd, :errors
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
@
|
10
|
-
@
|
8
|
+
def initialize(original_doc, body)
|
9
|
+
@original_doc = original_doc
|
10
|
+
@body = body
|
11
|
+
@dtd = @original_doc.internal_subset
|
11
12
|
init_namespace(@dtd)
|
12
13
|
@errors = []
|
14
|
+
@errors << 'Unknown document' if @namespace.nil?
|
13
15
|
|
14
|
-
if @
|
15
|
-
if @dtd_uri && @
|
16
|
-
document = @
|
16
|
+
if @errors.empty?
|
17
|
+
if @dtd_uri && @body.match(@dtd_uri.to_s)
|
18
|
+
document = @body.sub(@dtd_uri.to_s, @namespace + '.dtd')
|
17
19
|
else
|
18
|
-
document = @
|
20
|
+
document = @body
|
19
21
|
end
|
20
22
|
@doc = Dir.chdir(XHTML_PATH) do
|
21
23
|
Nokogiri::XML(document) { |cfg|
|
@@ -40,19 +42,8 @@ class Validator
|
|
40
42
|
end
|
41
43
|
@errors = @doc.errors
|
42
44
|
end
|
43
|
-
elsif @page.body =~ /^\<!DOCTYPE html\>/i
|
44
|
-
# html5 doctype
|
45
|
-
# http://dev.w3.org/html5/spec/Overview.html#the-doctype
|
46
|
-
require 'html5'
|
47
|
-
require 'html5/filters/validator'
|
48
|
-
html5_parser = HTML5::HTMLParser.new(:tokenizer => HTMLConformanceChecker)
|
49
|
-
html5_parser.parse(@page.body)
|
50
|
-
@errors = html5_parser.errors.collect do |er|
|
51
|
-
"#{er[1]} line #{er[0][0]}"
|
52
|
-
end
|
53
|
-
else
|
54
|
-
@errors << 'Unknown Document'
|
55
45
|
end
|
46
|
+
|
56
47
|
rescue Nokogiri::XML::SyntaxError => e
|
57
48
|
# http://nokogiri.org/tutorials/ensuring_well_formed_markup.html
|
58
49
|
@errors << e
|
data/man/man1/validate-website.1
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
.\" Title: validate-website
|
3
3
|
.\" Author: [see the "AUTHOR" section]
|
4
4
|
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
5
|
-
.\" Date: 12/
|
5
|
+
.\" Date: 12/10/2010
|
6
6
|
.\" Manual: \ \&
|
7
7
|
.\" Source: \ \&
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "VALIDATE\-WEBSITE" "1" "12/
|
10
|
+
.TH "VALIDATE\-WEBSITE" "1" "12/10/2010" "\ \&" "\ \&"
|
11
11
|
.\" -----------------------------------------------------------------
|
12
12
|
.\" * Define some portability stuff
|
13
13
|
.\" -----------------------------------------------------------------
|
@@ -59,11 +59,6 @@ Url to exclude (ex:
|
|
59
59
|
Save not well formed or not found (with \-n used) urls
|
60
60
|
.RE
|
61
61
|
.PP
|
62
|
-
\fB\-a\fR, \fB\-\-authorization\fR \fIUSER,PASS\fR
|
63
|
-
.RS 4
|
64
|
-
Basic http authentification
|
65
|
-
.RE
|
66
|
-
.PP
|
67
62
|
\fB\-c\fR, \fB\-\-cookies\fR \fICOOKIES\fR
|
68
63
|
.RS 4
|
69
64
|
Set defaults cookies
|
@@ -0,0 +1,243 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
+
<html lang="cs">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
|
5
|
+
<title>Debian -- Univerz�ln� opera�n� syst�m </title>
|
6
|
+
<link rev="made" href="mailto:webmaster@debian.org">
|
7
|
+
<link rel="shortcut icon" href="favicon.ico">
|
8
|
+
<meta name="Keywords" content="debian, GNU, linux, unix, open source, svobodn�, DFSG">
|
9
|
+
<meta name="Description" content="Debian GNU/Linux je svobodn� distribuce opera�n�ho syst�mu GNU/Linux. Je spravov�n a udr�ov�n za pomoci mnoha dobrovoln�k�, kte�� mu v�nuj� sv�j �as a zku�enosti.">
|
10
|
+
<meta name="Generator" content="WML 2.0.11 (19-Aug-2006)">
|
11
|
+
<meta name="Modified" content="2010-12-02 11:26:39">
|
12
|
+
<link rel="alternate" type="application/rss+xml"
|
13
|
+
title="Bezpe�nostn� zpr�vy Debianu (pouze nadpisy)" href="security/dsa">
|
14
|
+
<link rel="alternate" type="application/rss+xml"
|
15
|
+
title="Bezpe�nostn� zpr�vy Debianu (souhrn)" href="security/dsa-long">
|
16
|
+
<link href="./debian.css" rel="stylesheet" type="text/css">
|
17
|
+
<link href="./debian-cs.css" rel="stylesheet" type="text/css" media="all">
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="header">
|
21
|
+
<div id="upperheader">
|
22
|
+
<div id="logo">
|
23
|
+
<a href="./"><img src="./logos/openlogo-nd-50.png" width="50" height="61" alt=""></a>
|
24
|
+
<a href="./" rel="start"><img src="Pics/debian.png" width="179" height="61" alt="Projekt Debian"></a>
|
25
|
+
</div> <!-- end logo -->
|
26
|
+
</div> <!-- end upperheader -->
|
27
|
+
<!--UdmComment-->
|
28
|
+
<div id="navbar">
|
29
|
+
<p class="hidecss"><a href="#inner">P�esko�it Quicknav</a></p>
|
30
|
+
<ul>
|
31
|
+
<li><a href="intro/about">O Debianu</a></li>
|
32
|
+
<li><a href="./News/">Novinky</a></li>
|
33
|
+
<li><a href="distrib/">Jak z�skat Debian</a></li>
|
34
|
+
<li><a href="./support">Podpora</a></li>
|
35
|
+
<li><a href="./devel/">V�voj��sk� koutek</a></li>
|
36
|
+
<li><a href="./sitemap">P�ehled str�nek</a></li>
|
37
|
+
<li><a href="http://search.debian.org/">Hledat</a></li>
|
38
|
+
</ul>
|
39
|
+
</div> <!-- end navbar -->
|
40
|
+
</div> <!-- end header -->
|
41
|
+
<!--/UdmComment-->
|
42
|
+
<div id="outer">
|
43
|
+
<div id="inner">
|
44
|
+
<div id="leftcol">
|
45
|
+
<!--UdmComment-->
|
46
|
+
<ul>
|
47
|
+
<li><a href="intro/about">O Debianu</a>
|
48
|
+
<ul>
|
49
|
+
<li><a href="./social_contract">Spole�ensk� smlouva</a></li>
|
50
|
+
<li><a href="./intro/free">Svobodn� software</a></li>
|
51
|
+
<li><a href="./partners/">Partne�i</a></li>
|
52
|
+
<li><a href="./donations">Dary</a></li>
|
53
|
+
<li><a href="./contact">Napi�te n�m</a></li>
|
54
|
+
</ul>
|
55
|
+
</li>
|
56
|
+
<li><a href="./News/">Novinky</a>
|
57
|
+
<ul>
|
58
|
+
<li><a href="./News/project/">Novinky projektu</a></li>
|
59
|
+
<li><a href="./events/">Ud�losti</a></li>
|
60
|
+
</ul>
|
61
|
+
</li>
|
62
|
+
<li><a href="distrib/">Jak z�skat Debian</a>
|
63
|
+
<ul>
|
64
|
+
<li><a href="CD/vendors/">Prodejci CD</a></li>
|
65
|
+
<li><a href="CD/">Obrazy CD</a></li>
|
66
|
+
<li><a href="distrib/netinst">S��ov� instalace</a></li>
|
67
|
+
<li><a href="distrib/pre-installed">P�edinstalovan�</a></li>
|
68
|
+
</ul>
|
69
|
+
</li>
|
70
|
+
<li><a href="distrib/packages">Debian� bal��ky</a></li>
|
71
|
+
<li><a href="doc/">Dokumentace</a>
|
72
|
+
<ul>
|
73
|
+
<li><a href="./releases/">Informace k verz�m</a></li>
|
74
|
+
<li><a href="./releases/stable/installmanual">Instala�n� p��ru�ka</a></li>
|
75
|
+
<li><a href="doc/books">Knihy o Debianu</a></li>
|
76
|
+
</ul>
|
77
|
+
</li>
|
78
|
+
<li><a href="./support">Podpora</a>
|
79
|
+
<ul>
|
80
|
+
<li><a href="./international/">Debian a jazyky</a></li>
|
81
|
+
<li><a href="./security/">Bezpe�nostn� informace</a></li>
|
82
|
+
<li><a href="Bugs/">Hl�en� chyb</a></li>
|
83
|
+
<li><a href="MailingLists/">Konference</a></li>
|
84
|
+
<li><a href="http://lists.debian.org/">Archivy konferenc�</a></li>
|
85
|
+
<li><a href="./ports/">Porty/architektury</a></li>
|
86
|
+
</ul>
|
87
|
+
</li>
|
88
|
+
<li><a href="misc/">Ostatn�</a></li>
|
89
|
+
<li><a href="./intro/help">Pomozte Debianu</a></li>
|
90
|
+
<li><a href="./devel/">V�voj��sk� koutek</a></li>
|
91
|
+
<li><a href="./sitemap">P�ehled str�nek</a></li>
|
92
|
+
<li><a href="http://search.debian.org/">Hledat</a></li>
|
93
|
+
</ul>
|
94
|
+
<form method="get" action="http://search.debian.org/">
|
95
|
+
<p>
|
96
|
+
<input type="text" name="q" size="12">
|
97
|
+
</p>
|
98
|
+
</form>
|
99
|
+
<p>
|
100
|
+
<a href="./sponsor.html"><img src="sponsor_img.jpg" alt="Nav�tivte sponzora str�nek" width="102" height="60"></a>
|
101
|
+
</p>
|
102
|
+
<p>
|
103
|
+
<a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" width="88" height="31"></a>
|
104
|
+
</p>
|
105
|
+
<p>
|
106
|
+
<img src="http://jigsaw.w3.org/css-validator/images/vcss"
|
107
|
+
alt="Valid CSS!" width="88" height="31">
|
108
|
+
</p>
|
109
|
+
<!--/UdmComment-->
|
110
|
+
</div> <!-- end leftcol -->
|
111
|
+
<div id="maincol">
|
112
|
+
<a href="./News/2009/20090214"><img src="Pics/lennybanner_indexed.png" alt="Debian 5.0 - univerz�ln� opera�n� syst�m" width="380" height="310" style="margin-right: 10px; float: left;"></a>
|
113
|
+
<h2>Co je Debian?</h2>
|
114
|
+
<p><a href="http://www.debian.org/">Debian</a>
|
115
|
+
je <a href="intro/free">svobodn�</a> opera�n� syst�m (OS) ur�en� k provozu
|
116
|
+
na mnoha r�zn�ch typech po��ta��. Opera�n� syst�m se skl�d� ze z�kladn�ho
|
117
|
+
programov�ho vybaven� a dal��ch n�stroj�, kter�ch je k provozu
|
118
|
+
po��ta�e t�eba. Vlastn�m z�kladem OS je j�dro. Jeliko� Debian pou��v� j�dro
|
119
|
+
<a href="http://www.kernel.org/">Linux</a> a v�t�ina z�kladn�ch syst�mov�ch
|
120
|
+
program� byla vytvo�ena v r�mci <a href="http://www.gnu.org/">projektu GNU</a>,
|
121
|
+
nese syst�m ozna�en� GNU/Linux.</p>
|
122
|
+
<p>Debian GNU/Linux je v�ak v�ce ne� jen samotn� opera�n� syst�m. Obsahuje p�es
|
123
|
+
25000 <a href="distrib/packages">bal��k�</a>
|
124
|
+
s (p�edkompilovan�mi) programy a dokumentac�, p�ipraven�ch
|
125
|
+
pro snadnou instalaci.</p>
|
126
|
+
<p><a href="intro/about">Podrobnosti...</a></p>
|
127
|
+
<hr>
|
128
|
+
<h2>Za��n�me</h2>
|
129
|
+
<p><a href="releases/stable/">Posledn� stabiln� verze Debianu</a> m� ��slo
|
130
|
+
5.0. Tato verze byla naposledy aktualizov�na
|
131
|
+
27. listopadu 2010. P�e�t�te si v�ce
|
132
|
+
o <a href="releases/">dostupn�ch verz�ch Debianu</a>.</p>
|
133
|
+
<p>Chcete-li za��t pou��vat Debian, m��ete jej z�skat na
|
134
|
+
<a href="distrib/">distribu�n� str�nce</a> a pot� nainstalovat za pomoci
|
135
|
+
<a href="releases/stable/installmanual">instala�n� p��ru�ky</a>.</p>
|
136
|
+
<p>Pokud aktualizujete na nejnov�j�� stabiln� verzi z verze p�edchoz�,
|
137
|
+
p�e�tete si pros�m nejprve
|
138
|
+
<a href="releases/stable/releasenotes">pozn�mky k vyd�n�</a>.</p>
|
139
|
+
<p>Pot�ebujete-li pomoc p�i pou��v�n� nebo nastaven� Debianu, pod�vejte se do
|
140
|
+
<a href="doc/">dokumentace</a> nebo na str�nky
|
141
|
+
s <a href="support">u�ivatelskou podporou</a>.</p>
|
142
|
+
<p>Pro u�ivatele z neanglicky mluv�c�ch zem� jsou tu str�nky
|
143
|
+
v�nuj�c� se podpo�e <a href="international/">ostatn�ch jazyk�</a>.</p>
|
144
|
+
<p>U�ivatel� pracuj�c� s po��ta�i jin�ch hardwarov�ch platforem,
|
145
|
+
ne� je Intel x86, najdou informace na str�nk�ch v�nuj�c�ch se
|
146
|
+
<a href="ports/">ostatn�m platform�m</a>.</p>
|
147
|
+
<hr>
|
148
|
+
<h2>Novinky</h2>
|
149
|
+
<p><tt>[27.11.2010]</tt> <strong><a href="News/2010/20101127">Updated Debian GNU/Linux: 5.0.7 released</a></strong><br>
|
150
|
+
<tt>[16.11.2010]</tt> <strong><a href="News/2010/20101116b">Debian 6.0 <q>Squeeze</q>: Call for Upgrade and Installation tests</a></strong><br>
|
151
|
+
<tt>[16.11.2010]</tt> <strong><a href="News/2010/20101116a">Debian Women IRC Training Sessions</a></strong><br>
|
152
|
+
<tt>[02.11.2010]</tt> <strong><a href="News/2010/20101102">Mini-DebConf in Ho Chi Minh City, Vietnam during FOSSASIA 2010</a></strong><br>
|
153
|
+
<tt>[19.10.2010]</tt> <strong><a href="News/2010/20101019">Debian to officially welcome non-packaging contributors</a></strong><br>
|
154
|
+
<tt>[07.10.2010]</tt> <strong><a href="News/2010/20101007">Debian to be at the Society for Neuroscience meeting</a></strong><br>
|
155
|
+
</p>
|
156
|
+
<p>Star�� zpr�vy naleznete v <a href="./News/">archivu novinek</a>.
|
157
|
+
Pokud chcete b�t o novink�ch ze sv�ta Debianu informov�ni elektronickou
|
158
|
+
po�tou, p�ihlaste se do konference
|
159
|
+
<a href="MailingLists/debian-announce">debian-announce</a>.</p>
|
160
|
+
<hr>
|
161
|
+
<h2>Bezpe�nostn� zpr�vy</h2>
|
162
|
+
<p><tt>[01.12.2010]</tt> <strong><a href="security/2010/dsa-2129">DSA-2129 krb5</a></strong> - checksum verification weakness <br>
|
163
|
+
<tt>[01.12.2010]</tt> <strong><a href="security/2010/dsa-2128">DSA-2128 libxml2</a></strong> - invalid memory access <br>
|
164
|
+
<tt>[28.11.2010]</tt> <strong><a href="security/2010/dsa-2127">DSA-2127 wireshark</a></strong> - denial of service <br>
|
165
|
+
<tt>[26.11.2010]</tt> <strong><a href="security/2010/dsa-2126">DSA-2126 linux-2.6</a></strong> - privilege escalation/denial of service/information leak <br>
|
166
|
+
<tt>[22.11.2010]</tt> <strong><a href="security/2010/dsa-2125">DSA-2125 openssl</a></strong> - buffer overflow <br>
|
167
|
+
<tt>[01.11.2010]</tt> <strong><a href="security/2010/dsa-2124">DSA-2124 xulrunner</a></strong> - several vulnerabilities <br>
|
168
|
+
<tt>[01.11.2010]</tt> <strong><a href="security/2010/dsa-2123">DSA-2123 nss</a></strong> - several vulnerabilities <br>
|
169
|
+
<tt>[22.10.2010]</tt> <strong><a href="security/2010/dsa-2122">DSA-2122 glibc</a></strong> - missing input sanitization <br>
|
170
|
+
<tt>[19.10.2010]</tt> <strong><a href="security/2010/dsa-2121">DSA-2121 typo3-src</a></strong> - several vulnerabilities <br>
|
171
|
+
<tt>[12.10.2010]</tt> <strong><a href="security/2010/dsa-2120">DSA-2120 postgresql-8.3</a></strong> - privilege escalation <br>
|
172
|
+
<tt>[12.10.2010]</tt> <strong><a href="security/2010/dsa-2119">DSA-2119 poppler</a></strong> - several vulnerabilities <br>
|
173
|
+
</p>
|
174
|
+
<p>Star�� bezpe�nostn� zpr�vy se nach�z� na str�nce
|
175
|
+
s <a href="./security/">bezpe�nostn�mi informacemi</a>.
|
176
|
+
Pokud chcete b�t na potenci�ln� bezpe�nostn� rizika upozor�ov�ni
|
177
|
+
elektronickou po�tou co nejd��ve po jejich ohl�en�, p�ihlaste se do
|
178
|
+
konference
|
179
|
+
<a href="http://lists.debian.org/debian-security-announce/">debian-security-announce</a>.</p>
|
180
|
+
</div> <!-- end maincol -->
|
181
|
+
<div class="clr"></div>
|
182
|
+
</div> <!-- end inner -->
|
183
|
+
<div id="footer">
|
184
|
+
<hr class="hidecss">
|
185
|
+
<!--UdmComment-->
|
186
|
+
<p>
|
187
|
+
Tato str�nka je tak� dostupn� v n�sleduj�c�ch jazyc�ch:
|
188
|
+
</p><p class="navpara">
|
189
|
+
<a href="index.ar.html" title="arab�tina" hreflang="ar" lang="ar" rel="alternate">عربية (Arabiya)</a>
|
190
|
+
<a href="index.bg.html" title="bulhar�tina" hreflang="bg" lang="bg" rel="alternate">Български (Bəlgarski)</a>
|
191
|
+
<a href="index.ca.html" title="katal�n�tina" hreflang="ca" lang="ca" rel="alternate">català</a>
|
192
|
+
<a href="index.da.html" title="d�n�tina" hreflang="da" lang="da" rel="alternate">dansk</a>
|
193
|
+
<a href="index.de.html" title="n�m�ina" hreflang="de" lang="de" rel="alternate">Deutsch</a>
|
194
|
+
<a href="index.el.html" title="�e�tina" hreflang="el" lang="el" rel="alternate">Ελληνικά (Ellinika)</a>
|
195
|
+
<a href="index.en.html" title="angli�tina" hreflang="en" lang="en" rel="alternate">English</a>
|
196
|
+
<a href="index.es.html" title="�pan�l�tina" hreflang="es" lang="es" rel="alternate">español</a>
|
197
|
+
<a href="index.eo.html" title="esperanto" hreflang="eo" lang="eo" rel="alternate">Esperanto</a>
|
198
|
+
<a href="index.fr.html" title="francouz�tina" hreflang="fr" lang="fr" rel="alternate">français</a>
|
199
|
+
<a href="index.ko.html" title="korej�tina" hreflang="ko" lang="ko" rel="alternate">한국어 (Hangul)</a>
|
200
|
+
<a href="index.hy.html" title="arm�n�tina" hreflang="hy" lang="hy" rel="alternate">Հայերեն (hayeren)</a>
|
201
|
+
<a href="index.hr.html" title="chorvat�tina" hreflang="hr" lang="hr" rel="alternate">hrvatski</a>
|
202
|
+
<a href="index.id.html" title="indon�tina" hreflang="id" lang="id" rel="alternate">Indonesia</a>
|
203
|
+
<a href="index.it.html" title="ital�tina" hreflang="it" lang="it" rel="alternate">Italiano</a>
|
204
|
+
<a href="index.he.html" title="hebrej�tina" hreflang="he" lang="he" rel="alternate">עברית (ivrit)</a>
|
205
|
+
<a href="index.lt.html" title="litev�tina" hreflang="lt" lang="lt" rel="alternate">Lietuvių</a>
|
206
|
+
<a href="index.hu.html" title="ma�ar�tina" hreflang="hu" lang="hu" rel="alternate">magyar</a>
|
207
|
+
<a href="index.nl.html" title="holand�tina" hreflang="nl" lang="nl" rel="alternate">Nederlands</a>
|
208
|
+
<a href="index.ja.html" title="japon�tina" hreflang="ja" lang="ja" rel="alternate">日本語 (Nihongo)</a>
|
209
|
+
<a href="index.nb.html" title="nor�tina" hreflang="nb" lang="nb" rel="alternate">norsk (bokmål)</a>
|
210
|
+
<a href="index.pl.html" title="pol�tina" hreflang="pl" lang="pl" rel="alternate">polski</a>
|
211
|
+
<a href="index.pt.html" title="portugal�tina" hreflang="pt" lang="pt" rel="alternate">Português</a>
|
212
|
+
<a href="index.ro.html" title="rumun�tina" hreflang="ro" lang="ro" rel="alternate">română</a>
|
213
|
+
<a href="index.ru.html" title="ru�tina" hreflang="ru" lang="ru" rel="alternate">Русский (Russkij)</a>
|
214
|
+
<a href="index.sk.html" title="sloven�tina" hreflang="sk" lang="sk" rel="alternate">slovensky</a>
|
215
|
+
<a href="index.fi.html" title="fin�tina" hreflang="fi" lang="fi" rel="alternate">suomi</a>
|
216
|
+
<a href="index.sv.html" title="�v�d�tina" hreflang="sv" lang="sv" rel="alternate">svenska</a>
|
217
|
+
<a href="index.ta.html" title="tamil�tina" hreflang="ta" lang="ta" rel="alternate">தமிழ் (Tamil)</a>
|
218
|
+
<a href="index.tr.html" title="ture�tina" hreflang="tr" lang="tr" rel="alternate">Türkçe</a>
|
219
|
+
<a href="index.uk.html" title="ukrajin�tina" hreflang="uk" lang="uk" rel="alternate">українська (ukrajins'ka)</a>
|
220
|
+
<a href="index.zh-cn.html" title="��n�tina (��na)" hreflang="zh-CN" lang="zh-CN" rel="alternate">中文(简)</a>
|
221
|
+
<a href="index.zh-hk.html" title="��n�tina (Hong Kong)" hreflang="zh-HK" lang="zh-HK" rel="alternate">中文(HK)</a>
|
222
|
+
<a href="index.zh-tw.html" title="��n�tina (Tchai-wan)" hreflang="zh-TW" lang="zh-TW" rel="alternate">中文(繁)</a>
|
223
|
+
</p><p>
|
224
|
+
Jak nastavit <a href="./intro/cn">v�choz� jazyk</a>
|
225
|
+
</p>
|
226
|
+
<!--/UdmComment-->
|
227
|
+
<hr>
|
228
|
+
<!--UdmComment-->
|
229
|
+
<div id="fineprint">
|
230
|
+
<p>Probl�my t�kaj�c� se webov�ch str�nek oznamujte anglicky na e-mail <a href="mailto:debian-www@lists.debian.org">debian-www@lists.debian.org</a>. Dal�� kontakty z�sk�te na str�nce s <a href="./contact">kontakty</a>.</p>
|
231
|
+
<p>
|
232
|
+
Posledn� zm�na: �t, 2. pro 11:26:39 UTC 2010
|
233
|
+
<br>
|
234
|
+
Copyright © 1997-2010
|
235
|
+
<a href="http://www.spi-inc.org/">SPI</a>; P�e�tete si <a href="./license" rel="copyright">licen�n� podm�nky</a><br>
|
236
|
+
Debian je registrovan� <a href="./trademark">obchodn� zn�mka</a> organizace Software in the Public Interest, Inc.
|
237
|
+
</p>
|
238
|
+
</div>
|
239
|
+
<!--/UdmComment-->
|
240
|
+
</div> <!-- end footer -->
|
241
|
+
</div> <!-- end outer -->
|
242
|
+
</body>
|
243
|
+
</html>
|
@@ -14,7 +14,8 @@ describe ValidateWebsite do
|
|
14
14
|
page = FakePage.new(name,
|
15
15
|
:body => open(file).read,
|
16
16
|
:content_type => 'text/html')
|
17
|
-
@validate_website.
|
17
|
+
@validate_website.site = page.url
|
18
|
+
@validate_website.crawl(:quiet => true)
|
18
19
|
@validate_website.anemone.should have(3).pages
|
19
20
|
end
|
20
21
|
end
|
@@ -27,7 +28,8 @@ describe ValidateWebsite do
|
|
27
28
|
.tests {background-image: url(/image/pouet_42.png)}
|
28
29
|
.tests {background-image: url(/image/pouet)}",
|
29
30
|
:content_type => 'text/css')
|
30
|
-
@validate_website.
|
31
|
+
@validate_website.site = page.url
|
32
|
+
@validate_website.crawl
|
31
33
|
@validate_website.anemone.should have(5).pages
|
32
34
|
end
|
33
35
|
|
@@ -35,7 +37,8 @@ describe ValidateWebsite do
|
|
35
37
|
page = FakePage.new('test.css',
|
36
38
|
:body => ".test {background-image: url('pouet');}",
|
37
39
|
:content_type => 'text/css')
|
38
|
-
@validate_website.
|
40
|
+
@validate_website.site = page.url
|
41
|
+
@validate_website.crawl
|
39
42
|
@validate_website.anemone.should have(2).pages
|
40
43
|
end
|
41
44
|
|
@@ -43,7 +46,8 @@ describe ValidateWebsite do
|
|
43
46
|
page = FakePage.new('test.css',
|
44
47
|
:body => ".test {background-image: url(\"pouet\");}",
|
45
48
|
:content_type => 'text/css')
|
46
|
-
@validate_website.
|
49
|
+
@validate_website.site = page.url
|
50
|
+
@validate_website.crawl
|
47
51
|
@validate_website.anemone.should have(2).pages
|
48
52
|
end
|
49
53
|
end
|
data/spec/validator_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe Validator do
|
|
15
15
|
:body => open(file).read,
|
16
16
|
:content_type => 'text/html')
|
17
17
|
@xhtml1_page = @http.fetch_page(page.url)
|
18
|
-
validator = Validator.new(@xhtml1_page)
|
18
|
+
validator = Validator.new(@xhtml1_page.doc, @xhtml1_page.body)
|
19
19
|
validator.dtd.system_id.should == dtd_uri
|
20
20
|
validator.namespace.should == name
|
21
21
|
validator.should be_valid
|
@@ -25,13 +25,14 @@ describe Validator do
|
|
25
25
|
describe('html5') do
|
26
26
|
context('when valid') do
|
27
27
|
it "html5 should be valid" do
|
28
|
+
pending("need update html5lib")
|
28
29
|
name = 'html5'
|
29
30
|
file = File.join('spec', 'data', "#{name}.html")
|
30
31
|
page = FakePage.new(name,
|
31
32
|
:body => open(file).read,
|
32
33
|
:content_type => 'text/html')
|
33
34
|
@html5_page = @http.fetch_page(page.url)
|
34
|
-
validator = Validator.new(@html5_page)
|
35
|
+
validator = Validator.new(@html5_page.doc, @html5_page.body)
|
35
36
|
validator.should be_valid
|
36
37
|
end
|
37
38
|
end
|
@@ -44,7 +45,7 @@ describe Validator do
|
|
44
45
|
:body => open(file).read,
|
45
46
|
:content_type => 'text/html')
|
46
47
|
@html5_page = @http.fetch_page(page.url)
|
47
|
-
validator = Validator.new(@html5_page)
|
48
|
+
validator = Validator.new(@html5_page.doc, @html5_page.body)
|
48
49
|
validator.should be_valid
|
49
50
|
end
|
50
51
|
end
|
@@ -58,7 +59,7 @@ describe Validator do
|
|
58
59
|
:body => open(file).read,
|
59
60
|
:content_type => 'text/html')
|
60
61
|
@html4_strict_page = @http.fetch_page(page.url)
|
61
|
-
validator = Validator.new(@html4_strict_page)
|
62
|
+
validator = Validator.new(@html4_strict_page.doc, @html4_strict_page.body)
|
62
63
|
validator.should be_valid
|
63
64
|
end
|
64
65
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validate-website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 7
|
10
|
+
version: 0.5.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Laurent Arnoud
|
@@ -15,23 +15,23 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-10 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
22
|
+
name: anemone
|
23
23
|
prerelease: false
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 11
|
30
30
|
segments:
|
31
31
|
- 0
|
32
|
-
-
|
32
|
+
- 5
|
33
33
|
- 0
|
34
|
-
version: 0.
|
34
|
+
version: 0.5.0
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -49,26 +49,10 @@ dependencies:
|
|
49
49
|
version: "1.1"
|
50
50
|
type: :runtime
|
51
51
|
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: spk-html5
|
54
|
-
prerelease: false
|
55
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
|
-
requirements:
|
58
|
-
- - "="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
hash: 53
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
- 10
|
64
|
-
- 1
|
65
|
-
version: 0.10.1
|
66
|
-
type: :runtime
|
67
|
-
version_requirements: *id003
|
68
52
|
- !ruby/object:Gem::Dependency
|
69
53
|
name: rspec
|
70
54
|
prerelease: false
|
71
|
-
requirement: &
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
72
56
|
none: false
|
73
57
|
requirements:
|
74
58
|
- - ">="
|
@@ -80,11 +64,11 @@ dependencies:
|
|
80
64
|
- 0
|
81
65
|
version: 2.0.0
|
82
66
|
type: :development
|
83
|
-
version_requirements: *
|
67
|
+
version_requirements: *id003
|
84
68
|
- !ruby/object:Gem::Dependency
|
85
69
|
name: fakeweb
|
86
70
|
prerelease: false
|
87
|
-
requirement: &
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
88
72
|
none: false
|
89
73
|
requirements:
|
90
74
|
- - ">="
|
@@ -96,11 +80,12 @@ dependencies:
|
|
96
80
|
- 0
|
97
81
|
version: 1.3.0
|
98
82
|
type: :development
|
99
|
-
version_requirements: *
|
83
|
+
version_requirements: *id004
|
100
84
|
description: validate-website is a web crawler for checking the markupvalidity and not found urls.
|
101
85
|
email: laurent@spkdev.net
|
102
86
|
executables:
|
103
87
|
- validate-website
|
88
|
+
- validate-website-static
|
104
89
|
extensions: []
|
105
90
|
|
106
91
|
extra_rdoc_files: []
|
@@ -109,6 +94,7 @@ files:
|
|
109
94
|
- README.rdoc
|
110
95
|
- Rakefile
|
111
96
|
- LICENSE
|
97
|
+
- bin/validate-website-static
|
112
98
|
- bin/validate-website
|
113
99
|
- lib/validator.rb
|
114
100
|
- lib/colorful_messages.rb
|
@@ -207,6 +193,7 @@ files:
|
|
207
193
|
- spec/validator_spec.rb
|
208
194
|
- spec/spec_helper.rb
|
209
195
|
- spec/data/html5-linuxfr.html
|
196
|
+
- spec/data/index.cs.html
|
210
197
|
- spec/data/html4-strict.html
|
211
198
|
- spec/data/html5.html
|
212
199
|
- spec/data/xhtml1-strict.html
|
@@ -240,9 +227,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
227
|
- 0
|
241
228
|
version: "0"
|
242
229
|
requirements:
|
243
|
-
-
|
230
|
+
- anemone
|
244
231
|
- rainbow
|
245
|
-
- spk-html5
|
246
232
|
rubyforge_project:
|
247
233
|
rubygems_version: 1.3.7
|
248
234
|
signing_key:
|