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 =