Action
Markdown Footnote (^)
Create a Markdown footnote at the cursor location, prompting for a footnote marker name, inserting the marker and footnote, leaving the cursor ready to edit the footnote content at the end of the current paragraph.
Inspired by Dr. Drang’s similar AppleScript for BBEdit
Steps
-
script
// add footnote let f = () => { // prompt for marker name let p = new Prompt() p.title = "Insert Footnote" p.addTextField("marker", "Marker", "", { "placeholder": "marker name", "wantsFocus": true }) p.addButton("Insert", "insert", true) if (!p.show()) { return false } // validate that we have a marker let marker = p.fieldValues["marker"] if (marker.length == 0) { alert("Marker required") context.fail() return false } // get cursor info const [st,len] = editor.getSelectedRange() const [lnSt, lnLen] = editor.getSelectedLineRange() // setup values const m = `[^${marker}]` let fn = ` [^${marker}]: ` // insert marker and footnote const lnText = editor.getTextInRange(lnSt, lnLen) if (lnText.length > 0 && lnText.slice(-1) != "\n") { fn = "\n" + fn } editor.setTextInRange(lnSt+lnLen, 0, fn) editor.setTextInRange(st+len, 0, m) editor.setSelectedRange(lnSt+lnLen+m.length+fn.length-1, 0) editor.activate() return true } if (!f()) { context.cancel() }
Options
-
After Success Nothing Notification Error Log Level Error
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.