Files
outline/shared/utils/parseTitle.ts
Apoorv Mishra 1c7bb65c7a Document emoji picker (#4338)
Co-authored-by: Tom Moor <tom.moor@gmail.com>
2023-09-03 06:11:14 -07:00

27 lines
701 B
TypeScript

import emojiRegex from "emoji-regex";
export default function parseTitle(text = "") {
const regex = emojiRegex();
// find and extract title
const firstLine = text.trim().split(/\r?\n/)[0];
const title = firstLine.replace(/^#/, "").trim();
// find and extract first emoji
const matches = regex.exec(title);
const firstEmoji = matches ? matches[0] : null;
const startsWithEmoji = firstEmoji && title.startsWith(firstEmoji);
const emoji = startsWithEmoji ? firstEmoji : undefined;
// title with first leading emoji stripped
const strippedTitle = startsWithEmoji
? title.replace(firstEmoji, "").trim()
: title;
return {
title,
emoji,
strippedTitle,
};
}