<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <atom:link href="http://kitchingroup.cheme.cmu.edu/blog/feed/index.xml" rel="self" type="application/rss+xml" />
    <title>The Kitchin Research Group</title>
    <link>https://kitchingroup.cheme.cmu.edu/blog</link>
    <description>Chemical Engineering at Carnegie Mellon University</description>
    <pubDate>Sat, 01 Nov 2025 13:47:46 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    
    <item>
      <title>Indexing headlines in org files with swish-e with laser-sharp results</title>
      <link>https://kitchingroup.cheme.cmu.edu/blog/2015/07/06/Indexing-headlines-in-org-files-with-swish-e-with-laser-sharp-results</link>
      <pubDate>Mon, 06 Jul 2015 11:04:43 EDT</pubDate>
      <category><![CDATA[swishe]]></category>
      <category><![CDATA[orgmode]]></category>
      <category><![CDATA[emacs]]></category>
      <guid isPermaLink="false">beCd3vQYB3XyqfQ8isHCXKvkCJk=</guid>
      <description>Indexing headlines in org files with swish-e with laser-sharp results</description>
      <content:encoded><![CDATA[



&lt;p&gt;
So far, it looks like swish-e is able to do some pretty focused searches on specific content types. However, the return results are not actually that sharp; in the way we have been using swish-e, it can only tell us the document path that matches, not where in the document the match is. To fix that, we need a new approach to what a "document" is, and a new approach to indexing. We will finally use the "-s prog" option in swish-e which runs an external program that prints stuff to stdout for swish-e to index. We will treat each headline in an org file as a "document" but rather than have the path to the file, we will put an org-mode link there that will take us right to the point of interest.
&lt;/p&gt;

&lt;p&gt;
You can see this in action here: &lt;a href="https://www.youtube.com/watch?v=bTwXtEb5Ng8"&gt;https://www.youtube.com/watch?v=bTwXtEb5Ng8&lt;/a&gt; 
&lt;/p&gt;

&lt;p&gt;
Basically, we need a program to output chunks like this for each headline in an org-file:
&lt;/p&gt;
&lt;pre class="example"&gt;
Path-Name: [[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/ase-db.org") (goto-char 1))]]
Content-Length: 247
Document-Type: XML*

&amp;lt;headline&amp;gt;&amp;lt;title&amp;gt;Using the ase database module&amp;lt;/title&amp;gt;&amp;lt;properties&amp;gt;&amp;lt;FILE&amp;gt;/Users/jkitchin/blogofile-jkitchin.github.com/_blog/ase-db.org&amp;lt;/FILE&amp;gt;&amp;lt;BLOCKED&amp;gt;&amp;lt;/BLOCKED&amp;gt;&amp;lt;categories&amp;gt;python, ase&amp;lt;/categories&amp;gt;&amp;lt;CATEGORY&amp;gt;ase-db&amp;lt;/CATEGORY&amp;gt;&amp;lt;/properties&amp;gt;&amp;lt;/headline&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
Then we need to tell swish-e to run the program and index its output. Here is the program to do that.
&lt;/p&gt;

&lt;div class="org-src-container"&gt;

&lt;pre class="src src-emacs-lisp"&gt;:&lt;span style="color: #8D8D84;"&gt;;&lt;/span&gt;&lt;span style="color: #8D8D84; font-style: italic;"&gt;exec emacs -batch -l $0 "$@"&lt;/span&gt;
(&lt;span style="color: #0000FF;"&gt;require&lt;/span&gt; '&lt;span style="color: #D0372D;"&gt;org&lt;/span&gt;)
(&lt;span style="color: #0000FF;"&gt;require&lt;/span&gt; '&lt;span style="color: #D0372D;"&gt;xml&lt;/span&gt;)
(&lt;span style="color: #0000FF;"&gt;require&lt;/span&gt; '&lt;span style="color: #D0372D;"&gt;cl&lt;/span&gt;)

(add-to-list 'load-path &lt;span style="color: #008000;"&gt;"~/Dropbox/kitchingroup/jmax/elpa/f-20140828.716"&lt;/span&gt;)
(add-to-list 'load-path &lt;span style="color: #008000;"&gt;"~/Dropbox/kitchingroup/jmax/elpa/s-20140910.334"&lt;/span&gt;)
(add-to-list 'load-path &lt;span style="color: #008000;"&gt;"~/Dropbox/kitchingroup/jmax/elpa/dash-20141201.2206"&lt;/span&gt;)
(&lt;span style="color: #0000FF;"&gt;require&lt;/span&gt; '&lt;span style="color: #D0372D;"&gt;f&lt;/span&gt;)

(&lt;span style="color: #0000FF;"&gt;defun&lt;/span&gt; &lt;span style="color: #006699;"&gt;print-tag&lt;/span&gt; (name attrs &lt;span style="color: #6434A3;"&gt;&amp;amp;optional&lt;/span&gt; closingp)
  &lt;span style="color: #036A07;"&gt;"Print an xml tag with symbol NAME and ATTRS (a cons list of (attribute . value)).&lt;/span&gt;
&lt;span style="color: #036A07;"&gt;if CLOSINGP print the closing tag instead."&lt;/span&gt;
  (format
   &lt;span style="color: #008000;"&gt;"&amp;lt;%s%s%s&amp;gt;"&lt;/span&gt;
   (&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt; closingp &lt;span style="color: #008000;"&gt;"/"&lt;/span&gt; &lt;span style="color: #008000;"&gt;""&lt;/span&gt;)
   name
   (&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000FF;"&gt;and&lt;/span&gt; attrs (not closingp))
       (concat
        &lt;span style="color: #008000;"&gt;" "&lt;/span&gt;
        (mapconcat
         (&lt;span style="color: #0000FF;"&gt;lambda&lt;/span&gt; (x)
           (format &lt;span style="color: #008000;"&gt;"%s=\"%s\""&lt;/span&gt;
                   (car x)
                   (xml-escape-string (cdr x))))
         attrs
         &lt;span style="color: #008000;"&gt;" "&lt;/span&gt;))
     &lt;span style="color: #008000;"&gt;""&lt;/span&gt;)))

(&lt;span style="color: #0000FF;"&gt;defmacro&lt;/span&gt; &lt;span style="color: #006699;"&gt;tag&lt;/span&gt; (name attributes &lt;span style="color: #6434A3;"&gt;&amp;amp;rest&lt;/span&gt; body)
  &lt;span style="color: #036A07;"&gt;"macro to create an xml tag with NAME, ATTRIBUTES. BODY is executed in the tag."&lt;/span&gt;
  `(format &lt;span style="color: #008000;"&gt;"%s%s%s"&lt;/span&gt;
           (print-tag ,name ,attributes nil)
           (concat
            ,@body)
           (print-tag ,name nil t)))

(&lt;span style="color: #0000FF;"&gt;defun&lt;/span&gt; &lt;span style="color: #006699;"&gt;headline-xml&lt;/span&gt; (headline)
  &lt;span style="color: #036A07;"&gt;"Return xml representation of an element HEADLINE."&lt;/span&gt;
  (&lt;span style="color: #0000FF;"&gt;let&lt;/span&gt; ((title (org-element-property &lt;span style="color: #006FE0;"&gt;:title&lt;/span&gt; headline))
        (properties (&lt;span style="color: #0000FF;"&gt;save-excursion&lt;/span&gt;
                      (goto-char
                       (org-element-property &lt;span style="color: #006FE0;"&gt;:begin&lt;/span&gt; headline))
                      (org-entry-properties))))
    (tag 'headline ()
         (tag 'title () (xml-escape-string (mapconcat 'identity title &lt;span style="color: #008000;"&gt;" "&lt;/span&gt;)))
         (&lt;span style="color: #0000FF;"&gt;when&lt;/span&gt; properties
           (tag 'properties ()
                (mapconcat
                 'identity
                 (&lt;span style="color: #0000FF;"&gt;loop&lt;/span&gt; for (p . v) in properties
                       collect (tag p () (xml-escape-string v)))
                 &lt;span style="color: #008000;"&gt;""&lt;/span&gt;))))))

(&lt;span style="color: #0000FF;"&gt;defun&lt;/span&gt; &lt;span style="color: #006699;"&gt;headline-document&lt;/span&gt; (headline)
  &lt;span style="color: #036A07;"&gt;"Return the headline \"document\" for swish-e to index."&lt;/span&gt;
  (&lt;span style="color: #0000FF;"&gt;let&lt;/span&gt; ((xml (replace-regexp-in-string
              &lt;span style="color: #008000;"&gt;"[&lt;/span&gt;&lt;span style="color: #008000;"&gt;^&lt;/span&gt;&lt;span style="color: #008000;"&gt;[:ascii:]]"&lt;/span&gt; &lt;span style="color: #008000;"&gt;""&lt;/span&gt;
              (headline-xml headline))))
    (format &lt;span style="color: #008000;"&gt;"Path-Name: [[elisp:(progn (find-file \"%s\") (goto-char %s) (show-children))][link]]&lt;/span&gt;
&lt;span style="color: #008000;"&gt;Content-Length: %s&lt;/span&gt;
&lt;span style="color: #008000;"&gt;Document-Type: XML*&lt;/span&gt;

&lt;span style="color: #008000;"&gt;%s"&lt;/span&gt; (buffer-file-name)
(org-element-property &lt;span style="color: #006FE0;"&gt;:begin&lt;/span&gt; headline)
(length xml)
xml)))

(&lt;span style="color: #0000FF;"&gt;defun&lt;/span&gt; &lt;span style="color: #006699;"&gt;process-file&lt;/span&gt; (fname)
  &lt;span style="color: #036A07;"&gt;"Print the `&lt;/span&gt;&lt;span style="color: #D0372D;"&gt;headline-document&lt;/span&gt;&lt;span style="color: #036A07;"&gt;' for each headline in FNAME."&lt;/span&gt;
  (&lt;span style="color: #0000FF;"&gt;with-current-buffer&lt;/span&gt; (find-file-noselect fname)
    (mapconcat 'identity
               (org-element-map (org-element-parse-buffer)
                   'headline
                 (&lt;span style="color: #0000FF;"&gt;lambda&lt;/span&gt; (headline)
                   (princ (headline-document headline))))
               &lt;span style="color: #008000;"&gt;""&lt;/span&gt;)))

&lt;span style="color: #8D8D84;"&gt;;; &lt;/span&gt;&lt;span style="color: #8D8D84; font-style: italic;"&gt;Here is the main work in the script.&lt;/span&gt;
(&lt;span style="color: #0000FF;"&gt;loop&lt;/span&gt; for dir in '(&lt;span style="color: #008000;"&gt;"/Users/jkitchin/blogofile-jkitchin.github.com/_blog"&lt;/span&gt;)
      do
      (&lt;span style="color: #0000FF;"&gt;loop&lt;/span&gt; for fname in (f-entries
                          dir
                          (&lt;span style="color: #0000FF;"&gt;lambda&lt;/span&gt; (x)
                            (string=  &lt;span style="color: #008000;"&gt;"org"&lt;/span&gt;  (file-name-extension x)))
                          t)
            do (&lt;span style="color: #0000FF;"&gt;ignore-errors&lt;/span&gt;
                 (princ (process-file fname)))))
&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;
Now we need a configuration file:
&lt;/p&gt;

&lt;div class="org-src-container"&gt;

&lt;pre class="src src-text"&gt;# Example configuration file

# where to save the index
IndexFile /Users/jkitchin/blogofile-jkitchin.github.com/_blog/index-org-headlines.swish-e

# index all tags for searching
UndefinedMetaTags auto
UndefinedXMLAttributes auto
&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;
And we run the indexer, I did this in an actual shell. For some reason, it was not possible to run here. The output is pretty useful though, as it tells you what MetaNames are searchable.
&lt;/p&gt;

&lt;div class="org-src-container"&gt;

&lt;pre class="src src-sh"&gt;swish-e -c swish-org-headlines.conf -S prog -i ./swish-org-headlines.el
&lt;/pre&gt;
&lt;/div&gt;

&lt;pre class="example"&gt;
10:17 $ swish-e -c swish-org-headlines.conf -S prog -i ./swish-org-headlines.el
Indexing Data Source: "External-Program"
Indexing "./swish-org-headlines.el"
External Program found: ./swish-org-headlines.el
**Adding automatic MetaName 'headline' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'title' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'properties' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'file' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'blocked' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'categories' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'date' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'updated' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'category' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 18) (show-children))][link]]'
**Adding automatic MetaName 'points' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/writing-exams-in-orgmode.org") (goto-char 1391) (show-children))][link]]'
**Adding automatic MetaName 'tags' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/why-org-mode.org") (goto-char 25) (show-children))][link]]'
**Adding automatic MetaName 'alltags' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/why-org-mode.org") (goto-char 25) (show-children))][link]]'
**Adding automatic MetaName 'todo' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/why-org-mode.org") (goto-char 1733) (show-children))][link]]'
**Adding automatic MetaName 'closed' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/why-org-mode.org") (goto-char 1733) (show-children))][link]]'
**Adding automatic MetaName 'timestamp_ia' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/pdfsync.org") (goto-char 28) (show-children))][link]]'
**Adding automatic MetaName 'id' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-to-docx-pandoc.org") (goto-char 5056) (show-children))][link]]'
**Adding automatic MetaName 'custom_id' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 1311) (show-children))][link]]'
**Adding automatic MetaName 'calculation' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 1311) (show-children))][link]]'
**Adding automatic MetaName 'volume' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 1311) (show-children))][link]]'
**Adding automatic MetaName 'total_energy' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 1311) (show-children))][link]]'
**Adding automatic MetaName 'stress' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 1311) (show-children))][link]]'
**Adding automatic MetaName 'priority' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 15327) (show-children))][link]]'
**Adding automatic MetaName 'export_title' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 506769) (show-children))][link]]'
**Adding automatic MetaName 'export_author' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 506769) (show-children))][link]]'
**Adding automatic MetaName 'export_file_name' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 506769) (show-children))][link]]'
**Adding automatic MetaName 'export_date' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 506769) (show-children))][link]]'
**Adding automatic MetaName 'scheduled' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 516502) (show-children))][link]]'
**Adding automatic MetaName 'deadline' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 516502) (show-children))][link]]'
**Adding automatic MetaName 'votes' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 532031) (show-children))][link]]'
**Adding automatic MetaName 'timestamp' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 571125) (show-children))][link]]'
**Adding automatic MetaName 'clock' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 21059) (show-children))][link]]'
**Adding automatic MetaName 'level' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 46582) (show-children))][link]]'
**Adding automatic MetaName 'correct' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 46582) (show-children))][link]]'
**Adding automatic MetaName 'permalink' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 61814) (show-children))][link]]'
**Adding automatic MetaName 'hint' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 340534) (show-children))][link]]'
**Adding automatic MetaName 'answer' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 355206) (show-children))][link]]'
**Adding automatic MetaName 'correct-answer' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 377210) (show-children))][link]]'
**Adding automatic MetaName 'post_filename' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 415454) (show-children))][link]]'
**Adding automatic MetaName 'ordered' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 423900) (show-children))][link]]'
**Adding automatic MetaName 'grade' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/add-subheadings-to-headings.org") (goto-char 2822) (show-children))][link]]'
**Adding automatic MetaName ':export_file_name:' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/add-properties-to-headings.org") (goto-char 2) (show-children))][link]]'
**Adding automatic MetaName 'firstname' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-contacts/referee-contacts.org") (goto-char 155) (show-children))][link]]'
**Adding automatic MetaName 'lastname' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-contacts/referee-contacts.org") (goto-char 155) (show-children))][link]]'
**Adding automatic MetaName 'email' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-contacts/referee-contacts.org") (goto-char 155) (show-children))][link]]'
**Adding automatic MetaName 'affiliation' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-contacts/referee-contacts.org") (goto-char 155) (show-children))][link]]'
**Adding automatic MetaName 'lettergrade' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-report/Slim-Shady-HW1.org") (goto-char 29) (show-children))][link]]'
**Adding automatic MetaName 'difficulty' found in file '[[elisp:(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/problem-selection/problem-selection.org") (goto-char 1) (show-children))][link]]'
Removing very common words...
no words removed.
Writing main index...
Sorting words ...
Sorting 6,044 words alphabetically
Writing header ...
Writing index entries ...
  Writing word text: Complete
  Writing word hash: Complete
  Writing word data: Complete
