[1] NN の bookmark (栞) のデータ形式としては、 大昔から HTMLに似たマーク付け言語が使われています。 巷の WWWブラウザで表示させるとそれなりに整形して表示され、 栞を挟んだ先へのリンクも機能するようになっています。
Netscape 0.9 で既にこの形式が使われていますが、 もしかすると Mosaic でも使われてたんでしょうか?
[6] >>1 でも一般的な mosaic は mosaic.ini とかに書いてたと思われ。
本項は歴史的事項を説明しています。本項の内容の一部または全部は、現在の状況とは異なるかもしれません。
(なお本項の内容の一部または全部は、互換性または歴史的連続性のために現在も有効な場合もあります。しかし新たに利用することは避けるべきです。)
[4] W3C HTML にないもの、非互換な物は「*」をつけてます。
<HTML>
[MacIE4]DOCTYPE
* (文書型宣言) [M0.9] [NN4] [Moz] [iCab] [N::B]
Fx1Mosaic-Communications-Bookmark-file-1
[M0.9]NETSCAPE-Bookmark-file-1
[NN4] [MacIE4] [MOZ]<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!Created by Microsoft Internet Explorer 4.0 >
* [MacIE4]<!-- This is an automatically generated file. It will be read and overwritten. Do Not Edit! -->
<!-- This is an automatically generated file. It will be read and overwritten. DO NOT EDIT! -->
Netscape::Bookmark
では英語。 [Moz] [N::B]
Fx1head
要素や body
要素は存在するのか不明 (少なくてもタグは存在しない)。meta
[MacIE4] [MOZ] [iCab]
http-equiv
="Content-Type"
content
="text/html; charset=charset"
text/html
と名乗っているし、 MacIE 4.0 は最初に <HTML>
と書くことからも、この栞形式は HTML の一種 (と主張されている) と言える。bookmarks.html
だし。<!-- Do not edit this file. -->
[iCab]title
[NN 4] [MacIE4] [N::B]Bookmarks for 利用者名
[NN4]利用者名のフ゛ックマーク
(もしかしたら Un|x 版ではフ゛
ではなくブ
かもしれない。未確認。 Windows 版では JISX0201 の片仮名。) [NN 2〜4]Bookmarks
[Moz]
Fx1Favorites
[MacIE4]iCab Hotlist
[iCab]h1
[NN4] [MacIE4] [Moz] [iCab] [N::B]
Fx1title
要素と同じ。last_modified
= 修正時刻 (Unix時刻)
Fx1substatus_pos
= "626,230" [MacIE4]window_position
= "300,48" [MacIE4]window_open
= "TRUE" [MacIE4]window_size
= "580,710" [MacIE4]<H1 LAST_MODIFIED="1149843381">Bookmarks</H1>
<DD>
* [N::B]
(Netscape::Bookmark
の不具合?)<DL><p> <DT><H3 ID="rdf:#$CPOcB3">Bookmarks Toolbar Folder</H3> <DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar ... </DL><p>
dt
(「フォルダ」) [NN4] [MacIE4] [Moz] [iCab] [N::B]h3
[NN4] [MacIE4] [Moz] [iCab] [N::B]h3
が使われる。object_type
= "LINK" [MacIE4]folded
(論理値) [NN4] [MacIE4] [iCab] [N::B]sort_order
= 1*DIGIT
(零以上) [MacIE4]menuheader=menuheader
="true"
Fx1<DT><H3 LAST_MODIFIED="1146440578" PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$St gZz3">個人用ツールバーフォルダ</H3>
<DT><A HREF="find:datasource=rdf:bookmarks&match=http://home.netscape.com/NC-rdf#URL&method=contains&text=.org" ID="rdf:#$1ROcB3">Bookmark URLs containing &#39;.org&#39;</A>
dd
[N::B]
Fx1dl
(入れ子構造) [NN4] [Moz] [MacIE4] [iCab] [N::B]
Fx1p
* [NN4] [MacIE4] [Moz] [N::B]
Fx1dl
が何の子要素なのかはっきりしません。 HTML の歴史を鑑みれば <!ELEMENT dl
- - (p
-- = EMPTY --, dt
-- = EMPTY --, #PCDATA, (dd
-- = EMPTY --, #PCDATA)?, dl
, p
)>
という気持ちなのかもしれませんが、現代的には
<!ELEMENT dl
- - (p
-- (- o) --, dt
-- (- o) --, dd
? -- (- o) --, dl
-- (- -) --, p
)>
くらいに考えておくのが適当でしょう。dt
(項目) [NN4] [MacIE4] [Moz] [iCab] [N::B]
Fx1a
[NN4] [MacIE4] [Moz] [iCab] [N::B]
Fx1add_date
* [NN4] [MacIE4] [Moz] [N::B]
Fx1custom_address
*= "" [MacIE4]domain
* = "" [MacIE4]object_type
* = "LINK"
[MacIE4]sort_order
*subscribe
* (論理値) [MacIE4] [iCab]message
* = "The site has changed."
/ "There were no changes."
[MacIE4]checksum
= ["-"] 1*DIGIT
[MacIE4]aliasid=1*DIGIT
* [Moz] [N::B]id
Fx1intervalunit
= "3" [MacIE4]intervaltime
= 1*DIGIT
[MacIE4]last_modified
* [NN4] [MacIE4] [iCab]
Fx1last_modified_changed
(論理値) [MacIE4] [iCab]lastupdate
* = Un|x 時刻 [MacIE4] [iCab]nextupdate
* = Un|x 時刻 [MacIE4]sound_name
* = "ChuToy" [MacIE4]subscribe_failed
* (論理値) [MacIE4]update
* = Un|x 時刻 [iCab]use_custom_address
* = "TRUE"
/ "FALSE"
[MacIE4]user
* = "" [MacIE4]visitation_count
= 1*DIGIT
[MacIE4]<DT><A HREF="http://texturizer.net/firefox/" ID="rdf:#$DPOcB3">Firefox Help</A> <DD>David Tenser&#39;s Firefox help site
<DT><A HREF="http://getfirefox.jp/" ICON="data:image/png;base64,iVBORw0KGg oAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRv YmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfy D/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNn PgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27Cj ADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3 TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8 vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg 4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxq UZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAM J5THwGvJLAAAAABJRU5ErkJggg==" LAST_CHARSET="ISO-8859-1" ID="rdf:#$xYgZz3">Firefox 製品ページ</A>
dd
: たまに開始タグ (と内容) だけがある。
Fx1br
要素型が使用可能。P
[NN4] [N::B]DL
要素 (の終了タグ)
の後に必ず来る要素。p
(とその後の空白) で、
文書全体が終了。他の要素はタグなし。<!-- iCab, 1999 -->
[iCab]&
は &
のまま出力される [MacIE4] [iCab] [N::B]。[8] W3C HTML から推測して「フォルダ」の内容を表す DL
要素は直前の「フォルダ」の名前を表す DT
要素の内容の一部としましたが、出力されている字下げを考慮すると、
DL
は DT
の弟要素と考えた方が正しいのかもしれません。
要素型・属性名は、出力されるものでは一般に全て大文字で、
p
要素だけなぜか小文字になっています。
[5] 文書の charset は、 Classic Mozilla ではその環境の標準の文字コード, Mozilla では UTF-8 を使うようです。
[9] iCab は意味のない p
タグを全然吐きません。それに比較的綺麗なソースです。
(それでも &
を escape してないのは同じ。もっとも、 SGML 的に必ずしも間違いではないが。。。)
Netscape::Bookmark
[12] [NN4], [MacIE4], [iCab] についての情報は [N::B] 付属の例文を元にしました。
Classic/Gecko Mozilla についてはちゃんと調べてないので完全な情報ではありません。
[7] IW:CPAN:"Netscape::Bookmark" という Perl モジュールがあります。 Netscape bookmark 形式の栞文書を取扱うことができます。
[13] 影鷹も栞に Netscape Bookmarks 形式を使っています。
[11] Netscape Bookmark File Format (Internet Explorer) ( 版) https://msdn.microsoft.com/en-us/library/aa753582(v=vs.85).aspx
上記サービス以外にも、以下のデータ形式に対応しています。対応するデータ形式のファイルをインポートしても、正常にデータが引き継がれない場合もありますので、ご了承くださいませ。
Netscape Bookmark File Format
Firefox bookmarks originally used the HTML-based Netscape bookmarks format, as did the Mozilla/Seamonkey Suite. However, as of Firefox 3.0, a new format was used based on SQLite with write-ahead logging. The bookmarks are also regularly automatically backed up in the JSON format.
この記事では、Netscape のブックマーク形式 である HTML ブックマークファイルをインポートする 方法について説明します。
[24] Import Bookmarks from an HTML file | Firefox Help, https://support.mozilla.org/en-US/kb/import-bookmarks-html-file
ブックマーク形式(NETSCAPE-Bookmark-file-1)のHTMLファイルからインポートします。
画面上のブックマークデータを、HTMLブックマーク形式(NETSCAPE-Bookmark-file-1)でダウンロードできます。(未保存のデータも含みます)
Netscape Bookmark File Formatに準拠したファイルからブックマークをインポートできます。(ほとんどのブラウザでエクスポートを選択するとこのフォーマットのファイルが出力されます。)
WebHubはファイル先頭が <!DOCTYPE NETSCAPE-Bookmark-file-1> で始るファイルをNetscape Bookmark File Formatと認識します。
[19] Perl Module: Netscape::Bookmarks ( 版) http://nsbookmarks.sourceforge.net/
Netscape 4/6のブックマークファイルの形式
ブックマークファイルの文字コード体系とエンコーディングはNetscape 4ではプラットフォームで使われている文字コード体系とエンコーディングになっている。
ブックマークファイルはHTMLファイルで次の形式になっている。
---
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
charsetの情報はNetscape 6のみ。
<TITLE>任意の文字列</TITLE>
<H1>任意の文字列</H1>
<DL><p>
サイト情報もしくはフォルダ情報が入る。
区切りとして<hr>エレメントが使える。
</DL><p>
---
サイト情報
<DT>エレメントにリンク先の情報。テキストはリンク先のタイトル名、<A>エレメントにリンク先URL等の情報
<DD>アトリビュートは説明
フォルダ情報
<H3 ADD_DATE="1004884392">エレメントはフォルダ、各属性はフォルダの情報
<DL><p>
フォルダの内容
</DL><p>
フォルダの内容にはサイトもしくはフォルダの情報が入る。
<H3><A>エレメントの情報
HREF:リンク先
ADD_DATE:追加したとき
LAST_VISIT:最後に来たとき
LAST_MODIFIED:最終変更日時(Netscape 4ではブックマークのページの変更を確認した日時(ただし、404 Not Foundに変更になった場合は除く) Netscape 6/Mozillaではブックマークの内容を変更した日時)
ID:(Mozilla 1.4以降) 内部でのブックマーク識別用ID。これが別なブックマークと同一の場合、FEEDURLの情報が別のブックマークと同じになる。
SHORTCUTURL:(NS6)キーワード こいつをアドレス表示部に打ち込むとキーワードが示す
サイトに飛べる。Opera 6のショートカットと同じ。
SCHEDULE="0123456|0-1|60|icon,sound,alert,open" (NS6)チェックする日|チェックする時間帯|チェックする間隔(分)|更新時のアクション
LAST_PING:最後に更新確認を行った日(NS6)
Netscape 4,6のブックマークの日時の表現
※時間の単位はtime_t
不明のときは0
Netscape 6の「IEのお気に入り」はbookmarks.html上に存在しない場合、起動時にブックマークのルートに自動生成される。(Netscape 6のみ?6.1以降は起動時に1回生成するだけ?)
<!--
DTD of NETSCAPE-Bookmark-file-1
Netscape Navigator 4.04 / Bookmark Converter 7.60 / IE Favorites Collector 2.03で確認。
1998.04.18作成
1998.05.05 alias関係を追加。
-->
<!ENTITY quot CDATA """ -- quotation mark -->
<!ENTITY amp CDATA "&" -- ampersand, U+0026 ISOnum -->
<!ENTITY lt CDATA "<" -- less-than sign, U+003C ISOnum -->
<!ENTITY gt CDATA ">" -- greater-than sign, U+003E ISOnum -->
<!entity % inline "#PCDATA" >
<!--=============================================================-->
<!element netscape-bookmark-file-1 o o (title, h1, dd?, dl, p) >
<!element title - - (%inline;)* >
<!element h1 - - (%inline;)* >
<!element dd - o (%inline;)* >
<!element dl - - (p, dt*) >
<!element dt - o ( (h3, dd?, dl, p) | (a, dd?) ) >
<!element a - - (%inline;)* >
<!attlist a
href CDATA #REQUIRED
add-date NUMBER #IMPLIED
last-visit NUMBER #IMPLIED
last-modified NUMBER #IMPLIED
ALIASOF NUMBER #IMPLIED
ALIASID NUMBER #IMPLIED
>
<!element p - o EMPTY >
<!element h3 - - (%inline;)* >
<!attlist h3
attr (folded) #IMPLIED
add-date NUMBER #IMPLIED
>
netscape-bookmark-file-1
NETSCAPE-Bookmark-file-1
が文書型名として使われている。html
.html
が使われる。