Commit graph

6580 commits

Author SHA1 Message Date
Chris Mayo
f31932071c Add make -C doc locale 2020-08-15 17:02:40 +01:00
Chris Mayo
d62490d17a Add missing option and settings documentation 2020-08-15 17:02:40 +01:00
Chris Mayo
8e8f7a1668 Fix paths to man pages for make -C doc check 2020-08-15 17:02:40 +01:00
Chris Mayo
fe02eed821 Fix German translation of numbered lists 2020-08-15 17:02:40 +01:00
Chris Mayo
21839959b7 Fix typos in man pages 2020-08-15 17:02:40 +01:00
Chris Mayo
e7a2d2bfc6 Convert French man page translations to Sphinx
This is the automatic conversion only. Much manual work still required.
2020-08-15 17:02:40 +01:00
Chris Mayo
01f41e91de Update man pages, with translations
First man pages generated with Sphinx.
2020-08-15 17:02:40 +01:00
Chris Mayo
334a6a890c Add doc/i18n for man 2020-08-15 17:02:40 +01:00
Chris Mayo
7fcca21c45 Generate man pages with Sphinx 2020-08-15 17:02:40 +01:00
Chris Mayo
22089a5af2 Move man pages into doc/man 2020-08-15 17:02:40 +01:00
Chris Mayo
dc5416bdfd Add PyPI links 2020-08-15 17:02:40 +01:00
Chris Mayo
d1834f0619 Generate html documentation with Sphinx
Create code documentation:
make -C doc code

Create html:
make -C doc html
2020-08-15 17:02:38 +01:00
Chris Mayo
0086c28b3a
Merge pull request #474 from cjmayo/srcset
Fix problems with trailing commas and data: URIs in srcset values
2020-08-15 16:58:38 +01:00
Chris Mayo
0269fd88b0 Merge pull request #473 from cjmayo/valueerror
Fix critical exception when parsing a URL with a ]
2020-08-15 16:51:17 +01:00
Chris Mayo
88566ad20a
Merge pull request #472 from cjmayo/baseref
Fix CSV logger not recognising base part setting
2020-08-15 16:41:57 +01:00
Chris Mayo
525b6751a9 Merge pull request #468 from cjmayo/interrupter
Rename director/interrupt.py to director/interrupter.py
2020-08-15 16:31:33 +01:00
Chris Mayo
ccaa882d50
Merge pull request #471 from cjmayo/status
Fix status=0 setting being ignored
2020-08-14 20:02:01 +01:00
Chris Mayo
33a5444dea
Merge pull request #469 from cjmayo/checklink
Remove defaults from lc_cgi.checklink()
2020-08-14 19:57:03 +01:00
Chris Mayo
b2d5498cbf
Merge pull request #467 from cjmayo/faq
Update the FAQ with plugins for HTML and CSS syntax checking
2020-08-14 19:50:32 +01:00
Chris Mayo
5aa2ddce4d
Merge pull request #461 from cjmayo/docstrings
Fix formatting and typos in docstrings
2020-08-14 19:45:41 +01:00
Chris Mayo
84c5e512ac
Merge pull request #459 from cjmayo/cached
Log a debug message when a cached URL is skipped
2020-08-14 19:41:04 +01:00
Chris Mayo
7ee151ebbf Don't translate "Retry-After" server header field
It is defined in RFC 7231.
2020-08-14 19:29:19 +01:00
Chris Mayo
ad71cb4e43 Fix CssSyntaxCheck list index out of range
Errors do not report the column.
2020-08-14 19:25:21 +01:00
Chris Mayo
94dbac1e5e Fix CssSyntaxCheck warning message, CSS not HTML 2020-08-14 19:25:21 +01:00
Chris Mayo
e053b3bc5f HtmlSyntaxCheck disabled because it is broken 2020-08-14 19:25:21 +01:00
Chris Mayo
068a60ee39 SyntaxCheck plugins only work with http
They use a Requests session from url_data.
2020-08-14 19:25:21 +01:00
Chris Mayo
7d950cf848 Fix blacklist updating
A second run creates an additional entry in blacklist rather than
upating the original:
1 '"(\'http://localhost/broken.html\', \'http://localhost/nosuchlink.html\')"'
1 "('http://localhost/broken.html', 'http://localhost/nosuchlink.html')"

Broken since at least 9.3:
1 "(u'http://localhost/broken.html', u'http://localhost/nosuchlink.html')"
1 u'"(u\'http://localhost/broken.html\', u\'http://localhost/nosuchlink.html\')"'