6,044 unique words indexed.
4 properties sorted.
5,084 files indexed.  1,760,249 total bytes.  368,569 total words.
Elapsed time: 00:00:37 CPU time: 00:00:01
Indexing done!
&lt;/pre&gt;


&lt;p&gt;
Ok, now for the proof in the approach!
&lt;/p&gt;

&lt;div class="org-src-container"&gt;

&lt;pre class="src src-sh"&gt;swish-e -f index-org-headlines.swish-e -w &lt;span style="color: #BA36A5;"&gt;headline&lt;/span&gt;=generating
&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/separate-bib.org") (goto-char 1) (show-children))"&gt;link&lt;/a&gt; "separate-bib.org") (goto-char 1) (show-children))][link]]" 393
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 158456) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 158456) (show-children))][link]]" 229
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 272383) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 272383) (show-children))][link]]" 400
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 158456) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 158456) (show-children))][link]]" 229
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 448965) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 448965) (show-children))][link]]" 389
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 575) (show-children))"&gt;link&lt;/a&gt; "org-db.org") (goto-char 575) (show-children))][link]]" 204
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/org-db.org") (goto-char 575) (show-children))"&gt;link&lt;/a&gt; "org-db.org") (goto-char 575) (show-children))][link]]" 204
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/separate-bib.org") (goto-char 1) (show-children))"&gt;link&lt;/a&gt; "separate-bib.org") (goto-char 1) (show-children))][link]]" 393
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 272383) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 272383) (show-children))][link]]" 400
.
&lt;/p&gt;


