From ae8f8522c79a01d3cd0154d25fe330b2f8a14fd4 Mon Sep 17 00:00:00 2001
From: hogelog
Date: Tue, 20 Jan 2009 08:30:10 +0000
Subject: * support MICROFORMAT * enable select action when no SITEINFO
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@28707 d0d07461-0603-4401-acd4-de1884942a52
---
nextlink.js | 87 +++++++++++++++++++++++++++++++++++++++++++------------------
1 file changed, 61 insertions(+), 26 deletions(-)
(limited to 'nextlink.js')
diff --git a/nextlink.js b/nextlink.js
index b41c3a1..21e42dc 100644
--- a/nextlink.js
+++ b/nextlink.js
@@ -12,7 +12,7 @@ var PLUGIN_INFO =
AutoPagerize 用の XPath より "[[", "]]" をマッピングします。
suVene
hogelog
- 0.3.6
+ 0.3.7
MIT
1.2
2.0pre
@@ -34,9 +34,20 @@ var PLUGIN_INFO =
||<
のように設定することにより、"[[", "]]" 以外のキーに割り当てることができます。
+SITEINFOが無い場合の処理を
+>||
+ let g:nextlink_nositeinfo_act = "f"
+||<
+のように設定できます。現在は
+f:
+ Vimperatorの"[[", "]]"の動作
+e:
+ マッチするSITEINFOが無いことを知らせる(デフォルト設定)
+n:
+ 何もしない
+が設定可能です
== TODO ==
-- Autopager 利用時の MICROFORMAT の対応.
]]>
;
@@ -63,6 +74,32 @@ var nextMap = liberator.globalVariables.nextlink_nextmap || DEFAULT_NEXTMAP;
var isFollowLink = typeof liberator.globalVariables.nextlink_followlink == "undefined" ?
false : $U.eval(liberator.globalVariables.nextlink_followlink);
+
+const MICROFORMAT = {
+ url: '.*',
+ nextLink: '//a[@rel="next"] | //link[@rel="next"]',
+ insertBefore: '//*[contains(@class, "autopagerize_insert_before")]',
+ pageElement: '//*[contains(@class, "autopagerize_page_element")]',
+}
+
+const nositeinfoActions = {
+ // vimperator [[, ]] action
+ f: function(doc, count) {
+ if (count < 0) {
+ return buffer.followDocumentRelationship("previous");
+ } else {
+ return buffer.followDocumentRelationship("next");
+ }
+ },
+ e: function(doc, count) {
+ var url = doc.location.href;
+ return liberator.echo("No SITEINFO match " + url);
+ },
+ n: function() true,
+};
+var actpattern = liberator.globalVariables.nextlink_nositeinfo_act || "e";
+var nositeinfoAct = nositeinfoActions[actpattern];
+
var pageNaviCss =