DT3 Copiar link para linha ou palavra do documento

Utilizando os URLs internos do DEVONthink (x-devonthink://) é possível adicionar um comando ao link direcionando o programa para buscar por uma palavra específica ou por uma linha do documento. Trata-se de uma função bastante conveniente. É possível, por exemplo, criar um link direto para uma linha da edição Bekker do texto de Aristóteles. 

Para isso basta adicionar ?search= ou ?line= ao link seguido pela referência.

Atenção: espaços em branco devem sempre aparecer codificados como %20 em URLs (+Script para codificar espaços em branco). 

Exemplo


1366a23 μετὰ δὲ ταῦτα λέγωμεν περὶ ἀρετῆς καὶ κακίας καὶ
1366a24 καλοῦ καὶ αἰσχροῦ· οὗτοι γὰρ σκοποὶ τῷ ἐπαινοῦντι καὶ ψέ–
1366a25 γοντι· συμβήσεται γὰρ ἅμα περὶ τούτων λέγοντας κἀκεῖνα
1366a26 δηλοῦν ἐξ ὧν ποιοί τινες ὑποληφθησόμεθα κατὰ τὸ ἦθος,
1366a27 ἥπερ ἦν δευτέρα πίστις· ἐκ τῶν αὐτῶν γὰρ ἡμᾶς τε καὶ ἄλλον
1366a28 ἀξιόπιστον δυνησόμεθα ποιεῖν πρὸς ἀρετήν. ἐπεὶ δὲ συμβαίνει
1366a29 καὶ χωρὶς σπουδῆς καὶ μετὰ σπουδῆς ἐπαινεῖν πολλάκις οὐ μόνον
1366a30 ἄνθρωπον ἢ θεὸν ἀλλὰ καὶ ἄψυχα καὶ τῶν ἄλλων ζῴων τὸ τυχόν,
1366a31 τὸν αὐτὸν τρόπον καὶ περὶ τούτων ληπτέον τὰς προτάσεις,
1366a32 ὥστε ὅσον παραδείγματος χάριν εἴπωμεν καὶ περὶ τούτων.

Nesse texto, cujo link seria x-devonthink://UUID, poderíamos acrescentar ?search=1366a29 ao link para que o programa nos leve diretamente a essa referência (x-devonthink://UUID?search=1366a29) ou ?line= para ir diretamente à linha do documento (x-devonthink://UUID?line=20). É bom lembrar que se o documento for editado o conteúdo da linha pode ter mudado. 

Script para criar o link para a palavra


tell application id "DNtp"
  try
    if not (exists think window 1) then error "No window is open."
    if not (exists content record) then error "Please open a document."
                
    set theRecord to (content record of think window 1)
    set theWord to the selected text of think window 1 as string
    set theURL to get the reference URL of theRecord & "?search=" & theWord
    set the clipboard to theURL
                
    end try    
end tell

Script para criar link para a linha


tell application id "DNtp"
  try
   if not (exists think window 1) then error "No window is open."
   if not (exists content record) then error "Please open a document."
                
   set theRecord to (content record of think window 1)
   set theLine to the current line of think window 1 as string
   set theURL to the reference URL of theRecord
                
   if theLine is not equal to "" then