Additional resources - Automatically capture and annotate items: DEVONthink helper, Smart rule scripts, JS/Markdown helper

Based on @chrillek’s feedback (thanks!) I’ve updated the JS code to do the following:

  • Create links to Item, Obsidian, Annotation and URL
  • List tags
  • Create a H1 header for the item
  • Style via:: and excerpt:: inline tags
  • Link blockquotes (i.e. highlights from PDFs) as DT links with a search parameter

document.addEventListener('DOMContentLoaded', () => {
	const metadata = {};
	metadata["title"] = document.querySelector('title').innerText;
	["date", "url", "itemurl", "annotation", "path", "tags"].forEach( tag => {
		const node = document.querySelector(`meta[name="${tag}"]`)
		if (node)  metadata[tag] = node.content;
	})

	if (metadata["itemurl"]) {

		body = document.querySelector("body").innerHTML;
		info = `<p><a href="${metadata['itemurl']}">Item</a> | <a href="obsidian://open?vault=Notes&file=${encodeURIComponent(metadata['title'])}.md">Obsidian</a> | <a href="kmtrigger://macro=Open&value=${encodeURIComponent('/Users/mdbraber/Library/Mobile Documents/com~apple~CloudDocs/Content/')+metadata["path"]}">File</a>`
		if (metadata["url"])  info = info + ` | <a href="${metadata['url']}">URL</a>`
		if (metadata["tags"]) info = info + `<br/>Tags: <i>${metadata['tags']}</i>`
		info = info + `</p><h1>${metadata['title']}</h1>`

		document.querySelector("body").innerHTML = info + "\n" + body;

		elExcerpt = document.evaluate("//p[contains(.,'excerpt::')]", document, null, XPathResult.ANY_TYPE, null);
		excerpt = elExcerpt.iterateNext();

		elVia = document.evaluate("//p[contains(.,'via::')]", document, null, XPathResult.ANY_TYPE, null);
		via = elVia.iterateNext();

		if(excerpt) { excerpt.innerHTML = `<b>${excerpt.innerHTML.substr(10)}</b>`; }

		if(via) {
            via.innerHTML = `<i>${via.innerHTML.substr(6)}</i><br/><br/><hr/>`;
        } else {
            excerpt.innerHTML += "<br/><br/><hr/>";
        }

		document.querySelectorAll('blockquote > p').forEach(quote => {
			quote.innerHTML = `<a href="${metadata["itemurl"]}?search=${encodeURIComponent(quote.innerText)}">${quote.innerText}</a>`;
		});

	}
});