aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--char-hints-mod.js710
-rw-r--r--nextlink.js17
-rw-r--r--takahashiPresentation.js4
3 files changed, 9 insertions, 722 deletions
diff --git a/char-hints-mod.js b/char-hints-mod.js
deleted file mode 100644
index 02a59b7..0000000
--- a/char-hints-mod.js
+++ /dev/null
@@ -1,710 +0,0 @@
-// Vimperator plugin: 'Char Hints Mod'
-// Last Change: 06-Apr-2008. Jan 2008
-// License: GPL
-// Version: 0.3
-// Maintainer: Trapezoid <trapezoid.g@gmail.com>
-
-// This file is a tweak based on char-hints.js by:
-// (c) 2008: marco candrian <mac@calmar.ws>
-// This file is a tweak based on hints.js by:
-// (c) 2006-2008: Martin Stubenschrott <stubenschrott@gmx.net>
-
-// Tested with vimperator 0.6pre from 2008-03-07
-// (won't work with older versions)
-
-// INSTALL: put this file into ~/.vimperator/plugin/ (create folders if necessary)
-// and restart firefox or :source that file
-
-// plugin-setup
-liberator.plugins.charhints = {};
-var chh = liberator.plugins.charhints;
-
-//<<<<<<<<<<<<<<<< EDIT USER SETTINGS HERE
-
-//chh.hintchars = "asdfjkl"; // chars to use for generating hints
-chh.hintchars = "hjklasdfgyuiopqwertnmzxcvb"; // chars to use for generating hints
-
-chh.showcapitals = true; // show capital letters, even with lowercase hintchars
-chh.timeout = 500; // in 1/000sec; when set to 0, press <RET> to follow
-
-chh.fgcolor = "black"; // hints foreground color
-chh.bgcolor = "yellow"; // hints background color
-chh.selcolor = "#99FF00"; // selected/active hints background color
-
-chh.mapNormal = "f"; // trigger normal mode with...
-chh.mapNormalNewTab = "F"; // trigger and open in new tab
-chh.mapExtended = ";"; // open in extended mode (see notes below)
-
-chh.hinttags = "//*[@onclick or @onmouseover or @onmousedown or @onmouseup or @oncommand or @class='lk' or @class='s'] | " +
-"//input[not(@type='hidden')] | //a | //area | //iframe | //textarea | //button | //select | " +
-"//xhtml:*[@onclick or @onmouseover or @onmousedown or @onmouseup or @oncommand or @class='lk' or @class='s'] | " +
-"//xhtml:input[not(@type='hidden')] | //xhtml:a | //xhtml:area | //xhtml:iframe | //xhtml:textarea | " +
-"//xhtml:button | //xhtml:select";
-
-//========================================
-// extended hints mode arguments
-//
-// ; to focus a link and hover it with the mouse
-// a to save its destination (prompting for save location)
-// s to save its destination
-// o to open its location in the current tab
-// t to open its location in a new tab
-// O to open its location in an :open query
-// T to open its location in a :tabopen query
-// v to view its destination source
-// w to open its destination in a new window
-// W to open its location in a :winopen query
-// y to yank its location
-// Y to yank its text description
-
-// variables etc//{{{
-
-
-// ignorecase when showcapitals = true
-// (input keys on onEvent gets lowercased too
-
-if (chh.showcapitals)
- chh.hintchars = chh.hintchars.toLowerCase();
-
-
-chh.submode = ""; // used for extended mode, can be "o", "t", "y", etc.
-chh.hintString = ""; // the typed string part of the hint is in this string
-chh.hintNumber = 0; // only the numerical part of the hint
-chh.usedTabKey = false; // when we used <Tab> to select an element
-
-chh.hints = [];
-chh.validHints = []; // store the indices of the "hints" array with valid elements
-
-chh.activeTimeout = null; // needed for hinttimeout > 0
-chh.canUpdate = false;
-
-// used in number2hintchars
-chh.transval = {"0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9, "a":10, "b":11,
- "c":12, "d":13,"e":14, "f":15, "g":16, "h":17, "i":18, "j":19, "k":20, "l":21, "m":22, "n":23,
- "o":24, "p":25,"q":26, "r":27, "s":28, "t":29, "u":30, "v":31, "w":32, "x":33, "y":34, "z":35};
-
-// used in hintchars2number
-chh.conversion = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
-// keep track of the documents which we generated the hints for
-// docs = { doc: document, start: start_index in hints[], end: end_index in hints[] }
-chh.docs = [];
-//}}}
-// reset all important variables
-chh.reset = function ()//{{{
-{
- liberator.statusline.updateInputBuffer("");
- chh.hintString = "";
- chh.hintNumber = 0;
- chh.usedTabKey = false;
- chh.hints = [];
- chh.validHints = [];
- chh.canUpdate = false;
- chh.docs = [];
-
- if (chh.activeTimeout)
- clearTimeout(chh.activeTimeout);
- chh.activeTimeout = null;
-}
-//}}}
-chh.updateStatusline = function ()//{{{
-{
- liberator.statusline.updateInputBuffer(("") +
- (chh.hintString ? "\"" + chh.hintString + "\"" : "") +
- (chh.hintNumber > 0 ? " <" + chh.hintNumber + ">" : ""));
-}
-//}}}
-// this function 'click' an element, which also works
-// for javascript links
-chh.hintchars2number = function (hintstr)//{{{
-{
- // convert into 'normal number then make it decimal-based
-
- var converted = "";
-
- // translate users hintchars into a number (chh.conversion) 0 -> 0, 1 -> 1, ...
- for (let i = 0, l = hintstr.length; i < l; i++)
- converted += "" + chh.conversion[chh.hintchars.indexOf(hintstr[i])];
-
- // add one, since hints begin with 0;
-
- return parseInt(converted, chh.hintchars.length); // hintchars.length is the base/radix
-}
-//}}}
-chh.number2hintchars = function (nr)//{{{
-{
- var oldnr = nr;
- var converted = "";
- var tmp = "";
-
- tmp = nr.toString(chh.hintchars.length); // hintchars.length is the base/radix)
-
- // translate numbers into users hintchars
- // tmp might be 2e -> (chh.transval) 2 and 14 -> (chh.hintchars) according hintchars
-
- for (let i = 0, l = tmp.length; i < l; i++)
- converted += "" + chh.hintchars[chh.transval[tmp[i]]];
-
- return converted;
-}
-//}}}
-chh.openHint = function (where)//{{{
-{
- if (chh.validHints.length < 1)
- return false;
-
- var x = 1, y = 1;
- var elem = chh.validHints[chh.hintNumber - 1] || chh.validHints[0];
- var elemTagName = elem.localName.toLowerCase();
- elem.focus();
-
- liberator.buffer.followLink(elem, where);
- return true;
-}
-//}}}
-chh.focusHint = function ()//{{{
-{
- if (chh.validHints.length < 1)
- return false;
-
- var elem = chh.validHints[chh.hintNumber - 1] || chh.validHints[0];
- var doc = window.content.document;
- var elemTagName = elem.localName.toLowerCase();
- if (elemTagName == "frame" || elemTagName == "iframe")
- {
- elem.contentWindow.focus();
- return false;
- }
- else
- {
- elem.focus();
- }
-
- var evt = doc.createEvent("MouseEvents");
- var x = 0;
- var y = 0;
- // for imagemap
- if (elemTagName == "area")
- {
- [x, y] = elem.getAttribute("coords").split(",");
- x = Number(x);
- y = Number(y);
- }
-
- evt.initMouseEvent("mouseover", true, true, doc.defaultView, 1, x, y, 0, 0, 0, 0, 0, 0, 0, null);
- elem.dispatchEvent(evt);
-}
-//}}}
-chh.yankHint = function (text)//{{{
-{
- if (chh.validHints.length < 1)
- return false;
-
- var elem = chh.validHints[chh.hintNumber - 1] || chh.validHints[0];
- var loc;
- if (text)
- loc = elem.textContent;
- else
- loc = elem.href;
-
- liberator.copyToClipboard(loc);
- liberator.echo("Yanked " + loc, liberator.commandline.FORCE_SINGLELINE);
-}
-//}}}
-chh.saveHint = function (skipPrompt)//{{{
-{
- if (chh.validHints.length < 1)
- return false;
-
- var elem = chh.validHints[chh.hintNumber - 1] || chh.validHints[0];
-
- try
- {
- liberator.buffer.saveLink(elem,skipPrompt);
- }
- catch (e)
- {
- liberator.echoerr(e);
- }
-}
-//}}}
-chh.generate = function (win)//{{{
-{
- var startDate = Date.now();
-
- if (!win)
- win = window.content;
-
- var doc = win.document;
- var height = win.innerHeight;
- var width = win.innerWidth;
- var scrollX = doc.defaultView.scrollX;
- var scrollY = doc.defaultView.scrollY;
-
- var baseNodeAbsolute = doc.createElementNS("http://www.w3.org/1999/xhtml", "span");
- baseNodeAbsolute.style.backgroundColor = "red";
- baseNodeAbsolute.style.color = "white";
- baseNodeAbsolute.style.position = "absolute";
- baseNodeAbsolute.style.fontSize = "10px";
- baseNodeAbsolute.style.fontWeight = "bold";
- baseNodeAbsolute.style.lineHeight = "10px";
- baseNodeAbsolute.style.padding = "0px 1px 0px 0px";
- baseNodeAbsolute.style.zIndex = "10000001";
- baseNodeAbsolute.style.display = "none";
- baseNodeAbsolute.className = "vimperator-hint";
-
- var elem, tagname, text, span, rect;
- var res = liberator.buffer.evaluateXPath(chh.hinttags, doc, null, true);
- liberator.log("shints: evaluated XPath after: " + (Date.now() - startDate) + "ms");
-
- var fragment = doc.createDocumentFragment();
- var start = chh.hints.length;
- while ((elem = res.iterateNext()) != null)
- {
- // TODO: for frames, this calculation is wrong
- rect = elem.getBoundingClientRect();
- if (!rect || rect.top > height || rect.bottom < 0 || rect.left > width || rect.right < 0)
- continue;
-
- rect = elem.getClientRects()[0];
- if (!rect)
- continue;
-
- // TODO: mozilla docs recommend localName instead of tagName
- tagname = elem.tagName.toLowerCase();
- text = "";
- span = baseNodeAbsolute.cloneNode(true);
- span.style.left = (rect.left + scrollX) + "px";
- span.style.top = (rect.top + scrollY) + "px";
- fragment.appendChild(span);
-
- chh.hints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]);
- }
-
- doc.body.appendChild(fragment);
- chh.docs.push({ doc: doc, start: start, end: chh.hints.length - 1 });
-
- // also generate hints for frames
- for (let i = 0; i < win.frames.length; i++)
- chh.generate(win.frames[i]);
-
- liberator.log("shints: generate() completed after: " + (Date.now() - startDate) + "ms");
- return true;
-}
-//}}}
-// TODO: make it aware of imgspans
-chh.showActiveHint = function (newID, oldID)//{{{
-{
- var oldElem = chh.validHints[oldID - 1];
- if (oldElem)
- oldElem.style.backgroundColor = chh.bgcolor;
-
- var newElem = chh.validHints[newID - 1];
- if (newElem)
- newElem.style.backgroundColor = chh.selcolor;
-}
-//}}}
-chh.showHints = function ()//{{{
-{
- var startDate = Date.now();
- var win = window.content;
- var height = win.innerHeight;
- var width = win.innerWidth;
-
-
- var elem, tagname, text, rect, span, imgspan;
- var hintnum = 1;
- //var findTokens = chh.hintString.split(/ +/);
- var activeHint = chh.hintNumber || 1;
- chh.validHints = [];
-
- for (let j = 0; j < chh.docs.length; j++)
- {
- let doc = chh.docs[j].doc;
- let start = chh.docs[j].start;
- let end = chh.docs[j].end;
- let scrollX = doc.defaultView.scrollX;
- let scrollY = doc.defaultView.scrollY;
-
-outer:
- for (let i = start; i <= end; i++)
- {
- [elem, , span, imgspan] = chh.hints[i];
- text = "";
-
- if (elem.firstChild && elem.firstChild.tagName == "IMG")
- {
- if (!imgspan)
- {
- rect = elem.firstChild.getBoundingClientRect();
- if (!rect)
- continue;
-
- imgspan = doc.createElementNS("http://www.w3.org/1999/xhtml", "span");
- imgspan.style.position = "absolute";
- imgspan.style.opacity = 0.5;
- imgspan.style.zIndex = "10000000";
- imgspan.style.left = (rect.left + scrollX) + "px";
- imgspan.style.top = (rect.top + scrollY) + "px";
- imgspan.style.width = (rect.right - rect.left) + "px";
- imgspan.style.height = (rect.bottom - rect.top) + "px";
- imgspan.className = "vimperator-hint";
- chh.hints[i][3] = imgspan;
- doc.body.appendChild(imgspan);
- }
- imgspan.style.backgroundColor = (activeHint == hintnum) ? chh.selcolor : chh.bgcolor;
- imgspan.style.display = "inline";
- }
-
- if (!imgspan)
- elem.style.backgroundColor = (activeHint == hintnum) ? chh.selcolor : chh.bgcolor;
- elem.style.color = chh.fgcolor;
- if (chh.showcapitals)
- span.textContent = chh.number2hintchars(hintnum++).toUpperCase();
- else
- span.textContent = chh.number2hintchars(hintnum++);
-
- span.style.display = "inline";
- chh.validHints.push(elem);
- }
- }
-
- liberator.log("shints: showHints() completed after: " + (Date.now() - startDate) + "ms");
- return true;
-}
-//}}}
-chh.removeHints = function (timeout)//{{{
-{
- var firstElem = chh.validHints[0] || null;
- var firstElemselcolor = "";
- var firstElemColor = "";
-
- for (let j = 0; j < chh.docs.length; j++)
- {
- let doc = chh.docs[j].doc;
- let start = chh.docs[j].start;
- let end = chh.docs[j].end;
-
- for (let i = start; i <= end; i++)
- {
- // remove the span for the numeric display part
- doc.body.removeChild(chh.hints[i][2]);
- if (chh.hints[i][3]) // a transparent span for images
- doc.body.removeChild(chh.hints[i][3]);
-
- if (timeout && firstElem == chh.hints[i][0])
- {
- firstElemselcolor = chh.hints[i][4];
- firstElemColor = chh.hints[i][5];
- }
- else
- {
- // restore colors
- let elem = chh.hints[i][0];
- elem.style.backgroundColor = chh.hints[i][4];
- elem.style.color = chh.hints[i][5];
- }
- }
-
- // animate the disappearance of the first hint
- if (timeout && firstElem)
- {
- setTimeout(function () {
- firstElem.style.backgroundColor = firstElemselcolor;
- firstElem.style.color = firstElemColor;
- }, timeout);
- }
- }
-
- liberator.log("shints: removeHints() done");
- chh.reset();
-}
-//}}}
-chh.processHints = function (followFirst)//{{{
-{
- if (chh.validHints.length == 0)
- {
- liberator.beep();
- return false;
- }
-
- if (!followFirst)
- {
- let firstHref = chh.validHints[0].getAttribute("href") || null;
- if (firstHref)
- {
- if (chh.validHints.some(function (e) { return e.getAttribute("href") != firstHref; }))
- return false;
- }
- else if (chh.validHints.length > 1)
- return false;
- }
-
- var activeNum = chh.hintNumber || 1;
- var loc = chh.validHints[activeNum - 1].href || "";
- switch (chh.submode)
- {
- case ";": chh.focusHint(); break;
- case "a": chh.saveHint(false); break;
- case "s": chh.saveHint(true); break;
- case "o": chh.openHint(liberator.CURRENT_TAB); break;
- case "O": liberator.commandline.open(":", "open " + loc, liberator.modes.EX); break;
- case "t": chh.openHint(liberator.NEW_TAB); break;
- case "T": liberator.commandline.open(":", "tabopen " + loc, liberator.modes.EX); break;
- case "w": chh.openHint(liberator.NEW_WINDOW); break;
- case "W": liberator.commandline.open(":", "winopen " + loc, liberator.modes.EX); break;
- case "y": chh.yankHint(false); break;
- case "Y": chh.yankHint(true); break;
- default:
- liberator.echoerr("INTERNAL ERROR: unknown submode: " + chh.submode);
- }
-
- var timeout = followFirst ? 0 : 500;
- chh.removeHints(timeout);
-
- if (liberator.modes.extended & liberator.modes.ALWAYS_HINT)
- {
- setTimeout(function () {
- chh.canUpdate = true;
- chh.hintString = "";
- chh.hintNumber = 0;
- liberator.statusline.updateInputBuffer("");
- }, timeout);
- }
- else
- {
- if (timeout == 0 || liberator.modes.isReplaying)
- {
- // force a possible mode change, based on wheter an input field has focus
- liberator.events.onFocusChange();
- if (liberator.mode == liberator.modes.HINTS)
- liberator.modes.reset(false);
- }
- else
- {
- liberator.modes.add(liberator.modes.INACTIVE_HINT);
- setTimeout(function () {
- if (liberator.mode == liberator.modes.HINTS)
- liberator.modes.reset(false);
- }, timeout);
- }
- }
-
- return true;
-}
-//}}}
-// TODO: implement framesets
-chh.show = function (mode, minor, filter)//{{{
-{
- if (mode == liberator.modes.EXTENDED_HINT && !/^[;asoOtTwWyY]$/.test(minor))
- {
- liberator.beep();
- return;
- }
-
- liberator.modes.set(liberator.modes.HINTS, mode);
- chh.submode = minor || "o"; // open is the default mode
- chh.hintString = filter || "";
- chh.hintNumber = 0;
- chh.canUpdate = false;
-
- chh.generate();
-
- // get all keys from the input queue
- var mt = Components.classes["@mozilla.org/thread-manager;1"].getService().mainThread;
- while (mt.hasPendingEvents())
- mt.processNextEvent(true);
-
- chh.canUpdate = true;
- chh.showHints();
-
- if (chh.validHints.length == 0)
- {
- liberator.beep();
- liberator.modes.reset();
- return false;
- }
- else if (chh.validHints.length == 1)
- {
- chh.processHints(true);
- return false;
- }
- else // still hints visible
- return true;
-}
-//}}}
-chh.hide = function ()//{{{
-{
- chh.removeHints(0);
-}
-//}}}
-chh.onEvent = function (event)//{{{
-{
- var key = liberator.events.toString(event);
-
- if (chh.showcapitals && key.length == 1)
- key = key.toLowerCase();
-
- // clear any timeout which might be active after pressing a number
- if (chh.activeTimeout)
- {
- clearTimeout(chh.activeTimeout);
- chh.activeTimeout = null;
- }
-
- switch (key)
- {
- case "<Return>":
- chh.processHints(true);
- break;
-
- case "<Tab>":
- case "<S-Tab>":
- chh.usedTabKey = true;
- if (chh.hintNumber == 0)
- chh.hintNumber = 1;
-
- let oldID = chh.hintNumber;
- if (key == "<Tab>")
- {
- if (++chh.hintNumber > chh.validHints.length)
- chh.hintNumber = 1;
- }
- else
- {
- if (--chh.hintNumber < 1)
- chh.hintNumber = chh.validHints.length;
- }
- chh.showActiveHint(chh.hintNumber, oldID);
- return;
-
- case "<BS>": //TODO: may tweak orig hints.js too (adding 2 lines ...)
- let oldID = chh.hintNumber;
- if (chh.hintNumber > 0)
- {
- chh.hintNumber = Math.floor(chh.hintNumber / chh.hintchars.length);
- chh.hintString = chh.hintString.substr(0, chh.hintString.length - 1);
- chh.usedTabKey = false;
- }
- else
- {
- chh.usedTabKey = false;
- chh.hintNumber = 0;
- liberator.beep();
- return;
- }
- chh.showActiveHint(chh.hintNumber, oldID);
- break;
-
- case "<C-w>":
- case "<C-u>":
- chh.hintString = "";
- chh.hintNumber = 0;
- break;
-
- default:
- // pass any special or ctrl- etc. prefixed key back to the main vimperator loop
- if (/^<./.test(key) || key == ":")
- {
- //FIXME: won't work probably
- let map = null;
- if ((map = liberator.mappings.get(liberator.modes.NORMAL, key)) ||
- (map = liberator.mappings.get(liberator.modes.HINTS, key))) //TODO
- {
- map.execute(null, -1);
- return;
- }
-
- liberator.beep();
- return;
- }
-
- if (chh.hintchars.indexOf(key) >= 0) // TODO: check if in hintchars
- {
- chh.hintString += key;
- let oldHintNumber = chh.hintNumber;
- if (chh.hintNumber == 0 || chh.usedTabKey)
- {
- chh.usedTabKey = false;
- }
-
- chh.hintNumber = chh.hintchars2number(chh.hintString);
-
- chh.updateStatusline();
-
- if (!chh.canUpdate)
- return;
-
- if (chh.docs.length == 0)
- {
- chh.generate();
- chh.showHints();
- }
- chh.showActiveHint(chh.hintNumber, oldHintNumber || 1);
-
- if (chh.hintNumber == 0 || chh.hintNumber > chh.validHints.length)
- {
- liberator.beep();
- return;
- }
-
- // orig hints.js comment: if we write a numeric part like 3, but we have 45 hints, only follow
- // the hint after a timeout, as the user might have wanted to follow link 34
- if (chh.hintNumber > 0 && chh.hintNumber * chh.hintchars.length <= chh.validHints.length)
- {
- if (chh.timeout > 0)
- chh.activeTimeout = setTimeout(chh.processHints, chh.timeout, true);
-
- return false;
- }
- // we have a unique hint
- chh.processHints(true);
- return;
- }
-
- if (chh.usedTabKey)
- {
- chh.usedTabKey = false;
- chh.showActiveHint(1, chh.hintNumber);
- }
- }
-
- chh.updateStatusline();
-}//}}}
-
-
-// <<<<<<<<<<<<<<< registering/setting up this plugin
-
-//liberator.modes.setCustomMode ("CHAR-HINTS", liberator.plugins.charhints.onEvent,
-// liberator.plugins.charhints.hide);
-liberator.hints = chh;
-liberator.mappings.addUserMap([liberator.modes.NORMAL], [chh.mapNormal],
- "Start Custum-QuickHint mode",
- function () { liberator.plugins.charhints.show(liberator.modes.QUICK_HINT); },
- { noremap: true }
-);
-
-liberator.mappings.addUserMap([liberator.modes.NORMAL], [chh.mapNormalNewTab],
- "Start Custum-QuickHint mode, but open link in a new tab",
- function () { liberator.plugins.charhints.show(liberator.modes.QUICK_HINT, "t"); },
- { noremap: true }
-);
-
-liberator.mappings.addUserMap([liberator.modes.NORMAL], [chh.mapExtended],
- "Start an extended hint mode",
- function (arg)
- {
- if (arg == "f")
- liberator.plugins.charhints.show(liberator.modes.ALWAYS_HINT, "o");
- else if (arg == "F")
- liberator.plugins.charhints.show(liberator.modes.ALWAYS_HINT, "t");
- else
- liberator.plugins.charhints.show(liberator.modes.EXTENDED_HINT, arg);
- },
- {
- flags: liberator.Mappings.flags.ARGUMENT,
- noremap: true
- }
-);
-
-// vim: set fdm=marker sw=4 ts=4 et:
diff --git a/nextlink.js b/nextlink.js
index 929ef54..0509303 100644
--- a/nextlink.js
+++ b/nextlink.js
@@ -14,8 +14,8 @@ var PLUGIN_INFO =
<author mail="konbu.komuro@gmail.com" homepage="http://d.hatena.ne.jp/hogelog/">hogelog</author>
<version>0.3.9</version>
<license>GPL</license>
- <minVersion>1.2</minVersion>
- <maxVersion>2.0pre</maxVersion>
+ <minVersion>2.2pre</minVersion>
+ <maxVersion>2.2pre</maxVersion>
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/nextlink.js</updateURL>
<detail><![CDATA[
== Needs Library ==
@@ -172,18 +172,17 @@ NextLink.prototype = {
this.pager.initDoc(context, doc);
},
getSiteinfo: function(doc) {
+ function valid(prop)
+ $U.getNodesFromXPath(MICROFORMAT[prop], doc).length > 0;
+ if (valid("nextLink") && valid("pageElement")) return MICROFORMAT;
var url = doc.location.href;
for (let i = 0, len = this.siteinfo.length; i < len; i++) {
if (url.match(this.siteinfo[i].url) && this.siteinfo[i].url != "^https?://.") {
return this.siteinfo[i];
}
}
- function valid(prop)
- $U.getNodesFromXPath(MICROFORMAT[prop], doc).length > 0;
-
- if (!valid("nextLink") || !valid("pageElement")) return null;
- return MICROFORMAT;
+ return null;
},
nextLink: function(count) {
if (!this.initialized) {
@@ -199,11 +198,11 @@ NextLink.prototype = {
customizeMap: function(context) {
mappings.addUserMap(context.browserModes, [ prevMap ], "customize by nextlink.js",
function(count) context.nextLink(count > 0 ? -1 * count : -1),
- { flags: Mappings.flags.COUNT });
+ { count: true });
mappings.addUserMap(context.browserModes, [ nextMap ], "customize by nextlink.js",
function(count) context.nextLink(count > 0 ? count : 1),
- { flags: Mappings.flags.COUNT });
+ { count: true });
},
};//}}}
diff --git a/takahashiPresentation.js b/takahashiPresentation.js
index e5b33eb..633f60d 100644
--- a/takahashiPresentation.js
+++ b/takahashiPresentation.js
@@ -9,7 +9,6 @@ var PLUGIN_INFO =
<maxVersion>2.0a1</maxVersion>
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/takahashiPresentation.js</updateURL>
<date>2008/12/23 09:20:07</date>
- <exampleURL></exampleURL>
<detail><![CDATA[
== COMMANDS ==
@@ -18,7 +17,6 @@ presentation:
== HOWTO ==
open HTML file includes <pre id="page">...</pre> and <div id="text">...</div>.
start :presentation.
-Example HTML http://konbu.s13.xrea.com/lib/vimperator/takahashi_example.html
]]></detail>
</VimperatorPlugin>;
//}}}
@@ -28,7 +26,7 @@ Example HTML http://konbu.s13.xrea.com/lib/vimperator/takahashi_example.html
['<Left>', 'prev page', function() prevPage()],
['^', 'first page', function() loadPage(0)],
['$', 'last page', function() loadPage(pages.length-1)],
- ['.', 'last page', function(count) loadPage(count?count-1:0), {flags: Mappings.flags.COUNT}],
+ ['.', 'last page', function(count) loadPage(count?count-1:0), {count: true],
['q', 'stop presentation', function() stop()],
];
let win;