UNPKG

mwoffliner

Version:
46 lines 2.97 kB
import * as domino from 'domino'; import { Renderer } from './abstract.renderer.js'; import { getStaticFiles, genCanonicalLink, genHeaderScript, genHeaderCSSLink, getRelativeFilePath } from '../util/misc.js'; import { config } from '../config.js'; import MediaWiki from '../MediaWiki.js'; import { htmlWikimediaMobileTemplateCode } from '../Templates.js'; export class MobileRenderer extends Renderer { staticFilesListMobile = []; constructor() { super(); this.staticFilesListMobile = this.staticFilesListCommon.concat(getStaticFiles(config.output.wikimediaMobileJsResources, config.output.wikimediaMobileCssResources)); } filterWikimediaMobileModules(_moduleDependencies) { const { jsDependenciesList, styleDependenciesList } = _moduleDependencies; const wikimediaMobileJsModuleDependencies = jsDependenciesList.filter((item) => item.includes('javascript/mobile')); const wikimediaMobileCssModuleDependencies = styleDependenciesList.filter((item) => item.includes('css/mobile')); const wikimediaMobileModuleDependencies = { jsDependenciesList: wikimediaMobileJsModuleDependencies, styleDependenciesList: wikimediaMobileCssModuleDependencies, }; return wikimediaMobileModuleDependencies; } genWikimediaMobileOverrideCSSLink(relativeFilePath, css) { return `<link rel="stylesheet" href="${relativeFilePath}${css}.css" />`; } genWikimediaMobileOverrideScript(relativeFilePath, js) { return `<script src='${relativeFilePath}${js}.js'></script>`; } templateMobileArticle(moduleDependencies, articleId) { const { jsDependenciesList, styleDependenciesList } = moduleDependencies; const articleJsList = jsDependenciesList.length === 0 ? '' : jsDependenciesList.map((oneJsDep) => genHeaderScript(config, oneJsDep, articleId, config.output.dirs.mediawiki)).join('\n'); const articleCssList = styleDependenciesList.length === 0 ? '' : styleDependenciesList.map((oneCssDep) => genHeaderCSSLink(config, oneCssDep, articleId, config.output.dirs.mediawiki)).join('\n'); const relativeFilePath = getRelativeFilePath(articleId, ''); const htmlTemplateString = htmlWikimediaMobileTemplateCode() .replace('__ARTICLE_CANONICAL_LINK__', genCanonicalLink(config, MediaWiki.webUrl.href, articleId)) .replace('__ARTICLE_CONFIGVARS_LIST__', '') .replace('__JS_SCRIPTS__', this.genWikimediaMobileOverrideScript(relativeFilePath, config.output.wikimediaMobileJsResources[0])) .replace('__CSS_LINKS__', this.genWikimediaMobileOverrideCSSLink(relativeFilePath, config.output.wikimediaMobileCssResources[0])) .replace('__ARTICLE_JS_LIST__', articleJsList) .replace('__ARTICLE_CSS_LIST__', articleCssList); return domino.createDocument(htmlTemplateString); } } //# sourceMappingURL=abstractMobile.render.js.map