<div class="markdown">
<p dir="auto">On 13 Mar 2014, at 19:47, Chriztian Steinmeier wrote:</p>

<blockquote>
<p dir="auto">[…] An alternative way would be to just open a $DIALOG, asking for the XPath expression and then do the processing - but I can't see a $DIALOG command that lets me do that (read input)...</p>
</blockquote>

<p dir="auto">Using the ruby UI wrapper (for DIALOG), such command could take the following form:</p>

<pre><code>#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -wKU
require "#{ENV['TM_SUPPORT_PATH']}/lib/exit_codes"
require "#{ENV['TM_SUPPORT_PATH']}/lib/ui"

query = TextMate::UI.request_string(:prompt => "XPath Query:")
TextMate.exit_discard if query.to_s.empty?

# output HTML based on stdin and query…
</code></pre>

<p dir="auto">You can mix this with the suggestion by Hans-Jörg, i.e. let the generated HTML include a text field prepopulated with the query string, allowing the user to change the query.</p>

<p dir="auto">If so, you may want to allow an initial empty query string, for that, change ‘query.to_s.empty?’ → ‘query.nil?’ in the above. This will still allow the user to abort the command (and never see the HTML output window) via the Cancel button (or ⌘,) but if they just press return, the window will appear.</p>

</div>