iOS Changelog

See also: Mac Changelog

21.0

What’s New

  • Undo for most commands in the draft list. Most actions and operations on the draft list are now undoable. After moving a draft to the trash, moving between inbox and archive, flagging, add-remove tags, etc., you can undo that operation. To access undo: Shake to Undo, use Command-Z on an external keyboard, or three-finger swipes left-right to undo/redo (iOS 13 only).
  • Advanced HTML Previews HTML Previews (via action step or script) now provide access to the JavaScript functions that can be called from scripts embedded in the preview document to pass values out for use in Drafts script steps, or to control flow (Cancel/Continue). Using these functions, you can build user-interfaces for actions using HTML forms, and gather and submit data or user selections for use in other script steps. Available functions:
    • Drafts.send(key, value): Send data out to the action context. These values will be available to subsequent scripts using the context.previewValues object. So, if you call Drafts.send("mydata", {"a": 1, "b": true}) in your preview, you can later retrieve those values in a script step using context.previewValues["mydata"].
    • Drafts.continue() and Drafts.cancel(): Equivalent to pressing the continue/cancel buttons in the preview UI. Allows automatic continuation of script with a form submission, for example, in the HTML document.
    • HTML Previews now offer an additional “Hide Interface” option that removes toolbars. Used only when the script features above are used to control flow.
    • More details in Advanced HTML Previews article
    • Example Actions:
      • HTML Preview Form Example: Bare bones example of how to display an HTML form in a preview and use values from it in a script.
      • HTML > Markdown: Uses the Turndown JavaScript library - which depends on the DOM and browser - within a preview to convert HTML content to Markdown.
  • Scripting Additions:
    • app.currentWorkspace property returns a Workspace object configured as the current drafts list is configured. Note this is not the same as a named workspace object, even if you have recently applied a workspace to the list. Calling update() on this retrieved copy will create a new workspace. It is recommended this be used primarily as a read-only version of the workspace to use to pass to another function, such as app.selectDraft(). Docs
    • app.isPro boolean to determine if the app is pro unlocked. Docs
    • app.selectDraft() can now optionally take a workspace parameter to set the initial search/filtering in the select window. Docs
    • draft.append(text, separator) and draft.prepend(text, separator) convenience functions on draft object. separator is optional and defaults to a line feed. Docs

Other Changes and Updates

  • Change: Refactor some of the code for the FileManager script object. The writeString and writeJSON methods no longer replace files, just update contents so the creation date is maintained and it interferes less with other apps using the same folders.
  • New: “Insert Text” action steps should register an undo point to allow that insertion to be undone atomically.
  • Fix: Clicking on a non-HTTP link in an HTML Preview should close the preview as if the cancel button were pressed.
  • Change: Improve keyboard navigation and selection in Drafts select view (used in Share extension and app.selectDraft()).
  • Fix: Calls to editor.setSelectedRange could inadvertently scroll to the end of the draft.
  • New: Context menu on drafts in the trash can.

