Files
notesnook/packages/core/utils/title-format.js
2023-06-08 11:56:59 +05:00

59 lines
1.6 KiB
JavaScript

/*
This file is part of the Notesnook project (https://notesnook.com/)
Copyright (C) 2023 Streetwriters (Private) Limited
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { formatDate } from "./date";
export const NEWLINE_STRIP_REGEX = /[\r\n\t\v]+/gm;
const DATE_REGEX = /\$date\$/g;
const COUNT_REGEX = /\$count\$/g;
const TIME_REGEX = /\$time\$/g;
const HEADLINE_REGEX = /\$headline\$/g;
const TIMESTAMP_REGEX = /\$timestamp\$/g;
const DATE_TIME_STRIP_REGEX = /[\\\-: ]/g;
export function formatTitle(
titleFormat,
dateFormat,
timeFormat,
headline,
totalNotes
) {
const date = formatDate(Date.now(), {
dateFormat,
timeFormat,
type: "date"
});
const time = formatDate(Date.now(), {
dateFormat,
timeFormat,
type: "time"
});
const timestamp = `${date}${time}`.replace(DATE_TIME_STRIP_REGEX, "");
return titleFormat
.replace(NEWLINE_STRIP_REGEX, " ")
.replace(DATE_REGEX, date)
.replace(TIME_REGEX, time)
.replace(HEADLINE_REGEX, headline)
.replace(TIMESTAMP_REGEX, timestamp)
.replace(COUNT_REGEX, totalNotes + 1);
}