This is caused (at least in this instance) by sites setting a CSS
min-height rule for `iframe` elements, which is then applied to the
Tridactyl iframe too.
Fix this by adding `min-height: 0` to the CSS for `#cmdline_iframe`.
Because this is an ID, it will always have higher specificity than any
CSS the site sets (unless we collide the ID, maybe), so it doesn't need
important.
Also add `max-height: none` in case anyone tries to cramp our iframe
style.
Perhaps there will be more styles that can mess up the iframe styling
but this seems to fix all the sites reported in #289 and #282. Using
cleanslate might help if it turns out there are very many more ways for
the outer site to ruin our day, but since it's only the iframe that the
site CSS can touch (inner HTML is safe), maybe this will be enough and
save a lot of !important'ing.
hintmode = "simple" is the default hinting mode, naming hints using
the hintchars configuration. It is the current tridactyl behavior and
is preserved unchanged.
hintmode = "vimperator" is a new hinting mode that allows the user to
filter hints using non-hintchar :alnum: characters. Hints with targets
whose html does not contain these characters as a subsequence (not
contiguous) will be filtered out.
- set, unset, get now all support an arbitrary depth of keys
- set has a less confusing argument order
- getAsync added: it will sleep until the config is read from disk for
the first time
Config isn't really fit for purpose. Should consider custom objects (for
recording type, defaults, etc) and maybe decoupling internal
representation from UI.
Found a couple of bugs as well:
excmds.ts: set() Could write a string to the config where the config
expected an array (Fixes#275)
config.ts: If both sync and local storage are in use the behaviour is
not intuitive.
This includes logic to automatically percent-encode the query if it
occurs in the the query string of the URL pattern.
If this automatic logic is not enough in future, the same function can
be extended with an explicit encoding flag as needed.
Previously was a case-sensitive check against an uppercase name. This
works for HTML.
XHTML will be whatever the source document is, which could be upper or
lower. Firefox will render either one the same, but only uppercase will
be deemed editable by Tridactyl. Fix this by doing a case-insensitive
comparision.
Tag casing is described in:
https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName
Thanks Koushien for working this one out!
Has a few modes:
-t: Straight text replacement
-r: Regexp replacement
-q: Change a query's value to a new one
-Q: Delete a given query (and value if present)
-g: Graft a path onto the current URL (or a parent path of it)
These can be used direct on the command line, or bound to keybindings.
The idea is to allow commands to easily navigate around a website. For
example, navigating to a project's issues page on GitHub can be done
with a graft command, and changing an query is useful on sites like
eBay.
As a URL modification is generally site-specific, binding will be much
more useful with aucmds.