I just finished up writing a bulk export script for Omnioutliner as well as put together an automated solution to make these available for view on your iPhone or any other device that currently cannot read Omnioutliner documents. I know many have long awaited being able to at least view OO documents on their iPhones/PC/etc and the following will provide an automated solution. Even when Omni comes out with an iPhone app this system will still be useful for those looking to access up to date data on PC's, android, or any computer without OO installed.
The instructions below look pretty long but the setup is really quite simple, it just looks long because I provide multiple implementation options for each main step to make this work for the most people. People may have different syncing solutions, ways they like to run their scripts, export format choices, etc and I wanted to make sure I addressed as much as I could, so don't be intimidated.
***
Part 1 The Script
Disclaimer: Always back up your data just in case.
Attached is the applescript. There are extensive directions and annotations in it to help with configuring it for your system, but the essential steps are
1) Change the two existing paths to match the directory with your outlines and the directory you want to export to (they can be the same). Depending on your sync solution you may need to export to a certain directory like your Dropbox folder (more on this later). Note: The script will search all subfolders for outlines.
2) Optional: You can change the export format by changing Both the extension of the output file as well as replacing the export type identifier after the "as" command. (thoughts on file type selection later)
There are some additional features I've added to this script.
A) Instead of exporting every file every time this script actually checks and compares the modification dates of the OO3 and exported file to see if there have actually been any new changes to the file. This is to keep the footprint light as this script is meant to be run periodically around the clock to always keep your exports up to date.
B) This design is assuming that you will not be editing your exported files (ie using them read only). There are instructions to disable this if you plan on editing your exported files but I don't recommend this as it will be very hard to keep track. Best to jot down notes somewhere else and add them to the OO files when you are back at your computer.
C) Keeps any currently open outlines open after exporting so you are not interfered with. However, if there other documents being exported they may flash quickly when the script is run. I have not figured out how to open documents via applescript without them coming to the front intially.
D) You can add names of files you don't want exported
***
Part 2 Running the script periodically
There are several ways to run the script.
The free way is to just use iCal to schedule the script to run at a set interval. I believe you can also make the script into an app and add extra code to have it run periodically. Of course, you can also just run it manually every time you want to update all your exports.
The way I do it is I use a program from the Mac App Store called Scenario. This app lets you set a script to run whenever the computer is idle or screensaver comes on. This is great because the script/exporting will only happen when you are not working guaranteeing you won't be interfered with (even though the script as written will rarely bother you). There are ways to accomplish this for free with just code so it depends if you want to do the extra effort or just buy the program.
***
Part 3 Sync/make the exported files available to your devices
The final step is to sync all your exports.
A quick note about export file format choice first: I recommend using only either HTML (Dynamic) or Microsoft Word (.docx). This is because these are the only two formats which export the entire outline contents no matter what. The others will not actually export any rows that are in a collapsed row, so unless you can remember to keep all your outlines fully expanded at all times I would stick withe HTML Dynamic or Word. HTML Dynamic is really the best of all because it both preserves indentation and you can actually collapse rows dynamically. The only downside is it's a bit trickier to sync because I found they don't work as well with Dropbox and Google Drive for some reason.
The most obvious way is just to put the exported files in the folder of an automatic syncing solution like Dropbox or Google Drive and access them through their iPhone apps or publicly share the folder. You will want to use Word as your export format if you go this route, and this is perfectly fine for shorter outlines. If any of you can get HTML Dynamic working in these or other sync services let me know (this, and viewing other file types in general, would be a great feature for OmniPresence to implement, *hint* *hint*)
For the ultimate experience you'll want to export to HTML Dynamic and make them available to your other devices. What I do is put the files up on a directory on my web hosting. I set up an FTP watch folder with my FTP client that automatically syncs any new/changed files to my host (I use YummyFTP because it's rock solid reliable but I think free clients like Cyberduck have this, too). I can password protect directories on my host so this works really well for me. The FTP watch folder is actually located in my Google Drive so I still do have offline access to the raw html in case I really need it but can't view it through my browser.
***
So that should give you everything you need to make all your omni notes/data available and up to date anywhere and on any platform.
I think in this day and age of fully synced Google Docs, Evernote, Office Online, etc, it is crucially important for a software/format like OmniOutliner at make its data portable, at least viewable/read only. I'm hoping Omni can bake all this into their existing products so an external solution isn't even necessary, they really have most of the pieces in hand.
This is my first applescript so let me know if you see anything that can be done better. One thing I couldn't figure out is how to preserve the folder structure in the export folder to keep the same organization your outline were in.
The instructions below look pretty long but the setup is really quite simple, it just looks long because I provide multiple implementation options for each main step to make this work for the most people. People may have different syncing solutions, ways they like to run their scripts, export format choices, etc and I wanted to make sure I addressed as much as I could, so don't be intimidated.
***
Part 1 The Script
Disclaimer: Always back up your data just in case.
Attached is the applescript. There are extensive directions and annotations in it to help with configuring it for your system, but the essential steps are
1) Change the two existing paths to match the directory with your outlines and the directory you want to export to (they can be the same). Depending on your sync solution you may need to export to a certain directory like your Dropbox folder (more on this later). Note: The script will search all subfolders for outlines.
2) Optional: You can change the export format by changing Both the extension of the output file as well as replacing the export type identifier after the "as" command. (thoughts on file type selection later)
There are some additional features I've added to this script.
A) Instead of exporting every file every time this script actually checks and compares the modification dates of the OO3 and exported file to see if there have actually been any new changes to the file. This is to keep the footprint light as this script is meant to be run periodically around the clock to always keep your exports up to date.
B) This design is assuming that you will not be editing your exported files (ie using them read only). There are instructions to disable this if you plan on editing your exported files but I don't recommend this as it will be very hard to keep track. Best to jot down notes somewhere else and add them to the OO files when you are back at your computer.
C) Keeps any currently open outlines open after exporting so you are not interfered with. However, if there other documents being exported they may flash quickly when the script is run. I have not figured out how to open documents via applescript without them coming to the front intially.
D) You can add names of files you don't want exported
***
Part 2 Running the script periodically
There are several ways to run the script.
The free way is to just use iCal to schedule the script to run at a set interval. I believe you can also make the script into an app and add extra code to have it run periodically. Of course, you can also just run it manually every time you want to update all your exports.
The way I do it is I use a program from the Mac App Store called Scenario. This app lets you set a script to run whenever the computer is idle or screensaver comes on. This is great because the script/exporting will only happen when you are not working guaranteeing you won't be interfered with (even though the script as written will rarely bother you). There are ways to accomplish this for free with just code so it depends if you want to do the extra effort or just buy the program.
***
Part 3 Sync/make the exported files available to your devices
The final step is to sync all your exports.
A quick note about export file format choice first: I recommend using only either HTML (Dynamic) or Microsoft Word (.docx). This is because these are the only two formats which export the entire outline contents no matter what. The others will not actually export any rows that are in a collapsed row, so unless you can remember to keep all your outlines fully expanded at all times I would stick withe HTML Dynamic or Word. HTML Dynamic is really the best of all because it both preserves indentation and you can actually collapse rows dynamically. The only downside is it's a bit trickier to sync because I found they don't work as well with Dropbox and Google Drive for some reason.
The most obvious way is just to put the exported files in the folder of an automatic syncing solution like Dropbox or Google Drive and access them through their iPhone apps or publicly share the folder. You will want to use Word as your export format if you go this route, and this is perfectly fine for shorter outlines. If any of you can get HTML Dynamic working in these or other sync services let me know (this, and viewing other file types in general, would be a great feature for OmniPresence to implement, *hint* *hint*)
For the ultimate experience you'll want to export to HTML Dynamic and make them available to your other devices. What I do is put the files up on a directory on my web hosting. I set up an FTP watch folder with my FTP client that automatically syncs any new/changed files to my host (I use YummyFTP because it's rock solid reliable but I think free clients like Cyberduck have this, too). I can password protect directories on my host so this works really well for me. The FTP watch folder is actually located in my Google Drive so I still do have offline access to the raw html in case I really need it but can't view it through my browser.
***
So that should give you everything you need to make all your omni notes/data available and up to date anywhere and on any platform.
I think in this day and age of fully synced Google Docs, Evernote, Office Online, etc, it is crucially important for a software/format like OmniOutliner at make its data portable, at least viewable/read only. I'm hoping Omni can bake all this into their existing products so an external solution isn't even necessary, they really have most of the pieces in hand.
This is my first applescript so let me know if you see anything that can be done better. One thing I couldn't figure out is how to preserve the folder structure in the export folder to keep the same organization your outline were in.
Last edited by random1destiny; 2014-03-26 at 09:06 PM..