| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  | import {writeFile} from "fs"; | 
					
						
							|  |  |  | import Translations from "../UI/i18n/Translations"; | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  | import * as themeOverview from "../assets/generated/theme_overview.json" | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  | function generateWikiEntry(layout: {hideFromOverview: boolean, id: string, shortDescription: any}) { | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  |     if (layout.hideFromOverview) { | 
					
						
							|  |  |  |         return ""; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  |      | 
					
						
							|  |  |  |     const languagesInDescr = [] | 
					
						
							|  |  |  |     for (const shortDescriptionKey in layout.shortDescription) { | 
					
						
							|  |  |  |         languagesInDescr.push(shortDescriptionKey) | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  |      | 
					
						
							|  |  |  |     const languages = languagesInDescr .map(ln => `{{#language:${ln}|en}}`).join(", ") | 
					
						
							|  |  |  |     let auth = "Yes"; | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  |     return `{{service_item
 | 
					
						
							|  |  |  | |name= [https://mapcomplete.osm.be/${layout.id} ${layout.id}]
 | 
					
						
							|  |  |  | |region= Worldwide | 
					
						
							|  |  |  | |lang= ${languages} | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  | |descr= A MapComplete theme: ${Translations.WT(layout.shortDescription) | 
					
						
							| 
									
										
										
										
											2021-09-28 22:33:09 +02:00
										 |  |  |         .textFor("en") | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  |         .replace("<a href='", "[[") | 
					
						
							|  |  |  |         .replace(/'>.*<\/a>/, "]]") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | |material= {{yes|[https://mapcomplete.osm.be/ ${auth}]}}
 | 
					
						
							|  |  |  | |image= MapComplete_Screenshot.png | 
					
						
							|  |  |  | |genre= POI, editor, ${layout.id} | 
					
						
							|  |  |  | }}`
 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  | let wikiPage = "{|class=\"wikitable sortable\"\n" + | 
					
						
							|  |  |  |     "! Name, link !! Genre !! Covered region !! Language !! Description !! Free materials !! Image\n" + | 
					
						
							|  |  |  |     "|-"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  | for (const layout of themeOverview) { | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |     if (layout.hideFromOverview) { | 
					
						
							| 
									
										
										
										
											2021-03-16 14:14:59 +01:00
										 |  |  |         continue; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     wikiPage += "\n" + generateWikiEntry(layout); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | wikiPage += "\n|}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | writeFile("Docs/wikiIndex.txt", wikiPage, (err) => { | 
					
						
							|  |  |  |     if (err !== null) { | 
					
						
							|  |  |  |         console.log("Could not save wikiindex", err); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); |