Added support for more formats of dates extraction from titles
- \[dd-mm-yyyy] and \[mm-dd-yyyy] - main README.md updated accordingly
This commit is contained in:
parent
ac263a7407
commit
44631bee4f
|
@ -175,7 +175,7 @@ The list of automatic sorting orders includes:
|
||||||
- `\R+`, `\.R+` or `\-R+` for Roman numbers
|
- `\R+`, `\.R+` or `\-R+` for Roman numbers
|
||||||
- `\d+`, `\.d+` or `\-d+` for plain numbers or compound plain numbers
|
- `\d+`, `\.d+` or `\-d+` for plain numbers or compound plain numbers
|
||||||
- `\a+` to extract the last word from title
|
- `\a+` to extract the last word from title
|
||||||
- `\[yyyy-mm-dd]`, `\[yyyy-dd-mm]`, `\[dd-Mmm-yyyy]`, `\[Mmm-dd-yyyy]`, `\[yyyy-Www (mm-dd)]`, `\[yyyy-Www]` or `\[yyyy-WwwISO]` to extract dates in various formats
|
- `\[yyyy-mm-dd]`, `\[yyyy-dd-mm]`, `\[dd-Mmm-yyyy]`, `\[mm-dd-yyyy]`, `\[dd-mm-yyyy]`, `\[Mmm-dd-yyyy]`, `\[yyyy-Www (mm-dd)]`, `\[yyyy-Www]` or `\[yyyy-WwwISO]` to extract dates in various formats
|
||||||
|
|
||||||
## Sorting by note name and note name with file extension
|
## Sorting by note name and note name with file extension
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,9 @@ export const CompoundNumberDashRegexStr: string = ' *(\\d+(?:-\\d+)*)'; // Compo
|
||||||
export const Date_yyyy_mm_dd_RegexStr: string = ' *(\\d{4}-[0-3]*[0-9]-[0-3]*[0-9])'
|
export const Date_yyyy_mm_dd_RegexStr: string = ' *(\\d{4}-[0-3]*[0-9]-[0-3]*[0-9])'
|
||||||
export const Date_yyyy_dd_mm_RegexStr: string = Date_yyyy_mm_dd_RegexStr
|
export const Date_yyyy_dd_mm_RegexStr: string = Date_yyyy_mm_dd_RegexStr
|
||||||
|
|
||||||
|
export const Date_mm_dd_yyyy_RegexStr: string = ' *([0-3]*[0-9]-[0-3]*[0-9]-\\d{4})'
|
||||||
|
export const Date_dd_mm_yyyy_RegexStr: string = Date_mm_dd_yyyy_RegexStr
|
||||||
|
|
||||||
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_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 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
|
||||||
|
|
||||||
|
@ -138,6 +141,8 @@ export function getNormalizedDate_NormalizerFn_for(separator: string, dayIdx: nu
|
||||||
|
|
||||||
export const getNormalizedDate_yyyy_mm_dd_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 2, 1, 0)
|
export const getNormalizedDate_yyyy_mm_dd_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 2, 1, 0)
|
||||||
export const getNormalizedDate_yyyy_dd_mm_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 2, 0)
|
export const getNormalizedDate_yyyy_dd_mm_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 2, 0)
|
||||||
|
export const getNormalizedDate_mm_dd_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 0, 2)
|
||||||
|
export const getNormalizedDate_dd_mm_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 0, 1, 2)
|
||||||
export const getNormalizedDate_dd_Mmm_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 0, 1, 2, MONTHS)
|
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)
|
export const getNormalizedDate_Mmm_dd_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 0, 2, MONTHS)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,9 @@ import {
|
||||||
CompoundRomanNumberDashRegexStr,
|
CompoundRomanNumberDashRegexStr,
|
||||||
CompoundRomanNumberDotRegexStr,
|
CompoundRomanNumberDotRegexStr,
|
||||||
DASH_SEPARATOR,
|
DASH_SEPARATOR,
|
||||||
|
Date_dd_mm_yyyy_RegexStr,
|
||||||
Date_dd_Mmm_yyyy_RegexStr,
|
Date_dd_Mmm_yyyy_RegexStr,
|
||||||
|
Date_mm_dd_yyyy_RegexStr,
|
||||||
Date_Mmm_dd_yyyy_RegexStr,
|
Date_Mmm_dd_yyyy_RegexStr,
|
||||||
Date_yyyy_dd_mm_RegexStr,
|
Date_yyyy_dd_mm_RegexStr,
|
||||||
Date_yyyy_mm_dd_RegexStr,
|
Date_yyyy_mm_dd_RegexStr,
|
||||||
|
@ -25,7 +27,9 @@ import {
|
||||||
Date_yyyy_Www_RegexStr,
|
Date_yyyy_Www_RegexStr,
|
||||||
Date_yyyy_WwwISO_RegexStr,
|
Date_yyyy_WwwISO_RegexStr,
|
||||||
DOT_SEPARATOR,
|
DOT_SEPARATOR,
|
||||||
|
getNormalizedDate_dd_mm_yyyy_NormalizerFn,
|
||||||
getNormalizedDate_dd_Mmm_yyyy_NormalizerFn,
|
getNormalizedDate_dd_Mmm_yyyy_NormalizerFn,
|
||||||
|
getNormalizedDate_mm_dd_yyyy_NormalizerFn,
|
||||||
getNormalizedDate_Mmm_dd_yyyy_NormalizerFn,
|
getNormalizedDate_Mmm_dd_yyyy_NormalizerFn,
|
||||||
getNormalizedDate_yyyy_dd_mm_NormalizerFn,
|
getNormalizedDate_yyyy_dd_mm_NormalizerFn,
|
||||||
getNormalizedDate_yyyy_mm_dd_NormalizerFn,
|
getNormalizedDate_yyyy_mm_dd_NormalizerFn,
|
||||||
|
@ -363,6 +367,8 @@ const Date_yyyy_mm_dd_RegexSymbol: string = '\\[yyyy-mm-dd]'
|
||||||
const Date_yyyy_dd_mm_RegexSymbol: string = '\\[yyyy-dd-mm]'
|
const Date_yyyy_dd_mm_RegexSymbol: string = '\\[yyyy-dd-mm]'
|
||||||
const Date_dd_Mmm_yyyy_RegexSymbol: string = '\\[dd-Mmm-yyyy]'
|
const Date_dd_Mmm_yyyy_RegexSymbol: string = '\\[dd-Mmm-yyyy]'
|
||||||
const Date_Mmm_dd_yyyy_RegexSymbol: string = '\\[Mmm-dd-yyyy]'
|
const Date_Mmm_dd_yyyy_RegexSymbol: string = '\\[Mmm-dd-yyyy]'
|
||||||
|
const Date_dd_mm_yyyy_RegexSymbol: string = '\\[dd-mm-yyyy]'
|
||||||
|
const Date_mm_dd_yyyy_RegexSymbol: string = '\\[mm-dd-yyyy]'
|
||||||
const Date_yyyy_Www_mm_dd_RegexSymbol: string = '\\[yyyy-Www (mm-dd)]'
|
const Date_yyyy_Www_mm_dd_RegexSymbol: string = '\\[yyyy-Www (mm-dd)]'
|
||||||
const Date_yyyy_Www_RegexSymbol: string = '\\[yyyy-Www]'
|
const Date_yyyy_Www_RegexSymbol: string = '\\[yyyy-Www]'
|
||||||
const Date_yyyy_WwwISO_RegexSymbol: string = '\\[yyyy-WwwISO]'
|
const Date_yyyy_WwwISO_RegexSymbol: string = '\\[yyyy-WwwISO]'
|
||||||
|
@ -389,6 +395,8 @@ const sortingSymbolsArr: Array<string> = [
|
||||||
escapeRegexUnsafeCharacters(Date_yyyy_dd_mm_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_yyyy_dd_mm_RegexSymbol),
|
||||||
escapeRegexUnsafeCharacters(Date_dd_Mmm_yyyy_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_dd_Mmm_yyyy_RegexSymbol),
|
||||||
escapeRegexUnsafeCharacters(Date_Mmm_dd_yyyy_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_Mmm_dd_yyyy_RegexSymbol),
|
||||||
|
escapeRegexUnsafeCharacters(Date_dd_mm_yyyy_RegexSymbol),
|
||||||
|
escapeRegexUnsafeCharacters(Date_mm_dd_yyyy_RegexSymbol),
|
||||||
escapeRegexUnsafeCharacters(Date_yyyy_Www_mm_dd_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_yyyy_Www_mm_dd_RegexSymbol),
|
||||||
escapeRegexUnsafeCharacters(Date_yyyy_WwwISO_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_yyyy_WwwISO_RegexSymbol),
|
||||||
escapeRegexUnsafeCharacters(Date_yyyy_Www_RegexSymbol),
|
escapeRegexUnsafeCharacters(Date_yyyy_Www_RegexSymbol),
|
||||||
|
@ -463,6 +471,8 @@ export const Date_yyyy_mm_dd_NormalizerFn: NormalizerFn = (s: string) => getNorm
|
||||||
export const Date_yyyy_dd_mm_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_dd_mm_NormalizerFn(s)
|
export const Date_yyyy_dd_mm_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_dd_mm_NormalizerFn(s)
|
||||||
export const Date_dd_Mmm_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_dd_Mmm_yyyy_NormalizerFn(s)
|
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 const Date_Mmm_dd_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_Mmm_dd_yyyy_NormalizerFn(s)
|
||||||
|
export const Date_dd_mm_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_dd_mm_yyyy_NormalizerFn(s)
|
||||||
|
export const Date_mm_dd_yyyy_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_mm_dd_yyyy_NormalizerFn(s)
|
||||||
export const Date_yyyy_Www_mm_dd_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_Www_mm_dd_NormalizerFn(s)
|
export const Date_yyyy_Www_mm_dd_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_Www_mm_dd_NormalizerFn(s)
|
||||||
export const Date_yyyy_WwwISO_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_WwwISO_NormalizerFn(s)
|
export const Date_yyyy_WwwISO_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_WwwISO_NormalizerFn(s)
|
||||||
export const Date_yyyy_Www_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_Www_NormalizerFn(s)
|
export const Date_yyyy_Www_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_Www_NormalizerFn(s)
|
||||||
|
@ -481,6 +491,8 @@ export enum AdvancedRegexType {
|
||||||
Date_yyyy_dd_mm,
|
Date_yyyy_dd_mm,
|
||||||
Date_dd_Mmm_yyyy,
|
Date_dd_Mmm_yyyy,
|
||||||
Date_Mmm_dd_yyyy,
|
Date_Mmm_dd_yyyy,
|
||||||
|
Date_dd_mm_yyyy,
|
||||||
|
Date_mm_dd_yyyy,
|
||||||
Date_yyyy_Www_mm_dd_yyyy,
|
Date_yyyy_Www_mm_dd_yyyy,
|
||||||
Date_yyyy_WwwISO,
|
Date_yyyy_WwwISO,
|
||||||
Date_yyyy_Www
|
Date_yyyy_Www
|
||||||
|
@ -548,6 +560,16 @@ const sortingSymbolToRegexpStr: { [key: string]: RegExpSpecStr } = {
|
||||||
normalizerFn: Date_Mmm_dd_yyyy_NormalizerFn,
|
normalizerFn: Date_Mmm_dd_yyyy_NormalizerFn,
|
||||||
advancedRegexType: AdvancedRegexType.Date_Mmm_dd_yyyy
|
advancedRegexType: AdvancedRegexType.Date_Mmm_dd_yyyy
|
||||||
},
|
},
|
||||||
|
[Date_dd_mm_yyyy_RegexSymbol]: { // Intentionally retain character case
|
||||||
|
regexpStr: Date_dd_mm_yyyy_RegexStr,
|
||||||
|
normalizerFn: Date_dd_mm_yyyy_NormalizerFn,
|
||||||
|
advancedRegexType: AdvancedRegexType.Date_dd_mm_yyyy
|
||||||
|
},
|
||||||
|
[Date_mm_dd_yyyy_RegexSymbol]: { // Intentionally retain character case
|
||||||
|
regexpStr: Date_mm_dd_yyyy_RegexStr,
|
||||||
|
normalizerFn: Date_mm_dd_yyyy_NormalizerFn,
|
||||||
|
advancedRegexType: AdvancedRegexType.Date_mm_dd_yyyy
|
||||||
|
},
|
||||||
[Date_yyyy_Www_mm_dd_RegexSymbol]: { // Intentionally retain character case
|
[Date_yyyy_Www_mm_dd_RegexSymbol]: { // Intentionally retain character case
|
||||||
regexpStr: Date_yyyy_Www_mm_dd_RegexStr,
|
regexpStr: Date_yyyy_Www_mm_dd_RegexStr,
|
||||||
normalizerFn: Date_yyyy_Www_mm_dd_NormalizerFn,
|
normalizerFn: Date_yyyy_Www_mm_dd_NormalizerFn,
|
||||||
|
|
|
@ -5,7 +5,9 @@ import {
|
||||||
ConsumedFolderMatchingRegexp,
|
ConsumedFolderMatchingRegexp,
|
||||||
consumeFolderByRegexpExpression,
|
consumeFolderByRegexpExpression,
|
||||||
convertPlainStringToRegex,
|
convertPlainStringToRegex,
|
||||||
|
Date_dd_mm_yyyy_NormalizerFn,
|
||||||
Date_dd_Mmm_yyyy_NormalizerFn,
|
Date_dd_Mmm_yyyy_NormalizerFn,
|
||||||
|
Date_mm_dd_yyyy_NormalizerFn,
|
||||||
Date_Mmm_dd_yyyy_NormalizerFn,
|
Date_Mmm_dd_yyyy_NormalizerFn,
|
||||||
Date_yyyy_dd_mm_NormalizerFn,
|
Date_yyyy_dd_mm_NormalizerFn,
|
||||||
Date_yyyy_mm_dd_NormalizerFn,
|
Date_yyyy_mm_dd_NormalizerFn,
|
||||||
|
@ -387,6 +389,8 @@ Week number interpreted in ISO standard \\[yyyy-WwwISO]
|
||||||
Week number interpreted in U.S. standard \\[yyyy-Www]
|
Week number interpreted in U.S. standard \\[yyyy-Www]
|
||||||
\\[yyyy-mm-dd] plain spec 1
|
\\[yyyy-mm-dd] plain spec 1
|
||||||
\\[yyyy-dd-mm] plain spec 2
|
\\[yyyy-dd-mm] plain spec 2
|
||||||
|
\\[dd-mm-yyyy] plain spec 3
|
||||||
|
\\[mm-dd-yyyy] plain spec 4
|
||||||
`
|
`
|
||||||
|
|
||||||
const expectedSortSpecsExampleSortingSymbols: { [key: string]: CustomSortSpec } = {
|
const expectedSortSpecsExampleSortingSymbols: { [key: string]: CustomSortSpec } = {
|
||||||
|
@ -479,11 +483,23 @@ const expectedSortSpecsExampleSortingSymbols: { [key: string]: CustomSortSpec }
|
||||||
regex: /^ *(\d{4}-[0-3]*[0-9]-[0-3]*[0-9]) plain spec 2$/i,
|
regex: /^ *(\d{4}-[0-3]*[0-9]-[0-3]*[0-9]) plain spec 2$/i,
|
||||||
normalizerFn: Date_yyyy_dd_mm_NormalizerFn
|
normalizerFn: Date_yyyy_dd_mm_NormalizerFn
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
type: CustomSortGroupType.ExactName,
|
||||||
|
regexPrefix: {
|
||||||
|
regex: /^ *([0-3]*[0-9]-[0-3]*[0-9]-\d{4}) plain spec 3$/i,
|
||||||
|
normalizerFn: Date_dd_mm_yyyy_NormalizerFn
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
type: CustomSortGroupType.ExactName,
|
||||||
|
regexPrefix: {
|
||||||
|
regex: /^ *([0-3]*[0-9]-[0-3]*[0-9]-\d{4}) plain spec 4$/i,
|
||||||
|
normalizerFn: Date_mm_dd_yyyy_NormalizerFn
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
type: CustomSortGroupType.Outsiders
|
type: CustomSortGroupType.Outsiders
|
||||||
}],
|
}],
|
||||||
targetFoldersPaths: ['mock-folder'],
|
targetFoldersPaths: ['mock-folder'],
|
||||||
outsidersGroupIdx: 14
|
outsidersGroupIdx: 16
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue