importing opml files

Hi. I have many files in OmniOutliner to import. So I first export them as opml. Then, when I import into scrivener, instead of ending up with a single document, I end up with a series of imported documents, with each of the outline headings in the opml document appearing as a separate document in scrivener. So how do I get the OmniOutliner document to import as a single document? Thanks in advance!
(Maybe I should also mention that those new separate documents don’t appear properly in the edit window. They’re readable only in the single line header bar, so I can only read a single line at a time.)

OPML import in Scrivener reproduces the hierarchical structure of your outline as a hierarchical structure of documents in the Binder. The textual content of each point of your outline is used as the title of the corresponding doc in Scriv. (That is why you are not seeing the textual content in the editor pane, but only in the title field.)

So, basically, Scriv’s OPML import function was built with a different idea of the role an outline might be playing – thinking of it as a specification of a sketched-out document structure, rather than as itself the (structured) development of document contents.

If your outline is structured content you wish to see in one doc in Scriv, the easiest thing to do is export your outline as tab-indented text and drop the resulting text file into Scriv’s Binder. Your structure will still be visible via tab-indent (though text wrap-around will somewhat obscure the view).*

You might want to search the forums for discussions of outlines and OPML. A lot has been said!


P.S. I myself have advocated for a simple tab-indented outline import function which would be savvy enough to import some portions of outlines as Binder structure and some as structured content. Totally doable! I wrote an script to prove it – leveraging Scriv’s nice existing multimarkdown import function to do it.

  • Another option would be to use Word to transform your opml into a Word outline. Assuming you have paragrapgh inset styling set on Word’s Heading styles, you can then just copy and paste the resulting outline text into Scriv and your paragraph insets will be preserved. I once posted to this forum a Word macro set for converting outlines to/from various forms – in case of interest.

Thanks for the quick response, Greg! I’m just getting started with Scrivener, but I can see that I just might fall in love with this program.

Here’s a related question. I’m discovering that another solution to this problem, is to simply import the OmniOutliner document into Scrivener as is. Then, when I need to reference it in the edit window, I can simulate the split screen effect by opening the OO doc in its native application, and position it at the bottom of the screen, while simultaneously viewing my draft in the top part.

What’s annoying, though, is that when Scrivener imports the OO doc, it changes its name. Instead of the useful title it originally had, Scrivener assigns it a 3-digit number. So when I look at OO’s top menu to see which OO docs are open, all I see are numbers, instead of the descriptive names I need. This makes it confusing to navigate among the open OO docs. Is there any way to stop Scrivener from assigning its own numerical designation to the document?

If it’s contained within the project, no. Those numbers are how Scrivener manages the master Binder file.


Thanks, Katherine! Is there any way to import it without it being “contained within project”?

Whoa there! Are you saying you are editing the files within the Scrivener project outside of Scrivener? If so you should not, that is really bad practice and is likely to mess things up. By all means edit the File > Compile version of the project as much as you like but don’t go poking around in the internals of the project.

The original names will be shown in the Binder entry for the file(s).

Reepicheep, brucesiegel was not talking about going at the internal files the (hacky) way you are thinking.

He was talking about importing OO files directly into Scriv – using Scriv’s ability to house any sort of file. As you know, opening a housed file that is in a format Scriv does not know opens the file externally.

The OP was bemoaning the fact that the file when it opens in OO shows not its binder title in the document bar, but its internal numerical name.


You can store material in the binder without importing it into the project. For some types of files you can use the File/Import/Research Files as Aliases… convenience command, but for most types of files (like .oo3 files) you need to just make the alias yourself in Finder and then drop the alias into the binder (note it works better if you remove Apple’s “alias” tacked on to the end of the name it creates, the file should end in .oo3 so as to not confuse Scrivener). Now you have a link that works in every respect the same as an embedded document, save it refers to the original on your disk—and thus uses its original file name.

Be aware, though, that if you use aliases the project is no longer self-contained. If you need to share it with another computer, it’s your responsibility to bring the aliased files along.