&lt;div class="org-src-container"&gt;

&lt;pre class="src src-sh"&gt;swish-e -f index-org-headlines.swish-e -w &lt;span style="color: #BA36A5;"&gt;todo&lt;/span&gt;=TODO
&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 16933) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 16933) (show-children))][link]]" 342
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 61231) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 61231) (show-children))][link]]" 207
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 60802) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 60802) (show-children))][link]]" 274
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 60289) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 60289) (show-children))][link]]" 207
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 61568) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 61568) (show-children))][link]]" 246
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 61231) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 61231) (show-children))][link]]" 207
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 60802) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 60802) (show-children))][link]]" 274
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 60289) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 60289) (show-children))][link]]" 207
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 632875) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 632875) (show-children))][link]]" 266
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 529123) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 529123) (show-children))][link]]" 202
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 529087) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 529087) (show-children))][link]]" 206
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 518108) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 518108) (show-children))][link]]" 280
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog.org") (goto-char 30559) (show-children))"&gt;link&lt;/a&gt; "blog.org") (goto-char 30559) (show-children))][link]]" 337
1000 &lt;a href="(progn (find-file "/Users/jkitchin/blogofile-jkitchin.github.com/_blog/blog-2014.org") (goto-char 61568) (show-children))"&gt;link&lt;/a&gt; "blog-2014.org") (goto-char 61568) (show-children))][link]]" 246
.
&lt;/p&gt;


&lt;div id="outline-container-sec-1" class="outline-2"&gt;
&lt;h2 id="sec-1"&gt;&lt;span class="section-number-2"&gt;1&lt;/span&gt; Summary thoughts&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-1"&gt;
&lt;p&gt;
This could be super useful for a lot of different elements: headlines, src-blocks, links, tables, paragraphs are the main ones that come to mind. You could have pretty focused searches that go straight to the matches!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Copyright (C) 2015 by John Kitchin. See the &lt;a href="/copying.html"&gt;License&lt;/a&gt; for information about copying.&lt;p&gt;&lt;p&gt;&lt;a href="/org/2015/07/06/Indexing-headlines-in-org-files-with-swish-e-with-laser-sharp-results.org"&gt;org-mode source&lt;/a&gt;&lt;p&gt;&lt;p&gt;Org-mode version = 8.2.10&lt;/p&gt;]]></content:encoded>
    </item>
  </channel>
</rss>
