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 $_; +} | 
