/** * 转义 HTML 字符 * @param source */ export function encodeHTML(source: string) { return source .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, ''') } /** * 判断是否为代码块 * @param text */ export function includeCode(text: string | null | undefined) { const regexp = /^(?:\s{4}|\t).+/gm return !!(text?.includes(' = ') || text?.match(regexp)) } /** * 复制文本 * @param options */ export function copyText(options: { text: string; origin?: boolean }) { const props = { origin: true, ...options } let input: HTMLInputElement | HTMLTextAreaElement if (props.origin) input = document.createElement('textarea') else input = document.createElement('input') input.setAttribute('readonly', 'readonly') input.value = props.text document.body.appendChild(input) input.select() if (document.execCommand('copy')) document.execCommand('copy') document.body.removeChild(input) }