From 7330e7499a6886f686ee7689d1b60534b1ccbbf4 Mon Sep 17 00:00:00 2001 From: Aleksey Rowan <79934725+aleksey-rowan@users.noreply.github.com> Date: Wed, 15 Nov 2023 14:10:43 -0500 Subject: [PATCH 1/9] build: minify prod build closes #70 --- esbuild.config.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/esbuild.config.mjs b/esbuild.config.mjs index b13282b..a5de8b8 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -38,6 +38,7 @@ const context = await esbuild.context({ sourcemap: prod ? false : "inline", treeShaking: true, outfile: "main.js", + minify: prod, }); if (prod) { @@ -45,4 +46,4 @@ if (prod) { process.exit(0); } else { await context.watch(); -} \ No newline at end of file +} From f4debcda6ba26922cb125526a1c3be0a53cf05c2 Mon Sep 17 00:00:00 2001 From: "iulianOnofrei (U-lee-aan)" <5748627+revolter@users.noreply.github.com> Date: Fri, 19 Jan 2024 21:14:58 +0200 Subject: [PATCH 2/9] Fix inconsistent indentation --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 2d6fbdf..c44b729 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,7 +10,7 @@ "moduleResolution": "node", "importHelpers": true, "isolatedModules": true, - "strictNullChecks": true, + "strictNullChecks": true, "lib": [ "DOM", "ES5", From de770934b29b0eb4c33be6add1ffeb7fac9d18e1 Mon Sep 17 00:00:00 2001 From: "iulianOnofrei (U-lee-aan)" <5748627+revolter@users.noreply.github.com> Date: Sun, 21 Jan 2024 15:20:39 +0200 Subject: [PATCH 3/9] Fix incorrect TypeScript spelling --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bb0348e..9dad79e 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ This is a sample plugin for Obsidian (https://obsidian.md). -This project uses Typescript to provide type checking and documentation. -The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does. +This project uses TypeScript to provide type checking and documentation. +The repo depends on the latest plugin API (obsidian.d.ts) in TypeScript Definition format, which contains TSDoc comments describing what it does. **Note:** The Obsidian API is still in early alpha and is subject to change at any time! From 47ec36c11ee8804784821cdbfda9c320a81744f6 Mon Sep 17 00:00:00 2001 From: "Tobias V. Langhoff" Date: Sat, 2 Mar 2024 22:30:14 +0100 Subject: [PATCH 4/9] Update README.md Update link to plugin guidelines --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb0348e..0bc05a1 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Quick starting guide for new plugin devs: ## Adding your plugin to the community plugin list -- Check https://github.com/obsidianmd/obsidian-releases/blob/master/plugin-review.md +- Check the [plugin guidelines](https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines). - Publish an initial version. - Make sure you have a `README.md` file in the root of your repo. - Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin. From fd9b63843f5242930e2f55faeeea8a134755d9cf Mon Sep 17 00:00:00 2001 From: SebastianMC <23032356+SebastianMC@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:06:17 +0100 Subject: [PATCH 5/9] README.md update with clear status and details of impact of breaking changes in Obsidian 1.7.2+ --- README.md | 1 + README.notice.for.Obsidian.1.7.2.md | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 README.notice.for.Obsidian.1.7.2.md diff --git a/README.md b/README.md index a10a9b4..9aad74d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ > | :exclamation: Breaking changes in Obsidian - always use the newest version of the plugin| > |----------------------------------------------| +> | - Obsidian 1.7.2 - no fixes for Obsidian breaking changes avaialable --> [More details](README.notice.for.Obsidian.1.7.2.md)| > | - Obsidian 1.6.3 - update the plugin to 2.1.11 or newer --> [More details](README.notice.for.Obsidian.1.6.3.md)| > | - Obsidian 1.6.0 - update the plugin to 2.1.9 or newer --> [More details](README.notice.for.Obsidian.1.6.0.md)| > | - Obsidian 1.5.4 - update the plugin to 2.1.7 or newer --> [More details](README.notice.for.Obsidian.1.5.4.md)| diff --git a/README.notice.for.Obsidian.1.7.2.md b/README.notice.for.Obsidian.1.7.2.md new file mode 100644 index 0000000..fd81cdc --- /dev/null +++ b/README.notice.for.Obsidian.1.7.2.md @@ -0,0 +1,20 @@ +> | :exclamation: Breaking changes in Obsidian 1.7.2 (and newer) - no fixes available| +> |----------------------------------------------| +> +> Obsidian team introduced some more breaking changes in a not-backward-compatible way starting from Obsidian 1.7.2. +> +> The observed issues are minor, no fixes available (a work in progress with unknown release date): +> - the custom sort plugin is **unable to automatically apply the custom sort on start** +> - prevalent on mobile +> - for the _Lazy Plugin Loader_ plugin occurs by definition +> - **workaround**: custom sorting has to be applied manually via the ribbon icon or the command 'sort on' +> - the custom sort plugin **keeps showing the notifications** with each change to any note +> - **workaround**: disable the notifications +> +> For more details of the observed misbehaviors you can go to: +> - [#161: Find out how to automatically apply custom sort on app start / vault (re)load etc.](https://github.com/SebastianMC/obsidian-custom-sort/issues/161) +> - [#162: \[bug\]\[minor\] Obsidian 1.7.2 breaking changes - when File Explorer is not displayed an attempt to apply custom sort fails with error](https://github.com/SebastianMC/obsidian-custom-sort/issues/162) +> - [#163: Obsidian 1.7.2 - automatic sorting fails when launching Obsidian](https://github.com/SebastianMC/obsidian-custom-sort/issues/163) +> - [#165: Obsidian 1.7.3 - Constant Notifications "Custom sorting ON" and "Parsing custom sorting specification SUCCEEDED!"](https://github.com/SebastianMC/obsidian-custom-sort/issues/165) +> - [#169: Not working on mobile](https://github.com/SebastianMC/obsidian-custom-sort/issues/169) +> From 008f6c03f7e25ac4e122efedb0b0fafe059d3f64 Mon Sep 17 00:00:00 2001 From: SebastianMC <23032356+SebastianMC@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:09:17 +0100 Subject: [PATCH 6/9] README.md update with clear status and details of impact of breaking changes in Obsidian 1.7.2+ --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9aad74d..1912981 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ > | :exclamation: Breaking changes in Obsidian - always use the newest version of the plugin| > |----------------------------------------------| -> | - Obsidian 1.7.2 - no fixes for Obsidian breaking changes avaialable --> [More details](README.notice.for.Obsidian.1.7.2.md)| +> | - Obsidian 1.7.2 - no fixes for Obsidian breaking changes available --> [More details](README.notice.for.Obsidian.1.7.2.md)| > | - Obsidian 1.6.3 - update the plugin to 2.1.11 or newer --> [More details](README.notice.for.Obsidian.1.6.3.md)| > | - Obsidian 1.6.0 - update the plugin to 2.1.9 or newer --> [More details](README.notice.for.Obsidian.1.6.0.md)| > | - Obsidian 1.5.4 - update the plugin to 2.1.7 or newer --> [More details](README.notice.for.Obsidian.1.5.4.md)| From 92050ad841e28de8b18cc3fc591ab3c9da6f5e30 Mon Sep 17 00:00:00 2001 From: Clare Macrae Date: Mon, 11 Nov 2024 19:58:31 +0000 Subject: [PATCH 7/9] Remove statement that API is unstable --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 578b2e2..c773152 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,6 @@ This is a sample plugin for Obsidian (https://obsidian.md). This project uses TypeScript to provide type checking and documentation. The repo depends on the latest plugin API (obsidian.d.ts) in TypeScript Definition format, which contains TSDoc comments describing what it does. -**Note:** The Obsidian API is still in early alpha and is subject to change at any time! - This sample plugin demonstrates some of the basic functionality the plugin API can do. - Adds a ribbon icon, which shows a Notice when clicked. - Adds a command "Open Sample Modal" which opens a Modal. From a0bd47b2107516695886787a775e900eb1ce4358 Mon Sep 17 00:00:00 2001 From: SebastianMC <23032356+SebastianMC@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:04:38 +0100 Subject: [PATCH 8/9] #184 - Sort notes in Mmm-dd-yyyy format --- src/custom-sort/custom-sort.ts | 7 ++- src/custom-sort/matchers.ts | 29 +++++---- src/custom-sort/sorting-spec-processor.ts | 15 ++++- src/test/int/dates-in-names.int.test.ts | 64 ++++++++++++++++++++ src/test/mocks.ts | 14 ++++- src/test/unit/sorting-spec-processor.spec.ts | 13 +++- 6 files changed, 123 insertions(+), 19 deletions(-) create mode 100644 src/test/int/dates-in-names.int.test.ts diff --git a/src/custom-sort/custom-sort.ts b/src/custom-sort/custom-sort.ts index d320f56..e906929 100644 --- a/src/custom-sort/custom-sort.ts +++ b/src/custom-sort/custom-sort.ts @@ -240,7 +240,7 @@ const SortersForDerivedSecondary: { [key in CustomSortOrder]?: SorterFn } = { }; // OS - Obsidian Sort -const OS_alphabetical = 'alphabetical' +export const OS_alphabetical = 'alphabetical' const OS_alphabeticalReverse = 'alphabeticalReverse' export const OS_byModifiedTime = 'byModifiedTime' export const OS_byModifiedTimeReverse = 'byModifiedTimeReverse' @@ -794,7 +794,7 @@ const folderSortCore = function (sortedFolder: TFolder, sortOrder: string, sorti }; // Returns a sorted copy of the input array, intentionally to keep it intact -export const sortFolderItemsForBookmarking = function (folder: TFolder, items: Array, sortingSpec: CustomSortSpec|null|undefined, ctx: ProcessingContext, uiSortOrder: string): Array { +export const sortFolderItems = function (folder: TFolder, items: Array, sortingSpec: CustomSortSpec|null|undefined, ctx: ProcessingContext, uiSortOrder: string): Array { if (sortingSpec) { const folderItemsByPath: { [key: string]: TAbstractFile } = {} @@ -831,6 +831,9 @@ export const sortFolderItemsForBookmarking = function (folder: TFolder, items: A } }; +// Exported legacy function name for backward compatibility +export const sortFolderItemsForBookmarking = sortFolderItems + export const _unitTests = { fileGoesFirstWhenSameBasenameAsFolder: fileGoesFirstWhenSameBasenameAsFolder, folderGoesFirstWhenSameBasenameAsFolder: folderGoesFirstWhenSameBasenameAsFolder diff --git a/src/custom-sort/matchers.ts b/src/custom-sort/matchers.ts index b92c65c..31504a9 100644 --- a/src/custom-sort/matchers.ts +++ b/src/custom-sort/matchers.ts @@ -1,5 +1,3 @@ -import {toString} from "builtin-modules"; - export const RomanNumberRegexStr: string = ' *([MDCLXVI]+)'; // Roman number export const CompoundRomanNumberDotRegexStr: string = ' *([MDCLXVI]+(?:\\.[MDCLXVI]+)*)';// Compound Roman number with dot as separator export const CompoundRomanNumberDashRegexStr: string = ' *([MDCLXVI]+(?:-[MDCLXVI]+)*)'; // Compound Roman number with dash as separator @@ -9,6 +7,7 @@ export const CompoundNumberDotRegexStr: string = ' *(\\d+(?:\\.\\d+)*)'; // Comp export const CompoundNumberDashRegexStr: string = ' *(\\d+(?:-\\d+)*)'; // Compound number with dash as separator export const Date_dd_Mmm_yyyy_RegexStr: string = ' *([0-3]*[0-9]-(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\\d{4})'; // Date like 01-Jan-2020 +export const Date_Mmm_dd_yyyy_RegexStr: string = ' *((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3]*[0-9]-\\d{4})'; // Date like Jan-01-2020 export const DOT_SEPARATOR = '.' export const DASH_SEPARATOR = '-' @@ -104,17 +103,23 @@ export function getNormalizedRomanNumber(s: string, separator?: string, places?: } } -const DAY_POSITIONS = '00'.length -const MONTH_POSITIONS = '00'.length -const YEAR_POSITIONS = '0000'.length +export const DAY_POSITIONS = '00'.length +export const MONTH_POSITIONS = '00'.length +export const YEAR_POSITIONS = '0000'.length const MONTHS = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] -export function getNormalizedDate_dd_Mmm_yyyy_NormalizerFn(s: string): string | null { - // Assumption - the regex date matched against input s, no extensive defensive coding needed - const components = s.split('-') - const day = prependWithZeros(components[0], DAY_POSITIONS) - const month = prependWithZeros( `${1 + MONTHS.indexOf(components[1])}`, MONTH_POSITIONS) - const year = prependWithZeros(components[2], YEAR_POSITIONS) - return `${year}-${month}-${day}//` +export function getNormalizedDate_NormalizerFn_for(separator: string, dayIdx: number, monthIdx: number, yearIdx: number, months?: string[]) { + return (s: string): string | null => { + // Assumption - the regex date matched against input s, no extensive defensive coding needed + const components = s.split(separator) + const day = prependWithZeros(components[dayIdx], DAY_POSITIONS) + const monthValue = months ? `${1 + MONTHS.indexOf(components[monthIdx])}` : components[monthIdx] + const month = prependWithZeros(monthValue, MONTH_POSITIONS) + const year = prependWithZeros(components[yearIdx], YEAR_POSITIONS) + return `${year}-${month}-${day}//` + } } + +export const getNormalizedDate_dd_Mmm_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 0, 1, 2, MONTHS) +export const getNormalizedDate_Mmm_dd_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 0, 2, MONTHS) diff --git a/src/custom-sort/sorting-spec-processor.ts b/src/custom-sort/sorting-spec-processor.ts index 537dcc1..f7a4cf7 100644 --- a/src/custom-sort/sorting-spec-processor.ts +++ b/src/custom-sort/sorting-spec-processor.ts @@ -17,8 +17,10 @@ import { CompoundRomanNumberDotRegexStr, DASH_SEPARATOR, Date_dd_Mmm_yyyy_RegexStr, + Date_Mmm_dd_yyyy_RegexStr, DOT_SEPARATOR, getNormalizedDate_dd_Mmm_yyyy_NormalizerFn, + getNormalizedDate_Mmm_dd_yyyy_NormalizerFn, getNormalizedNumber, getNormalizedRomanNumber, NumberRegexStr, @@ -351,6 +353,7 @@ const InlineRegexSymbol_Digit2: string = '\\[0-9]' const InlineRegexSymbol_0_to_3: string = '\\[0-3]' const Date_dd_Mmm_yyyy_RegexSymbol: string = '\\[dd-Mmm-yyyy]' +const Date_Mmm_dd_yyyy_RegexSymbol: string = '\\[Mmm-dd-yyyy]' const InlineRegexSymbol_CapitalLetter: string = '\\C' const InlineRegexSymbol_LowercaseLetter: string = '\\l' @@ -370,7 +373,8 @@ const sortingSymbolsArr: Array = [ escapeRegexUnsafeCharacters(CompoundRomanNumberDashRegexSymbol), escapeRegexUnsafeCharacters(WordInASCIIRegexSymbol), escapeRegexUnsafeCharacters(WordInAnyLanguageRegexSymbol), - escapeRegexUnsafeCharacters(Date_dd_Mmm_yyyy_RegexSymbol) + escapeRegexUnsafeCharacters(Date_dd_Mmm_yyyy_RegexSymbol), + escapeRegexUnsafeCharacters(Date_Mmm_dd_yyyy_RegexSymbol) ] const sortingSymbolsRegex = new RegExp(sortingSymbolsArr.join('|'), 'gi') @@ -439,6 +443,7 @@ export const NumberNormalizerFn: NormalizerFn = (s: string) => getNormalizedNumb export const CompoundDotNumberNormalizerFn: NormalizerFn = (s: string) => getNormalizedNumber(s, DOT_SEPARATOR) export const CompoundDashNumberNormalizerFn: NormalizerFn = (s: string) => getNormalizedNumber(s, DASH_SEPARATOR) export const Date_dd_Mmm_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_dd_Mmm_yyyy_NormalizerFn(s) +export const Date_Mmm_dd_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_Mmm_dd_yyyy_NormalizerFn(s) export enum AdvancedRegexType { None, // to allow if (advancedRegex) @@ -450,7 +455,8 @@ export enum AdvancedRegexType { CompoundDashRomanNumber, WordInASCII, WordInAnyLanguage, - Date_dd_Mmm_yyyy + Date_dd_Mmm_yyyy, + Date_Mmm_dd_yyyy } const sortingSymbolToRegexpStr: { [key: string]: RegExpSpecStr } = { @@ -499,6 +505,11 @@ const sortingSymbolToRegexpStr: { [key: string]: RegExpSpecStr } = { regexpStr: Date_dd_Mmm_yyyy_RegexStr, normalizerFn: Date_dd_Mmm_yyyy_NormalizerFn, advancedRegexType: AdvancedRegexType.Date_dd_Mmm_yyyy + }, + [Date_Mmm_dd_yyyy_RegexSymbol]: { // Intentionally retain character case + regexpStr: Date_Mmm_dd_yyyy_RegexStr, + normalizerFn: Date_Mmm_dd_yyyy_NormalizerFn, + advancedRegexType: AdvancedRegexType.Date_Mmm_dd_yyyy } } diff --git a/src/test/int/dates-in-names.int.test.ts b/src/test/int/dates-in-names.int.test.ts new file mode 100644 index 0000000..66487e5 --- /dev/null +++ b/src/test/int/dates-in-names.int.test.ts @@ -0,0 +1,64 @@ +import { + TAbstractFile, + TFolder, + Vault +} from "obsidian"; +import { + DEFAULT_FOLDER_CTIME, + determineFolderDatesIfNeeded, + determineSortingGroup, + FolderItemForSorting, OS_alphabetical, OS_byCreatedTime, ProcessingContext, sortFolderItems +} from "../../custom-sort/custom-sort"; +import { + CustomSortGroupType, + CustomSortOrder, + CustomSortSpec +} from "../../custom-sort/custom-sort-types"; +import { + TIMESTAMP_OLDEST, + TIMESTAMP_NEWEST, + mockTFolderWithChildren, + mockTFolderWithDateNamedChildren, + TIMESTAMP_DEEP_NEWEST, + TIMESTAMP_DEEP_OLDEST, +} from "../mocks"; +import { + SortingSpecProcessor +} from "../../custom-sort/sorting-spec-processor"; + +describe('sortFolderItems', () => { + it('should correctly handle Mmm-dd-yyyy pattern in file names', () => { + // given + const processor: SortingSpecProcessor = new SortingSpecProcessor() + const sortSpecTxt = +` ... \\[Mmm-dd-yyyy] + > a-z +` + const PARENT_PATH = 'parent/folder/path' + const sortSpecsCollection = processor.parseSortSpecFromText( + sortSpecTxt.split('\n'), + PARENT_PATH, + 'file name with the sorting, irrelevant here' + ) + + const folder: TFolder = mockTFolderWithDateNamedChildren(PARENT_PATH) + const sortSpec: CustomSortSpec = sortSpecsCollection?.sortSpecByPath![PARENT_PATH]! + + const ctx: ProcessingContext = {} + + // when + const result: Array = sortFolderItems(folder, folder.children, sortSpec, ctx, OS_alphabetical) + + // then + const orderedNames = result.map(f => f.name) + expect(orderedNames).toEqual([ + 'CCC Feb-28-2025', + 'BBB Dec-23-2024.md', + 'DDD Jul-15-2024.md', + 'AAA Jan-01-2012' + ]) + }) +}) + + + diff --git a/src/test/mocks.ts b/src/test/mocks.ts index 4b86251..a5853ef 100644 --- a/src/test/mocks.ts +++ b/src/test/mocks.ts @@ -3,6 +3,9 @@ import { TFolder, Vault } from "obsidian"; +import { + lastPathComponent +} from "../utils/utils"; export const mockTFile = (basename: string, ext: string, size?: number, ctime?: number, mtime?: number): TFile => { return { @@ -25,7 +28,7 @@ export const mockTFolder = (name: string, children?: Array, paren isRoot(): boolean { return name === '/' }, vault: {} as Vault, // To satisfy TS typechecking path: `${name}`, - name: name, + name: lastPathComponent(name), parent: parent ?? ({} as TFolder), // To satisfy TS typechecking children: children ?? [] } @@ -53,3 +56,12 @@ export const mockTFolderWithChildren = (name: string): TFolder => { return mockTFolder(name, [child1, child2, child3, child4, child5, subfolder1, subfolder2]) } + +export const mockTFolderWithDateNamedChildren = (name: string): TFolder => { + const child1: TFolder = mockTFolder('AAA Jan-01-2012') + const child2: TFile = mockTFile('BBB Dec-23-2024', 'md') + const child3: TFolder = mockTFolder('CCC Feb-28-2025') + const child4: TFile = mockTFile('DDD Jul-15-2024', 'md') + + return mockTFolder(name, [child1, child2, child3, child4]) +} diff --git a/src/test/unit/sorting-spec-processor.spec.ts b/src/test/unit/sorting-spec-processor.spec.ts index 3a7fbd1..c3e66dc 100644 --- a/src/test/unit/sorting-spec-processor.spec.ts +++ b/src/test/unit/sorting-spec-processor.spec.ts @@ -4,7 +4,9 @@ import { CompoundDotNumberNormalizerFn, ConsumedFolderMatchingRegexp, consumeFolderByRegexpExpression, - convertPlainStringToRegex, Date_dd_Mmm_yyyy_NormalizerFn, + convertPlainStringToRegex, + Date_dd_Mmm_yyyy_NormalizerFn, + Date_Mmm_dd_yyyy_NormalizerFn, detectSortingSymbols, escapeRegexUnsafeCharacters, extractSortingSymbol, @@ -410,11 +412,17 @@ const expectedSortSpecsExampleSortingSymbols: { [key: string]: CustomSortSpec } regex: /^ *([0-3]*[0-9]-(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4}) for the specific date format of 12\-Apr\-2024$/i, normalizerFn: Date_dd_Mmm_yyyy_NormalizerFn } + }, { + type: CustomSortGroupType.ExactName, + regexPrefix: { + regex: /^ *((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-3]*[0-9]-\d{4}) for the specific date format of Apr\-01\-2024$/i, + normalizerFn: Date_Mmm_dd_yyyy_NormalizerFn + } }, { type: CustomSortGroupType.Outsiders }], targetFoldersPaths: ['mock-folder'], - outsidersGroupIdx: 8 + outsidersGroupIdx: 9 } } @@ -427,6 +435,7 @@ And this kind of... \\D+plain syntax??? Here goes ASCII word \\a+ \\A+. is for any modern language word \\[dd-Mmm-yyyy] for the specific date format of 12-Apr-2024 +\\[Mmm-dd-yyyy] for the specific date format of Apr-01-2024 ` describe('SortingSpecProcessor', () => { From 75f971a5b7d98645c4a1346a00236c1240f3924d Mon Sep 17 00:00:00 2001 From: SebastianMC <23032356+SebastianMC@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:06:51 +0100 Subject: [PATCH 9/9] Version bump before release 2.1.15 --- manifest.json | 2 +- package.json | 2 +- versions.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 2bd3af2..0d53ac1 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "custom-sort", "name": "Custom File Explorer sorting", - "version": "2.1.14", + "version": "2.1.15", "minAppVersion": "0.16.2", "description": "Allows for manual and automatic, config-driven reordering and sorting of files and folders in File Explorer", "author": "SebastianMC", diff --git a/package.json b/package.json index 6c79c4b..76cc5a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-custom-sort", - "version": "2.1.14", + "version": "2.1.15", "description": "Custom Sort plugin for Obsidian (https://obsidian.md)", "main": "main.js", "scripts": { diff --git a/versions.json b/versions.json index e4c0478..69c703f 100644 --- a/versions.json +++ b/versions.json @@ -47,5 +47,6 @@ "2.1.11": "0.16.2", "2.1.12": "0.16.2", "2.1.13": "0.16.2", - "2.1.14": "0.16.2" + "2.1.14": "0.16.2", + "2.1.15": "0.16.2" }