iOS Changelog Archive (pre-v27)
Changelog Archive
See Changelog for current releases
26.3
- IMPORTANT NOTE: This is the last update which will support iOS 12.
- Fix: Missing visibility of workspace directory sharing options.
- Fix: Address some performance issues
26.2
- New: Workspaces have options to apply themes when loaded. Similar to options to load action groups, this allows the active theme in Drafts to be changed when a workspace is applied.
- New: Workspaces have options to apply themes when loaded. Similar to options to load action groups, this allows the active theme in Drafts to be changed when a workspace is applied.
- Fix: Tweak code block patterns in MultiMarkown and GitHub syntaxes to better support use of a background color in themes.
- Change: Rename “balance while typing” to “Auto-match”, and disable by default. This is the faeture that matches (), [], {}, and “” automatically. It was causing some confusion, and was poorly labelled.
- Fix: Plain text syntax returning a blank name in scripting.
- Fix: Auto-match (nee balance while typing) could interfere with text replacement by Services.
- Fix: Restore missing punctuation action icons.
- Fix: Some wonky behaviors with “hide action bar” and “hide keyboard bar” preferences.
26.1
- Better indication of selected themes.
- Fix: iOS 12 only crash selecting fonts.
- Change: A few updates to the
indentationPatterns
entries in syntax definitions to allow scope to be specified properly to make sure the indent is calculated using the right font metrics. See docs for details. - Fix: Tag field placeholder not themed correctly on cold start.
- Fix: Custom syntaxes not available for selection in Shortcuts.
- Fix: Custom syntaxes and themes not properly visible in some menus.
26.0
Custom Syntaxes and Themes
Drafts now supports custom editor syntaxes and themes. With this feature, Drafts can be extended to support more different markup languages than the Markdown, TaskPaper, and other syntaxes which come built-in. It also means you can install or create custom theme definitions that control the appearance of the app.
Want a slight variant of Markdown which highlights specific keywords? Want custom navigation capabilities? Different types of tappable tasks? These are all possible with custom syntaxes. You can install or make themes to tweaks colors in the editor (or the whole interface on iOS). Keep an eye on the syntaxes and themes sections of the directory. We’ve posted some starter example syntaxes for Fountain and AsciiDoc, and I’m sure we’ll be seeing more examples from beta testers coming soon.
Be sure to visit the syntaxes and themes documentation in the User Guide to learn more details about using and even creating your own syntaxes and themes!
Note that the selection and application of syntaxes and themes are scriptable, as well. Visit the Scripting Reference for information on the new Syntax
and Theme
objects if you are interested in automating these features.
Drafts Directory Updates
In addition to actions and workspaces, the Drafts Directory is also now a repository for custom syntaxes and themes. We look forward to seeing many new, ready-to-use examples from the community in the coming weeks.
The Directory has learned a few new tricks as well. User sharing and updating actions to the Directory can now include update notes explaining what has changed, and these will be displayed on the site.
Even better, you can now update, download, and install new versions of items installed from the Directory right in Drafts. Because this feature requires a link back to the source, it is currently only possible to find and install updates for items installed after the rollout of this feature. The update process is manual, but we plan to build on this with automatic update features in the future. About updating.
Balance While Typing
While typing, Drafts will automatically match parenthesis ()
, braces {}
, brackets []
and quotes ""
. So typing (
, will also insert the )
, etc. If you have a text selection when typing one of these pairs, the selection will be wrapped. This feature is enabled by default, but can be turned off in editor preferences on a per-syntax basis.
Other Changes and Updates
- New: Action Group versions. We rolled out the ability to save backup versions of actions in v22. This same feature has been extended to action groups, allowing you to make restorable backup versions of your action groups.
- New: New pink tint color option for actions and workspaces.
- Fix: Actions which require network access, run via URL/Shortcut, on cold start of the app could sometimes fail with a network error even though network was available.
- Change: Better VoiceOver announcements for action completion messages.
- Change: Update TextExpander SDK.
- Change: Better display of items found in Spotlight search.
- Fix: Selecting dictation from keyboard bar with external keyboard connected on iPad not working properly.
- Fix: Hide B/I/U options in share extension text selection menu because they don’t do anything.
- Fix: When creating reminders with Reminders and List in Reminders action steps, only set the “note” value if it will contain content. This avoids a bug in the Reminder’s watch app that displays tasks with a blank note as having a note (Watch only, this does not happen on iOS).
- Fix: Action steps disabled on current platform could run when that action is used via an “Include Action” step.
- Fix: Allow folder tab and action group assignments to be set on default workspace.
- Fix: Crash passing invalid values to
strftime
- Fix: Paragraph number alignment could get off with paragraph spacing values assigned.
- Change: Remove “launch in focus mode” preference. Session will launch with focus mode in its last active state.
- Fix: Obscure crasher with scripted prompts with multiple pickers with different numbers of components.
25.1
- Performance and memory use improvements.
- New: Print action step adds option to set font size for plain text format printing.
- New: Convenience methods on
Todoist
scripgin object to work with Sections.getSections() -> [object]
getProjectSections(projectID: Int) -> [object]
createSection(options: object) -> object
getSection(sectionID: Int) -> object
updateSection(sectionID: Int, options: object) -> object
- See
Todoist
scripting reference for details
- Fix: Scroll position placed wrong when returning to app without creating a new draft.
- Fix: Line height not always set properly in a new draft until a character was typed. Mostly visible when “highlight insertion point” is enabled.
- New:
HTTPResponse
script object now hasheaders
object property exposing any HTTP headers returned with the response. SeeHTTPResponse
scripting reference for details - New: Option to export sync log to Files app for users who do not use the default Mail app.
25.0
What’s New
- It is now possible to use
Tab
andShift-Tab
as keyboard shortcuts assigned to actions. This change allows the default “Indent” and “Outdent” actions (which ship in “Editing” group) to be assigned these shortcuts to allow Drafts to behave more like a word processor style editor, if that’s your thing, rather than the command-[ and command-] defaults. - Action list option (in “…” menu) to display keyboard shortcuts in action list. Useful to help remember to use the keyboard shortcuts you have configured for actions (these can be changed in action edit screen).
- Allow wiki-style links with headings, like
[[Title of Draft/Markdown Heading]]
, to navigate to the heading within the same draft. - Simple List syntax now supports
{ }
{-}
{x}
three-state curly braces tasks as well as the standard[ ]
[x]
square bracket tasks.
Other Changes and Updates
- Add warning if an action group is reaching the maximum size limit (1 MB) for a single action group’s data.
- Rewrite of list completion, moving it to syntax definitions to allow better control. For example, TaskPaper list completion will now only complete for “- “ lines, not “* “ lines, which are not part of that format.
- Encoding agreement issue with remote loaded content in HTML previews
editor.preferredTabString
property returns the current selected tab insertion type for the editor in the form of a string. Useful for making actions respect that setting when inserting indents, etc. - will return either “\t”, “ “, or “ “.
24.2
What’s New
- Icon keyword searching. When selecting icons for workspaces and actions, search is available to help locate useful icons by keyword.
- Web capture template used in share extension now supports
[[date]]
and[[time]]
tags to allow incorporation of timestamps when capturing from Safari. ActionGroup
script object hasinstallURL
[string] property to access the shareable URL to import the group. Docs/getCurrentDraft
URL action. Takes no parameters, callsx-success
URL with parameters for the uuid, url, title, content of current draft. Docscontext.addSuccessParameter(key, value)
method to assign query arg parameters to be included with thex-success
callback of/runAction
URLs. Docs
Other Changes and Update
- Fix: Better refresh of widgets after drafts are created/altered outside of the app (via extensions and shortcuts).
- Fix: On a cold start of app some URLs might not get routed properly.
- Fix: Complication issue on watchOS versions less than 7.
- Fix: Display issue with buttons in find window on iOS 12.
- Fix: Address several crashers.
24.1
- Change: Based on popular demand, changed “New” to “New with Clipboard” option in long press on app icon.
- Fix: HTML Previews could incorrectly display multi-byte characters if using the new local assets options introduced in version 24.
- Change: Ability to bases app icon badge on flagged instead of inbox folder of the selected workspace.
24.0
What’s New
Support for FlickType keyboard on Apple Watch.
- FlickType is a convenient on-screen keyboard for use on Apple Watch.
- Requires watchOS 7 and the FlickType Apple Watch app.
- Use any of the capture methods in the Drafts watch app that offer options - indicated by the pen icon- either to capture from the main screen, or when appending/prepending to existing inbox drafts. Options will include “FlickType Keyboard” option, which allows you to go to the FlickType app, enter text, and send it back to Drafts.
- For details about using FlickType with Drafts, visit our Apple Watch article
- For details about FlickType, visit https://www.flicktype.com
HTML Previews can now reference local assets
Both HTML Preview action steps, and Preview windows can now generate HTML that includes references to images, javascript, stylesheets, or other assets via relative paths. To use, create a folder at iCloud Drive/Drafts/Library/Previews
, and place images, stylesheets, and other resources in this folder and its subfolders. HTML previews can reference those assets via relative paths, e.g. <img src="image.jpg">
. If the /Library/Previews
does not exist, previews will continue to function as they always have. If it does exist, the HTML will be written to a temporary file in that directory and loaded so that the directory can be used to access other assets. More details in the Previews documentation
Other Updates
- Change: Simplify app icon badge settings and make sure the default correctly align with default workspace settings.
- Fix: When an action was run from search, it did not respect the default “After Success” setting of its action group.
- Fix: Recent draft with an excessively long first line could create performance problems displaying the navigation menu.
- Fix: When triggering a share sheet from a script, if you selected a share extension, then canceled, it could result in a crash.
- Fix: Wiki-style title links starting with escaped forward slashes failed to find the proper draft.
- Fix: Address crasher on watchOS versions less than 7.
- New: “Purge Transactions” maintenance task in Settings > iCloud Sync. Not generally necessary, but this task cleans out sync transaction log entries which have been processed, which may improve performance (not much, if any) in long-lived installation.
- New: Allow search in Action Selection window (used by “Run Action” operation in draft list).
23.0
Draft Widget
“Draft” widget type to display the content of a specific draft. This is in addition to Grid and List widget types released in the previous update. After adding the widget, edit options to select draft and display options. Tapping the widget opens the selected draft. Useful for keeping a scratchpad draft, or similar. More on Widgets.
Advanced Search Queries
Drafts searches support powerful new query options. These options apply to anywhere drafts are searched, including the draft list, workspaces quick search, and scripted queries:
- Not new, but searches can use quotation marks to find “exact phrases”, and prefix a term with a hyphen to omit it, like
-blue
. - Support for
title:
andtag:
prefixes to force a query to only look for a term in draft titles or tags. May be combined with exact phrase searching, sotitle:"My Draft"
will look for only drafts with the string “My Draft” in the first line. AND
andOR
operator support.AND
is not needed, as it is assumed as the operator at any space between terms. Examples:blue OR green
would find any drafts with either “blue” or “green” in the text.blue red OR green
would find drafts with both “blue” and “red” or only “green”.
- Regular expression terms. Marked by wrapping a term in forward slashes (
/term/
). Examples (not necessarily useful ones):/.*ABC.*/
would find any drafts with “ABC” in the text./\d+/
would find any drafts that start with a number./.*\[\[.*\]\].*/
would find drafts with[[wiki-style]]
links
More details on available search options can be found in the User Guide.
Other Updates
- Small but useful change: When searching the action list, groups appear as separators. It is now possible to tap on those group separators to load the group in the list.
- List widget now has “All” as a folder selection option.
- List widget supports small widget size, displaying only the one top draft in the workspace.
- “Open App” command option for widgets which just opens Drafts like tapping the app icon (not the “Empty” option already does this, too, but that’s not clear)
- “Duplicate” swipe action in Workspace manager.
[[display_title]]
and[[body_preview]]
template tags. These match the trimmed display versions of the title and body displayed in the draft list. Template tag reference.- If
/open
URL with title parameter finds more than one matching draft, the resulting search now opens withtitle:"value"
search to limit results to only matching titles. - “Save Current” option in workspaces menu to create a new workspace based on current list options.
draft.bodyPreview(maxLength: Int)
function. Returns trimmed body preview similar to what is used in the draft list, removing first line and trimming whitespace and truncating to the requested length.- Disable smart quotes-dashes in find window.
- Add way to enable link mode from action bar selection view.
- Import from backup might not maintain correct modification dates.
- Restore “Miscellaneous” category of action icons, which was missing for some reason.
- Widget intent configuration options should not appear in the Shortcuts app.
- Continuing search from Spotlight should go to quick search when available.
- Issue with automatic changes between dark-light mode not updating editor text properly.
- XML-RPC requests might improperly entify parameter strings.
- Workspaces using date filters would display incorrect counts in a Widget.
app.showDraftList()
called with a pinned draft list on iPad could result in greyed out editor.
22.0
Design Refresh and Updates
Significant visual and functional refresh throughout the app. In many places, menus are used more effectively, especially on iOS 14.
Widgets
Added support for iOS 14 Widgets. Drafts ships with two types of widget, each available in multiple sizes:
- Grid Widget: Widgets that can appear in any widget size, with configurable elements that link to workspaces (including default, with inbox counts), pre-defined commands (new, dictate, search, etc.), or any action from your action list. Note that not all actions make a lot of sense for use in widgets, because they are running on no text - but it can be useful if you have actions that do things like create a new draft based on a template, or configure the Drafts environment a certain way.
- List Widget: Displays the top drafts from the configurable workspace (include default “inbox” workspace). This widget can also be configured to display inbox, flagged, or archive view of the workspace.
For additional details: Widgets article
Workspace and Filtering Changes
- Workspace date ranges: It is now possible to configure start and end dates for a workspace. They are optional and likely most useful for constructs like a “Modified Today” workspace. Ranges are date-based and can be configured as specific absolute dates or dynamic relative dates +/- n days from the current date. For use, see the Today example workspace, which shows only drafts modified on the current date.
- Show search preview: option in drafts list and workspaces. When enabled, if a text search is active in the search field, the body preview displayed in the list will change to show line numbers and text snippets previewing where the match terms appear in the draft to provide additional context when searching.
- The tag filter pane can now be set to “Show All Tags” (the previous default), or “Only Tags in Current Filter”. The later is a new option that filters the list of available tags to only show tags assigned to at least one draft in the current query in the draft list. Set via “…” options menu.
Action Versioning
When editing actions, there is now a version history feature available which allows creating and restore backup snapshots of an action. Versions are automatically stored when an action is installed from outside the app and can be created manually at any time in the version screen. Details
Wiki-Style Link Improvements
Based on feedback, several minor changes have been made to better support the [[wiki-style]]
crosslinks added in release 20. For details on this feature, see the Linking Drafts article in the User Guide.
- Linking now supports direct links to markers within the content of longer drafts. The syntax is
[[Title of Draft/Marker Name]]
. Markers are defined by the syntax used, but generally are the labels for locations in the Navigation Menu. For Markdown syntaxes, these are#
headings, so “[[Title of Draft/Marker Name]]” would navigate to a heading like “## Marker Name” in a draft with the title “Title of Draft”. - If a
[[wiki-style]]
title link matches multiple drafts, the app will throw up a warning and open a search for the title to help you disambiguate your intentions and make you aware that more than one match exists and you may need to be more specific in your naming conventions. - The
/open
URL, when used withallowCreate=true
should prompt about the creation of the new draft. This affect[[wiki-links]]
and prevents mistyped links from creating drafts unintentionally. Details - The
/open
URL now supports amarker
parameter which can be used to target a specific marker inside a draft when targeting a draft by UUID. Details
Other New Items
- “Vivid Dark” theme.
- Support for new watchOS 7 complication sizes.
- Support for “Wind Down” shortcuts on iPhone.
- File action step has new “Tags” field, which can be configured to assign Finder tags to files when writing them. Use
[[tags]]
to pass through tags assigned to the draft. - Keyboard shortcut assignments now supports using several special keys - notably arrow keys. Assignment of these shortcuts in the editor currently required iOS 14 (although if the assignments are made on Mac or another iOS device running 14, the shortcuts themselves should work on iOS 13.
- Drag and drop of a message from Mail will now insert not just the subject of the dragged message, but the “message:” URL linking to the original message.
- Backups now have a “keep” setting to control how many backups to keep, automatically sweeping older backups to avoid consuming too much space on iCloud Drive.
/actionSearch?query=TEXT
URL to open directly to a search of the action list. Docs
Scripting Changes
For more details on any of the below changes, visit the Script Reference:
- The following properties of the
Draft
object, which were previous read-only, are now read-write properties. In general, it is not recommended that these values be manipulated, as they are maintained and updated automatically, but it can be useful to set them, especially when importing data from other systems.createdAt
,createdLongitude
,createdLatitude
,modifiedAt
,modifiedLongitude
,modifiedLatitude
FileManager
object has newgetTags(path): string[]
andsetTags(path, tags)
functions to get and set Finder tags on files.Workspace
object has newstartDate
andendDate
properties which takeQueryDate
objects to specify date filters for the workspace.Workspace
script object has newinstallURL
property, which exposes the URL, that can be used to share the workspace. Useful for scripted backups and sharing.Action
script object has newinstallURL
property, which exposes the URL, that can be used to share the action. Useful for scripted backups and sharing.editor.getLineRange(location, length)
function. Likeeditor.getSelectedLineRange()
but to expand a range anywhere in the text to line start/end positions.HTMLPreview
script object now hasprefersFullScreen
boolean property. When true, the presentation will try to use the full screen on iPad. -draft.append
anddraft.prepend
no longer require separator argument.app.applyWorkspace
should apply default workspace if called with no arguments.
Other Changes and Updates
- Change: When importing an action, look for an existing action with the same name and offer to replace the existing action or import as a new action.
- Change: Revert “Add to Siri” options for drafts, actions and workspaces to use NSUserActivity-based suggestions because the Intent-based ones do not remember configured details correctly.
- Change: Be less aggressive about resigning editor focus when in background.
- New: Add “reset sync state” troubleshooting option in iCloud settings (previously only available on Mac).
- Change: Allow
/workspace
URL to open the default workspace without a pro subscription. - Fix: Cursor position when tapping to edit in Typewriter mode did not always select the right location in the text.
- Fix: Better handling of nested blockquotes in Markdown syntax definitions.
- Fix: Markdown syntax did not recognize indented code blocks starting with a number.
- New: Calls to
console.log
in HTML Previews now get routed to and saved in the action log. - Fix: Alter method processing “after success” in actions to avoid a case where it is not handled properly.
- Change: Draft selection view now has menus for tag/workspace filtering.
- Change: Migrate language identification code used in RTL support to use NaturalLanguage framework.
- Change: Support
auto_reminder
option in Todoist step and scripts - Fix: Issue causing auto-correct to be disabled when “Hide Keyboard Bar” is set to external keyboard.
- Fix: Next-previous buttons might not update properly after some edits.
- Change: Bump minimum required iOS version to 12.4
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 thecontext.previewValues
object. So, if you callDrafts.send("mydata", {"a": 1, "b": true})
in your preview, you can later retrieve those values in a script step usingcontext.previewValues["mydata"]
.Drafts.continue()
andDrafts.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. Callingupdate()
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 asapp.selectDraft()
. Docsapp.isPro
boolean to determine if the app is pro unlocked. Docsapp.selectDraft()
can now optionally take a workspace parameter to set the initial search/filtering in the select window. Docsdraft.append(text, separator)
anddraft.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. ThewriteString
andwriteJSON
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 https://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. Sonew Draft()
now works in lieu ofDraft.create()
(old syntax still works). Draft
object additions and changes: Docstitle
property now strictly returns the first line of draftdisplayTitle
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. Docsapp.openInNewWindow(draft)
script method. (iPad/Mac). Pretty self explainatory I think. Docs- Example action: New in New Window
- 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. Docseditor.navigationMarkerAfter(location: number)
andeditor.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 rangelength
: length of the rangeprefix
: Identifying prefix for the marker (likeH1
,H2
in Markdown syntax) as defined by syntaxlabel
: Identifying label for the marker.level
: indentation level of the marker.
FileManager
has newgetCreationDate(path)
,getModificationDate(path)
, andsetCreationDate(path, date)
andsetModificationDate(path, date)
functions. Docs
- Most JavaScript objects now support the
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 globaldraft
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
andbasePath
properties return fullfile:///
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)
andreadJSON(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 thename=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 newdueDateIncludesTime
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. DocsMedium
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 callscript.complete()
of the action will timeout and fail after 60 seconds. CallbackURL
objects have a read-onlyurl
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:
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 withapp.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
andreopenTask
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
Related Updates
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.
- Contextual menus appear when you long press some items in Drafts. For example:
- 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)
andHTML.unescape(string)
javascript functions to encode and decode HTML entities in a string. Details - New:
Event
script object now supporturl
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
- Access version history of draft via
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- Send email using Outlook accounts (via Microsoft Graph API) in script
- OutlookMessage reference
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 ifoverwrite
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.
- OneNote integration guide on the community forum.
- OneNote Action Step Docs, including links to sample actions.
- 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 methodshow(html)
-> boolean- HTMLPreview Reference
- New:
Share
script object to support scripting of system share sheet. Includes class methods:Share.shareAsText(text)
-> booleanShare.shareAsURL(url)
-> booleanShare.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 onWorkspace
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 existingthemeMode
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 additionalisDefault
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)
andBase64.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 phrasered dress
and NOT containingblue
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. Docsrequire(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. NewrpcRequest
,contentDownloadRequest
andcontentUploadRequest
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 supportsparameters
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 onPrompt
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
andapp.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 thebuttonPressed
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()
andfind(title)
methods to match those onCalendar
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 ExamplesOpen 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 ofEvent
objects. This can be used to import calendar events into a drafts, among other things.event.edit()
method. Displays aEvent
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. Docseditor.isActive
bool property to determine if editor is currently in edit mode.
- Better scripting of Calendars and Events, including the ability to read calendar events. Details:
- 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 withupdateStatus(string)
method to post a tweet, returns bool success value. Details in scripting reference. -
New:
editor.deactivate();
script method to resign focus - opposite of existingeditor.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.