Toggle button to show notes text in Marked
Here's a script that shows the note text from the currently selected row in [URL="http://markedapp.com"]Marked[/URL] (version 1). I made it use the standard version of the application, but it should probably work with Professional as well. I have it set up as a toggle button on my toolbar as [URL="http://www.lawschoolmatt.com/workflows/omnioutliner-show-note-text-in-marked-app"]shown here[/URL]. If Marked is open, clicking the button causes it to quit. Otherwise it pops up and floats with the text of the notes for the selected row.
[CODE]if application "Marked" is not running then tell application "OmniOutliner" set xNote to note of selected row of front document as text end tell do shell script "echo " & quoted form of xNote & "> /Users/YourUsername/some_file.txt" do shell script "open -a \"Marked.app\" $HOME/some_file.txt" tell application "Marked" --This part keeps Marked on top activate tell application "System Events" key down command key down shift key down "F" delay 0.5 key up command key up shift key up "F" end tell end tell else tell application "Marked" quit end tell end if[/CODE] |
Good idea :-)
(OmniOutliner needs a way of working with MarkDown) To make a version which will work with both Pro and Standard Omnioutliner, edit the application reference to use their shared Creator Code preceded by [I]id[/I], rather that one of their differing application names: [CODE]application id "OOut"[/CODE] instead of : [CODE]application "OmniOutliner"[/CODE] |
Here is a variant on your theme which I am using from Keyboard Maestro.
It doesn't close Marked (I tend to keep Marked running), but it does allow you to select several OO rows and concatenate their notes in Marked if you want (for previewing or export to PDF, MS Word, HTML etc). It also optionally (edit the value of [I]pblnPositionWindows[/I]) tries to position your Marked and OO3 windows side by side, with 50% of the screen each. (Note that it requires [URL="http://marked2app.com/"]Marked 2[/URL] – it uses [I]Preview Clipboard[/I]) [CODE]property pTitle : "View OO3 notes in Marked II" property pVer : "0.01" -- VIEW NOTES OF SELECTED ROW(S) IN BRETT TERPSTRA'S MARKED VER 2 property pblnPositionWindows : true -- Set this to false to disable the window positioning at the end of the script on run set lstNote to {} tell application id "OOut" to set lstNote to note of selected rows of front document if lstNote ≠ {} then -- JOIN THE NOTES OF ANY SELECTED ROWS set {dlm, my text item delimiters} to {my text item delimiters, linefeed & linefeed} set strNote to lstNote as text set my text item delimiters to dlm -- PLACE THEM IN THE CLIPBOARD do shell script "echo " & quoted form of strNote & " | pbcopy" -- USE MARKED 2 PREVIEW > CLIPBOARD PREVIEW tell application id "com.brettterpstra.marky" activate close windows end tell tell application id "sevs" click my GetMenuItem("com.brettterpstra.marky", {"Preview", "Clipboard Preview"}) end tell -- OPTIONALLY TRY TO POSITION THE MARKED AND OO3 WINDOWS SIDE BY SIDE if pblnPositionWindows then set lngWidth to word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") set lngHeight to word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") set lngHalf to lngWidth / 2 set lngHeight to lngHeight - 22 tell application id "sevs" set procOutliner to first process where name contains "OmniOutliner" tell procOutliner to tell window 1 to set {position, size} to {{lngHalf, 22}, {lngHalf, lngHeight}} tell process "Marked" to tell window 1 to set {position, size} to {{0, 22}, {lngHalf, lngHeight}} end tell tell application id "OOut" to activate tell application id "com.brettterpstra.marky" to activate end if else tell application id "OOut" activate display dialog "No rows selected in OO3..." buttons {"OK"} default button "OK" with title pTitle & " ver. " & pVer end tell end if end run -- RETURNS A REFERENCE TO A CLICKABLE MENU ITEM -- E.G. set mnuZoomFit to GetMenuItem("OGfl", {"View", "Zoom", "Zoom to Selection"}) -- RETURNS A REFERENCE TO A CLICKABLE MENU ITEM -- E.G. set mnuZoomFit to GetMenuItem("OGfl", {"View", "Zoom", "Zoom to Selection"}) on GetMenuItem(strAppCode, lstMenu) set lngChain to length of lstMenu if lngChain < 2 then return missing value tell application id "sevs" set lstApps to application processes where its bundle identifier = strAppCode if length of lstApps < 1 then return missing value tell first item of lstApps -- GET THE TOP LEVEL MENU set strMenu to item 1 of lstMenu set oMenu to menu strMenu of menu bar item strMenu of menu bar 1 -- TRAVEL DOWN THROUGH ANY SUB-MENUS repeat with i from 2 to (lngChain - 1) set strMenu to item i of lstMenu set oMenu to menu strMenu of menu item strMenu of oMenu end repeat -- AND RETURN THE FINAL MENU ITEM (OR MISSING VALUE, IF UNAVAILABLE) try return menu item (item -1 of lstMenu) of oMenu on error return missing value end try end tell end tell end GetMenuItem[/CODE] |
All times are GMT -8. The time now is 03:11 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.