Netscape::Bookmarks - parse, manipulate, or create Netscape Bookmarks files |
Netscape::Bookmarks - parse, manipulate, or create Netscape Bookmarks files
use Netscape::Bookmarks;
# parse an existing file my $bookmarks = Netscape::Bookmarks->new( $bookmarks_file );
# -- OR -- # start a new Bookmarks structure my $bookmarks = Netscape::Bookmarks->new;
# print a Netscape compatible file print $bookmarks->as_string;
[ Note: I wrote this a long time ago. Although this should still work with ``Netscape'' browsers, Mozilla browsers do the same thing. When the docs say ``Netscape'', I mean either branch of browsers. ]
The Netscape bookmarks file has several basic components:
title folders (henceforth called categories) links aliases separators
On disk, Netscape browsers store this information in HTML. In the browser, it is displayed under the ``Bookmarks'' menu. The data can be manipulated through the browser interface.
This module allows one to manipulate the bookmarks file programmatically. One can parse an existing bookmarks file, manipulate the information, and write it as a bookmarks file again. Furthermore, one can skip the parsing step to create a new bookmarks file and write it in the proper format to be used by a Netscape browser.
The Bookmarks module simply parses the bookmarks file passed to it as the only argument to the constructor:
my $bookmarks = Netscape::Bookmarks->new( $bookmarks_file );
The returned object is a Netscape::Bookmarks::Category
object, since
the bookmark file is simply a collection of categories that
contain any of the components listed above. The top level
(i.e. root) category is treated specially and defines the
title of the bookmarks file.
HTML::Parser
is used behind the scenes to build the data structure (a
simple list of lists (of lists ...)). Netscape::Bookmarks::Category
,
Netscape::Bookmarks::Link
, Netscape::Bookmarks::Alias
, or
Netscape::Bookmarks::Separator
objects can be stored in a
Netscape::Bookmarks::Category
object. Netscape::Bookmarks::Alias
objects are treated as references to Netscape::Bookmarks::Link
objects, so changes to one affect the other.
Methods for manipulating this object are in the
Netscape::Bookmarks::Category
module. Methods for dealing with the
objects contained in a Netscape::Bookmarks::Category
object are in
their appropriate modules.
new
an argument, an empty
Netscape::Bookmarks::Category
object is returned so that
you can start to build up your new Bookmarks file. If the file
that you name does not exist, undef
is returned in scalar
context and an empty list is returned in list context. If the
file does exist it is parsed with HTML::Parser
with the
internal parser subclass defined in the same package as new
.
If the parsing finishes without error a Netscape::Bookmarks::Category
object is returned.
This source is part of a SourceForge project which always has the latest sources in CVS, as well as all of the previous releases.
http://sourceforge.net/projects/nsbookmarks/
If, for some reason, I disappear from the world, one of the other members of the project can shepherd this module appropriately.
brian d foy, <bdfoy@cpan.org>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
the HTML::Parser manpage, the Netscape::Bookmarks::Category manpage, the Netscape::Bookmarks::Link manpage, the Netscape::Bookmarks::Alias manpage, the Netscape::Bookmarks::Separator manpage.
Netscape::Bookmarks - parse, manipulate, or create Netscape Bookmarks files |