As a developer and prolific technical writer I came to this forum today to look for “index” after not finding it (in this context) in the software or doc. I was horrified to see this feature not included, though not surprised. I’ve become accustomed to the notion that Scrivener doesn’t have features that we typically associate with document processing, while it does have features that other software doesn’t have, specifically because it’s a different kind of tool. It’s tough to wrap my brain around that separation, to enjoy the unique value of the tool for what it does, and avoid getting too frustrated with what it doesn’t do.
But on this index thing, I really am amazed. I get the idea that Scriv isn’t intended to provide a lot of formatting options, but I disagree that indexing is a function that’s exclusive of the content creation process. As others have cited in these various forum posts, many authors are in-tune with what should be in their index, and some are not - like some authors know how to use fonts or text styling and others don’t. As a content provider I should have the option to suggest what should be in the index and where, while leaving the formatting to a post-compile process which I may or may not be doing.
The index is composed of at least two parts.The first part is metadata that is applied to a word or short phrase to indicate the text should be in the index - it’s a message to the document processing software. The second part is information about how that data is formatted. The metadata can include more information about where in the index the text should go. For example, the paragraph above includes the word Scriv, but that should be in the index with other references to Scrivener, (arguably) not as an index entry of its own. This is content, in our realm as authors. It’s completely independent of the final formatting.
I’m happy to use Word or some other tool where I add an index at the bottom of the document. But I do not want to go back through the entire document to re-apply index meta tags after every major revision in Scrivener.
So let’s be constructive and creative here. What can we do to add “some kind of metadata” which isn’t removed in the compile process, and which doesn’t result in visual artifacts post-compile? The idea here is that if we can send any kind of metadata into Word, then a macro can be used to reformat such a code into an Index metatag so that Word can use it. Even a visual artifact is acceptable though very undesirable. Using the above example, I can put the word Scriv in font Impact, and follow that with the word Scrivener in font Algerian (two fonts I’d never use otherwise). These get compiled into the final document, and post-processed by a macro, that searches for the fonts and generates the appropriate internal Word codes based on what’s contained in the text. Then the code replaces the original word and extra text using the surrounding font. Rather than fonts, colors can be used, or even surrounding the text in specific characters, like {{Scriv}Scrivener}. That’s not elegant because at some point the extra words or characters in the text may offset the text, requiring a manual post-compile tweak.
OK, that’s my proposal, and unless someone suggests otherwise I’ll probably put this to code soon and see how it goes. Maybe there’s something in the compile process that can do what I’m suggesting?
If Scrivener had an API I’d suggest other options with custom code injected into the compile process. This is a point where I get a little frustrated again - because not only is the product limited in some ways but it also doesn’t have an API that allows us to inject additional functionality wherever we perceive a gap in the core. Years have gone by as people have been asking for an index and other features. If L&L would build in an API then a lot of those requests would go away as developers would rally to offer addons. This is the way the rest of the world works, and it builds more community around the offering.
Thanks for your time.