forked from MapComplete/MapComplete
		
	Remove images in overview, fix #2007
This commit is contained in:
		
							parent
							
								
									eb184ed882
								
							
						
					
					
						commit
						c8b87e92f7
					
				
					 1 changed files with 72 additions and 69 deletions
				
			
		| 
						 | 
				
			
			@ -31,6 +31,8 @@ import PointRenderingConfig from "../src/Models/ThemeConfig/PointRenderingConfig
 | 
			
		|||
import { ConversionContext } from "../src/Models/ThemeConfig/Conversion/ConversionContext"
 | 
			
		||||
import { GenerateFavouritesLayer } from "./generateFavouritesLayer"
 | 
			
		||||
import LayoutConfig from "../src/Models/ThemeConfig/LayoutConfig"
 | 
			
		||||
import Translations from "../src/UI/i18n/Translations"
 | 
			
		||||
import { Translatable } from "../src/Models/ThemeConfig/Json/Translatable"
 | 
			
		||||
 | 
			
		||||
// This scripts scans 'src/assets/layers/*.json' for layer definition files and 'src/assets/themes/*.json' for theme definition files.
 | 
			
		||||
// It spits out an overview of those to be used to load them
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +55,7 @@ class ParseLayer extends Conversion<
 | 
			
		|||
 | 
			
		||||
    convert(
 | 
			
		||||
        path: string,
 | 
			
		||||
        context: ConversionContext
 | 
			
		||||
        context: ConversionContext,
 | 
			
		||||
    ): {
 | 
			
		||||
        parsed: LayerConfig
 | 
			
		||||
        raw: LayerConfigJson
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +110,7 @@ class AddIconSummary extends DesugaringStep<{ raw: LayerConfigJson; parsed: Laye
 | 
			
		|||
        const fixed = json.raw
 | 
			
		||||
        const layerConfig = json.parsed
 | 
			
		||||
        const pointRendering: PointRenderingConfig = layerConfig.mapRendering.find((pr) =>
 | 
			
		||||
            pr.location.has("point")
 | 
			
		||||
            pr.location.has("point"),
 | 
			
		||||
        )
 | 
			
		||||
        const defaultTags = layerConfig.GetBaseTags()
 | 
			
		||||
        fixed["_layerIcon"] = Utils.NoNull(
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +125,7 @@ class AddIconSummary extends DesugaringStep<{ raw: LayerConfigJson; parsed: Laye
 | 
			
		|||
                    result["color"] = c
 | 
			
		||||
                }
 | 
			
		||||
                return result
 | 
			
		||||
            })
 | 
			
		||||
            }),
 | 
			
		||||
        )
 | 
			
		||||
        return { raw: fixed, parsed: layerConfig }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +147,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
 | 
			
		||||
    private static extractLayerIdsFrom(
 | 
			
		||||
        themeFile: LayoutConfigJson,
 | 
			
		||||
        includeInlineLayers = true
 | 
			
		||||
        includeInlineLayers = true,
 | 
			
		||||
    ): string[] {
 | 
			
		||||
        const publicLayerIds: string[] = []
 | 
			
		||||
        if (!Array.isArray(themeFile.layers)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -177,6 +179,10 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        return publicLayerIds
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static cleanTranslation(t: Record<string, string> | Translation): Translatable {
 | 
			
		||||
        return Translations.T(t).OnEveryLanguage((s) => parse_html(s).textContent).translations
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    shouldBeUpdated(sourcefile: string | string[], targetfile: string): boolean {
 | 
			
		||||
        if (!existsSync(targetfile)) {
 | 
			
		||||
            return true
 | 
			
		||||
| 
						 | 
				
			
			@ -208,10 +214,10 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                | LayerConfigJson
 | 
			
		||||
                | string
 | 
			
		||||
                | {
 | 
			
		||||
                      builtin
 | 
			
		||||
                  }
 | 
			
		||||
            )[]
 | 
			
		||||
        }[]
 | 
			
		||||
                builtin
 | 
			
		||||
            }
 | 
			
		||||
                )[]
 | 
			
		||||
        }[],
 | 
			
		||||
    ) {
 | 
			
		||||
        const perId = new Map<string, any>()
 | 
			
		||||
        for (const theme of themes) {
 | 
			
		||||
| 
						 | 
				
			
			@ -226,7 +232,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            const data = {
 | 
			
		||||
                id: theme.id,
 | 
			
		||||
                title: theme.title,
 | 
			
		||||
                shortDescription: theme.shortDescription,
 | 
			
		||||
                shortDescription: LayerOverviewUtils.cleanTranslation(theme.shortDescription),
 | 
			
		||||
                icon: theme.icon,
 | 
			
		||||
                hideFromOverview: theme.hideFromOverview,
 | 
			
		||||
                mustHaveLanguage: theme.mustHaveLanguage,
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +258,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        writeFileSync(
 | 
			
		||||
            "./src/assets/generated/theme_overview.json",
 | 
			
		||||
            JSON.stringify(sorted, null, "  "),
 | 
			
		||||
            { encoding: "utf8" }
 | 
			
		||||
            { encoding: "utf8" },
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -264,7 +270,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        writeFileSync(
 | 
			
		||||
            `${LayerOverviewUtils.themePath}${theme.id}.json`,
 | 
			
		||||
            JSON.stringify(theme, null, "  "),
 | 
			
		||||
            { encoding: "utf8" }
 | 
			
		||||
            { encoding: "utf8" },
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -275,12 +281,12 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        writeFileSync(
 | 
			
		||||
            `${LayerOverviewUtils.layerPath}${layer.id}.json`,
 | 
			
		||||
            JSON.stringify(layer, null, "  "),
 | 
			
		||||
            { encoding: "utf8" }
 | 
			
		||||
            { encoding: "utf8" },
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static asDict(
 | 
			
		||||
        trs: QuestionableTagRenderingConfigJson[]
 | 
			
		||||
        trs: QuestionableTagRenderingConfigJson[],
 | 
			
		||||
    ): Map<string, QuestionableTagRenderingConfigJson> {
 | 
			
		||||
        const d = new Map<string, QuestionableTagRenderingConfigJson>()
 | 
			
		||||
        for (const tr of trs) {
 | 
			
		||||
| 
						 | 
				
			
			@ -293,12 +299,12 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
    getSharedTagRenderings(
 | 
			
		||||
        doesImageExist: DoesImageExist,
 | 
			
		||||
        bootstrapTagRenderings: Map<string, QuestionableTagRenderingConfigJson>,
 | 
			
		||||
        bootstrapTagRenderingsOrder: string[]
 | 
			
		||||
        bootstrapTagRenderingsOrder: string[],
 | 
			
		||||
    ): QuestionableTagRenderingConfigJson[]
 | 
			
		||||
    getSharedTagRenderings(
 | 
			
		||||
        doesImageExist: DoesImageExist,
 | 
			
		||||
        bootstrapTagRenderings: Map<string, QuestionableTagRenderingConfigJson> = null,
 | 
			
		||||
        bootstrapTagRenderingsOrder: string[] = []
 | 
			
		||||
        bootstrapTagRenderingsOrder: string[] = [],
 | 
			
		||||
    ): QuestionableTagRenderingConfigJson[] {
 | 
			
		||||
        const prepareLayer = new PrepareLayer(
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -309,7 +315,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            },
 | 
			
		||||
            {
 | 
			
		||||
                addTagRenderingsToContext: true,
 | 
			
		||||
            }
 | 
			
		||||
            },
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        const path = "assets/layers/questions/questions.json"
 | 
			
		||||
| 
						 | 
				
			
			@ -329,7 +335,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        return this.getSharedTagRenderings(
 | 
			
		||||
            doesImageExist,
 | 
			
		||||
            dict,
 | 
			
		||||
            sharedQuestions.tagRenderings.map((tr) => tr["id"])
 | 
			
		||||
            sharedQuestions.tagRenderings.map((tr) => tr["id"]),
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -369,8 +375,8 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            if (contents.indexOf("<text") > 0) {
 | 
			
		||||
                console.warn(
 | 
			
		||||
                    "The SVG at " +
 | 
			
		||||
                        path +
 | 
			
		||||
                        " contains a `text`-tag. This is highly discouraged. Every machine viewing your theme has their own font libary, and the font you choose might not be present, resulting in a different font being rendered. Solution: open your .svg in inkscape (or another program), select the text and convert it to a path"
 | 
			
		||||
                    path +
 | 
			
		||||
                    " contains a `text`-tag. This is highly discouraged. Every machine viewing your theme has their own font libary, and the font you choose might not be present, resulting in a different font being rendered. Solution: open your .svg in inkscape (or another program), select the text and convert it to a path",
 | 
			
		||||
                )
 | 
			
		||||
                errCount++
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -386,14 +392,14 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            args
 | 
			
		||||
                .find((a) => a.startsWith("--themes="))
 | 
			
		||||
                ?.substring("--themes=".length)
 | 
			
		||||
                ?.split(",") ?? []
 | 
			
		||||
                ?.split(",") ?? [],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        const layerWhitelist = new Set(
 | 
			
		||||
            args
 | 
			
		||||
                .find((a) => a.startsWith("--layers="))
 | 
			
		||||
                ?.substring("--layers=".length)
 | 
			
		||||
                ?.split(",") ?? []
 | 
			
		||||
                ?.split(",") ?? [],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        const forceReload = args.some((a) => a == "--force")
 | 
			
		||||
| 
						 | 
				
			
			@ -422,11 +428,11 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            sharedLayers,
 | 
			
		||||
            recompiledThemes,
 | 
			
		||||
            forceReload,
 | 
			
		||||
            themeWhitelist
 | 
			
		||||
            themeWhitelist,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        new ValidateThemeEnsemble().convertStrict(
 | 
			
		||||
            Array.from(sharedThemes.values()).map((th) => new LayoutConfig(th, true))
 | 
			
		||||
            Array.from(sharedThemes.values()).map((th) => new LayoutConfig(th, true)),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        if (recompiledThemes.length > 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -434,7 +440,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                "./src/assets/generated/known_layers.json",
 | 
			
		||||
                JSON.stringify({
 | 
			
		||||
                    layers: Array.from(sharedLayers.values()).filter((l) => l.id !== "favourite"),
 | 
			
		||||
                })
 | 
			
		||||
                }),
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -455,7 +461,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            const proto: LayoutConfigJson = JSON.parse(
 | 
			
		||||
                readFileSync("./assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json", {
 | 
			
		||||
                    encoding: "utf8",
 | 
			
		||||
                })
 | 
			
		||||
                }),
 | 
			
		||||
            )
 | 
			
		||||
            const protolayer = <LayerConfigJson>(
 | 
			
		||||
                proto.layers.filter((l) => l["id"] === "mapcomplete-changes")[0]
 | 
			
		||||
| 
						 | 
				
			
			@ -472,12 +478,12 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                layers: ScriptUtils.getLayerFiles().map((f) => f.parsed),
 | 
			
		||||
                themes: ScriptUtils.getThemeFiles().map((f) => f.parsed),
 | 
			
		||||
            },
 | 
			
		||||
            ConversionContext.construct([], [])
 | 
			
		||||
            ConversionContext.construct([], []),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        for (const [_, theme] of sharedThemes) {
 | 
			
		||||
            theme.layers = theme.layers.filter(
 | 
			
		||||
                (l) => Constants.added_by_default.indexOf(l["id"]) < 0
 | 
			
		||||
                (l) => Constants.added_by_default.indexOf(l["id"]) < 0,
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -486,7 +492,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                "./src/assets/generated/known_themes.json",
 | 
			
		||||
                JSON.stringify({
 | 
			
		||||
                    themes: Array.from(sharedThemes.values()),
 | 
			
		||||
                })
 | 
			
		||||
                }),
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -498,7 +504,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
    private parseLayer(
 | 
			
		||||
        doesImageExist: DoesImageExist,
 | 
			
		||||
        prepLayer: PrepareLayer,
 | 
			
		||||
        sharedLayerPath: string
 | 
			
		||||
        sharedLayerPath: string,
 | 
			
		||||
    ): {
 | 
			
		||||
        raw: LayerConfigJson
 | 
			
		||||
        parsed: LayerConfig
 | 
			
		||||
| 
						 | 
				
			
			@ -509,7 +515,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        const parsed = parser.convertStrict(sharedLayerPath, context)
 | 
			
		||||
        const result = AddIconSummary.singleton.convertStrict(
 | 
			
		||||
            parsed,
 | 
			
		||||
            context.inOperation("AddIconSummary")
 | 
			
		||||
            context.inOperation("AddIconSummary"),
 | 
			
		||||
        )
 | 
			
		||||
        return { ...result, context }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -517,7 +523,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
    private buildLayerIndex(
 | 
			
		||||
        doesImageExist: DoesImageExist,
 | 
			
		||||
        forceReload: boolean,
 | 
			
		||||
        whitelist: Set<string>
 | 
			
		||||
        whitelist: Set<string>,
 | 
			
		||||
    ): Map<string, LayerConfigJson> {
 | 
			
		||||
        // First, we expand and validate all builtin layers. These are written to src/assets/generated/layers
 | 
			
		||||
        // At the same time, an index of available layers is built.
 | 
			
		||||
| 
						 | 
				
			
			@ -572,17 +578,17 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
 | 
			
		||||
        console.log(
 | 
			
		||||
            "Recompiled layers " +
 | 
			
		||||
                recompiledLayers.join(", ") +
 | 
			
		||||
                " and skipped " +
 | 
			
		||||
                skippedLayers.length +
 | 
			
		||||
                " layers. Detected " +
 | 
			
		||||
                warningCount +
 | 
			
		||||
                " warnings"
 | 
			
		||||
            recompiledLayers.join(", ") +
 | 
			
		||||
            " and skipped " +
 | 
			
		||||
            skippedLayers.length +
 | 
			
		||||
            " layers. Detected " +
 | 
			
		||||
            warningCount +
 | 
			
		||||
            " warnings",
 | 
			
		||||
        )
 | 
			
		||||
        // We always need the calculated tags of 'usersettings', so we export them separately
 | 
			
		||||
        this.extractJavascriptCodeForLayer(
 | 
			
		||||
            state.sharedLayers.get("usersettings"),
 | 
			
		||||
            "./src/Logic/State/UserSettingsMetaTagging.ts"
 | 
			
		||||
            "./src/Logic/State/UserSettingsMetaTagging.ts",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        return sharedLayers
 | 
			
		||||
| 
						 | 
				
			
			@ -599,8 +605,8 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
    private extractJavascriptCode(themeFile: LayoutConfigJson) {
 | 
			
		||||
        const allCode = [
 | 
			
		||||
            "import {Feature} from 'geojson'",
 | 
			
		||||
            'import { ExtraFuncType } from "../../../Logic/ExtraFunctions";',
 | 
			
		||||
            'import { Utils } from "../../../Utils"',
 | 
			
		||||
            "import { ExtraFuncType } from \"../../../Logic/ExtraFunctions\";",
 | 
			
		||||
            "import { Utils } from \"../../../Utils\"",
 | 
			
		||||
            "export class ThemeMetaTagging {",
 | 
			
		||||
            "   public static readonly themeName = " + JSON.stringify(themeFile.id),
 | 
			
		||||
            "",
 | 
			
		||||
| 
						 | 
				
			
			@ -612,8 +618,8 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
 | 
			
		||||
            allCode.push(
 | 
			
		||||
                "   public metaTaggging_for_" +
 | 
			
		||||
                    id +
 | 
			
		||||
                    "(feat: Feature, helperFunctions: Record<ExtraFuncType, (feature: Feature) => Function>) {"
 | 
			
		||||
                id +
 | 
			
		||||
                "(feat: Feature, helperFunctions: Record<ExtraFuncType, (feature: Feature) => Function>) {",
 | 
			
		||||
            )
 | 
			
		||||
            allCode.push("      const {" + ExtraFunctions.types.join(", ") + "} = helperFunctions")
 | 
			
		||||
            for (const line of code) {
 | 
			
		||||
| 
						 | 
				
			
			@ -624,10 +630,10 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                if (!isStrict) {
 | 
			
		||||
                    allCode.push(
 | 
			
		||||
                        "      Utils.AddLazyProperty(feat.properties, '" +
 | 
			
		||||
                            attributeName +
 | 
			
		||||
                            "', () => " +
 | 
			
		||||
                            expression +
 | 
			
		||||
                            " ) "
 | 
			
		||||
                        attributeName +
 | 
			
		||||
                        "', () => " +
 | 
			
		||||
                        expression +
 | 
			
		||||
                        " ) ",
 | 
			
		||||
                    )
 | 
			
		||||
                } else {
 | 
			
		||||
                    attributeName = attributeName.substring(0, attributeName.length - 1).trim()
 | 
			
		||||
| 
						 | 
				
			
			@ -672,7 +678,7 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        const code = l.calculatedTags ?? []
 | 
			
		||||
 | 
			
		||||
        allCode.push(
 | 
			
		||||
            "   public metaTaggging_for_" + l.id + "(feat: {properties: Record<string, string>}) {"
 | 
			
		||||
            "   public metaTaggging_for_" + l.id + "(feat: {properties: Record<string, string>}) {",
 | 
			
		||||
        )
 | 
			
		||||
        for (const line of code) {
 | 
			
		||||
            const firstEq = line.indexOf("=")
 | 
			
		||||
| 
						 | 
				
			
			@ -682,10 +688,10 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
            if (!isStrict) {
 | 
			
		||||
                allCode.push(
 | 
			
		||||
                    "      Utils.AddLazyProperty(feat.properties, '" +
 | 
			
		||||
                        attributeName +
 | 
			
		||||
                        "', () => " +
 | 
			
		||||
                        expression +
 | 
			
		||||
                        " ) "
 | 
			
		||||
                    attributeName +
 | 
			
		||||
                    "', () => " +
 | 
			
		||||
                    expression +
 | 
			
		||||
                    " ) ",
 | 
			
		||||
                )
 | 
			
		||||
            } else {
 | 
			
		||||
                attributeName = attributeName.substring(0, attributeName.length - 2).trim()
 | 
			
		||||
| 
						 | 
				
			
			@ -710,14 +716,14 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
        sharedLayers: Map<string, LayerConfigJson>,
 | 
			
		||||
        recompiledThemes: string[],
 | 
			
		||||
        forceReload: boolean,
 | 
			
		||||
        whitelist: Set<string>
 | 
			
		||||
        whitelist: Set<string>,
 | 
			
		||||
    ): Map<string, LayoutConfigJson> {
 | 
			
		||||
        console.log("   ---------- VALIDATING BUILTIN THEMES ---------")
 | 
			
		||||
        const themeFiles = ScriptUtils.getThemeFiles()
 | 
			
		||||
        const fixed = new Map<string, LayoutConfigJson>()
 | 
			
		||||
 | 
			
		||||
        const publicLayers = LayerOverviewUtils.publicLayerIdsFrom(
 | 
			
		||||
            themeFiles.map((th) => th.parsed)
 | 
			
		||||
            themeFiles.map((th) => th.parsed),
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        const trs = this.getSharedTagRenderings(new DoesImageExist(licensePaths, existsSync))
 | 
			
		||||
| 
						 | 
				
			
			@ -757,15 +763,15 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                LayerOverviewUtils.themePath + "/" + themePath.substring(themePath.lastIndexOf("/"))
 | 
			
		||||
 | 
			
		||||
            const usedLayers = Array.from(
 | 
			
		||||
                LayerOverviewUtils.extractLayerIdsFrom(themeFile, false)
 | 
			
		||||
                LayerOverviewUtils.extractLayerIdsFrom(themeFile, false),
 | 
			
		||||
            ).map((id) => LayerOverviewUtils.layerPath + id + ".json")
 | 
			
		||||
 | 
			
		||||
            if (!forceReload && !this.shouldBeUpdated([themePath, ...usedLayers], targetPath)) {
 | 
			
		||||
                fixed.set(
 | 
			
		||||
                    themeFile.id,
 | 
			
		||||
                    JSON.parse(
 | 
			
		||||
                        readFileSync(LayerOverviewUtils.themePath + themeFile.id + ".json", "utf8")
 | 
			
		||||
                    )
 | 
			
		||||
                        readFileSync(LayerOverviewUtils.themePath + themeFile.id + ".json", "utf8"),
 | 
			
		||||
                    ),
 | 
			
		||||
                )
 | 
			
		||||
                ScriptUtils.erasableLog("Skipping", themeFile.id)
 | 
			
		||||
                skippedThemes.push(themeFile.id)
 | 
			
		||||
| 
						 | 
				
			
			@ -776,23 +782,23 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
 | 
			
		||||
            new PrevalidateTheme().convertStrict(
 | 
			
		||||
                themeFile,
 | 
			
		||||
                ConversionContext.construct([themePath], ["PrepareLayer"])
 | 
			
		||||
                ConversionContext.construct([themePath], ["PrepareLayer"]),
 | 
			
		||||
            )
 | 
			
		||||
            try {
 | 
			
		||||
                themeFile = new PrepareTheme(convertState, {
 | 
			
		||||
                    skipDefaultLayers: true,
 | 
			
		||||
                }).convertStrict(
 | 
			
		||||
                    themeFile,
 | 
			
		||||
                    ConversionContext.construct([themePath], ["PrepareLayer"])
 | 
			
		||||
                    ConversionContext.construct([themePath], ["PrepareLayer"]),
 | 
			
		||||
                )
 | 
			
		||||
                new ValidateThemeAndLayers(
 | 
			
		||||
                    new DoesImageExist(licensePaths, existsSync, knownTagRenderings),
 | 
			
		||||
                    themePath,
 | 
			
		||||
                    true,
 | 
			
		||||
                    knownTagRenderings
 | 
			
		||||
                    knownTagRenderings,
 | 
			
		||||
                ).convertStrict(
 | 
			
		||||
                    themeFile,
 | 
			
		||||
                    ConversionContext.construct([themePath], ["PrepareLayer"])
 | 
			
		||||
                    ConversionContext.construct([themePath], ["PrepareLayer"]),
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
                if (themeFile.icon.endsWith(".svg")) {
 | 
			
		||||
| 
						 | 
				
			
			@ -841,22 +847,19 @@ class LayerOverviewUtils extends Script {
 | 
			
		|||
                        ...t,
 | 
			
		||||
                        hideFromOverview: t.hideFromOverview ?? false,
 | 
			
		||||
                        shortDescription:
 | 
			
		||||
                            t.shortDescription ??
 | 
			
		||||
                            new Translation(t.description)
 | 
			
		||||
                                .FirstSentence()
 | 
			
		||||
                                .OnEveryLanguage((s) => parse_html(s).textContent).translations,
 | 
			
		||||
                            t.shortDescription ?? new Translation(t.description).FirstSentence(),
 | 
			
		||||
                        mustHaveLanguage: t.mustHaveLanguage?.length > 0,
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
                }),
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        console.log(
 | 
			
		||||
            "Recompiled themes " +
 | 
			
		||||
                recompiledThemes.join(", ") +
 | 
			
		||||
                " and skipped " +
 | 
			
		||||
                skippedThemes.length +
 | 
			
		||||
                " themes"
 | 
			
		||||
            recompiledThemes.join(", ") +
 | 
			
		||||
            " and skipped " +
 | 
			
		||||
            skippedThemes.length +
 | 
			
		||||
            " themes",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        return fixed
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue