Skip to content
/ ottoman Public
generated from mhucka/template

Manipulate text and metadata in OmniOutliner documents

License

Notifications You must be signed in to change notification settings

mhucka/ottoman

Repository files navigation

Ottoman

Ottoman ("OmniOutliner Text TransfOrmations") is a tool to manipulate metadata and text in an OmniOutliner 5 document.

License Latest release Python

Table of contents

Introduction

OmniOutliner is an outline-oriented, structured document editor for the Mac. For fans of this type of program (and related programs such as the now-defunct NoteBook), it is an indispensable tool for writing notes, organizing information, planning, and more. People who also use other tools such as DEVONthink will naturally want to put OmniOutliner documents into their databases. However, when viewing and editing documents in applications outside the database, it can be difficult to determine where the document came from: nothing about the document itself (e.g., not the file path) directly indicates its location in the information hierarchy of the database. This quickly leads to a problem: when looking at a given document in OmniOutliner, how do you find out where you stored it in your databse?

The only practical option is to annotate your OmniOutliner documents with information relevant to how you store them in your database, so that you can find the information somewhere in the document itself. Adding such annotations manually becomes tedious and error-prone; you want automation to do this for you, but here's the rub: OmniOutliner's scripting facilities (as of version 5.8) does not provide any access to the metadata fields of a document, nor is there an easy way to perform text substitutions using placeholders in the body of a document. This frustrating situation drove the author to create Ottoman ("OmniOutliner Text TransfOrmations"), a program to manipulate metadata and text in OmniOutliner 5 documents.

Ottoman is a command-line tool that offers the ability to add or replace values in a document's metadata as well as perform placeholder text substitutions in the body of a document. Thus, you can execute command such as

ottoman --document mydoc.ooutline --metadata  comments="my comment"  project="my project"

Ottoman works by manipulating the document outside of and independently of OmniOutliner – OmniOutliner does not even have to be running. Ottoman can modify a document in-place or write it as a new document. Note that there is the potential for document corruption to occur, so take appropriate precautions and keep backups of all your files. The author assumes no responsibility for any data corruption or loss that occurs as a result of using Ottoman. Ottoman is free software and comes with no guarantees whatsoever.

Installation

Usage

Known issues and limitations

Ottoman works by performing all operations in memory. If you have an extremely large OmniOutliner document and not enough RAM in your computer, problems may arise. It is hard to quantify what "extremely large" means, but at a guess, I would say it's probably greater than 1 gigabyte. While it seems unlikely that anyone could practically work with OmniOutliner documents that large, it is also the case that Ottoman does not check for out-of-memory errors and will behave unpredicably.

Getting help

Contributing

License

This software is Copyright (C) 2020, by Michael Hucka and the California Institute of Technology (Pasadena, California, USA). This software is freely distributed under a 3-clause BSD type license. Please see the LICENSE file for more information.

Authors and history

Acknowledgments

This work is a personal project developed by the author, using computing facilities and other resources of the California Institute of Technology Library.

About

Manipulate text and metadata in OmniOutliner documents

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published