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
|
||||
- `\d+`, `\.d+` or `\-d+` for plain numbers or compound plain numbers
|
||||
- `\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
|
||||
|
||||
|
|
|
@ -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_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_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_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_Mmm_dd_yyyy_NormalizerFn = getNormalizedDate_NormalizerFn_for('-', 1, 0, 2, MONTHS)
|
||||
|
||||
|
|
|
@ -17,7 +17,9 @@ import {
|
|||
CompoundRomanNumberDashRegexStr,
|
||||
CompoundRomanNumberDotRegexStr,
|
||||
DASH_SEPARATOR,
|
||||
Date_dd_mm_yyyy_RegexStr,
|
||||
Date_dd_Mmm_yyyy_RegexStr,
|
||||
Date_mm_dd_yyyy_RegexStr,
|
||||
Date_Mmm_dd_yyyy_RegexStr,
|
||||
Date_yyyy_dd_mm_RegexStr,
|
||||
Date_yyyy_mm_dd_RegexStr,
|
||||
|
@ -25,7 +27,9 @@ import {
|
|||
Date_yyyy_Www_RegexStr,
|
||||
Date_yyyy_WwwISO_RegexStr,
|
||||
DOT_SEPARATOR,
|
||||
getNormalizedDate_dd_mm_yyyy_NormalizerFn,
|
||||
getNormalizedDate_dd_Mmm_yyyy_NormalizerFn,
|
||||
getNormalizedDate_mm_dd_yyyy_NormalizerFn,
|
||||
getNormalizedDate_Mmm_dd_yyyy_NormalizerFn,
|
||||
getNormalizedDate_yyyy_dd_mm_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_dd_Mmm_yyyy_RegexSymbol: string = '\\[dd-Mmm-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_RegexSymbol: string = '\\[yyyy-Www]'
|
||||
const Date_yyyy_WwwISO_RegexSymbol: string = '\\[yyyy-WwwISO]'
|
||||
|
@ -389,6 +395,8 @@ const sortingSymbolsArr: Array<string> = [
|
|||
escapeRegexUnsafeCharacters(Date_yyyy_dd_mm_RegexSymbol),
|
||||
escapeRegexUnsafeCharacters(Date_dd_Mmm_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_WwwISO_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_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_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_WwwISO_NormalizerFn: NormalizerFn = (s: string) => getNormalizedDate_yyyy_WwwISO_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_dd_Mmm_yyyy,
|
||||
Date_Mmm_dd_yyyy,
|
||||
Date_dd_mm_yyyy,
|
||||
Date_mm_dd_yyyy,
|
||||
Date_yyyy_Www_mm_dd_yyyy,
|
||||
Date_yyyy_WwwISO,
|
||||
Date_yyyy_Www
|
||||
|
@ -548,6 +560,16 @@ const sortingSymbolToRegexpStr: { [key: string]: RegExpSpecStr } = {
|
|||
normalizerFn: Date_Mmm_dd_yyyy_NormalizerFn,
|
||||
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
|
||||
regexpStr: Date_yyyy_Www_mm_dd_RegexStr,
|
||||
normalizerFn: Date_yyyy_Www_mm_dd_NormalizerFn,
|
||||
|
|
|
@ -5,7 +5,9 @@ import {
|
|||
ConsumedFolderMatchingRegexp,
|
||||
consumeFolderByRegexpExpression,
|
||||
convertPlainStringToRegex,
|
||||
Date_dd_mm_yyyy_NormalizerFn,
|
||||
Date_dd_Mmm_yyyy_NormalizerFn,
|
||||
Date_mm_dd_yyyy_NormalizerFn,
|
||||
Date_Mmm_dd_yyyy_NormalizerFn,
|
||||
Date_yyyy_dd_mm_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]
|
||||
\\[yyyy-mm-dd] plain spec 1
|
||||
\\[yyyy-dd-mm] plain spec 2
|
||||
\\[dd-mm-yyyy] plain spec 3
|
||||
\\[mm-dd-yyyy] plain spec 4
|
||||
`
|
||||
|
||||
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,
|
||||
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
|
||||
}],
|
||||
targetFoldersPaths: ['mock-folder'],
|
||||
outsidersGroupIdx: 14
|
||||
outsidersGroupIdx: 16
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue