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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |