mirror of
https://github.com/langgenius/dify.git
synced 2026-03-12 02:28:54 +08:00
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
30 lines
962 B
TypeScript
30 lines
962 B
TypeScript
import { ALLOW_UNSAFE_DATA_SCHEME, MARKETPLACE_API_PREFIX } from '@/config'
|
|
|
|
type MdastNode = {
|
|
tagName?: string
|
|
children?: MdastNode[]
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export const hasImageChild = (children: MdastNode[] | undefined): boolean => {
|
|
return children?.some((child) => {
|
|
if (child.tagName === 'img')
|
|
return true
|
|
return child.children ? hasImageChild(child.children) : false
|
|
}) ?? false
|
|
}
|
|
|
|
export const isValidUrl = (url: string): boolean => {
|
|
const validPrefixes = ['http:', 'https:', '//', 'mailto:']
|
|
if (ALLOW_UNSAFE_DATA_SCHEME)
|
|
validPrefixes.push('data:')
|
|
return validPrefixes.some(prefix => url.startsWith(prefix))
|
|
}
|
|
|
|
export const getMarkdownImageURL = (url: string, pathname?: string) => {
|
|
const regex = /(^\.\/_assets|^_assets)/
|
|
if (regex.test(url))
|
|
return `${MARKETPLACE_API_PREFIX}${MARKETPLACE_API_PREFIX.endsWith('/') ? '' : '/'}plugins/${pathname ?? ''}${url.replace(regex, '/_assets')}`
|
|
return url
|
|
}
|