export default function (options = {}) { return { extensions: [inlineIframeToken(options), blockIframeToken(options)] }; } const inlineIframeToken = (options = {}) => { const WEBUI_BASE_URL = options.WEBUI_BASE_URL || ''; const htmlIdToken = /{{HTML_FILE_ID_([a-f0-9-]+)}}/gi; // Regex to capture the HTML ID function tokenizer(src) { const match = htmlIdToken.exec(src); if (match) { return { type: 'iframe', raw: match[0], fileId: match[1] }; } } function renderer(token) { const htmlUrl = `${WEBUI_BASE_URL}/api/v1/files/${token.fileId}/content`; const iframeElement = ``; return iframeElement; } return { name: 'iframe', level: 'inline', tokenizer, renderer }; }; const blockIframeToken = (options = {}) => { const WEBUI_BASE_URL = options.WEBUI_BASE_URL || ''; const htmlIdToken = /{{HTML_FILE_ID_([a-f0-9-]+)}}/gi; // Regex to capture the HTML ID function tokenizer(src) { const match = htmlIdToken.exec(src); if (match) { return { type: 'iframe', raw: match[0], fileId: match[1] }; } } function renderer(token) { const htmlUrl = `${WEBUI_BASE_URL}/api/v1/files/${token.fileId}/content`; const iframeElement = ``; return iframeElement; } return { name: 'iframe', level: 'block', tokenizer, renderer }; };