forked from MapComplete/MapComplete
		
	Add apple touch icons, fix for #223
This commit is contained in:
		
							parent
							
								
									e7159ce833
								
							
						
					
					
						commit
						6a03410f56
					
				
					 3 changed files with 31 additions and 26 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								apple_touch_icon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								apple_touch_icon.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 40 KiB | 
							
								
								
									
										22
									
								
								index.html
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								index.html
									
										
									
									
									
								
							|  | @ -4,7 +4,6 @@ | |||
| <head> | ||||
|     <meta charset="UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> | ||||
|     <title>MapComplete</title> | ||||
|     <link rel="stylesheet" href="./vendor/leaflet.css"/> | ||||
|     <link rel="stylesheet" href="./index.css"/> | ||||
|     <link rel="stylesheet" href="./css/userbadge.css"/> | ||||
|  | @ -16,19 +15,17 @@ | |||
|     <link rel="stylesheet" type="text/css" href="node_modules/slick-carousel/slick/slick.css"/> | ||||
|     <link rel="stylesheet" type="text/css" href="node_modules/slick-carousel/slick/slick-theme.css"/> | ||||
|     <link rel="stylesheet" href="./css/slideshow.css"/> | ||||
| 
 | ||||
| 
 | ||||
|     <link href="css/ReviewElement.css" rel="stylesheet"/> | ||||
|     <link rel="stylesheet" href="css/ReviewElement.css"/> | ||||
|     <link rel="stylesheet" href="vendor/MarkerCluster.css"/> | ||||
|     <link rel="stylesheet" href="vendor/MarkerCluster.Default.css"/> | ||||
|     <!-- $$$CUSTOM-CSS --> | ||||
|     <!-- $$$MANIFEST --> | ||||
|     <link rel="manifest" href="./index.manifest"> | ||||
| 
 | ||||
|     <link rel="icon" href="assets/svg/add.svg" sizes="any" type="image/svg+xml"> | ||||
| 
 | ||||
|     <meta property="og:type" content="website"> | ||||
|     <!-- $$$OG-META --> | ||||
| 
 | ||||
|     <!-- THEME-SPECIFIC --> | ||||
|     <title>MapComplete</title> | ||||
|     <link rel="manifest" href="./index.manifest"> | ||||
|     <link rel="icon" href="./assets/svg/add.svg" sizes="any" type="image/svg+xml"> | ||||
|     <link rel="apple-touch-icon" sizes="180x180" href="./apple_touch_icon.png">, | ||||
|     <!-- THEME-SPECIFIC-END--> | ||||
|      | ||||
|     <style> | ||||
|         #decoration-desktop img { | ||||
|  | @ -59,7 +56,8 @@ | |||
| <div id="bottom-left" class="absolute bottom-3 left-3 rounded-3xl z-above-map"></div> | ||||
| <div id="bottom-right" class="absolute bottom-3 right-2 rounded-3xl z-above-map"></div> | ||||
| 
 | ||||
| <div id="centermessage" class="clutter absolute rounded-3xl h-24 left-24 right-24 top-56 bg-white p-3 pt-5 sm:pt-8 text-xl font-bold text-center"> | ||||
| <div id="centermessage" | ||||
|      class="clutter absolute rounded-3xl h-24 left-24 right-24 top-56 bg-white p-3 pt-5 sm:pt-8 text-xl font-bold text-center"> | ||||
|     Loading MapComplete, hang on... | ||||
| </div> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,8 +1,6 @@ | |||
| // We HAVE to mark this while importing
 | ||||
| import {Utils} from "../Utils"; | ||||
| 
 | ||||
| Utils.runningFromConsole = true; | ||||
| const sharp = require('sharp'); | ||||
| 
 | ||||
| import LayoutConfig from "../Customizations/JSON/LayoutConfig"; | ||||
| import {AllKnownLayouts} from "../Customizations/AllKnownLayouts"; | ||||
|  | @ -12,6 +10,8 @@ import Translations from "../UI/i18n/Translations"; | |||
| import {Translation} from "../UI/i18n/Translation"; | ||||
| import Constants from "../Models/Constants"; | ||||
| 
 | ||||
| const sharp = require('sharp'); | ||||
| 
 | ||||
| 
 | ||||
| function enc(str: string): string { | ||||
|     return encodeURIComponent(str.toLowerCase()); | ||||
|  | @ -150,7 +150,7 @@ async function createManifest(layout: LayoutConfig, relativePath: string) { | |||
|     const ogTitle = Translations.W(layout.title).InnerRender(); | ||||
|     const ogDescr = Translations.W(layout.description ?? "").InnerRender(); | ||||
| 
 | ||||
|     const manif = { | ||||
|     return { | ||||
|         name: name, | ||||
|         short_name: ogTitle, | ||||
|         start_url: `${relativePath}/${layout.id.toLowerCase()}.html`, | ||||
|  | @ -159,13 +159,12 @@ async function createManifest(layout: LayoutConfig, relativePath: string) { | |||
|         description: ogDescr, | ||||
|         orientation: "portrait-primary, landscape-primary", | ||||
|         icons: icons | ||||
|     } | ||||
|     return manif; | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| const template = readFileSync("index.html", "utf8"); | ||||
| 
 | ||||
| async function createLandingPage(layout: LayoutConfig) { | ||||
| async function createLandingPage(layout: LayoutConfig, manifest) { | ||||
| 
 | ||||
|     Locale.language.setData(layout.language[0]); | ||||
| 
 | ||||
|  | @ -196,6 +195,13 @@ async function createLandingPage(layout: LayoutConfig) { | |||
|         writeFileSync(icon, layout.icon); | ||||
|     } | ||||
|      | ||||
|     const apple_icons = [] | ||||
|     for (const icon of manifest.icons) { | ||||
|         if(icon.type !== "image/png"){ | ||||
|             continue; | ||||
|         } | ||||
|         apple_icons.push(`<link rel="apple-touch-icon" sizes="${icon.sizes}" href="${icon.src}">`) | ||||
|     } | ||||
|      | ||||
|     let themeSpecific = [ | ||||
|         `<title>${ogTitle}</title>`, | ||||
|  | @ -204,8 +210,7 @@ async function createLandingPage(layout: LayoutConfig) { | |||
|         customCss, | ||||
|         `<link rel="icon" href="assets/svg/add.svg" sizes="any" type="image/svg+xml">`, | ||||
|         `<link rel="icon" href="${icon}" sizes="any" type="image/svg+xml">`, | ||||
|         `<link rel="shortcut icon" href="${icon}">`, | ||||
|         `<link rel="apple-touch-icon" href="${icon}">`, | ||||
|         ...apple_icons | ||||
|     ].join("\n") | ||||
| 
 | ||||
|     let output = template | ||||
|  | @ -247,11 +252,13 @@ for (const layoutName in all) { | |||
|         const manif = JSON.stringify(manifObj, undefined, 2); | ||||
|         const manifestLocation = encodeURIComponent(layout.id.toLowerCase()) + ".webmanifest"; | ||||
|         writeFile(manifestLocation, manif, err); | ||||
|          | ||||
|         // Create a landing page for the given theme
 | ||||
|         createLandingPage(layout, manifObj).then(landing => { | ||||
|             writeFile(enc(layout.id) + ".html", landing, err) | ||||
|         }); | ||||
|     }) | ||||
|     // Create a landing page for the given theme
 | ||||
|     createLandingPage(layout).then(landing => { | ||||
|         writeFile(enc(layout.id) + ".html", landing, err) | ||||
|     }); | ||||
|     | ||||
| } | ||||
| 
 | ||||
| createManifest(new LayoutConfig({ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue