summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-04-09 17:45:16 +0200
committerFlorian Bruhin <git@the-compiler.org>2015-04-09 17:45:16 +0200
commit2d8df76609743b4dd1c4b55863df437b6166d894 (patch)
treee09095f141cc2b213f5e431759ab36ac65b2a472
parentecb0a4e2f8b7cfcddfa944b6aeface2082907a4b (diff)
downloadqutebrowser-2d8df76609743b4dd1c4b55863df437b6166d894.tar.gz
qutebrowser-2d8df76609743b4dd1c4b55863df437b6166d894.zip
Add $QUTE_HTML and $QUTE_TEXT for userscripts.
-rw-r--r--doc/userscripts.asciidoc2
-rw-r--r--qutebrowser/browser/commands.py11
-rw-r--r--qutebrowser/browser/hints.py3
3 files changed, 13 insertions, 3 deletions
diff --git a/doc/userscripts.asciidoc b/doc/userscripts.asciidoc
index 0e34f5d4d..e9ae01cf8 100644
--- a/doc/userscripts.asciidoc
+++ b/doc/userscripts.asciidoc
@@ -24,6 +24,8 @@ The following environment variables will be set when an userscript is launched:
command or key binding).
- `QUTE_USER_AGENT`: The currently set user agent.
- `QUTE_FIFO`: The FIFO or file to write commands to.
+- `QUTE_HTML`: The HTML source of the current page.
+- `QUTE_TEXT`: The plaintext of the current page.
In `command` mode:
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py
index 7dc0a35fd..93bed2b49 100644
--- a/qutebrowser/browser/commands.py
+++ b/qutebrowser/browser/commands.py
@@ -876,9 +876,14 @@ class CommandDispatcher:
env['QUTE_TITLE'] = tabbed_browser.page_title(idx)
webview = tabbed_browser.currentWidget()
- if webview is not None and webview.hasSelection():
- env['QUTE_SELECTED_TEXT'] = webview.selectedText()
- env['QUTE_SELECTED_HTML'] = webview.selectedHtml()
+ if webview is not None:
+ if webview.hasSelection():
+ env['QUTE_SELECTED_TEXT'] = webview.selectedText()
+ env['QUTE_SELECTED_HTML'] = webview.selectedHtml()
+ mainframe = webview.page().mainFrame()
+ if mainframe is not None:
+ env['QUTE_HTML'] = mainframe.toHtml()
+ env['QUTE_TEXT'] = mainframe.toPlainText()
try:
url = tabbed_browser.current_url()
diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py
index debe5658b..d4fe4bcc6 100644
--- a/qutebrowser/browser/hints.py
+++ b/qutebrowser/browser/hints.py
@@ -518,10 +518,13 @@ class HintManager(QObject):
"""
cmd = context.args[0]
args = context.args[1:]
+ frame = context.mainframe
env = {
'QUTE_MODE': 'hints',
'QUTE_SELECTED_TEXT': str(elem),
'QUTE_SELECTED_HTML': elem.toOuterXml(),
+ 'QUTE_HTML': mainframe.toHtml(),
+ 'QUTE_TEXT': mainframe.toPlainText(),
}
url = self._resolve_url(elem, context.baseurl)
if url is not None: