d232437105
Upstream changelog: Especially important changes: * Added a warning when you instantiate a BeautifulSoup object without explicitly naming a parser. [bug=1398866] * __repr__ now returns an ASCII bytestring in Python 2, and a Unicode string in Python 3, instead of a UTF8-encoded bytestring in both versions. In Python 3, __str__ now returns a Unicode string instead of a bytestring. [bug=1420131] * The `text` argument to the find_* methods is now called `string`, which is more accurate. `text` still works, but `string` is the argument described in the documentation. `text` may eventually change its meaning, but not for a very long time. [bug=1366856] * Changed the way soup objects work under copy.copy(). Copying a NavigableString or a Tag will give you a new NavigableString that's equal to the old one but not connected to the parse tree. Patch by Martijn Peters. [bug=1307490] * Started using a standard MIT license. [bug=1294662] * Added a Chinese translation of the documentation by Delong .w. New features: * Introduced the select_one() method, which uses a CSS selector but only returns the first match, instead of a list of matches. [bug=1349367] * You can now create a Tag object without specifying a TreeBuilder. Patch by Martijn Pieters. [bug=1307471] * You can now create a NavigableString or a subclass just by invoking the constructor. [bug=1294315] * Added an `exclude_encodings` argument to UnicodeDammit and to the Beautiful Soup constructor, which lets you prohibit the detection of an encoding that you know is wrong. [bug=1469408] * The select() method now supports selector grouping. Patch by Francisco Canas [bug=1191917] Bug fixes: * Fixed yet another problem that caused the html5lib tree builder to create a disconnected parse tree. [bug=1237763] * Force object_was_parsed() to keep the tree intact even when an element from later in the document is moved into place. [bug=1430633] * Fixed yet another bug that caused a disconnected tree when html5lib copied an element from one part of the tree to another. [bug=1270611] * Fixed a bug where Element.extract() could create an infinite loop in the remaining tree. * The select() method can now find tags whose names contain dashes. Patch by Francisco Canas. [bug=1276211] * The select() method can now find tags with attributes whose names contain dashes. Patch by Marek Kapolka. [bug=1304007] * Improved the lxml tree builder's handling of processing instructions. [bug=1294645] * Restored the helpful syntax error that happens when you try to import the Python 2 edition of Beautiful Soup under Python 3. [bug=1213387] * In Python 3.4 and above, set the new convert_charrefs argument to the html.parser constructor to avoid a warning and future failures. Patch by Stefano Revera. [bug=1375721] * The warning when you pass in a filename or URL as markup will now be displayed correctly even if the filename or URL is a Unicode string. [bug=1268888] * If the initial <html> tag contains a CDATA list attribute such as 'class', the html5lib tree builder will now turn its value into a list, as it would with any other tag. [bug=1296481] * Fixed an import error in Python 3.5 caused by the removal of the HTMLParseError class. [bug=1420063] * Improved docstring for encode_contents() and decode_contents(). [bug=1441543] * Fixed a crash in Unicode, Dammit's encoding detector when the name of the encoding itself contained invalid bytes. [bug=1360913] * Improved the exception raised when you call .unwrap() or .replace_with() on an element that's not attached to a tree. * Raise a NotImplementedError whenever an unsupported CSS pseudoclass is used in select(). Previously some cases did not result in a NotImplementedError. * It's now possible to pickle a BeautifulSoup object no matter which tree builder was used to create it. However, the only tree builder that survives the pickling process is the HTMLParserTreeBuilder ('html.parser'). If you unpickle a BeautifulSoup object created with some other tree builder, soup.builder will be None. [bug=1231545] |
||
---|---|---|
doc | ||
icons | ||
misc | ||
qutebrowser | ||
scripts | ||
tests | ||
.appveyor.yml | ||
.coveragerc | ||
.eslintrc | ||
.gitignore | ||
.pylintrc | ||
.travis.yml | ||
CHANGELOG.asciidoc | ||
CONTRIBUTING.asciidoc | ||
COPYING | ||
FAQ.asciidoc | ||
INSTALL.asciidoc | ||
MANIFEST.in | ||
qutebrowser.desktop | ||
qutebrowser.py | ||
qutebrowser.rcc | ||
README.asciidoc | ||
requirements.txt | ||
setup.py | ||
tox.ini |
// If you are reading this in plaintext or on PyPi: // // A rendered version is available at: // https://github.com/The-Compiler/qutebrowser/blob/master/README.asciidoc qutebrowser =========== image:icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt5 and QtWebKit.* image:https://img.shields.io/pypi/l/qutebrowser.svg?style=flat["license badge",link="https://github.com/The-Compiler/qutebrowser/blob/master/COPYING"] image:https://img.shields.io/pypi/v/qutebrowser.svg?style=flat["version badge",link="https://pypi.python.org/pypi/qutebrowser/"] image:https://img.shields.io/github/issues/The-Compiler/qutebrowser.svg?style=flat["issues badge",link="https://github.com/The-Compiler/qutebrowser/issues"] image:https://requires.io/github/The-Compiler/qutebrowser/requirements.svg?branch=master["requirements badge",link="https://requires.io/github/The-Compiler/qutebrowser/requirements/?branch=master"] image:http://qutebrowser.org:8010/png?builder=archlinux["build badge",link="http://qutebrowser.org:8010/waterfall"] qutebrowser is a keyboard-focused browser with with a minimal GUI. It's based on Python, PyQt5 and QtWebKit and free software, licensed under the GPL. It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl. Screenshots ----------- image:doc/img/main.png["screenshot 1",width=300,link="doc/img/main.png"] image:doc/img/downloads.png["screenshot 2",width=300,link="doc/img/downloads.png"] image:doc/img/completion.png["screenshot 3",width=300,link="doc/img/completion.png"] image:doc/img/hints.png["screenshot 4",width=300,link="doc/img/hints.png"] Downloads --------- See the https://github.com/The-Compiler/qutebrowser/releases[github releases page] for available downloads (currently a source archive, and standalone packages as well as MSI installers for Windows). See link:INSTALL.asciidoc[INSTALL] for detailed instructions on how to get qutebrowser running for various platforms. Documentation ------------- In addition to the topics mentioned in this README, the following documents are available: * A http://qutebrowser.org/img/cheatsheet-big.png[key binding cheatsheet]: + image:http://qutebrowser.org/img/cheatsheet-small.png["qutebrowser key binding cheatsheet",link="http://qutebrowser.org/img/cheatsheet-big.png"] * link:doc/quickstart.asciidoc[Quick start guide] * link:FAQ.asciidoc[Frequently asked questions] * link:CONTRIBUTING.asciidoc[Contributing to qutebrowser] * link:INSTALL.asciidoc[INSTALL] * link:CHANGELOG.asciidoc[Change Log] * link:doc/stacktrace.asciidoc[Reporting segfaults] * link:doc/userscripts.asciidoc[How to write userscripts] Getting help ------------ You can get help in the IRC channel irc://irc.freenode.org/#qutebrowser[`#qutebrowser`] on http://freenode.net/[Freenode] (https://webchat.freenode.net/?channels=#qutebrowser[webchat]), or by writing a message to the https://lists.schokokeks.org/mailman/listinfo.cgi/qutebrowser[mailinglist] at mailto:qutebrowser@lists.qutebrowser.org[]. Contributions / Bugs -------------------- You want to contribute to qutebrowser? Awesome! Please read link:CONTRIBUTING.asciidoc[the contribution guidelines] for details and useful hints. If you found a bug or have a feature request, you can report it in several ways: * Use the built-in `:report` command or the automatic crash dialog. * Open an issue in the Github issue tracker. * Write a mail to the https://lists.schokokeks.org/mailman/listinfo.cgi/qutebrowser[mailinglist] at mailto:qutebrowser@lists.qutebrowser.org[]. For security bugs, please contact me directly at mail@qutebrowser.org, GPG ID http://www.the-compiler.org/pubkey.asc[0xFD55A072]. Requirements ------------ The following software and libraries are required to run qutebrowser: * http://www.python.org/[Python] 3.4 * http://qt.io/[Qt] 5.2.0 or newer (5.4.2 recommended) * QtWebKit * http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.2.0 or newer (5.4.2 recommended) for Python 3 * https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools] * http://fdik.org/pyPEG/[pyPEG2] * http://jinja.pocoo.org/[jinja2] * http://pygments.org/[pygments] * http://pyyaml.org/wiki/PyYAML[PyYAML] To generate the documentation for the `:help` command, when using the git repository (rather than a release), http://asciidoc.org/[asciidoc] is needed. The following libraries are optional and provide colored logging in the console: * https://pypi.python.org/pypi/colorlog/[colorlog] * On Windows: https://pypi.python.org/pypi/colorama/[colorama] See link:INSTALL.asciidoc[INSTALL] for directions on how to install qutebrowser and its dependencies. Donating -------- Working on qutebrowser is a very rewarding hobby, but like (nearly) all hobbies it also costs some money. Namely I have to pay for the server and domain, and do occasional hardware upgrades footnote:[It turned out a 160 GB SSD is rather small - the VMs and custom Qt builds I use for testing/developing qutebrowser need about 100 GB of space]. If you want to give me a beer or a pizza back, I'm trying to make it as easy as possible for you to do so. If some other way would be easier for you, please get in touch! * PayPal: me@the-compiler.org * Bitcoin: link:bitcoin:1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE[1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE] Authors ------- Contributors, sorted by the number of commits in descending order: // QUTE_AUTHORS_START * Florian Bruhin * Bruno Oliveira * Raphael Pierzina * Joel Torstensson * Martin Tournoij * Claude * Lamar Pavel * Austin Anderson * Artur Shaik * Antoni Boucher * ZDarian * Peter Vilim * John ShaggyTwoDope Jenkins * Jimmy * Zach-Button * rikn00 * Patric Schmitz * Martin Zimmermann * Error 800 * Brian Jackson * sbinix * Tobias Patzl * Johannes Altmanninger * Samir Benmendil * Regina Hug * Mathias Fussenegger * Larry Hynes * Fritz V155 Reichwald * Franz Fellner * error800 * Tim Harder * Thorsten Wißmann * Thiago Barroso Perrotta * Matthias Lisin * Helen Sherwood-Taylor * HalosGhost * Gregor Pohl * Eivind Uggedal * Arseniy Seroka * Andreas Fischer // QUTE_AUTHORS_END The following people have contributed graphics: * WOFall (icon) * regines (key binding cheatsheet) Thanks / Similar projects ------------------------- Many projects with a similar goal as qutebrowser exist: * http://portix.bitbucket.org/dwb/[dwb] (C, GTK+ with WebKit1, currently http://www.reddit.com/r/linux/comments/2huqbc/dwb_abandoned/[unmaintained] - main inspiration for qutebrowser) * https://github.com/fanglingsu/vimb[vimb] (C, GTK+ with WebKit1, active) * http://sourceforge.net/p/vimprobable/wiki/Home/[vimprobable] (C, GTK+ with WebKit1, dead) * http://surf.suckless.org/[surf] (C, GTK+ with WebKit1, active) * https://mason-larobina.github.io/luakit/[luakit] (C/Lua, GTK+ with WebKit1, not very active) * http://pwmt.org/projects/jumanji/[jumanji] (C, GTK+ with WebKit1, not very active) * http://www.uzbl.org/[uzbl] (C, GTK+ with WebKit1/WebKit2, active) * http://conkeror.org/[conkeror] (Javascript, Emacs-like, XULRunner/Gecko, active) * https://github.com/AeroNotix/lispkit[lispkit] (quite new, lisp, GTK+ with WebKit, active) * http://www.vimperator.org/[Vimperator] (Firefox addon) * http://5digits.org/pentadactyl/[Pentadactyl] (Firefox addon) * https://github.com/akhodakivskiy/VimFx[VimFx] (Firefox addon) * https://github.com/1995eaton/chromium-vim[cVim] (Chrome/Chromium addon) * http://vimium.github.io/[vimium] (Chrome/Chromium addon) * https://chrome.google.com/webstore/detail/vichrome/gghkfhpblkcmlkmpcpgaajbbiikbhpdi?hl=en[ViChrome] (Chrome/Chromium addon) * https://github.com/jinzhu/vrome[Vrome] (Chrome/Chromium addon) Most of them were inspirations for qutebrowser in some way, thanks for that! Thanks as well to the following projects and people for helping me with problems and helpful hints: * http://eric-ide.python-projects.org/[eric5] / Detlev Offenbach * https://code.google.com/p/devicenzo/[devicenzo] * portix * seir * nitroxleecher Also, thanks to: * Everyone who had the patience to test qutebrowser before v0.1. * Everyone triaging/fixing my bugs in the https://bugreports.qt.io/secure/Dashboard.jspa[Qt bugtracker] * Everyone answering my questions on http://stackoverflow.com/[Stack Overflow] and in IRC. * All the projects which were a great help while developing qutebrowser. License ------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.