If such an entry is found LinkChecker will now halt. Either remove
the entry or the whole file.
2020-08-13 19:32:21 +01:00
Chris Mayo
682bdbeab4 Add missing essential modules to internal error message 2020-08-12 19:38:40 +01:00
Chris Mayo
8c804c35a5 Detect sitemaps that do not start with an XML declaration 2020-08-11 19:35:56 +01:00
Chris Mayo
658c8051f0 Fix deprecation warning for use of the imp module 2020-08-10 19:32:04 +01:00
Chris Mayo
80763ed1ea Add slack to the list of ignored schemes
slack:// is a way to interact with a local Slack client [1], and is not
something that LinkChecker can check.

[1] https://api.slack.com/reference/deep-linking#client
2020-08-09 17:10:26 +01:00
Chris Mayo
f19fd4f5bc Update IANA scripts and ignored schemes (2020-07-28) 2020-08-09 17:10:26 +01:00
Chris Mayo
84a45b5171 Add missing settings to the example linkcheckerrc 2020-08-09 17:05:34 +01:00
Chris Mayo
d5690203fc Fix critical exception when parsing a URL with a ]
e.g.:
<a href="http://localhost]">square</a>

Causes urllib to raise a ValueError:
  File "/usr/lib/python3.8/site-packages/linkcheck/url.py", line 315, in url_norm
    line: urlparts = list(urllib.parse.urlsplit(url))
    locals:
      urlparts = <not found>
      list = <builtin> <class 'list'>
      urllib = <global> <module 'urllib' from '/usr/lib/python3.8/urllib/__init__.py'>
      urllib.parse = <global> <module 'urllib.parse' from '/usr/lib/python3.8/urllib/parse.py'>
      urllib.parse.urlsplit = <global> <function urlsplit at 0x7f950e699e50>
      url = <local> 'http://localhost]', len = 17
  File "/usr/lib/python3.8/urllib/parse.py", line 440, in urlsplit
    line: raise ValueError("Invalid IPv6 URL")
    locals:
      ValueError = <builtin> <class 'ValueError'>
2020-08-08 16:47:31 +01:00
Chris Mayo
27f22ae17a Fix treating data: URIs in srcset values as links 2020-08-07 20:04:23 +01:00
Chris Mayo
7ba4053710 Fix critical exception if srcset value ends with a comma
Log a debug message as this is a minor syntax problem, won't stop
LinkChecker parsing strings up to the comma.
2020-08-07 20:04:23 +01:00
Chris Mayo
f3a823fb5b Fix CSV logger not recognising base part setting 2020-08-07 19:45:24 +01:00
Chris Mayo
4f3f1ac0d4 Fix status=0 setting being ignored
- Set the correct default for the setting in configuration.Configuration
- Detect when the argument is not passed by setting the default to None
  (store_false sets the default to True)
2020-08-06 19:32:33 +01:00
Chris Mayo
40b2ebff8f Remove defaults from lc_cgi.checklink()
Only called from application() with arguments. Causes local environment
to be embedded in documentation when using Sphinx autodoc.
2020-08-05 19:54:56 +01:00
Chris Mayo
46b9e6b169 Rename director/interrupt.py to director/interrupter.py
Avoid a clash with director.interrupt() when automatically documenting.
2020-08-03 19:48:07 +01:00
Chris Mayo
39af879e68 Update the FAQ with plugins for HTML and CSS syntax checking
Options removed in 8.5:
64d95e45 ("Remove local HTML and CSS syntax check.", 2013-02-08)

Plugins added in 9.0:
7b34be59 ("Introduce check plugins, use Python requests for http/s
connections, and some code cleanups and improvements.", 2014-03-01)
2020-08-03 19:47:32 +01:00
Chris Mayo
dee21ee9a0 Fix formatting and typos in docstrings 2020-07-25 16:35:48 +01:00
Chris Mayo
500c13e2cb Log a debug message when a cached URL is skipped
Skipping introduced in:
eaa538c8 ("don't check one url multiple times", 2016-11-09)
2020-07-21 19:54:18 +01:00
Chris Mayo
a977e4d712
Merge pull request #444 from cjmayo/isinstance
Remove or replace uses of isinstance()
2020-07-08 19:55:29 +01:00
Chris Mayo
7a0644a234 No need to process an empty string in str_format.ascii_safe() 2020-07-08 19:47:59 +01:00
Chris Mayo
282f8c970d
Merge pull request #442 from cjmayo/unicode_safe
Remove strformat.unicode_safe()
2020-07-08 19:38:56 +01:00
Chris Mayo
10170b2966 Add a test for the LocationInfo plugin
Because the GeoIP database now requires registration to download the
result of the lookup using geoip-database is not going to change.
2020-07-07 17:25:28 +01:00
Chris Mayo
b328520f08 Convert UrlBase syntax Exception to a string
Causes an exception when logging.
2020-07-07 17:25:28 +01:00
Chris Mayo
53bd5c4d21 Remove HttpUrl.getheader() 2020-07-07 17:25:28 +01:00
Chris Mayo
1018b8332b Convert PDF URL to a string 2020-07-07 17:25:28 +01:00