Ted Leung on the air: Open Source, Java, Python, and ...
I read Merlin's tip on using QuickSilver's append to file command to manage a Getting Things Done inbox list. My lists are outlines in OmniOutliner, but I wanted to be able to do the same thing. Below is an AppleScript that you can invoke from QuickSilver, which will take the contents of the clipboard and append it to the children of a topic named "@Inbox". I've installed it in a directory that is part of my QuickSilver catalog, and the activation is as follows:
- Trigger QuickSilver
- Hit "." and type the text of the new inbox item into the text input window
- Do Command-A Command-C to select that text and paste it onto the clipboard
- activate the script to create the new inbox item.
Here's the code for the script:
-- can copy to clipboard and have script get from there on appendClipboardToRow(doc, t) tell application "OmniOutliner" repeat with r in rows of doc if topic of r is t then exit repeat end if end repeat -- set r to row 1 of doc set l to last child of r set n to make child at after l -- really want to do after set topic of n to the clipboard end tell end appendClipboardToRow tell application "OmniOutliner" set d to document "Next Actions.ooutline" end tell appendClipboardToRow(d, "@Inbox")
It's not ideal that I have to load the text into the clipboard but I couldn't figure out how to hook up the text in the QuickSilver input box and the AppleScript. In an ideal world, I could enter text into the text box, hit tab to select the "run shell script with standard input" command which would use the text as the standard input to a script (you could tab one more time and supply script arguments to be fancy). Unfortunately no such command exists.
So here's a question for the group/web mind. Is there a better way to do this?
Posted by Joe at Wed Oct 20 23:25:16 2004
HTH
--Dethe
Posted by Dethe Elza at Thu Oct 21 09:39:28 2004
Posted by Leland Johnson at Fri Oct 22 02:02:16 2004
You still need a way to get the text from Quicksilver into standard input, though.
Posted by Ted Leung at Fri Oct 22 22:56:52 2004
on handle_string(string)
handler. So with the following script you could add items to an outliner document very easily.<ol>
<li>Call Launchbar</li>
<li>Find the script</li>
<li>hit space</li>
<li>type the string and hit enter</li>
</ol>
on handle_string(theString)
tell application "OmniOutliner"
set theDocument to document "Next Actions"
set theTopic to "@Inbox"
repeat with theRow in rows of theDocument
if topic of theRow is theTopic then
exit repeat
end if
end repeat
set newRow to make child at after the last child of theRow
set topic of newRow to theString
end tell
end handle_string
Posted by Paul Turnbull at Sat Oct 30 20:05:34 2004
Thanks for the tip. I've asked the QS author if he'll add a way to do this...
Posted by Ted Leung at Sun Oct 31 08:44:54 2004
Posted by Brian Donovan at Mon Nov 1 15:59:41 2004
Posted by Trackback from one of me at Thu Dec 2 20:00:24 2004
using terms from application "Quicksilver"
on process text theText
tell application "OmniOutliner Professional"
set theDocument to document "GTD"
set theTopic to "@INBOX"
repeat with theRow in rows of theDocument
if topic of theRow is theTopic then
exit repeat
end if
end repeat
set newRow to make child at after the last child of theRow
set topic of newRow to theText
end tell
end process text
end using terms from
put it in ~/Library/Application Support/Quicksilver/Actions and restart QS.
Posted by Eric Gradman at Wed Mar 23 13:18:45 2005
Posted by Ottoe at Thu May 12 21:21:35 2005
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk