Update Bates Source Link.scpt

- Removed unused Perl deeplink formatter script
- Added quotation marks before and after selected text in clipboard
This commit is contained in:
Sangye Ince-Johannsen 2024-10-29 00:29:58 +01:00
parent f6e698125e
commit b24b302df8

View file

@ -4,32 +4,37 @@ tell application id "DNtp"
set theRecord to content record of think window 1 set theRecord to content record of think window 1
set pageNumber to current page of think window 1 set pageNumber to current page of think window 1
set theTitle to name of theRecord set theTitle to name of theRecord
set quotedText to (selected text of think window 1) as string
-- Get selected text
set selectedText to (selected text of think window 1) as string
-- Add quote marks around selected text
set quotedText to "\"" & selectedText & "\""
-- Get source link of selected text
set sourceLink to reference URL of think window 1 set sourceLink to reference URL of think window 1
-- Extract the numeric part and prefix from the document's title -- Extract the numeric part and prefix from the document's title
set numericPart to my extractNumericPart(theTitle) set numericPart to my extractNumericPart(theTitle)
set prefix to my extractPrefix(theTitle) set prefix to my extractPrefix(theTitle)
-- Determine the Bates number or fallback
if numericPart is "" then if numericPart is "" then -- Handle non-Bates cites
set batesFormatted to theTitle & " at " & pageNumber + 1 set formattedCite to theTitle & " at " & pageNumber + 1
else
else -- Handle Bates cites
set batesNumber to numericPart + pageNumber set batesNumber to numericPart + pageNumber
set batesFormatted to my formatBatesNumber(batesNumber, prefix) set formattedCite to my formatBatesNumber(batesNumber, prefix)
end if end if
-- URL encoding using Perl
set encodedText to do shell script "perl -MURI::Escape -e 'print uri_escape(q{" & quotedText & "});'"
-- Create the markdown link -- Create the markdown link
set markdownLink to "[" & batesFormatted & "](" & sourceLink & ")" set markdownLink to "[" & formattedCite & "](" & sourceLink & ")"
-- Compile the final clipboard content and update the clipboard -- Compile the final clipboard content and update the clipboard
set finalClipboardContent to quotedText & " " & markdownLink & "." set finalClipboardContent to quotedText & " " & markdownLink & "."
set the clipboard to finalClipboardContent set the clipboard to finalClipboardContent
on error errMsg on error errMsg -- Error handling
display dialog "Error: " & errMsg -- Show any errors that occur display dialog "Error: " & errMsg -- Show any errors that occur
end try end try
end tell end tell
@ -42,7 +47,7 @@ end formatBatesNumber
-- Extract numeric part from the document title -- Extract numeric part from the document title
on extractNumericPart(title) on extractNumericPart(title)
try try
-- Adjusted Perl script to capture only the numeric sequence following one or more uppercase letters and a space or underscore -- Perl script to capture only the numeric sequence following one or more uppercase letters and a space or underscore
set perlScript to "perl -ne 'print $1 if /^[A-Z]+[ _]([0-9]+)(?:-[0-9]+)?/; exit;'" set perlScript to "perl -ne 'print $1 if /^[A-Z]+[ _]([0-9]+)(?:-[0-9]+)?/; exit;'"
return do shell script "echo " & quoted form of title & " | " & perlScript return do shell script "echo " & quoted form of title & " | " & perlScript
on error errMsg on error errMsg
@ -50,15 +55,14 @@ on extractNumericPart(title)
end try end try
end extractNumericPart end extractNumericPart
-- Extract prefix (non-numeric part) from the document title -- Extract prefix (non-numeric part) from the document title
on extractPrefix(title) on extractPrefix(title)
set prefix to "" set prefix to ""
repeat with aChar in characters of title repeat with aChar in characters of title
-- stop when we reach a numeric character
if aChar is in "0123456789" then exit repeat if aChar is in "0123456789" then exit repeat
set prefix to prefix & aChar set prefix to prefix & aChar
end repeat end repeat
return prefix return prefix
end extractPrefix end extractPrefix