| /** | |
| * 转义 HTML 字符 | |
| * @param source | |
| */ | |
| export function encodeHTML(source: string) { | |
| return source | |
| .replace(/&/g, '&') | |
| .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) | |
| } | |