diff options
Diffstat (limited to '')
| -rw-r--r-- | scripts/bm2menu.pl | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/scripts/bm2menu.pl b/scripts/bm2menu.pl new file mode 100644 index 0000000..1390bae --- /dev/null +++ b/scripts/bm2menu.pl @@ -0,0 +1,54 @@ +#!/usr/bin/perl + +$PRE_MENU = ""; +$POST_MENU = <<EOF; + nop	"───────────" + func	"ブックマークに追加 (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 $_; +} | 
