I wrote a new php class that exports my firefox sqlite favorites database to a set of url files.
Which works great. The handy thing is that I now can version this set of url files (using subversion, git and / or clearcase) and also export out of chrome (using sync.sqlite3) and internet explorer to the same directory. I can also manually drag and drop stuff and, if the version system does its work they all should in sync (e.g. clearcase keeps track of moved files AND directories since each element gets a unique id just as in git where a file gets a unique hash).
So you see the list of folders:
and inside each folder the list of bookmark URL files:
and inside each of the URL files:
For the favicons I decided to not put them in the main structure but in a favicon folder (yeah I really like pharaos)
I can now just doubleclick such an icon and it opens in my browser, so it works pretty much as if I would open my bookmark folder with the difference that I can use total commander to manage them and that my browser does not carry around tens of megabytes of urls in its database I can now manage my urls offline and independent of browser and well… carry them around.
I think i will make one main dir "home" and one main dir "work" for starters a directory per contact is the next step.
I have some TODO points on my list though which I should add:
a. The dividers could be easily also created (using — , —-, —–, —— ) but the problem is what happens when I re-run the export. In this case I should check if it exists and if it exists it will do nothing. not nice. I could also check for the firefox database id but that would make it rely too much on Firefox. I have to think about this I think I will delete all dividers IF the directory is encountered and then recreate them with the logic that if a source has the same directory name it probably knows about those dividers too. (to bad there is no divider support in native Windows Explorer).
b. I need to add export functionality as well to a variety of export sources e.g. a firefox html page that I can export in a clean firefox
c. the physical storage has some dependencies e.g. when i delete a bookmark also its favicon should be cleared
d. i would like more representations of the data on there just physical on the disk e.g. com.google. so in the directory com i want all com domains i bookmarked
e. i also want a representation per tag so i can compare if the way i stored them is in line with the way everyone stores them this probably means i will have to query e.g. delicious, stumbleupon, alexa, dmoz and zillions of other tag bookmark systems for the most used tags (AND related tags) and check if they way "they" propose it is in line with how i would want it.
That point brings up a million thoughts: why not just download all urls out there already nicely stored… and as soon as I tag it, it will just become highlighted in the millions of urls…. a gazillion things i could do here. but i don’t have the time
I was also thinking: why not only tags but check out other taxonomies as well… something todo in the future.
f. i also want to add some additional tooling like ‘check for duplicates’ and/or ‘top tags’ (to see what i find interesting)
g. i also need to add more import sources also e.g. a sql dump from my weblog and auto-get all urls that i ever put in there.
h. when all of that is finished i want to wrap it in a nicer webshell with multiple representations and tools.
i. there is a workflow to follow ofcourse, after exporting preferably all urls are cleared from the bookmarks and in the next run only the "\todo" folder in the bookmarks should be exported or something like that.
j. what i would really like is a sidebar in firefox that is actually a view on my directory of URL files… but what i can do anyway is drag the folders containing the url files in the firefox bookmark bar so that i can still easily "click"
h. directories also contain descriptions. I will probably add an descript.ion file in the folder itself.
p.s. no i dont follow the complete offical URL file standard