20.1

  • New: Draft.queryByTitle(title) returns array of drafts matching the title. This exposes the logic used by internal links to find drafts with a specific title. Docs
  • New: Link definitions now support [[url:http://full.url.com/]] option to enable a full URL link external to drafts.
  • Change: Fine-tune the link matching regex a bit to avoid some nesting oddities.
  • Fix: Starting a line with a smart quote could temporarily align it to the right.
  • Fix: Editing an action from the results of a search in the action list should refresh the search to get the new version of the action.
  • Change: Locating draft by title should not be case-sensitive.
  • Fix: Crasher using down arrow on external keyboard past the last result in quick search.
  • Fix: TextExpander could not be enabled on iOS 12.
  • Change: Make “text” sort of draft list case-insensitive.

20.0

For additional details, sample actions utilizing new features and more, visit the online release notes at http://docs.getdrafts.com/docs/misc/changelog-ios

What’s New

  • Wiki-style markup for cross-linking between drafts, and executing basic Drafts commands. Useful for linking research notes, creating a table of content of other related drafts and more. When embedded in a draft, these become tappable links that open URLs as described below:
    • [[Title of Draft]] : Creates a link which will open a draft by title (first line) when clicked/tapped. Will create a draft with the title if it does not exist. This default syntax can also be expressed simply as [[d:Title of Draft]] if necessary to avoid conflicts. Title matching is loose to allow partial matches for text in the first line of draft, so [[My Title]] would also match a draft with the first line [[# My Title]].
    • [[u:UUID-OF-DRAFT]] : creates a link for a specific draft by UUID to allow exact linking. Will not create a draft, it must exist.
    • [[s:Search Term]] : creates a link which will open a quick search to the specified search
    • [[w:Workspace Name]] : creates a link which will load the named workspace
    • [[google:Search term]] : Opens a Google search for “Search term” when clicked/tapped.
    • [[wikipedia:Search term]] : Opens a Wikipedia page for “Search term” when clicked/tapped.
    • [[bear:Title of Bear Note]] : Opens a note titled “Title of Bear Note” in Bear, if it exists. This utilizes the Bear /open-note URL scheme.
    • These link markers are only available when using Markdown, MultiMarkdown or GitHub Markdown syntax definitions.
    • See Linking Drafts article for additional details.
    • The Examples: Cross-Linking action group also provides example actions to facilitate cross-linking drafts in a project.
  • “Typewriter Scrolling” option fixes the cursor position in the middle of the editor, moving the text as you type. Feature can be enabled/disabled in the “Aa” editor settings, or via contextual menu (tap and hold) on the “Aa” button. Details
  • Contextual (tap and hold) menu improvements:
    • Menus (tap and hold) on Inbox/Archive/Flagged/All folder buttons in the draft list to change sort options.
    • Updates to the navigation contextual menu, including “Last Draft”, “Next-previous draft in list” and access to recent drafts. Also the navigation menu is now attached to next/previous buttons at bottom of the screen.
    • Quick search button now has a contextual menu including “Find in Draft…” option.
    • Draft results in quick search now have contextual menus allowing opening in a new window and other common commands.
    • Contextual menu on arrange button, allows selection of initial arrange mode (block/line/sentence).
  • Scripting additions:
    • Most JavaScript objects now support the new keyword. So new Draft() now works in lieu of Draft.create() (old syntax still works).
    • Draft object additions and changes: Docs
    • title property now strictly returns the first line of draft
    • displayTitle property returns cleaned up the title as it would be displayed in the draft list, removing Markdown header characters, etc.
    • lines property returns content as an array of string split on line feeds.
    • editor.recentDrafts property returns an array of recent drafts loaded in the editor, with the most recent previous draft as the first index. Useful for navigation in actions. Docs
    • app.openInNewWindow(draft) script method. (iPad/Mac). Pretty self explainatory I think. Docs
    • Scripting access to editor navigation markers, as displayed in the Navigation window/menu. Allows for the creation of actions that navigate within the current document. Docs
    • editor.navigationMarkers: Array of navigation markers available in the document. Docs
    • editor.navigationMarkerAfter(location: number) and editor.navigationMarkerBefore(location: number) convenience methods to get the next/previous navigation markers relative to a location in the text.
    • Example actions:
      • Previous Marker: Move cursor to the previous marker (Header, etc.) in the draft.
      • Next Marker: Move cursor to the next marker (Header, etc.) in the draft
    • navigationMarkers are objects with the following properties:
      • location: start location of the range
      • length: length of the range
      • prefix: Identifying prefix for the marker (like H1, H2 in Markdown syntax) as defined by syntax
      • label: Identifying label for the marker.
      • level: indentation level of the marker.
    • FileManager has new getCreationDate(path), getModificationDate(path), and setCreationDate(path, date) and setModificationDate(path, date) functions. Docs
  • File action step has a new “Maintain dates” option which will set the creation/modification date of the newly created file to match those of the current draft. When the action creates a new file, creation and modification will be set - if it is appending/prepending, only modification date will be updated. Docs
  • Add the option to copy the title to the clipboard in locations where there are copy options.

Other Changes and Updates

  • Fix: Better routing of internal URLs in multiple windows.
  • Change: Add horizontal rule match to Markdown syntax definitions (***, —).
  • Fix: Editing templates in actions should default to smart quote/dashes disabled.
  • Fix: “Insert Text” action steps could convert quotes and dashes to “smart” ones even when the feature is disabled.
  • Fix: “Edit action in new window” contextual menu command not working properly.
  • Fix: Setting new range with editor.setSelectedRange might not always scroll that range to be visible.
  • Change: Tighten up display in some of the widgets.
  • New: Added shift-command-L “Toggle flag” keyboard shortcut to match Mac shortcut.
  • Change: Audited reserved keyboard shortcut list to include some additional shortcuts that create conflicts on Mac.
  • Fix: Changing current draft syntax via script would not re-render the text in the new syntax immediately.
  • Fix: Better handling of empty state in arrange mode.
  • Fix: Avoid case where text did not scroll to fully visibility when editing on the iPad in slideover.
  • Change: Some changes to the way swipe gestures interact with pinning.
  • Fix: Focus mode not selecting next draft after success properly
  • Change: Allow previews to open non-http links.
  • Fix: Submitting invalid data to FileManager.writeJSON could crash the app.
  • Change: Opening a draft via /open URL should restore the last selected position in the draft.
  • Fix: Tapping task marks should be undoable.
  • Change: Make {== highlight ==} CriticMarkup syntax in MultiMarkdown more prominent in some of the themes.
  • Fix: “Export” action step should only add .txt file extension if the filename template did not already provide an extension.
  • Change: Add command-L keyboard shortcut for “Find in List”

19.2

  • New: Editor settings have new tab key options, allowing you to select whether the tab key inserts a tab, two spaces or four spaces.
  • New: Workspaces can be shared via directory (still not visible in public site, but can be posted).
  • Fix: Trackpad/Magic Mouse swiping can be used like touch swiping to open drafts/actions lists.
  • Fix: Syntaxes (like TaskPaper) which apply strikethough styles, the style might not get cleared if edits (like removing @done from a task) no longer required it.
  • Fix: Problems reordering actions in the action list in groups with hidden actions.
  • Fix: Editor margins not updating after pinned side panels hidden/shown on iPad.
  • Fix: Issue with editor not reflecting changes to a draft made in a scripted action if the draft was loaded in the script via Draft.find instead of referenced as the global draft variable.
  • Fix: Hopefully a fix for an issue causing the app to not launch properly on iOS 13.4 for a few users.

19.1

  • New: Contextual (long press) menu on “Aa” appearance button for changing themes and syntax.
  • Change: Improved keyboard navigation in find panel.
  • Change: Custom mouse-trackpad pointer states for buttons with contextual menus.
  • Fix?: Possible fix for crash at start for a few users on 13.4, related to enabling pointer hover states.
  • Change: A few minor UI tweaks, like improved separators in drafts/actions lists.

19.0

What’s New

  • Quick Search: Global quick search feature to query for drafts, actions, workspaces and common commands in one place.
    • Accessed via search button at bottom of editor, by pulling down past the top of any draft in the editor, or with the shift-command-F keyboard shortcut.
    • /quickSearch?query= URL action to open directly to quick search.
    • app.showQuickSearch(initialQuery) scripting function.
    • Related change: Searches (in quick search and in draft list) now support tag matches in additional to full text searching, in addition to their support for "exact phrase" with quotes and -omission with hyphen
    • Quick Search feature requires iOS 13.1 or greater.
    • Documentation
  • Better mouse/trackpad hover state support for iPadOS 13.4 and up.
  • FileManager script object additions:
    • baseURL and basePath properties return full file:/// URL or POSIX path to the base directory used by the FileManager instance. This can be useful in cases where the full location of files is needed.
    • writeJSON(path, obj) and readJSON(path) convenience functions for saving and restoring JavaScript objects in files.
    • FileManager docs
  • app.showDraftInfo(draft?) function to display details of a draft. Docs
  • Additional Workspace script object properties:
    • loadActionListGroup (ActionGroup)
    • loadActionBarGroup (ActionGroup)
    • loadFolder (“inbox”, “archive”, “trash”, “flagged”)
    • Docs

Other Changes

  • Fix: Display issue in workspaces widget for unsubscribed users.
  • Change: Better visibility of empty states
  • Fix: “After success” filing options on actions could cause the next draft to be selected in other windows than the one triggering the action on iPad.
  • Fix: Bug affected restoring tag filter “all/any” status in workspaces saved in state restoration sessions.
  • Change: Improve identification of HTML tags in Markdown syntax.
  • Misc. other reliability and performance improvements.

18.1

What’s New

  • New alternate app icon choices. Tap the app icon in Aa editor settings screen for new neon, six colors and other app icon options.
  • Several dozen new action/workspace icon options. Edit actions and tap the icon to see the options.

Other Changes

  • Change: The /workspace URL action can now accept the name=Default argument to clear filters and load the default workspace.
  • Change: Adjusted the gray app icons to work to blend into the dock on iOS 13, one for dark mode, one for light mode.
  • Fix: Task marks in TaskPaper syntax should only be recognized at beginning of lines.
  • Fix: Remember setting if the action bar has been set to be hidden temporarily.
  • Fix: Initial positioning of action bar group selector could be wrong on app cold launch.
  • Fix: Fix for header styling regression in “Markdown” syntax.
  • Change: Refactor and simplify a bunch of code around keyboard visibility.
  • Fix: Top-Bottom navigation options in navigation contextual menu would not always work.
  • Fix: Case where keyboard could be displayed erroneously when returning to app with a view other than the editor open.

18.0

What’s New

  • Tappable tasks in TaskPaper syntax. Tapping the list mark at the beginning of a TaskPaper task line will now add-remove the @done status for that line in drafts using TaskPaper syntax.
  • TaskPaper example action group. If you are interested in using TaskPaper, we have created an example TaskPaper action group designed for use in the Action Bar with many common TaskPaper commands, to add tasks, assign due/start dates to selected lines and archive done items. Visit the Action Directory to download the TaskPaper action group
  • Lots of new iOS 13 contextual menus. Tap and hold (or force touch where available) on top toolbar items in the editor, drafts in the draft list, actions in the action list. Some options were already available, but we have dramatically enhanced these contextual menus to allow easy access to a variety of common functions - like creating drafts with syntax/tags, moving tags - even running actions without opening the action list. Take the time to tap and hold on things to see the new options.
  • Arrange mode now has compact/expanded mode toggle. Compact mode truncates longer items to allow more to be displayed when working with longer blocks/lines. Compact mode also disabled inline editing of elements.

Other Changes and Updates

  • Fix: Addressed most known crashing issues.
  • Fix: We have updated our fork of the Evernote SDK to remove dependencies on some deprecated iOS APIs, and to again support authentication for users who login to Evernote using their Google account.
  • Change: Audit of how/when draft version history entries are automatically created. Should be more reliable capturing some state changes and avoiding duplicate versions.
  • Fix: Targeting specific OneNote notebook might not work in some cases with OneNote action steps.
  • Fix: Issue with reordering action groups not working properly with certain data sets.
  • Fix: Possible issue reordering workspaces with certain data sets.
  • Change: Periodically reset sync log if logging is enabled to prevent excessive log sizes.
  • Fix: Workaround alignment issue for strings beginning line with a smart quote.
  • Change: Refactor some initialization code to try to better troubleshoot a couple of minor crashing issues.
  • Change: Remove “Create Draft with Clipboard” shortcut action. This can be handled better with new “Create Draft” intent.
  • Change: Enable raw URLs in preview windows to be tappable.
  • Fix: Background colors applied by syntax highlighting (as inline code) might not get cleared immediately if the text changed it ways that should disable that background color.
  • Fix: Avoid state where action list gets left open after creating a new draft when returning to the app.
  • Lots of other minor tweaks and fixes.

17.2

  • New: Workspace sharing. Workspaces can now be shared via URL or export file which can be installed in other instances of Drafts. This can be used to backup workspaces, or to share configured workspaces with other Drafts users. More about Workspaces
  • New: Reminder script object has new dueDateIncludesTime boolean property. If true, the time components of the dueDate will be ignored allow Reminders to be set to be due on a date without assigning a time. Reminder object docs
  • Fix: Clipping issue printing from HTML previews if images are included.
  • Change: Enable focus mode on additional iPad draft windows opened by drag and drop. User intent is to keep that draft active if opening in another window and focus mode prevents the “new draft after” timeout from overriding that intent.
  • Change: Remember tag drawer expanded state across cold starts of the app.
  • Change: Updates to default action groups created on first installation. Note that current versions of the default actions groups can be reinstalled from the directory at any time (details).
  • Change: Updates to document type icons for exported files.
  • Fix: Enabling and disabling link mode could leave the action bar disabled.
  • Change: Better logging in Dropbox actions. Action log will now contain an entry with the path to any successfully created/updated files in Dropbox.
  • Change: OneNote actions will now prompt for the selection of a notebook if a notebook name is not specified and the default notebook cannot be determined. Many OneNote accounts do not seem to have a default notebook, so this allows the action to continue to function without modification for such accounts. Note OneNote action steps can be edited to specify a notebook to avoid prompts.
  • Misc. improvements and minor fixes for several sync and useability issues.

17.0

Editor Improvements

  • Highlight insertion point option to draw different background for current cursor position.
  • Editor setting to limit max characters per line. Works along with margin settings to determine a maximum line length. Great for use with full screen mode to prevent excessively long lines.
  • New configuration options for visibility of action bar, toolbar and iPad keyboard shortcut bar allowing them to be hidden when editing, or optionally hidden only when external keyboard is connected.
  • For more details, see editor settings docs

Other Additions

  • App Icon menu options: The menu displayed when long pressing the app icon on the home screen can now be configured to display recent drafts (the previous behavior), common commands, or workspaces. This setting now defaults to common commands, and can be changed in Settings.
  • Two new monochrome editor themes. Available to select in Aa editor settings.
  • Draft select view updated to allow filtering by workspace. This view is used in the share extension, iMessages app, and app.selectDraft() script interface.
  • Medium action step type to post to Medium.com. Docs
  • Medium script object to support scripting Medium API. Docs
  • Script steps now have a new “Allow asynchronous execution” option. When enabled, the action will wait for a call to script.complete() to know if a script step is finished. This allows use of async/await, Promises and other async function calls…but your script must call script.complete() of the action will timeout and fail after 60 seconds.
  • CallbackURL objects have a read-only url property to debug the URL which will be used with the configured parameters.

Other Fixes and Changes

  • Fix: Filemanager.readString would not return undefined properly when file was not found.
  • Fix: Inaccurate action directory URLs used for opening actions posted to the directory.
  • Fix: “New draft after” timeout not always working on cold start of the app.
  • Fix: Issue with action bar visibility on cold start.
  • Fix: Issue with incorrect syntax highlighting styles when editing drafts with different syntax options in multiple windows on iPadOS.
  • Misc. additional fixes and stability improvements.

16.1

  • New: Print action steps can now specify page margins (in points). This allows margins less than the default 72pt (1 inch) setting.
  • Change: Switch to custom link identifier in Link mode to fix a few issues with URL highlighting with data detectors. Among other things, message: links now work properly.
  • Fix: Improve usability of share extension on small phones.
  • Change: Tighten authorization scopes requested by Gmail actions based to avoid Google verification issue.

16.0

Actions for Mac!

The Mac version of Drafts now has full support for actions. Most of the updates in this iOS release are part of supporting those updates on the Mac. But also expect big launch time improvements and bugs fixes! Details below.

New Items

  • 20-30% initial launch speed improvement for cold starts of the app.
  • More control over action and action group visibility:
    • Control whether action groups are available to be selected in the action list and action bar - separately by platform. Visibility can be completely disabled as well to have utility action groups which are only visible in the action manager.
    • Control visibility of individual actions within groups - allowing some actions to included only when the group is loaded in the list and not the action bar, for example, or to hide actions by platform - if, for example, an app the action requires is only available on iOS and you do not wish to see the action on Mac.
  • Enable and disable individual actions steps within an action by platform. Allows a single action to have different steps on different platforms to account for platform behavior differences when appropriate/necessary.
  • Action list filtering setting and support for new action visibility settings (in “…” Options).
  • Set visibility in lists/keyboard for individual actions within action groups.
  • File import features, configured in settings, to automatically import text files in the “Inbox” folder at /iCloud Drive/Drafts/Inbox. Similar to existing Reminders import feature. Automatic Import documentation
  • Support “tagged” filtering in tag filters and workspaces. The inverse of the existing “untagged” special value - will match any draft with one or more tags assigned. Filtering docs
  • Include draft syntax in (i) draft detail summary
  • “Disable action bar” option in Aa editor settings allowing the row above the keyboard to be completely disabled.
  • “Change Syntax” operation added to draft list options allow easy changes of syntax for multiple selected drafts.
  • New Shortcuts Actions:
    • Get Draft by UUID shortcut action to allow retrieval of a specific Draft by UUID. Docs
    • Markdown to HTML shortcut action provides access to Drafts’ built-in MultiMarkdown and GitHub markdown processors. Docs

Other Fixes and Changes

  • Fix: Sync fixes address a number of issues, particularly ones that have arisen on the latest OS releases.
  • Fix: Using Siri directly to create notes on Apple Watch (e.g. “Hey Siri, create a note using Drafts”) would not work properly in many cases.
  • Change: Streamlining pass through syntax highlighting code. Improves performance and resolves (hopefully) a few little oddities. Please test with large documents, and generally report any syntax highlighting and editing weirdness/regressions.
  • Fix: Red dotted underline of misspelled words should no longer disappear after typing additional text.
  • Change: Deprecate app.loadKeyboardActionGroup - replaced with app.loadActionBarGroup (old method still works, the later is just preferred now).
  • Fix: Possible fix for some scrolling weirdness moving between multiple open windows on iPad.
  • Fix: Workaround issue where system is processing smart dashes ever when they are not enabled on existing text. Triggered primarily when tapping task marks.
  • Change: Updating some labelling to call the row above the keyboard the “action bar” for consistency with Mac version.
  • Fix: Issue preventing the “60 minutes” draft creation timeout setting from working properly.
  • Fix: Crash using HTTP script object with invalid data parameters.
  • Fix: Allow editor scrolling to bounce vertically even when content does not exceed visible space.
  • Change: When calling Workspace.create(), the initial state of the workspace will be based on the current Default workspace.
  • Fix: Startup timing issue that could result in one of the side panels remaining open after the new draft timeout was fired to create a new draft.
  • Fix: Scrolling issue sometimes affecting actions which change text in the editor.
  • Change: Change “automatic” theme label to “system” when running on iOS 13.
  • Change: In Markdown syntaxes, continue markdown quotes like lists are continued.

15.2

  • New: Create and Update Draft shortcuts can now set syntax definition for the draft. Also, shortcut actions which return drafts will contain syntax information.
  • Fix: Some tweaks to gestures which open the side panels to avoid conflicts with some of the new iOS 13 text selection gestures.
  • Fix: Case where using a Drafts URL could disable the new draft timeout the next time you return to Drafts.
  • Fix: Some tweaks to background refresh on watchOS.
  • Fix: Better syntax highlighting for [id][] style reference links in Markdown syntaxes.
  • New: MultiMarkdown syntax now supports embedded LaTeX markup with \\[ \\], \\( \\) or $$ style delimiters.

15.1

  • Change: Apple Watch now requires watchOS 5.0 or greater.
  • New: File Draft shortcut action which can update folder, tags and flagged status of draft without affecting content. Details
  • Fix: Create Draft shortcut was not allowing selection of the new draft as a return value. The draft created is now available as a variable for use in subsequent actions in the shortcut.
  • Fix: Better handling of dark mode switching on iOS 12.
  • Fix: Landscape editing on iPhone did not take notch into account properly.
  • Change: “Backup Now” option for drafts now prompts for destination, rather than automatically saving to iCloud Drive.
  • Fix: Several minor layout issues.

15.1.3

  • Fix: Todoist closeTask and reopenTask methods failing.
  • Fix: Avoid cases where quick capture extension could hang for some.
  • Change: “Create Drafts with Dictation” shortcut now has selectable list of available locales.

15.0

Along with this update, we will also be launching new User Guide and Scripting Reference websites, dramatically improving the available Drafts support documentation. Please visit these sites for more information and, if you haven’t yet, create an account at the Drafts Community to keep up with the latest news, tips and more.

Interface and Functional Improvements

  • Rewritten main user interface and gesture interface
    • General improvements to responsive of gestures.
    • Support for pinning both drafts and actions on larger screens, easier access to pinning, remembering pin states.
    • Lots of little improvements to icons, the keyboard switcher, and other user interface elements throughout the app.
  • Support for multiple windows (iPadOS 13 only).
    • Dragging draft from the draft list to a new window, or just opening new Drafts instances dragging the app icon to split views and slide overs.
    • Edit actions in separate window.
    • Live Markdown previews in a separate window. Learn more
  • Automatic dark and light mode switching (iOS 13 only). Drafts already supported dark mode, but now if “automatic” switching it enabled, it will be done based on current system mode on iOS 13.
  • Contextual menus where appropriate throughout the app (iOS 13 only)
    • Contextual menus appear when you long press some items in Drafts. For example:
      • Press and hold on a draft in the draft list or action in the action list for options.
      • The workspaces and action group buttons near the bottom of those lists, respectively. Tap and hold for a quick switching menu.
  • New Quick Capture action extension. Functions similarly to the existing Drafts share extension, but requires no user interaction - just captures the shared content and returns. Details
  • Live Markdown Previews (iPadOS 13 only). A live preview can be opened in a separate window to allow a draft to be edited and preview viewed simultaneously. This is similar to preview functionality available in the Mac version of Drafts.
  • Support for new iOS 13 font selection panels
  • Dictation interface now has an optional silence timeout. Useful for those who trigger dictation hands-free via Siri and want the app to automatically save the draft after they stop dictation for a period of time. Can be configured to 10, 30 or 60 seconds.
  • Refreshing of icons and a variety of minor improvements throughout the app.

Shortcuts

  • Extensive support for new features of Shortcuts on iOS/iPadOS 13. A full set of shortcuts, with parameter support, allow you to create, update, append and prepend to drafts, query drafts, run actions, and more. Use of advanced Shortcuts automation requires a pro subscription. For details about available actions, see the automation documentation. In almost all cases it is better to use these Shortcuts over the URL-based ones that ship with previous versions of Shortcuts. Keep an eye on the the forums over the coming weeks as we plan to publish some example Shortcuts that take advantage of these new capabilities.

Workspaces & Draft List

  • Default Workspace. This is a special workspace that stores the preferred default settings for the draft list, and is applied when filters are cleared. This way, if you have workspaces that applies sort or display settings, clearing the list filters will also reset those back to your preferred default settings. The default workspace can be configured like any other workspace in the workspace manager. Workspaces are a Pro feature, but the default workspace is available in the free version. Details
  • Separate Workspace switcher. List options “…” are just for list options now. Workspaces can be selected using the workspace switcher at the bottom of the draft list. Tap and hold (on iOS 13) for quick switcher menu.
  • “Show Date” display option for drafts list and workspaces. Hide/show the date in the list. Along with other display settings, this allows everything but the draft title to be removed, for the minimalists out there.

Other Changes and Updates

  • Fix: Update Todoist integrations to use new API endpoints. The old ones were discontinued in early September cause some Todoist integrations in Drafts to fail.
  • New: Keyboard shortcut support in the Share extension (cmd-return to save, cmd-T for tag entry, etc.)
  • Change: If a selection is present in the editor, the character / word counts now include a selection character count as well.
  • Change: All default HTML preview templates have been updated with CSS-based support for dark mode. If you have existing preview actions, update them by editing the action and using the “reset” button to update the template - or reinstall the latest versions from the action directory. Updated versions of the preview actions:
  • New: HTML.escape(string) and HTML.unescape(string) javascript functions to encode and decode HTML entities in a string. Details
  • New: Event script object now support url property. Details
  • Change: Long press on link in link mode will now fall through to options menu (with Preview on iOS 13).
  • Change: Regular expression find will now treat escaped whitespace characters (e.g. \n, \t) in replacement text as those characters, rather than expecting the whitespace itself. More consistent with how regex replacements are done in other editors.
  • Change: Find and replace screen should remember last state of “Show options”.
  • Fix: Markdown syntax definitions did not handle reference link properly.
  • Fix: Markdown syntaxes incorrectly identifying indented ordered list items as indented code.
  • Fix: Improve markdown header recognition in syntax highlighting definitions to allow # in header text.
  • Fix: Navigating drafts list with keyboard shortcuts should scroll the list if necessary.
  • Fix: editor.load() method should touch the accessed date of the draft.
  • Change: Allow “new draft after” timeout to be set to “Never” to allow it to be disabled separately from focus mode.
  • New: Select > Operations > Export now supports text file option, which merges draft contents into one text file.
  • Fix: Issue where API calls in actions could fail improperly if the OAuth token expired and needed to be refreshed.
  • Change: Support for iOS 11 has been removed.

14.2

  • Fix: Issue with link activation in link mode.

14.1

  • Fix: Rewrote link mode (it was broken in last release). Should behave the same, other than links now being underlined.
  • Fix: Avoid race condition attempting to trigger new TextExpander refresh URL from an action inside Drafts. Looking for a quick way to refresh your snippets on iOS? Try the Refresh TextExpander example action.
  • Fix: Fix performance and excessive logging issue in sync.

14.0

  • New: Updates to Workspaces and standard Today widget designs.
  • New: drafts5://refresh_text_expander URL to trigger TextExpander refresh. More information in URL scheme documentation.
  • Fix: Issue for first time installs not getting a keyboard row assigned.
  • Fix: Fix for case where keyboard row could appear blank on initial launch.
  • Fix: Workaround a couple of minor issues specific to as yet unreleased software.
  • Fix: Issue with improper handling of expired OAuth tokens in some cases. Notably affecting Gmail and Outlook mail steps which could report successfully sending mail when they did not when not used for a while.
  • Fix: Sync timing issue that could cause some changes (typically archiving or trashing of a draft) to not get synced to other devices properly.

13.0

  • New: Arrange mode now supports arranging by sentence in addition to block and line. This feature requires iOS 12.
  • Change: Disable auto-list capitalization until I can find another approach which is compatible with third party keyboards - which get stuck in captilization mode.
  • Fix: Hopefully a workaround for issue where display of text, particularly in code blocks, turns to garbage characters with certain specific text and font combinations.
  • Fix: Displayed modified date not updated in draft list when changes made to a draft.
  • Change: Alpha sort tags when displayed in draft list.

12.1

  • Fix: Issue with inability to use swipe gestures when returning to app in specific cases.
  • New: Update to MultiMarkdown 6.4.0 (was on 6.3.2).
  • Change: Add custom drag and drop handler to support direct drop of Goodnotes handwriting recognition images dragged to a draft on iPad.

12.0

What’s New

  • New: HTML Preview action steps now have a share button. Allows sharing of the raw HTML generated by the preview, but also the ability to copy as rich text and print.
  • New: HTML Preview step editing now has import and export options to load templates from files, and “Reset” button replacing buttons which set the default styles.
  • New: Badge notification settings now allow badge count to be based on a selected workspace’s inbox only. This allow greater control over which drafts should be considered unprocessed for purposes of the badge count. If a workspace is selected, other filtering options are disabled.
  • New: New “default tags” setting for Share extension to create initial tag assignments for share extension captures. These default tag assignments can be overriden in the share extension, but will be assigned by default in any new share. Set the default tags in Settings > Extensions > Share extension.
  • New: Watch app “default tag” setting can now take a comma-separated list of default tags, not just one.
  • New: Display device (iPad, Mac, iPhone) along with created, modified dates in draft detail. Allows referencing whether a draft was created or last modified on iPhone, iPad or Mac.
  • New: Track the device action is executed on (iPad, iPhone, etc) and display in action log.
  • New: Version script object to access a draft’s version history. Can be useful for comparing or exporting past versions.
    • Access version history of draft via draft.versions.
    • Script creation of a new version with draft.saveVersion()
    • Version object reference

Other Changes and Fixes

  • Fix: Resolve occasional issue where launching to search from the Today widget would fail.
  • Fix: Better handling of sync changes which trash/delete drafts which are loaded in the editor.
  • Change: Add anylist:, googlechrome: URL schemes to whitelist for link mode support.

11.0 - Gmail, Outlook integration and more

This release brings support for sending email directly with Gmail and Outlook.com based email accounts via new action steps and scripting interfaces. These new integrations allow single-tap actions which send mail in the background through your email accounts on these services – useful for quick send actions to recipients and groups you send to often, and also for integration with services that allow you to email text into the service, but require those email come “From” a known address (like Asana, OneNote). Because of the direct integration, messages will come “From” your own address and be in your “Sent” folder on these services.

For more general information about using email with Drafts, see our Sending Mail with Drafts guide

  • New: Gmail Action Step
    • Send mail using Gmail accounts (via Gmail API)
    • Sends in background, so must be fully configured with recipients, etc.
    • Uses OAuth to authenticate to Google accounts. Use credential identifier for multiple accounts.
  • New: GmailMessage script object
    • Send email using Gmail accounts (via Gmail API) in script
    • Enables things like looping over addresses to send emails individually to separate “To” recipients, etc.
    • GmailMessage reference
  • New: Outlook Action Step
    • Send mail using Outlook.com accounts (via Microsoft Graph API)
    • Sends in background, so must be fully configured with recipients, etc.
    • Enables things like looping over addresses to send emails individually to separate “To” recipients, etc.
    • Uses OAuth to authenticate to Microsoft accounts. Should work with Personal/Work-School accounts, as long as they are Outlook.com integrated. Use credential identifier for multiple accounts.
  • New: OutlookMessage script object

Other Additions, Changes and Fixes

  • New: MustacheTemplate script object.
    • Process mustache style templates in script.
    • Can take template string or be created pointing to directory of .mustache template files in iCloud Drive
    • You also must contruct and pass the data object to use for values.
    • Not all scriptable objects are exposed to templates, but Draft objects are.
    • Docs: https://reference.getdrafts.com/objects/MustacheTemplate.html
  • Fix: Case where a URL-based action which leaves Drafts could result in “after success” archive/trash happening but not getting properly synced to other devices.
  • Change: Add error messages alerts for invalid states in a number of action steps. There are for invalid states that prevent a step from executing. Throwing an alert error help save a trip to the action log in these configuration error cases - like a script that will not compile.
  • Change: If HTML passed to HTML Prevew has a title element, use that title as the window title.
  • Fix: Better focus on text field returning to app after the new draft creation timeout is passed.
  • Change: Add warning trying to use URL actions for multiple selected drafts via Select > Operations in the draft list.
  • Fix: Filter button over draft list not properly themed when automatic theme switching occured while draft list was visible.
  • Fix: FileManager.moveItem(src, dest, overwrite) would not successfully overwrite an existing item even if overwrite was true.
  • Fix: Oops, the fix in the last release for appending to Dropbox did not fix it for prepending. Fixed now.

New Version Numbering: Moving forward, each feature release of Drafts will get a major version number. Minor version numbers will still be used for bug fix and minor releases. If you look back, it’s the same thing we’ve been doing, but we’re dropping the “5”.

5.10

What’s New

  • OneNote action step. Similar to Evernote action step. Allows creating, appending, prepending to pages in Microsoft’s OneNote service.
  • New: Visibility of action groups in the action list can now be configured like visibility as a keyboard. If the group is not “available in list”, it will not be displayed in group select sidebar or quick access tabs in action list. If a group is not available in either the list or keyboard, it can still be accessed/edited in “Manage” view.
  • New: “New in Workspace…” options in the new draft options menu that opens when you tap and hold the “+” button.
  • New: HTMLPreview script object to show HTML preview, has one method
  • New: Share script object to support scripting of system share sheet. Includes class methods:
    • Share.shareAsText(text) -> boolean
    • Share.shareAsURL(url) -> boolean
    • Share.shareAsFile(filename, text) -> boolean
    • Share Reference

Other Changes and Fixes

  • Change: Some improvements to error messages from failed Dropbox actions.
  • Change: Better HTML output for fenced code block when using GitHub Markdown option.
  • Fix: Separators not displayed properly when using Operations > Run Action from draft list.
  • Change: Updates default action sets.

5.9

  • New: setAllSort(sortBy, sortDescending, sortFlaggedToTop) method on Workspace script object.
  • New: Fenced code blocks (```) will be highlighted in monospace font in MultiMarkdown and GitHub Markdown syntaxes. Also posted two new action examples which make good additions to a Markdown keyboard if you work with inline or code blocks:
    • Inline code: Wraps selection in back-ticks as inline code, or inserts back-tick if no selection.
    • Code Block: Wraps selection in triple back-ticks as code block, or inserts triple back-tick if no selection.
  • Fix: Sync sometime would not fail to properly update other devices when a draft was move archived/trashed.

5.8

  • Fix: Address several minor sync issues.
  • Fix: Issue with audio configuration that could cause long dictation sessions from failing to reset and continue properly.
  • New: Whitelist ms-outlook URL scheme to work in link mode.
  • New: Link to Mac version information in Settings.

5.7

  • New: Three new monochrome alternate app icon options for Pro subscribers. As with existing options, these can be selected from the “Aa” appearance settings screen. These icons may suit your tastes in any case, but were designed to blend into the background when combined with pure black wallpapers as follows:
    • Pure black background. When used on the home screen with a black wallpaper, the icon seems to blend into the background and show only the app logo.
    • Dark gray background. Matches the gray of the iPhone dock when a pure black wallpaper is behind it.
    • Light gray background. Matches the gray of the iPad dock when a pure black wallpaper is behind it.
  • New: Dictation using Drafts custom dictation interface now uses AirPods (or other bluetooth headsets) to listen when they are connected. This makes it easier to walkabout dictating while your iPhone sit on a desk or in your pocket.
  • Change: Editor in share extension should syntax highlight and respond to editor settings for syntax selected for use for the Share extension in Settings.
  • Change: When Safari View Controller is used in-app to open links, respect currently selected theme for the navigation bars.
  • New: app.currentThemeMode scripting property. This is a read-only property which returns “dark” or “light”. This allows you to branch on whether dark or light mode active if automatic theme switching is active, which the existing themeMode property did not.
  • Change: Updates to some of the default action groups created on first time installation.
  • Change: Refactoring of several minor operations in sync process to shake out a threading issue and work better with the upcoming Mac version of Drafts.
  • Change: Some improvements to sync logging.
  • New: add accord url scheme to whitelist to support using it in link mode.
  • Fix: Rollback change to editor script object to avoid iOS issue adding smart quotes using setSelectedText method.
  • Change: Better behavior of infograph watch complication when displaying inbox count is disabled.

5.6.2

  • Fix: Fixes for weird text version rollback issue while typing which appeared in previous release.
  • Change: Improvements to query tokenizer to better support searches for punctuation and single character searches.
  • Fix: Improve TaskPaper project syntax recognition and project navigation markers.
  • Change: When Safari View Controller is used in-app to open links, respect currently selected theme.

5.6.1

  • Fix: Address sync issue with draft loaded on multiple devices.
  • Fix: VoiceOver actions issue in draft list introduced in last release.

5.6.0

Workspace improvements

Workspaces learned a few new tricks in this release:

  • Workspaces can now optionally load action groups in the action list and extended keyboard when applied. This is useful when a workspace is configured for working draft of a particular syntax, or project, and you want the related actions handy.
  • Workspaces can now optionally switch the selected list tab (inbox, flagged, etc.) when applied. Saves some taps if a workspace is used to browse the archive primarily or similar.
  • More details on new settings in Workspace documentation

Other updates and changes

  • New: Return of the “All” tab in the draft list. This tab shows both inbox and archived drafts at the same time - which is sometimes handy when searching.
  • New: Handy quick-add URL scheme to allow easy creation of Drafts actions which call Shortcuts app shortcuts. Allows replication of the “Add to Drafts” option Workflow offered, along with a few extra options. For details and a sample “Add to Drafts” shortcut, see:
  • New: FileManager script object methods to support listing directory contents, moving and copying files:
    • listContents(path)
    • createDirectory(folder, path)
    • moveItem(fromPath, toPath, overwrite)
    • copyItem(fromPath, toPath, overwrite)
    • See reference for details
  • New: Prompts now support a default button which appears fixed at bottom with cancel button.
    • In prompt action step, if only one button is used, it will be made the default button.
    • In scripted prompts, the addButton method can now take an additional isDefault boolean parameter. So, p.addButton("Name", "value", true) would make that button the default button fixed at the bottom of the prompt. Only one button can be the default. If a scripted prompt only adds one button, it will be assumed to be the default button.
    • The default button will be the one to respond to CMD-Return external keyboard shortcut.
  • New: Template markdown blocks (%% %%) can now take a format type specifier to override default Markdown options. Useful when a specific action needs to render using a different Markdown engine.
    • %%text%% will render text with default Markdown options as always
    • %%githubmarkdown|text%% will force use of GitHub Markdown.
    • %%multimarkdown|text%% will force use of MultiMarkdown
  • New: Base64.encode(string) and Base64.decode(string) methods for handling Base64 in scripts.
  • New: Add coloring for Critic Markup highlights in MultiMarkdown syntax.

Other Fixes

  • Change: General pass of minor UI improvements
  • Fix: Address issue where actions which altered text in the editor being called repeatedly and quickly - typically via repeating keyboard shortcut or quickly tapping extended keyboard row button - could cause the draft to revert to a previous version when sync changes were processed in the background.
  • Fix: Workaround VoiceOver issue preventing access to row actions (edit, duplicate, etc.) in the action list.
  • Fix: Inline code blocks in Markdown should be exclusive ranges to avoid accidental confusion with other markup.
  • Fix: Be sure draft state is saved before showing (i) detail screen.
  • Change: Update some of the actions configured on initial installation to include (if installed) actions for Agenda, Good Task and a few other apps (these examples are also in the Action Directory).
  • New: Add news link in resources reached in Settings.
  • Change: Refactoring in URL schemes and routing to better share code with Mac and avoid duplication.
  • Fix: File type registration issue for action group export files which made it difficult to re-import them backups of action groups from the Files app.
  • Change: Sort trash by modified, not accessed.
  • Fix: Add OneDrive action step summary in action editor.

5.5.1

  • New: Arrange mode now has additional swipe actions to move a line to the top or bottom.
  • New: When searching action list, include separators displaying action group name in results.
  • New: Import file function (Tap and hold +, “Import File”) now recognizes drafts export, backups and action files and offers to individually import contents.
  • Fix: Adjustments to swipe gestures to avoid accidentally triggering the action list when scrolling.
  • Fix: Properly theme clear button and placeholder text in search fields and a number of fields in settings and action configurations.
  • Change: Updates document icons for associated file types.
  • Change: Adjust launch image slightly.
  • Change: Tapping on tag in recent tag suggestions should not reorder the list.
  • Fix: Using [[line|n..]] range could omit last line. This was a regression in the previous release.
  • Fix: Auto-list completion now participates correctly in the undo history.
  • Fix: List auto-completion now enabled for MultiMarkdown syntax.

5.5

In addition to some non-obvious changes preparing for the upcoming release of Drafts for Mac (learn more at: https://getdrafts.com/mac/beta), this release brings the following updates:

Markdown Updates

Drafts 5.5 brings significant new customizations for advanced Markdown users, letting you tailor the Markdown used in Drafts to specific needs. These customizations are in two parts.

  • MultiMarkdown & GitHub Markdown Syntax Highlighting: In addition to the default “Markdown” syntax highlighting option, there are new “MultiMarkdown” and “GitHub Markdown” syntax options which add highlight for some of the extensions specific to those flavors of Markdown. The default “Markdown” syntax has been simplified to more closely match the original Markdown specification as well. If you prefer one of these advanced highlighting options, you may wish to select it as your default for new drafts. More details
  • Markdown Processor Options: Markdown options have been added in setting to control the Markdown rendering used in templates and previews. It is now possible to choose between MultiMarkdown and GitHub Markdown when rendering, as well as control many advanced options provided by these renderers. More details

Workspace, List Options Additions

The draft list, and Workspaces, can now optionally sort flagged drafts to the top of the list in the inbox and archive - and the option to omit flagged drafts that has been available for the inbox is now also available for the archive. The Workspace script object has also been extended to support these features. More details in list options and Workspaces documentation.

Other Additions, Changes and Fixes in 5.5

  • New: [[line]] template tag now has support for negative indexes in ranges which count back from last line, like [[line|-1]] returns last line draft, [[line|-2..-1]] returns last two lines. Templates and tags documentation
  • Fix: Margin sizing on iPad accidently broken in previous release.
  • Change: Merge operation should remember last selected destination (archive, trash, etc.)
  • New: Add additional step summaries for more types of action steps when viewing steps in the action editor.
  • Change: Add “keepit” URL scheme to whitelist to work in link mode.
  • Fix: Better handling of keyboard accessory positioning to avoid issue with Chinese keyboards on X style phones.

5.4.4

  • Change: Ready for the latest iPad screen sizes.
  • Fix: Fix a couple of obscure watch-phone communication issues.
  • New: Periodic backup settings now have frequency option allowing choice of daily, weekly or month backup schedule.
  • Change: Change trash can sweep to keep 30 days instead of only 7.
  • Fix: Crasher in template processing when importing template from file with [[template|path.txt]] when the template was very short.
  • Fix: Some layout issues on SE size phones.
  • Fix: If only omitted tags were in the draft list tag filter, the filter status did not display properly.

5.4.3

General Additions

  • Searching drafts in the draft list now supports “quoted strings” and -negated strings, Google style. e.g. You can search for "red dress" -blue and only drafts containing the full phrase red dress and NOT containing blue will be returned.
  • Global ⇧-⌘-F search drafts external keyboard shortcut.
  • “Merge” operation now has option on whether to place originals in archive, trash or leave them where they are.
  • “Rename Tag” and “Delete Tag” operations in drafts list operations to globally rename or remove a tag across all drafts.
  • [[template|path.txt]] template tag to load a template from a file in the /Drafts/Library/Templates folder in iCloud Drive. Docs

Scripting Additions

  • Workspace scripting object now has full support for creation and editing of workspaces, as well as the ability to query for drafts contained in the workspace. Docs
  • require(path); global script function which imports content of script in the /Drafts/Library/Scripts folder in iCloud Drive. Useful to reuse script libraries across actions, or when developing new scripts in an external editor. Docs
  • Additional parameters to Draft.query function to omit tags, and specify sort order. Docs

Other fixes and changes

  • Fix: Some improvement to pushing data to Apple Watch more actively.
  • Fix: Work on some cases where the search field would not display correctly.
  • Fix: Taskpaper indentation on wrapped lines not working properly.
  • Fix: Case where action with Callback URL step might not archive after success properly when run from a keyboard key.

5.4.2

  • Change: Work to more aggressively restore Watch-Phone sessions if they get stuck and are not passing information.
  • Fix: Crash with some WebDAV step configurations.
  • Fix: Case where creating a draft using Siri could create duplicate drafts.
  • Fix: VoiceOver actions not working on action rows in the action list.
  • Fix: Some entity encoding issues in XML created by WordPress/XML-RPC requests.
  • Fix: Undo causing scrolling on longer drafts.
  • Change: Remove “Run Workflow” action step as option for new steps (replaced by Run Shortcut).
  • Fix: Spotlight indexing a bit too aggressive reindexing some content.
  • Fix: Do not donate Siri “View” intents for blank drafts.

5.4.1

  • New: Update Watch app to support new Series 4 complication types.
  • Change: Move Apple Watch app setting inside Drafts Settings (no longer in Watch app on phone).
  • New: Add setting to “Show inbox count” on complications. Disable to only show icons for most complication types.
  • Fix: Some cases where WordPress API calls failed could get reported as success, depending on how the server returned the error.
  • Fix: Missing placeholder text in dark mode for Mail/Messages action steps.

5.4

Note: An additional 5.4.1 release is planned for release before September 24, 2018 to fully support new Apple Watch Series 4 and iPhone XS, etc., models.

Siri & Shortcuts Support (iOS 12 Required)

  • “Run Shortcut” action step. Pass text to the Shortcuts app and trigger a Shortcut by name with a single tap. This is the same functionality available in the “Run Workflow” action step, updated for the new Shortcuts app. Details
  • Siri Intents:
    • “Capture clipboard” Siri shortcut. This shortcut allows capture of the current clipboard content to a new draft in Drafts without launching the app.
    • “View draft” Siri Shortcut. Allows creation of a shortcut which displays the content of a specific draft in the Siri interface - with the ability to tap and open that draft in the app. Great for previewing lists, or regularly view reference notes.
  • “Add to Siri” buttons to create voice shortcuts to functions in Drafts directly in the app in the following locations (iOS 12 only):
    • Add shortcut to open a specific draft in the (i) detail view.
    • Add shortcut to load a workspace on Workspace edit screen.
    • Add shortcut to run an action without input text from the action edit screen.
  • Drafts creates shortcuts as the app is used for a variety of other tasks, such as using the Drafts dictation interface. As you use Drafts, these become available in iOS Settings > Siri & Search and can be attached to custom Voice Shortcuts. A common example would be to create a “Dictate” voice shortcut that launches Drafts directly to dictation of a new draft.
  • Watch the community site for more information and guides to using Shortcuts with Drafts in the coming weeks.

WordPress Support

  • WordPress action step. Allows posting to WordPress blogs with a variety of basic options. Details
  • WordPress script object allows access to the entire WordPress XML-RPC API to provide advanced features, both reading and writing data for posts, taxonomy information and more.
  • Example actions and details in our “Using Drafts with Wordpress” integration guide.:

Expanded Google Drive support for Google Docs and PDFs

  • Google Drive action step enhancements allow creation of Google Docs and PDFs on Google Drive:
    • Template output of a Google Drive action step can be selected between Text, Markdown & HTML. This is similar to setting on Evernote steps and determines how the output of the content template will be treated.
    • Upload type allows you select the type of result file. If “Text”, well, you’ll get a text file. This is the only type that supports append/prepend. If “Google Doc” or “PDF”, Google drive will convert the uploaded file to those formats. When combined with HTML template output, you can create fully-styled documents and PDFs.
    • Additional details and sample actions

Full Dropbox API Scripting

  • Dropbox script object exposes entire Dropbox API. New rpcRequest, contentDownloadRequest and contentUploadRequest methods wrap and expose the entire Dropbox API. This is an advanced feature and requires direct API knowledge, but it is possible now to create share links, list files, folders, query files and version, create Paper documents, etc. Anything you can do with the API, essentially. Details in the Scripting Reference.
  • Example Actions:

Other New Features in 5.4

  • Separators in action groups. Separators act like headings and allow for visual organization of actions in a large action group or keyboard rows. Each has a full text name for the action list, and optional shorter key label for display in the keyboard row. Create them using the “+” button in the action list. Manage them just like an action - drag and drop to move the around, etc.
  • Light Gray theme.
  • XMLRPC.request(url, methodName, params) script method to interface with XML-RPC based services. Takes care of creation and decoding of XML needed to interact such services. Suitable far wrapping XML-RPC based APIs like the MetaWeblog API or others.
  • HTTP script object now supports parameters setting to specific URL query args as a javascript object.
  • Draft detail (i) screen now has button to copy UUID or draft text to clipboard, in addition to existing copy link option.
  • More summary information in Draft detail (i) screen.
  • addLabel(name, label, options) method on Prompt scripting object allows adding text labels, captions and headings in a prompt.
  • strftime(date, format) global script method. Returns formatted date string.
  • Toggle device sleep off and on via script. app.isIdleDisabled and app.setIdleDisabled(bool) script methods to allow disabling of system sleep timer to keep the screen from dimming. Useful for times when you do not want to have to keep waking up your phone when referencing a draft. Example Toggle System Sleep action is available. See reference for more information
  • Ability to clear all version history for draft in Details (i) > Versions, or individually delete specific versions (swipe to left).
  • Markdown list auto-complete will now try to enable capitalization for first word of new list line if Sentence auto-capitalization is enabled.

Other Fixes and Changes in 5.4

  • Change: A few updates to default action groups. These will only take effect for new installations - but these groups can all be reinstalled from the Action Directory
  • Change: Make “edit” the default swipe option for Workspaces in Workspace list.
  • Fix: Problem with login credentials for Work/School OneDrive accounts expiring after 1 hour.
  • Change: Display confirmation dialog when clearing the recent tag suggestion list.
  • Change: Prompts using single select fields now display more like radio buttons than checkboxes.
  • Change: Add “Manage Subscriptions” button in settings for Pro users.
  • Change: Throw error alert if /get URL scheme does not provide x-success callback to return content.
  • Fix: Badge on iPhone not always updated after receiving new information from Watch app until Drafts as launched.
  • Fix: Scripted callback URL call should fail immediately and not wait for timeout to fail if URL could not be opened.
  • Fix: Regression in CallbackURL scripting that prevented it from properly waiting for response.
  • Fix: Certain actions which update draft content, then use prompts or leave the app might lose the update to the draft if run from a keyboard row instead of action list.
  • Fix: Issue where tags assigned to the current editor draft using Select > Operations in list would not get updated.
  • Fix: Be less aggressive about dismissing side panels when app is returned to foreground.
  • Fix: Disabled action steps run when nested in “Include Action” step.
  • Fix: Prevent odd-ball case where sync could temporarily stall in certain network conditions.
  • Fix: Better enforcement of max. size limit for an individual draft (1 MB, ~900,000 characters) to prevent hitting sync issues.
  • Change: Merge operation now remembers last used separator.
  • Fix: Single select prompt options not appearing properly.
  • Fix: Race condition that could cause temporary stall of sync.
  • Fix: Pipe character could disable inline code highlight in Markdown syntax.
  • Change: It is now possible to escape template tags with a backslash to prevent them from be processed. e.g. \[[title]] will come out as [[title]] not get the title of the draft inserted.
  • Change: Make some VoiceOver improvements in Arrange mode.

5.3.1

  • Fix: Undo functions might not work properly in some situations.
  • Fix: Importing action from Action Directory created in beta version of Drafts could fail with “Import Error”.
  • Fix: Issue where changes made to current draft in the editor made via Select > Operations or in action could get ignored.
  • Fix: Reminder import with notes could add unnecessary text.
  • Fix: Provide defaults for addPicker if the caller does not.

5.3.0

New in 5.3

  • TODOIST SUPPORT
    • For full details, see our new Todoist integration guide.
    • Todoist action step. Adds task to Todoist inbox, which optional configuration to specify reminder and comment. Details
    • Todoist script object access any methods on the Todoist REST API. Allow creation and updating and reading of tasks, projects, comments, labels and more. See reference for details
  • Three new alternate app icons options for Pro subscribers, accessed via “Aa” appearance settings.
  • Prompt improvements
    • addPicker method on Prompt object to add iOS picker style control for selecting values. Details in reference
    • Prompt addButton method can now take optional second value parameter. When provided, the the buttonPressed property will be returned as the value instead of the button name. Value can be any data type. Useful for associating non-string values with a prompt button, or simply alternate string values.
    • Prompt addTextField and addTextView options parameter can now accept a wantsFocus boolean value to hint that the field should be focused for editing when the prompt is displayed. Should only be set on one field in the prompt.
    • Prompts with only one button will treat that one button as the default action and continue with CMD-Return on external keyboard as if that button was pressed.
  • ReminderList object now has getAllReminderLists() and find(title) methods to match those on Calendar object.
  • Learning resources page in Settings for easy access to community site, screencasts, etc.

Other Fixes and Changes in 5.3

  • Change: Allow higher paragraph spacing settings to work better with larger font sizes.
  • Change: More aggressively attempt to re-process Watch transactions which may have failed. Should avoid cases where some drafts created on the watch were stuck an not transferred to the phone.
  • Change: Tighten tolerances of side-panel display gestures to cancel if the swipe moves too much up or down to avoid accidental swipes.
  • Fix: Changing draft list filters should scroll to top of list.
  • New: Add several small animation and visual tweaks.
  • Fix: Insert text step after a script step that called draft.update() might not get freshest draft content.
  • Change: Reset tag entry field when tag is selected in tag suggestions.
  • New: Add uuid parameter to x-success callbacks for the /create URL scheme (also supports retParam to specify parameter name to use).
  • Fix: Embedded iframes in HTML preview action steps were triggering redirects.
  • Change: Refactored all handling of “after success” settings on actions to avoid a few edge cases where the move to archive/trash might not get saved properly.
  • Change: General pass of tweaks to prompts to better support Dynamic text and display better.
  • Change: Tweaks to Markdown bold/italic syntax definitions.
  • Fix: Subproject syntax highlighting in Taskpaper.
  • Change: Text views will also be focused if provided in a prompt.
  • Fix: Issue where “after success” settings on an action might not take properly when in focus mode.
  • Fix: Deleting an action group in manage view should not leave edit mode.

5.2.1

  • New: Navigate window (access via down arrow at top right) now also offers navigation to recent drafts. Defaults to displaying recent drafts if current draft does not have any identifiable navigation markers.
  • New: Sprinkle in more user activity registrations.
  • Fix: Clean up a couple of crashers with unexpected arguments in scripting methods.
  • Fix: Avoid deadlock running OneDrive append action with a subfolder path configured.
  • Fix: If the URL provided to Drafts in an x-success parameter did not already have any parameters, return parameters might not get appended correctly.
  • Fix: Matching projects in Taskpaper syntax should be less greedy matching : in tasks.
  • Fix: Resuming dictation after editing while paused could lose edits.
  • Fix: Spotlight in-app search continuation was not configured properly.
  • Fix: Better handling of more than one watch connected to an iPhone.
  • Fix: Request refresh of calendar store data before script methods that read from calendars.
  • Fix: Crash deleting multiple action log entries.
  • Fix: Crash requesting product information from App Store in poor network conditions.

5.2.0

New in 5.2

  • Actions now have an “Assign tags” after success setting. In addition to moving a draft to the archive or trash, after success can now also assign tags - great for marking or filing away drafts automatically when processing them. For example, set the Tweet action to automatically assign the “tweet” tag when run on a draft and you can later easily filter for tweets. Details
  • In-draft navigation to jump between key marks in longer drafts. Accessed via the navigate button (down arrow icon) in the upper right (or ⌘-\ shortcut). Currently navigation supports jumping to headers in a Markdown draft, projects in a Taskpaper draft, and functions and “// #region Name” region comments in Javascript drafts. Details
  • Scripting additions to support switching workspaces and action groups:
    • Allows for action setup to load a workspace, and simultaneously switch selected action list and keyboard row.
    • Inquiry about and toggle visibility of drafts and action lists:
      • app.isDraftListVisible, app.showDraftList(), app.hideDraftList()
      • app.isActionListVisible, app.showActionList(), app.hideActionList()
    • Load action groups and apply workspaces in script:
      • app.loadActionGroup(group), app.loadKeyboardActionGroup(group)
      • app.applyWorkspace(workspace)
    • Also Workspace and ActionGroup objects to allow lookup of groups and workspaces.
    • More details on scripting reference site
  • Additional URL Actions
    • /loadActionGroup?name=GROUP-NAME - loads action group in action list
    • /loadKeyboardActionGroup?name=GROUP-NAME - loads action group in extended keyboard.
    • Details in URL scheme documentation
  • “List in Reminders” action step now has a template. Useful to create one for sending only [[selection]] or passing in values from script or prompt. Details

Other Fixes and Changes in 5.2

  • Fix (Watch): Improvements to communication between Watch and Phone to address some issues with stuck transfers.
  • Fix (Watch): Watch app auto-capture from complication did not work if app was already running and open to a view other than the main capture view.
  • Fix: Some tweaks to Taskpaper syntax.
  • Change: Do not dismiss any presented views when the new draft creation timeout is fired to avoid loosing unsaved work in actions, etc.
  • Fix: Moving through action list with up-down arrow keys should scroll items into view when necessary.
  • Fix: URL action step should ignore “Open in Drafts” option if the URL generated is a non-http(s) URL.
  • Fix: Opening current list options without making changes could result it “current list options” erroneously displayed in list filter.
  • Fix: “Insert text” action step now plays nicer with other subsequent action steps.
  • Fix: Address a case where sync could get stalled in odd timing situations where sync was requested more than once quickly.
  • Fix: [[draft_open_url]] tag was not working.
  • Change: Work on some general improvements to syntax highlighting to avoid a few glitches in rendering.
  • Change: Several improvements to Markdown syntax, including highlighting of horizontal rules and indented code blocks.
  • New: Add keyboard shortcut preview when managing action groups actions.
  • Change: Some under-the-hood improvements to Action Directory sharing to support additional features on the web site.

5.1.0

  • New action steps
    • Event action step returns for creating calendar events with default system card. Docs and sample action.
    • Box action step to create, append, prepend to files in Box.com service. Docs and Examples
    • Open in... action step to support old-style document interaction export. Docs and Examples
  • Other new bits
    • Workspaces and tag filters now support “All - Any” mode selection to control whether drafts in the filter should match all the selected tags (and), or any of them (or). This setting will be saved with Workspaces.
    • Action steps in an action can now be disabled and duplicated (swipe on step in action editing to select). Handy addition for work-in-progress step modifications and testing variants of scripts.
    • Recent action log history (not specific to individual drafts) is now accessible from history button at top of action list. Makes access to recently performed actions quicker. Great for troubleshooting errors as well.
    • Action log entries can now be deleted (Swipe right).
    • CMD-Return external keyboard shortcut to toggle editor focus.
    • Support traditional table edit mode for better VoiceOver experience.
  • Scripting changes
    • Better scripting of Calendars and Events, including the ability to read calendar events. Details:
      • Calendar.default property which returns the system default calendar for new events.
      • Calendar.find(title) method looks up a calendar by name.
      • Calendar.getAllCalendars(); returns array of all known calendars on the device.
      • events(startDate, endDate); method to query the contents of a calendar. Returns an array of Event objects. This can be used to import calendar events into a drafts, among other things.
      • event.edit() method. Displays a Event object in the system event editing card. Allows scripting to create modify the default values for the event (start/end, add alarms, etc.) then display the event for modification/editing and adding to the calendar.
      • More detail in scripting reference
    • Box script object to read and write files to Box.com service. Docs
    • editor.isActive bool property to determine if editor is currently in edit mode.
  • Other fixes and updates
    • Fix: Restore last selection when opening a draft.
    • Fix: Better restore of text selections when undo/redo are used.
    • Fix: Improve frequency of updates to app badge.
    • Fix: Evernote action setup to use “Text” output not properly encoding some HTML entities.
    • Fix: Omit drafts in the trash from queries unless the trash folder is explicitly queried.
    • Fix: Various improvements for dynamic text.
    • Change: Better error reporting when file imports fail for some reason.
    • Fix: Workaround dark theme tinting of the system file import view.
    • Fix: Do not allow external keyboard shortcuts to interfere with arrow keys while editing search fields.

5.0.5

  • New: Full access to Twitter API via Twitter object request method. Drafts will handle the OAuth, and you can make any valid calls against the Twitter API. Details on methods in scripting documentation. Same actions, like a Tweet Storm example, in the Twitter integration guide.
  • Fix: Refactor animation to avoid oddball case where the side panels could get stuck when the cursor was in certain positions with certain content in a draft.
  • Fix: Threading issue scripting twitter updateStatus calls.
  • New: Inbox/Flagged/Archive/Trash tabs now support drag and drop. Draft drafts from list onto them to move them (or assign flags).

5.0.4

  • New: iMessages app is back and better than ever. With tag filtering, it makes it really easy to use Drafts as a snippet library to insert text into Messages. More information
  • New: Inbox/Flagged/Archive/Trash tabs in draft list now support drag and drop. Drag drafts from list onto them to move them (or assign flags).
  • New: “Inbox default swipe action” setting in “…” options of draft list. Allow changing of the default behavior of a full swipe on a draft in the inbox between “Archive” and “Trash”. Default is “Archive”.
  • New: External keyboard shortcuts for cancel (cmd-.) and continue (cmd-return) options in HTML Previews.
  • New: Improvements to drafts selection screen, which is used in iMessages, the Share extension and the app.selectDraft() method. Can now be filtered by a tag and archive can be browsed. Sometime down the road it will get better filtering, but this will do for now.
  • New: Twitter action now logs URL for tweet in action log when successful in the action log. - New: Twitter script object with updateStatus(string) method to post a tweet, returns bool success value. Details in scripting reference. Details
  • New: editor.deactivate(); script method to resign focus - opposite of existing editor.activate(); method

  • Change: Update MultiMarkdown from 6.0 to 6.3.2 to incorporate latest fixes/updates. Includes a few bugs rendering tables w/o opening closing pipe characters and with maintaining indents in code blocks.
  • Change: Improve margin calculations to better optimize readable line lengths, especially on the big iPads.
  • Change: Use Safari View Controller in-app to open http links in Link mode.
  • Change: Improved refresh of processed updates when viewing a draft on Apple Watch.
  • Change: Improve visibility in Workspaces Today widget.
  • Change: A few tweaks to Evernote login process to try to fix login for some in China - this may or may not help users seeing these issues, please report back.
  • Change: Some improvements for migrating actions from Drafts 4.

  • Fix: editor.undo(), editor.redo() were not working properly.
  • Fix: Maintain position of quick access tabs (both Workspace and Action Groups) after selecting new tab.
  • Fix: Text could go behind keyboard row on iPhone X with external keyboard connected. - Fix: Crash accessing App Store with poor network connectivity.
  • Fix: Clean up a few crashes calling Javascript methods is bad arguments.
  • Fix: Do not allow edit of name in current list options workspace.
  • Fix: VoiceOver issues with tag selection and editing.

5.0.3

  • New: Better drag and drop in action list. Actions can now be dragged between groups by switching group tabs, and also dropped on a different group in the group list to move them.
  • Fix: Automatic theme change would loose cursor position and not update keyboard appearance.
  • Fix: Rework implementation of “Insert text” to be faster and work better with TextExpander snippets.
  • Fix: Better updating of app badge when background sync completes or Siri creates draft.
  • Fix: [[selection]] tag not return correct result when selection was at very end of draft.
  • Fix: If a query was left in the draft list search field, it would get restored on a cold start of the app, but the not show in the search text in the text box making you wonder where all your drafts went.
  • Fix: Changes to tags made in scripting might not save if the action had after success setting.
  • Fix: Share extension might not immediately unlock pro features when subscription is initiated.
  • Fix: Clear button in recent tag suggestions would not stay in scrollable view.
  • Fix: Make sure custom template tags generated in an action are cleared when action is finished running.
  • Fix: Remove some overhead from scripts which manipulate editor selections to prevent some race conditions with the selection when actions are run quickly, repeatedly, like from a keyboard shortcut.
  • Fix: Case where bad tag filter could get applied to draft list after launching to search from widget.
  • Fix: Changing syntax highlighting for draft without making any other changes to draft did not save change.
  • Fix: Add “after success” label in group editing.
  • Fix: Scripting theme change should require Pro subscription.

5.0.2

  • Initial public release.