The Automator action is quick to implement. But, alas, there seems to be no easy way to get the anchor text.
However, to my surprise, I managed to wrangle AppleScript to do the job by adapting scripts shared online.
Script here
-- adapted from https://www.macscripter.net/viewtopic.php?pid=182034, https://macscripter.net/viewtopic.php?id=46657
use AppleScript version "2.4" -- Yosemite (10.10) or later
use framework "Foundation"
use scripting additions
-- get any rich texts off the clipboard
set pb to current application's NSPasteboard's generalPasteboard()
set theRichTexts to (pb's readObjectsForClasses:{current application's NSAttributedString} options:(missing value)) as list
if (count of theRichTexts) = 0 then
display dialog "No rich text found on the clipboard" buttons {"OK"} default button 1
error number -128
end if
set theRichText to (item 1 of theRichTexts)
-- get length so we can start from the end
set start to (theRichText's |length|()) - 1
-- make plain string copy to work on
set theString to theRichText's |string|()'s mutableCopy()
set output to return
repeat while start ≥ 0
set {aURL, theRange} to theRichText's attribute:(current application's NSLinkAttributeName) atIndex:start effectiveRange:(reference)
if aURL is not missing value then
-- get linked text
set anchorText to theString's substringWithRange:theRange
if aURL's |scheme|()'s isEqualToString:"mailto" then -- email address
set newLink to aURL's resourceSpecifier()
else if anchorText's containsString:"This Site" then -- resource specifier, remove //
set newLink to aURL's resourceSpecifier()'s substringFromIndex:2
else -- full URL
set newLink to aURL's absoluteString()
end if
set output to ((output & anchorText as text) & "::" & newLink as text) & return
end if
set start to (location of theRange) - 2
end repeat
return output -- to view in Script Editor Result pane
And shorter, cleaned up script here
-- adapted fr https://www.macscripter.net/viewtopic.php?pid=182034, https://macscripter.net/viewtopic.php?id=46657
-- copy rich text to clipboard and run
use framework "Foundation"
-- get any rich texts off the clipboard
set pb to current application's NSPasteboard's generalPasteboard()
set theRichTexts to (pb's readObjectsForClasses:{current application's NSAttributedString} options:(missing value)) as list
set theRichText to (item 1 of theRichTexts)
set start to (theRichText's |length|()) - 1 -- will work from end backwards
set theString to theRichText's |string|()'s mutableCopy() -- plain string copy to work on
set output to ""
repeat while start ≥ 0
set {aLink, theRange} to theRichText's attribute:(current application's NSLinkAttributeName) atIndex:start effectiveRange:(reference)
if aLink is not missing value then
set anchorText to theString's substringWithRange:theRange
set urlText to aLink's absoluteString()
set output to (anchorText as text) & "::" & (urlText as text) & return & output
end if
set start to (location of theRange) - 2
end repeat
return output -- to view in Script Editor Result pane
Here the output simply goes to the Result pane in the format suggested for copy-pasting. It could, of course, be delimited in other ways and automated to set values of attribute(s) in Tinderbox.