DT3 Criar nova nota em Markdown


tell application id "DNtp"
  try
    if not (exists think window 1) then error "No window opened."
    
    -- Adquirir variáveis primárias
    set currentRecord to (content record of think window 1) -- Record ativo
    set theOrigin to name of currentRecord -- Nome do record ativo para backlink
    set theGroup to parent 1 of currentRecord -- Grupo do record ativo para local da nova nota
    
    -- Usar texto selecionado como nome
    try
      set invalidName to false
      set theName to selected text of think window 1
      if theName is "" then set invalidName to true
    on error
      set invalidName to true
    end try
    if invalidName then set theName to display name editor info "Inserir nome da nota" -- Em caso de erro, solicitar nome
    
    -- Solicitar texto da nota. Padrão é clipboard.
    set theContent to display name editor info "Inserir texto da nota" default answer the clipboard
    
    -- Inserir return link
    set theBLC to {"true", "false"}
    set theBL to choose from list theBLC with prompt "Inserir backlink?" default items {"true"}
    set theBLR to item 1 of theBL -- Resultado da escolha
    
    -- Texto da nota com return link
    if theBLR is "true" then
      set theMD to "# " & theName & return & return & "Keywords: " & theOrigin & return & return & theContent & return -- Reunir todo conteúdo da nota

    -- Texto da nota sem return link
    else if theBLR is "false" then
      set theMD to "# " & theName & return & return & "Keywords: " & return & return & theContent & return -- Reunir todo conteúdo da nota
    end if
    
    -- Criar novo record
    set theResult to create record with {name:theName, type:markdown, content:theMD} in theGroup
    
    -- Abrir novo record em uma aba na mesma janela
    open tab for record theResult in think window 1
    
    -- Msg de erro
  on error error_message number error_number
    if the error_number is not -128 then display alert "DEVONthink" message error_message as warning
  end try