Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fixing screwed up (recursively reversed) netscape 4.x bookmarks.html

5 views
Skip to first unread message

Ishikawa

unread,
Sep 15, 2002, 2:03:41 AM9/15/02
to

netscape 4.80 (linux) が
ある順番で bookmarks.html の中の
URLを並び替えてしまって、もとにもどらなくなった
ときに、それを修正する awk スクリプトを書いてみました。

http://www.yk.rim.or.jp/~ishikawa/reverse-all.awk

同じようなトラブルにいたった場合に
何か役に立つかもしれません。ご参考まで。

スクリプトの最初のコメントを引用します。

#
# awk -f reverse-all.awk ひっくりかえったブックマーク (bookmarks.html)
#
# 背景:
#
# netscape 4.80 under linux.
#
# ある日、bookmarks の編集画面で、表示順番を変更する機能を
# 試していたら、突然ハング。数十秒してもなにもおこらない。
# プロセスを kill して、リスタートをして、次にbookmark を
# 開いてびっくり。セーブしたつもりなど全く無いのに、いつの
# まにか bookmark の表示順番が狂っている。
# 表示だけでなくて、中身がそう変更されていることも確認。
#
# 結構、bookmarks のエントリは苦労してならべておいたので困った。
# よく使うものを先頭にならべておいたのに、変更されてしまったので、
# これが最後にでてくるようになってしまった。
#
# なんとかならないかと、こりずにいろいろまた表示順番をかえてみたら、
# 一度日付とかロケーションのソート順を指定してから、次にそれをはずして
# 表示した場合に、ハング以前の順番のちょうど逆になっているようである。
# すなわち、よーく見てみると、以前と 最初から終りまでのフォルダーの順番

# 逆になっているようである。
# (なんで???)
# これをもとの順に戻せれば問題ないのだが、bookmarkの
# 編集では、どうやってもできないようだ。
#

# bookmarks.html の中をみてみたら、さいわい、HTML の解析をしなくても、
# 各行の最初の数文字をみるだけでどんな内容の行か判明して、しかも行にま
# たがって、ひとつのURL についての
# 情報が格納されることはないようである。(すくなくとも私の手元の
# bookmarks.html では、そうなっている。)


# でURLの並び替えをするプログラムを書いてみた。


# 問題となった、「逆」の順番であるが、
# 正確にいうと単純な逆順ではなく、再帰的に、
# フォルダーの中のエントリの順番が逆になっている。
# つまりフォルダーノードの下のエントリの順番が逆になっているとして
# lisp 風に例をあげると:
# (e1 e2 e3 e4) --> (e4 e3 e2 e1)
# ここでさらに
# e1, e2, e3, .. がまたフォルダーならば、またその下のエントリの順番も
# 再帰的に逆になっている。
# (つまり一次元に flat な リストの reverse ではないところが面倒。)
#
# と、すこし見たときには思えたのだが、
# netscape がどういうアルゴリズムで bookmarks.html の
# 並べ替えをしたのか、定かでないので 試行錯誤必要かも。。。
# --->
# やっぱり試行錯誤が必要で、
# 最初に試みた reversecopy()では、サブフォルダー(ツリー)の見出しに
# あたるものが その中身の表示の「後」に表示されることがわかった。
#
# すなわち、bookmarks の中では、次のような構成になっていることが
# わかった。
# <DT> <Hnn ADD_DATE="...">次のサブツリーのタイトル情報</Hnn>
# <DL><p>
# <DT> .... <--- ここが次のサブツリーの最初のノード
#
#
# なので、この見出しがちゃんとまえにくるように処理した。
# これで、とりあえず望むものになった。
#
# awk -f このスクリプト bookmarks.html > /tmp/b.html
#
# とりあえず 私のブックマークはもとに戻ったようである。
#
# (netscape 4.7x-4.80 なんぞ使っているからという声もありそうだが、
# mozilla 1.1 以降も使っている一方で、種々の事情で netscape 4.7x-4.80

# 常用しているのが現状。)

# 最後にバックアップをとってから百とはいわないが、それに近い数十のURLが
エントリ
# が追加されていたのも、バックアップを使わなかった理由だが、
# たかだか百くらいだったら、バックアップテープから戻して、追加された
# 分だけ cut & paste して修正すれば、そっちの方が早かったか :-)
#
# 手軽に awk で 処理が可能なことがわかったのが収穫。

Ishikawa

unread,
Sep 15, 2002, 2:13:10 AM9/15/02
to
0 new messages