DT is nearly the best outliner on the planet. Only one thing is needed

You’re very welcome :relaxed:

In my personal lexicon, your flowcharts actually are outlines, just not in Harvard format.

Harvard format outlines are, in my unwashed opinion, the quickest way to kill a story by taking exciting sequences of events and rendering them into lifeless taxonomies of concepts.

How about this - shotgun out a bunch of ideas. Random thoughts that might somehow contribute to the story you want to tell. Put them in DT groups to make them a little easier to find.

Now create Devonthink groups for the high points of the story (story beats) arranged in narrative order. These groups are specifically not for categories of ideas, they follow the path of the narrator’s telling of the story. Turn off Exclude groups from tagging.

Tag the ideas with the story beats they support. Add tags for story arc, character, location, and things like that for my new “favoritist” feature, tag filtering.

To my thinking, that’s arising order out of chaos. It’s either an outline or draft zero of a book.

I have today off from work. I have a vague idea of a story I want to tell and a whole bunch of homeless ideas that could contribute.

It’s going to be a pleasant day.


Well, considering I have no great novel to write but have plenty of questions to answer, flowchart thoughts suit me well. :wink:

Good luck and enjoy a creative day!

It’s been a while since I’ve used a database with custom sort order on my laptop.

I thought sort order was synced with the data, but it appears that is local to each Devonthink instance.

Is there a way to sync an “unsorted” ordering between two computers, or is there a way to store the sort order on one system and apply it on another?

Is there a way to sync sort order across computers? Yes. Yes there is, even if not supported in core Devonthink.

Apologies if this covers old turf. I’m new to Applescript.

If you use Devonthink as an outliner, you can’t let the sort order get lost when you sync to a second computer. You can add a number to the title of each document, like this:

10 - Z before A
20 - A after Z

But that gets icky to look at and hard to maintain if you shuffle things around very much.

Here’s another way.

Add a custom metadata field called Sortindex.

Add this smart rule

The script contains:

on performSmartRule(selection)
	set recCounter to 0
	tell application id "DNtp"
		repeat with theRecord in selection
			set recCounter to recCounter + 10
			add custom meta data recCounter for "Sortindex" to theRecord
		end repeat
	end tell
end performSmartRule

Uncheck the preference to keep groups at the top when sorting.

Set the sort to “unsorted.” Drag and drop your documents and groups the way you want. I like to open a single group and sort just its contents.

Highlight all the documents and groups. Use option-click to expand subgroups along with the group you’re expanding, otherwise stuff in collapsed groups won’t get selected.

Right click on the selection. Apply the setsort rule and switch to sort by Sortindex. Sync to a second computer, sync by Sortindex there, and you get the same ordering.

If you want to move item 90 to just before item 60, since it numbers by tens, set 90’s Sortindex to 55, or anything from 51 to 59. If you want to neaten up your numbering, select all your sorted documents and rerun setsort.

Problem solved, minimal muss and fuss. Would be happy to see sort orders get synced across machines, but this is practical for me until that happens.

1 Like

I need a solution that syncs to DTTG
I use a Table of Contents note, sync’d across my devices (Mac and iPad)
The entries are hyperlinked to the individual notes

My use-case is project/task notes for a project
sorted and presented in sections; Project Notes, Tasks-Active, Tasks-Pending, Tasks-Completed

I use a script to generate/refresh the Project Table of Contents note

1 Like

Yeah, there’s a big flaw with my idea of sorting by metadata. For notes that only appear in one sorted group it works fine, but if a replicated note is at the top of one group and the bottom of another, you only have one value to sort by.

I can work around that, but there’s a gap in my evil plans.

You could have separate sort fields for each group
I’d like the option for different filenames

Yes, not tying my sort index to one metadata field would do the trick, but could get messy.

One feature DT has that would help is that the sort order is set per group.

So, navigate to the root listing of the database and set the sort order. That sets the sort order globally except for groups or subgroups that have a their own sort options.

Double click on one of those groups with its own separate sort order and that’s what you’ll see, not the parent group’s sort order.

Subtle, but very nice feature.

Ok, I’ve decided to get a life and stop quibbling.

Instead of a group I need to preserve a manual sort order in, a markdown document with double curly (transclusion) or double square brackets (link) works fine.

Right click lets me open it in a new window or a new tab, or I can click on it to navigate there in the current view with the back arrow leading me back. Or, I can use the incoming links list in the linked document to return back.

It would be nice, though, to sync the manual sort order. That would add more usefulness to tags, too.

I thought you were going to stop quibbling… :thinking::wink:

Stop quibbling? Did I say that?

One other thing that might help is I re-tuned my Keyboard Maestro macro for creating Markdown files. Yes, yes, I know. I could just use the Markdown button I keep on my tool bar. See above, re: quibbling.

Now, option-command-N prompts me for a name, creates a new Markdown document, and adds a level 2 header (“##”) with a link to the document it just created.

Right. A document linking to itself, but there’s a reason.

If I transclude that new document into another one, I get a clickable title to navigate to the source file.

This is only five minutes old. There may be better ways, but it works.

And to think my therapist said I wasn’t making any progress!

Stop quibbling? Did I say that?

Haha! :wink:

Now, option-command-N prompts me for a name, creates a new Markdown document, and adds a level 2 header (“##”) with a link to the document it just created.

Right. A document linking to itself, but there’s a reason.

If I transclude that new document into another one, I get a clickable title to navigate to the source file.

Interesting approach.
Are you using transclusion often?

And just aesthetically speaking, why an H2 header? Why not something smaller? Just curious.

I think I’m going to use transclusion some in a creative writing project I want to tackle. The idea is to have notes that feed into what amounts to an outline. I’ve got a bunch of disjointed ideas that could support a story.

The issue is keeping documents and groups in the right custom order across a sync to my laptop.

For a little while I considered “syncing” my project database to my laptop with Chronosync and a USB stick, just duplicating it as a package. I should have warned you not to have a mouthful of coffee when reading that, I suppose, but it would preserve custom sorts.

I’m diligent about closing apps before running Chronosync. Problems would arise, though, if I modified a Devonthink database independently on both desktop and laptop. Devonthink’s sync handles that kind of madness gracefully.

It was a tempting idea. I was planning to follow prudent safety precautions. Then I thought of how I would look at the Starbucks with my laptop, eye protection, and pith helmet.

Yeah, I’d get the same kind of stares as that time on the cruise ship in my swim flippers, wearing a life vest, taking noon sightings with my sextant.

For full disclosure, I want to be a successful writer and I think Devonthink will be a key weapon in my creative writing arsenal. At the moment, my justification for Devonthink is entirely business. But, someday…

Edited to add:
Forgot, the h2 header. A purely arbitrary choice, and it is a bit bulky on the screen, now that you mention it.

1 Like

OK. I had a similar need—to preserve a manual sort order—and here’s my solution.

Attached is a script that prepends the number N plus some after-number string. (This string is conventionally ". " and I usually keep it as that, but in the off chance that any of your record names might begin with ". " I’ve set it to "⟩ " for you, since no normal human would ever use this in a DT record name.

Here’s the method:

  1. Give the script a name with an available hot key combo. Let’s use Prepend_Number___Cmd-Ctrl-Alt-O.scpt since that’s what I’ve set mine to.
  2. Save the attached script inside your personal DT AppleScripts folder: ~Library/Application Scripts/com.devon-technologies.think3/Menu/MY_SCRIPTS/
  3. Muti-select the records whose order you want preserved.
  4. Run the Prepend_Number script and click the Add button.
  5. You can now reproduce your manual sort inside any context by doing Sort by Name.

You’re now done. When you’re ready to remove the prepended numbers, for printing or export or whatever your end-goal is, multi-select the records as before and run the script again, this time clicking the Remove button.

Here’s the script:

Prepend_Number___Cmd-Ctrl-Alt-O.scpt.zip (7.2 KB)


Wow! Great script - works perfectly and it’s something I can learn from.

It’s most kind of you to share. I appreciate it, and I guarantee I will use this often. It solves the problem perfectly.

Quick followup - I changed the prefix string to " - ". I’m not likely to start a document name with a hyphen, and space-hyphen-space isn’t going to happen.

The benefit is I can easily name something that fits the scheme if the prefix is easy to type.

I anticipate using unsorted view as only a starting point. Once I have an order I care about, @Demogorgon 's script will let me switch to name order and stay there.

The other change I made was I set the increment to 10. With these two changes, I can add a note called something like 0025 - new_idea to drop it between 0030 - old_idea and 0040 - really_new_idea.

It was also a pleasant surprise to learn the add number function serves to renumber documents already numbered.

Cool stuff!

I’m very glad that my little workaround script is helping you. Hopefully the good karma I accrue from this will help me be more productive.

1 Like

@Demogorgon thanks for sharing this script much appreciated.

Just for the sake of future planning, when might the name wrapping option become available? It sure would be great to not have to migrate projects out and back again just so we can read them.

My mom suggested that if you make it a mere option in Preferences, something such as —

:white_medium_small_square: Long names wrap in List View

— it won’t disturb storage-minded users who would never think of using DT as a place for ordering and structuring. In other words, you can just make non-wrapping the default. No harm done!

Your DT Evangelist at UT