Suggested improvement to OPML import

I’m guessing this would require too much re-coding, given how Scrivener maps outliner entries to individual documents, but it’s worth asking about. :smiley: That it’s possible at all to import OPML outlines into Scrivener is great, but as far as I can tell the only way to bring in document content is through the _note attribute.

As the maintainer for an open-source outliner (Tines), I’m on a low-key crusade to encourage use of the OPML-standard type attribute in place of the non-standard _note attribute. Tines directly supports using type=“text” to mark outliner entries as something other than headings (some OPML-centric outliners can do this as well, but require jumping through hoops). My vision here is for a Tines user to be able to rough out a project in the outliner, then export it to Scrivener for the actual writing and publishing work.

Since Tines can export to bog-standard Markdown, that might be an acceptable workaround. I’m still looking into the possibilities on my side here, including RTF export and Scrivener’s “Import and Split” option. I’ve published a dozen books through Scrivener in the last 4-5 years, mostly pantsing my way through each one, but I’m moving toward a more organized approach (or at least a more flexible one).

I’d be glad to hear everyone’s thoughts.


Fellow Scrivener user here.

I think you are better off with Multimarkdown for getting “mixed outlines” into Scrivener.

Getting content into documents on OPML import via any attribute has essential limits that make it inapt for the purpose. The most obvious is that content which includes quote marks and carriage returns just blow the OPML out. The inclusion of various special characters in content text can also mess up OPML importers (though for less clear reasons).

The idea of using OPML as a general transfer standard for outlines is kind of odd when you think about it. Because outlines and mindmap text already cleave to a crazy simple, universal, plain-text standard to specify their structure: character indentation (usually by tab, but sometimes leading spaces). This is a much simpler and less fragile format to work with.

It would be cool if Scrivener had an import function for ordinary indent-based outline text – turning it directly into binder structure, but recognizing some character mark (my choice: §) that would announce to Scrivener that everything beneath (governed by) that marked node in the outline structure should become document content. I once Wished for this, but it hasn’t happen.

In the meantime, I use a custom Applescript for this purpose. It takes the plain old tab-indented output of my outliner (actually mindmap software which actually uses two spaces as indent char) and converts it to markdown format, but watches for nodes with my special tag § as suggested in (2) and produces multimarkdown for Scriv import appropriately. Works like a dream. I commend this approach to you.