UNPKG

mwoffliner

Version:
94 lines (93 loc) 3.02 kB
import { Dump } from '../Dump.js'; type renderType = 'auto' | 'desktop' | 'mobile' | 'specific'; type renderName = 'VisualEditor' | 'WikimediaDesktop' | 'WikimediaMobile' | 'RestApi'; interface RendererBuilderOptionsBase { renderType: renderType; } interface RendererBuilderOptionsCommon { renderType: renderType; renderName?: never; } interface RendererBuilderOptionsSpecific extends RendererBuilderOptionsBase { renderType: 'specific'; renderName: renderName; } export type RendererBuilderOptions = RendererBuilderOptionsCommon | RendererBuilderOptionsSpecific; export interface RenderOpts { data?: any; _moduleDependencies: any; articleId?: string; articleDetailXId?: RKVS<ArticleDetail>; articleDetail?: ArticleDetail; isMainPage?: boolean; dump: Dump; } export interface RenderSingleOutput { articleId: string; displayTitle: string; html: string; imageDependencies: any; videoDependencies: any; mediaDependencies: any; moduleDependencies: any; staticFiles: string[]; subtitles: any; } export type RenderOutput = RenderSingleOutput[]; export declare abstract class Renderer { staticFilesListCommon: string[]; constructor(); protected treatVideo(dump: Dump, srcCache: KVS<boolean>, articleId: string, videoEl: DominoElement): Promise<{ imageDependencies: string[]; videoDependencies: string[]; subtitles: string[]; }>; private adjustVideoElementAttributes; private chooseBestVideoSource; private handleVideoPoster; private updateVideoSrc; protected treatSubtitle(trackEle: DominoElement, articleId: string): Promise<string>; private treatImageFrames; private treatImage; private shouldKeepImage; protected treatMedias(parsoidDoc: DominoElement, dump: Dump, articleId: string): Promise<{ doc: any; imageDependencies: string[]; videoDependencies: string[]; subtitles: string[]; }>; private isStillLinked; private shouldKeepNode; private makeThumbDiv; processHtml(html: string, dump: Dump, articleId: string, articleDetail: any, _moduleDependencies: any, callback: any): Promise<{ finalHTML: string; mediaDependencies: { url: string; path: string; }[]; imageDependencies: { url: string; path: string; }[]; videoDependencies: { url: string; path: string; }[]; subtitles: { url: string; path: string; }[]; }>; private mergeTemplateDoc; private addNoIndexCommentToElement; private isSubpage; private clearLinkAndInputTags; private clearNodes; private applyOtherTreatments; /** * Add an H1 tag with page title on top of article except main page */ protected injectH1TitleToHtml(content: string, articleDetail: any): string; abstract render(renderOpts: RenderOpts): Promise<any>; } export {};