Page 1 of 1
Making and index of first lines?
Posted: 2017-04-26 11:26:05
by editor10
Is there a way to generate an index of first lines of paragraphs for a document? And then click on a line and go to that line? I seem to remember something like this long ago in Nisus.
Re: Making and index of first lines?
Posted: 2017-04-26 12:36:43
by Kino
How about adding bookmark to all the first lines of paragraph? The macro below will do the job.
Code: Select all
### Bookmark First Lines ###
Require Pro Version '2.1'
$prefix = @S'_'
/*
• $prefix above defined will make it easier to distinguish bookmarks added by this macro from other bookmarks.
• If your document has not other bookmarks, use @S'' which will add nothing to bookmark names.
*/
$doc = Document.active
if $doc == @undefined
exit 'No open document, exiting...'
end
$paragraphStarts = $doc.text.findAll '^(?=\S)', 'E-i'
# Get the location of paragraph starts followed by a visible character.
if $paragraphStarts.count > 0
foreach $start in $paragraphStarts
$firstLine = TextSelection.new($start.text, $start.text.rangeOfLineAtIndex($start.location))
# Get TextSelection object for this paragraph start.
$bookmarkName = $prefix & $firstLine.substring
Push Target Selection $firstLine
Add Bookmark As $bookmarkName
Pop Target Selection
end
end
Set Navigator Mode 'Bookmarks by Location'
Set Navigator Shown @true
### end of macro
Re: Making and index of first lines?
Posted: 2017-04-27 02:44:58
by Kino
editor10 wrote:I seem to remember something like this long ago in Nisus.
I just had an idea. Macro is not necessary. Switch to the Style sheet and add a TOC level to the paragraph style for normal text. First portion of every paragraph in that style will show up in the Navigator.
Re: Making and index of first lines?
Posted: 2017-04-27 11:07:55
by editor10
Kino,
Thank you very much. The macro didn't work for me but the TOC style method is perfect.