forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			53 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import {TagRenderingOptions} from "../TagRendering"; | ||
|  | 
 | ||
|  | 
 | ||
|  | export class WikipediaLink extends TagRenderingOptions { | ||
|  | 
 | ||
|  |     private static FixLink(value: string): string { | ||
|  |         // @ts-ignore
 | ||
|  |         if (value.startsWith("https")) { | ||
|  |             return value; | ||
|  |         } else { | ||
|  | 
 | ||
|  |             const splitted = value.split(":"); | ||
|  |             const language = splitted[0]; | ||
|  |             splitted.shift(); | ||
|  |             const page = splitted.join(":"); | ||
|  |             return 'https://' + language + '.wikipedia.org/wiki/' + page; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     static options = { | ||
|  |         priority: 10, | ||
|  |         // question: "Wat is het overeenstemmende wkipedia-artikel?",
 | ||
|  |         freeform: { | ||
|  |             key: "wikipedia", | ||
|  |             template: "$$$", | ||
|  |             renderTemplate: | ||
|  |                 "<span class='wikipedialink'>" + | ||
|  |                 "<a href='{wikipedia}' target='_blank'>" + | ||
|  |                 "<img width='64px' src='./assets/wikipedia.svg' alt='wikipedia'>" + | ||
|  |                 "</a></span>", | ||
|  |             placeholder: "", | ||
|  |             tagsPreprocessor: (tags) => { | ||
|  | 
 | ||
|  |                 const newTags = {}; | ||
|  |                 for (const k in tags) { | ||
|  |                     if (k === "wikipedia") { | ||
|  |                         newTags["wikipedia"] = WikipediaLink.FixLink(tags[k]); | ||
|  |                     } else { | ||
|  |                         newTags[k] = tags[k]; | ||
|  |                     } | ||
|  |                 } | ||
|  |                 return newTags; | ||
|  |             } | ||
|  |         }, | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     constructor() { | ||
|  |         super(WikipediaLink.options); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  | } |