Piotr you are the absolute best! I love the counter idea and I am glad you like the numerical variable idea, I think it could be extremely powerful - in combination with your sort feature I will never need to use spreadsheets again!
Don’t kill yourself to get any of this done quickly, you are working for free and we can wait!
multiple simple tag #[sort|by:tag(#test)+tag(@office)+tag(#whatever)]
pattern matching with *, you can put * in any place within tag, multiple times, so for example. #[sort|by:tag(#*te*st*)+tag(@office)]
will match things like: #test, #test2, #2test, #2te2st2, #te-st, #teeeeest, etc
with pattern matching it will be not only sorted by moving items with matched tag at the beginning/end of list, but also will be sorted by those matched results (omg, english is hard, sorry), for example: #[sort|by:tag(#week*)|order:desc]
with items with tags: #week01, #week02, #week03 will always result in this order: #week03 #week02 #week01
all of this can be mixed with previous functionality, so it’s possible to do crazy things like #[sort|by:color+tag(#test*)+date+tag(#m-*-whatever)|order:asc+desc+asc+desc]
can one of you write a description for all of that sorting related things, so I can update description in settings (popup)? My english is bad for such complex things
Thank you Piotr this is awesome! What you wrote wasn’t bad english actually but I’ve improved it here and there below for the description (the matching automatic sort was quite difficult to explain!):
Ok, thanks If you want to add something to that description @Vincent_Tang please do, but remember that this is for small popup with settings, it needs to be as short as possible Or maybe better would be to place there link to longer guide with examples in this topic.
Sorts can be specified with ASC (ascension sort) or DES (descension sort)
Sort children by tag #[sort|by:tag(#test)|order:asc]
Nodes ONLY with tag #test will go to the top of the list (tags like #test3 are not inclusive)
Sort children by multiple tags #[sort|by:tag(#test)+tag(@office)|order:asc]
Nodes ONLY with both #test AND @office will be sorted to top of list (tags like #test3 are not inclusive)
By tag with pattern matching #[sort|by:tag(#week*)]
Nodes with wildcard tags from week#* such as #week01, #week02, #week03 are sorted in alphabetical order at top of list
Sort children by multiple tags with pattern matching #[sort|by:tag(#week*)+tag(#day*)|order:desc+desc]
Sorts by #week* tag first descending, then by #day* in descending order.
Example after sorting:
✪ #week22 #day12
✪ #week22 #day11
✪ #week10 #day24
✪ #week10 #day22
Pattern matching with “*” can be applied in any position and even multiple times within tag #[sort|by:tag(#a-*-b-*-c-*)|order:asc]
Example after sorting:
✪ #a-01-b-01-c-01
✪ #a-01-b-01-c-02
✪ #a-01-b-02-c-01
✪ #a-01-b-02-c-02
✪ #a-02-b-01-c-01
✪ #a-02-b-01-c-02
✪ #a-02-b-02-c-01
✪ #a-02-b-02-c-02
Sort children by item “created” metadate and order ASC #[sort|by:created|order:asc]
When a bulletpoint node is created in dynalist, it is timestamped.
This sorts all children so the most recently created ones sit at top (ASC order) EDIT @PIOTR, this is sorting the wrong way compared to one above (created-date), please check EDIT EDIT: this works as intended, was error on my part
Sort children by item “last-edited” metadate and order ASC #[sort|by:edited]
When a bulletpoint is edited in dynalist, it is timestamped
This sorts all children so most recently edited sits at top (ASC order)
Sort children by A-Z and order ASC (these are default settings) #[sort]
A would sit at top, Z at bottom of list
Sort children by A-Z and order DESC #[sort|order:desc]
Z would sit at top, A at bottom of list
Sort children by numbers and order ASC #[sort|by:number]
1 sits at top of list, 99 would sit lower
Sort children by numbers and order DESC #[sort|by:number|order:desc]
99 sits at top of list, 1 would sit at bottom
Sort children by colors and order ASC #[sort|by:color]
Color tags order from top of list to bottom sort: RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE
Sort children by colors and order ASC #[sort|by:color|order:desc]
Color tags order from top of list to bottom sort: PURPLE, BLUE, GREEN, YELLOW, ORANGE, RED
Sort children by date and order ASC #[sort|by:date]
“!” date tags. Older dates sit at top, newer dates sit at bottom
Sort children by date and order DESC #[sort|by:date|order:desc]
“!” date tags. Newer dates sit at top, older dates sit at bottom
Sort children by date + A-Z and order ASC + DESC #[sort|by:date+alpha|order:asc+desc]
“!” Older dates sit near top, then sorted from Z to A order top to bottom.
“!” Newer dates sit at bottom
Sort children by date + A-Z and order DESC + ASC #[sort|by:date+alpha|order:desc+asc]
“!” Newer dates sit at top, then sorted A to Z order top to bottom
“!” Older dates sit at bottom
Sort children by colors + A-Z and order ASC + DESC #[sort|by:color+alpha|order:asc+desc]
Colors are sorted first top to bottom (Red, orange, yellow, green, blue, purple) then by Z to A order top to bottom.
Sort children by colors + dates and order ASC + DESC #[sort|by:color+date|order:asc+desc]
Colors are sorted first top to bottom (Red, orange, yellow, green, blue, purple) then by Newer-to-Older Dates top-to-bottom
Sort children by colors + dates + A-Z and order ASC + DESC + ASC #[sort|by:color+date+alpha|order:asc+desc+asc]
First, Colors are sorted first top to bottom (Red,orange, yellow, green, blue, purple)
Then, Newer-to-Older dates top-to-bottom
Finally, Z-to-A order top-to-bottom
Sort children by colors + dates + A-Z and order DESC + ASC + ASC #[sort|by:date+color+alpha|order:desc+asc+asc]
First, Newer-to-Older dates sorted top-to-bottom
Then, Colors are sorted top-to-bottom (Red,orange, yellow, green, blue, purple)
Finally, A-to-Z order top-to-bottom
Sort a fragment of a list
Inside of parent list with children nodes, apply a starting point #[sort|start|by:color|order:desc]
and an ending point #[sort|start|by:color|order:desc]
to selectively sort ONLY SOME of the children nodes
Example:
✪ Parent
✪✪ this will not be sorted
✪✪ this will not be sorted
✪✪ #[sort|start|by:color|order:desc]
✪✪ <everything here is sorted by color (purple, blue, green, yellow, orange, red order)>
✪✪ #[sort|end]
✪✪ this will not be sorted
✪✪ this will not be sorted
Auto sorting #[sort|auto|by:date|order:desc]
Apply the sort code to automatically sort when dynalist is refreshed. PIOTR, does the system settings at autosort need to be applied here? or does this work individually per bulletpoint → didn’t seem to work for me, needs clarification
here you go piotr short description of everything, I used as few words as possible to explain everything
there’s some issues and errors not clarified as well during my tests
By the way if you wanted the markdown rendered paste here it is as well
What do you mean by wrong way?
asc - new item / newest update will be at the bottom
desc - new item / newest update will be at the top
it should and it’s working that way for me, do you see different results?
EDIT: I’m talking here about my own documents, the shared one with examples was copied from different document and because of that all items have identical timestamps, maybe you are referring to that?
When enabled, it works like normal sort, but is applied automatically with each document refresh. And also most of the time when one of items to sort is being unfocused (this is buggy and sometimes don’t work, I don’t know yet how to make it to be more reliable, but the button is clickable and manual sorting should work in that situation).
this is awesome @piotr this is going to be a game changer for me using color tagging. Im going to give each doc I have a unique color feel so i can identify them faster.
BTW, I thought of another really good and related feature to this color tagging
btw @piotr just wanted to say thanks for the color tagging (its going to be my most used feature in the powerpack) . it makes taking notes on really big file structures SO much easier now
That + github + your code syntax plugin means I can easily take notes on something even if its a program thats 100,000 lines long
Following software tutorials / reverse engineering software is going to be sooo much easier now thanks piotr
Selection would be made right from the bulletpoint itself. Like #note:lavender or something.
Or maybe on the parent list of all of these, assign something like #note:lavender so all children’s bulletpoint notes have it. Also, it would override things like #bg:yellow too
That would be super neat
I might make it myself later though if you don’t do it, I can see myself using it on every course I take after I finish this javascript course
P.S. unrelated note. I use your multicode syntax color thing pretty much everyday, its super wonderful
EDIT :
I think the user should be able to select whether #note:lavender applies to both the bulletpoint and the note, or just the note in the powerpack settings too
I’m leaning more towards “note+bulletpoint” looks cleaner to look at (see last pic)
Also I think the coloring of the note… should only be as long as the color tags.
Possibly even a slight border and or box shadow to it (optional). Also, everything on the bulletpoint and stuff below it should be white.
It reminds me of catalog design almost. I have some sample well-known brand hard copy catalogs actually following this style of design
Piotr I noticed with #[sort|by:edited|order:desc]] to sort by most recently edited items, it only works on the child bulletpoints, not children of children bulletpoints
I think this sort should look at the latest item edited in that area. Example:
B should sit at the top when I typed in asdfasdfasdf on B’s child bulletpoint after pressing the sort button
C when I added zzz sorts as intended
I’ll modify your script later probably to reflect the new change, albeit it might require adding lots of new code though
I disagree, it’s clear now that all possible sorts are applied to first level children. When you modify that behaviour for your one specific use case this whole thing will become inconsistent. You can think about new way to implement sorting by children of children of children of … and build/extend syntax and UI for specifying which level items must be considered as candidates to compare. It would be very useful to have this in this script, but I have no time to do this myself, I can merge your code if you wish and if you can build that.