aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/bm2menu
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/bm2menu/README21
-rw-r--r--scripts/bm2menu/bm2menu.pl58
2 files changed, 79 insertions, 0 deletions
diff --git a/scripts/bm2menu/README b/scripts/bm2menu/README
new file mode 100644
index 0000000..b44f144
--- /dev/null
+++ b/scripts/bm2menu/README
@@ -0,0 +1,21 @@
+
+bm2menu.pl
+
+ ブックマークファイル ~/.w3m/bookmark.html を変換して w3m の
+ ブックマークメニューとして使える様にする。
+
+使用法
+
+ ~/.w3m/bookmark.html を変換して ~/.w3m/menu に追加。
+
+ perl bm2menu.pl ~/.w3m/bookmark.html >> ~/.w3m/menu
+
+ 次に、~/.w3m/keymap に
+
+ keymap x MENU Bookmarks
+
+ の様にキーの割り当てを追加します。
+
+ これで、キー `x' でブックマークメニューが開きます。
+ メニューの操作は doc-jp/README.menu を読んでください。
+
diff --git a/scripts/bm2menu/bm2menu.pl b/scripts/bm2menu/bm2menu.pl
new file mode 100644
index 0000000..d89f2b5
--- /dev/null
+++ b/scripts/bm2menu/bm2menu.pl
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+
+$PRE_MENU = "";
+$POST_MENU = <<EOF;
+ nop "----------------------"
+ func "ブックマークに追加 (a)" ADD_BOOKMARK "aA"
+EOF
+# $POST_MENU = <<EOF;
+# nop "----------------------"
+# func "Add Bookmark (a)" ADD_BOOKMARK "aA"
+# EOF
+
+@section = ();
+%title = ();
+%url = ();
+while(<>) {
+ if (/<h2>(.*)<\/h2>/) {
+ $s = &unquote($1);
+ push(@section, $s);
+ } elsif (/<li><a href=\"(.*)\">(.*)<\/a>/) {
+ $u = &unquote($1);
+ $t = &unquote($2);
+ $url{$s} .= "$u\n";
+ $title{$s} .= "$t\n";
+ }
+}
+
+print "menu Bookmarks\n";
+print $PRE_MENU;
+foreach(@section) {
+ print " popup\t\"$_\"\t\"$_\"\n";
+}
+print $POST_MENU;
+print "end\n";
+
+foreach(@section) {
+ print "\n";
+ print "menu \"$_\"\n";
+ @ts = split("\n", $title{$_});
+ @us = split("\n", $url{$_});
+ while(@ts) {
+ $t = shift @ts;
+ $u = shift @us;
+ print " func\t\"$t\"\tGOTO\t\"\"\t\"$u\"\n";
+ }
+ print "end\n";
+}
+
+sub unquote {
+ local($_) = @_;
+
+ s/\&lt;/\</g;
+ s/\&gt;/\>/g;
+ s/\&nbsp;/ /g;
+ s/\&amp;/\&/g;
+
+ return $_;
+}