Puoi quasi arrivare con un po 'di Applescript.
Questo script leggerà tutti i "Bambini" del tuo file Segnalibri esistente e li riscriverà nell'ordine specificato. I "bambini" sono composti innanzitutto da Cronologia, Barra dei segnalibri, Menu Segnalibri e Elenco di lettura, quindi potresti voler lasciare i primi 4 elementi in posizione. Dopodiché, specifica l'ordine che preferisci: trova automaticamente un ordine alfabetico a sinistra come esercizio.
set tfile to (path to library folder from user domain as text) & "Safari:BookmarksWorking.plist"
tell application "System Events"
set childrenOrdered to make new property list item at end of property list items of contents of property list file tfile with properties {kind:list, name:"childrenOrdered"}
set myOrdering to {1, 2, 3, 4, 6, 5, 7} -- your preferred order
repeat with i in myOrdering
set thisChild to (property list item i of property list item "Children" of property list file tfile)
set thisKind to kind of thisChild
set thisValue to value of thisChild
tell childrenOrdered
make new property list item at end with properties {kind:thisKind, value:thisValue}
end tell
end repeat
-- Instead of overwriting the contents of "Children", this empties the whole file. So do the rename manually for now.
--set (value of (property list item "Children" of property list file tfile)) to (value of childrenOrdered)
end tell
Mi aspettavo che l'ultima riga set
dello script sostituisse il contenuto di "Bambini" con l'array ordinato. Sfortunatamente questo sembra dare come risultato un file vuoto (0 byte)! AppleScript considera il campo nome di sola lettura, quindi cambiandolo sul posto non funzionerà neanche.
Tuttavia, la ridenominazione manuale degli elementi in un editor di elenchi di proprietà (XCode, editor di testo, ecc.) in modo che i bambini vengano spostati e ordinati I bambini al loro posto, il nuovo ordine apparirà in Safari al riavvio.
Abbastanza goffo, ma se questo sta andando nella giusta direzione, potrebbe essere ripulito e automatizzato.