diff options
Diffstat (limited to 'scripts/bm2menu')
-rw-r--r-- | scripts/bm2menu/README | 21 | ||||
-rw-r--r-- | scripts/bm2menu/bm2menu.pl | 58 |
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/\</\</g; + s/\>/\>/g; + s/\ / /g; + s/\&/\&/g; + + return $_; +} |