Document Structure in Bookdog
Bookdog does not have its own permanent storage place for your bookmarks [1]. When you click in Bookdog's File menu Open, Save or Revert, Bookdog operates on the actual files used by the browser or server [1], as though they were its own documents, although it implements some interlocks to avoid data loss in the event of conflicts. It calls these bookmarks documents.
To make this work, the special properties added by Bookdog, such as which folders you want ordered, etc., are stored separately in your Bookdog's document preferences, and, behind the scenes, item preferences. Bookdog associates these preferences with the bookmarks document when needed. Bookdog also has migration documents, which are real, albeit lightweight documents owned by Bookdog. Migration documents simply configure migrations between two bookmarks documents.
Evaluation of Bookdog's Document Structure
Bookdog's bookmarks documents are wysiwyg to an extreme; what you see is EXACTLY what you GOT. Users have grasped this easily; the only problem is that some would like it to be even more extreme, in that they are surprised they need to Save this document before the browser or service sees it. However the structure has some other, more serious drawbacks.
- The document preferences and item preferences are not a natural part of the Macintosh paradigm and therefore require a rather odd-looking list of documents in most of Bookdog's Preference tabs, and some stunts under the hood to make them work.
- Modelling simple migrations or synchronization tasks as stand-alone migration documents is handy to provide Applescriptability and thus scheduling capability to these tasks. However, people expect a Macintosh document file to have some substantial content.
- In order for Bookdog to be able to open standalone documents for advanced users, it must tell the system that it can potentially handle a wide range of document types, including .plist, .html and Opera bookmarks documents which have no .extension. In fact, it can handle only the tiny subclasses of these which are bookmarks. This has caused confusion when users without a plist editor installed click on, for example, a non-bookmarks .plist file and are told that Bookdog cannot open it.
- It does not easily lend itself to support an all-browsers bookmarks menulet such as is provided by URL Manager Pro.
- Standalone or backup files, not identified with a particular browser or service, have to be identified with a sequence number so that their document preferences can be tracked.
- Making File > Open and File > Save access data from other than a single file required writing lots of extra code to override Cocoa's standard behavior. Extra code means more maintenance and difficulty in adding new features.
Introducing a Single Document Type: The Bookmarks Book
The new application addresses these drawbacks with single unified bookmarks book which is now a real document, owned by the new application. So, obviously, this document now contains its own document preferences. Further, it also contains copies of your bookmarks (the Content), so that the item preferences are also contained naturally. Users of URL Manager Pro are now beginning to feel at home. It goes further, though. To use such a document for managing bookmarks in browsers and services, like Bookdog did, we import and export or sync bookmarks in and out, using new Sync In and Sync Out commands. A bookmarks book is configured to remember a list of Sync In and Sync Out browsers and services with which the synchronizations occur, and for each synchronization, and adjustments or translations required to match the browser/service feature sets. The On Open preference tab has added to it a setting to Perform Sync In whenever this document is opened and the On Save tab a similar Perform Sync Out whenever this document is saved. These boxes are checked on by default. Note that, because there may be more than one browser/service in the Sync-in and Sync-out instructions, the new bookmarks book has the capability to synchronize or migrate between browsers and services, so indeed the old migration document is no longer needed.
Usage Case 1: The typical Single-Web-Browser Users
Users that use only a single web browser such as Safari will work with only one bookmarks book. The Sync In will read from Safari only and the Sync Out will write to Safari only. If further the Open/Save preferences are configured to Sync In just after opening and Sync Out just before closing a document, this bookmarks book will behave in the same way that, for example, the Safari ◇ Bookdog document does. A wizard will silently this bookmarks book based on imported Bookdog preferences when Bookdog users first run the new application.
Usage Case 2: The typical Multiple-Web-Browser or URL Manager Pro refugee
Users of multiple web browsers and/or services who wish to have the same bookmarks in all of them, such as refugees from URL Manager Pro, will also work with one bookmarks book, but it will be set to Sync In from and Sync Out to their desired set of web browsers and/or services. For Bookdog users, it will no longer be necessary to chain three migrations together (A↔B, B↔C, C↔A) in order to synchronize three browsers A, B and C; nor will it be necessary to delete an item in all three different browser/services in order to get rid of it. For URL Manager Pro users who like the menulet (technically called a "status item" by Apple), this feature is planned to be added in a subsequent release.
Document File Location
By default, the user's first/only bookmarks book will be stored out of sight, in the user's Application Support folder, but more advanced users may create additional bookmarks books for special purposes.
Jerry Krinock