Logos Bible App Links (Script server is updated, version 345)

I would love to be able to use Hookmark to hook references from the Bible app Logos. It appears the Logos app has the ability to generate a link that will reference a specific verse. Hookmark does not appear able to Hook to Copied Link with the link generated.

Here is an example link:
logosres:esv;ref=BibleESV.Eph6.14-20;off=3;ctx=,_to_stand_firm._14$C2$A0~Stand_therefore,_r$EF$BB$BFh

Any ideas on how to get this to work with the current version of Hookmark? Thanks!

1 Like

Sorry it is currently not supported. We will take a look.

1 Like

What are you trying to do? If you copy the HTML link from Logos and then go to whatever you want to Hook to… invoke Hook and “Hook to copied link.”

Let me know if I can help.

Hey @arthurwerry, from my understanding, the L4 link that I gave an example of in my original post, is the link that will open directly in the Logos desktop app. All other links seem to open in a browser which is what I am trying to avoid. Thanks for your time.

Yes, that is annoying. Chrome will sometimes give a checkbox “always open with…” when the dialog pops up so it will more seemlessly open Logos itself, but I can’t get Chrome to give that option.

I’m not a scripting person, but I am sure someone with scripting knowledge could knock out something fairly quickly in Hookmark’s scripting to handle the L4 link that is very consistently generated by Logos.

Welcome to the Hookmark Forum , @tylermcrae7. In my quick look at this I couldn’t see AppleScript in Logos. If they had some API in principle we could create a new hook:// URL scheme for those links. Also if it were exposed in a menubar > menu > menu item; or even just a reliable keyboard shortcut.

Hello Luc, I have sent an email to the company, but have not heard anything back from them. There is a reliable keyboard shortcut which is Opt + Cmd + C. There are 5 different options you can set within the Logos app that will copy a different link with that specific keyboard shortcut. Once the option is set, I don’t believe it changes. I don’t know if that is of use to you or not, but here is the documentation that speaks to those five options.

Thanks!

1 Like

thanks for this and the other info.

If you were to copy the above text from this post, how would you feed it into Logos to get to the destination? Their instructions seem to say they need to be fed into a web browser…

I don’t see a way to construct a link that Logos could use. (but I don’t have additional relevant knowledge of that app).

Not a problem!

From what I’ve seen, I can use an “Open URL” action in the Shortcuts app that will open straight to the location, which in this scenario, is Ephesians 6:14 of the ESV Bible within the Logos desktop app. I have also used it in an Obsidian note in what I believe is standard markdown linking which will open to the correct location.

I was hoping to be able to use Hookmark to “Hook to Copied Link” so I could attach the references to any number of items and click the link from there. :slight_smile:

2 Likes

Hello again! I was just curious if there is any update on this? I am attempting to write a script utilizing the option–command–c keyboard shortcut to return the appropriate URL, but so far, I’ve only been able to return the HTML link and not the L4 link. This also does not seem very reliable from my testing, but I am not very well versed with AppleScript. Thanks!

Hi Tyler, did you make sure that only L4 is highlighted in the menu, by clicking on some of the other options and then back on L4? Then if you ALT-CMD-C I would expect the L4 to be copied into the clipboard hopefully reliably.

1 Like

Hello Daniel, yes. It seems to consistently work when I use the keyboard to execute the shortcut which probably just means my simple script is the unreliable piece of the puzzle.

This is the script I have in the Get Address section of Hookmark script section.

tell application "System Events"
	key code 8 using {option down, command down} -- option-command-c
	set theLink to "[theResult](" & (the clipboard) & ")"
	set the clipboard to theLink
	return the clipboard
end tell

With the L4 section highlighted, it does not return a url for me in Hookmark. In the script editor, my script returns this. [theResult] (logosres:nasb95para;ref=BibleNASB95.1Jn3.4-12) (I separated the URL so you could see the full URL).
This link will open correctly into the Logos Desktop App. I think Hookmark cannot handle this type of URL which I think is a custom URL for the Logos Desktop app.

Ok, I understand - the AppleScript works with regard to the Logos app, putting e.g. logosres:nasb95para;ref=BibleNASB95.1Jn3.4-12 in the clipboard, then making a markdown version of it and putting that in the clipboard, but this kind of custom link that we’d hope Hookmark could use isn’t recognized as valid by Hookmark, and we’re stuck…

For now you can try the following scripts. It is UI scripting so sometimes you may need try more than once. It only works with L4 link

(1) Set Logos’ Copy Location as to “L4”
(2)Copy the following script to Logos’ Get Address pane.

Get Address Script


tell application "System Events"
	set the clipboard to ""
	delay 0.1
	keystroke "c" using {option down, command down}
	delay 0.1
	
	repeat 10 times -- poll clipboard for ~1 seconds. Sometimes set x to the clipboard throws exception
		try
			set theLink to the clipboard
			if theLink is not equal to "" then
				exit repeat
			end if
			
		end try
		delay 0.1
	end repeat
	
	delay 0.2
	set the clipboard to ""
	delay 0.2
	
	keystroke "c" using {command down}
	delay 0.2
	repeat 10 times -- poll clipboard for ~1 seconds. Sometimes set x to the clipboard throws exception
		try
			set theTitle to the clipboard
			if theTitle is not equal to "" then
				exit repeat
			end if
			
		end try
		delay 0.1
	end repeat
	return "[" & theTitle & "](logosres://" & theLink & ")"
	
end tell




(3)Copy the following script to Logos’ Open Item pane

Open Item script
set logosURL to "$0"

set logosURL to text 12 thru -1 of logosURL

tell application "System Events"
open location logosURL

end tell

(4) Set the scheme to logosres

(5)Click on save button

Thank you

2 Likes

Well sir, you have accomplished what I could not. Thanks so much!! It seems to do exactly what I was wanting. You rock.

I understand roughly what the get address script is doing. What is the significance of “$0” in the open item script?

Thanks again for your help!!

1 Like

Yes, thanks a lot for making it start to happen, @bchend!

As per the documentation:

Any instance of the string “$0” in the script will be replaced with the URL.

1 Like

Awesome. Thanks for pointing that out!

This page, https://wiki.logos.com/hyperlinks, contains the basic information on hyperlinks in the Logos app. L4 links can be opened in Mac and Windows with native apps. The anatomy of the L4 links is relatively straightforward.

1 Like

Hello @bchend, I had to add a delay at the start of the provided script to make it work in script editor. In Hookmark, the script is returning “No linkable item found in Logos” any ideas why this stopped working? Nothing else has changed with the scripts or the url’s provided from what I can tell.

tell application "System Events"
	delay 1
	set the clipboard to ""
	delay 0.1
	keystroke "c" using {option down, command down}
	delay 0.1
	
	repeat 10 times -- poll clipboard for ~1 seconds. Sometimes set x to the clipboard throws exception
		try
			set theLink to the clipboard
			if theLink is not equal to "" then
				exit repeat
			end if
			
		end try
		delay 0.1
	end repeat
	
	delay 0.2
	set the clipboard to ""
	delay 0.2
	
	keystroke "c" using {command down}
	delay 0.2
	repeat 10 times -- poll clipboard for ~1 seconds. Sometimes set x to the clipboard throws exception
		try
			set theTitle to the clipboard
			if theTitle is not equal to "" then
				exit repeat
			end if
			
		end try
		delay 0.1
	end repeat
	return "[" & theTitle & "](logosres://" & theLink & ")"
	
end tell

Thanks!

I just gave it a try. But I am not able to reproduce the problem.

It could be affected by another app because of the UI scripting.

If you change “delay 1” to “delay 0.5”, will it still work?

Thank you