forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {TagRenderingOptions} from "../TagRenderingOptions";
 | |
| 
 | |
| 
 | |
| export class WikipediaLink extends TagRenderingOptions {
 | |
| 
 | |
|     private static FixLink(value: string): string {
 | |
|         if (value === undefined) {
 | |
|             return undefined;
 | |
|         }
 | |
|         // @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?",
 | |
|         tagsPreprocessor: (tags) => {
 | |
|             if (tags.wikipedia !== undefined) {
 | |
|                 tags.wikipedia = WikipediaLink.FixLink(tags.wikipedia);
 | |
|             }
 | |
|         },
 | |
|         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: ""
 | |
| 
 | |
|         },
 | |
| 
 | |
|     }
 | |
| 
 | |
|     constructor() {
 | |
|         super(WikipediaLink.options);
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |