mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { power_user } from './power-user.js';
 | |
| 
 | |
| // Showdown extension to make chat separators (dinkuses) ignore markdown formatting
 | |
| export const markdownExclusionExt = () => {
 | |
|     if (!power_user) {
 | |
|         console.log("Showdown-dinkus extension: power_user wasn't found! Returning.");
 | |
|         return []
 | |
|     }
 | |
| 
 | |
|     let combinedExcludeString = '';
 | |
|     if (power_user.custom_chat_separator) {
 | |
|         combinedExcludeString += `${power_user.custom_chat_separator},`;
 | |
|     }
 | |
| 
 | |
|     if (power_user.markdown_escape_strings) {
 | |
|         combinedExcludeString += power_user.markdown_escape_strings;
 | |
|     }
 | |
| 
 | |
|     const escapedExclusions = combinedExcludeString
 | |
|         .split(",")
 | |
|         .filter((element) => element.length > 0)
 | |
|         .map((element) => `(${element.split('').map((char) => `\\${char}`).join('')})`);
 | |
| 
 | |
| 
 | |
|     // No exclusions? No extension!
 | |
|     if (!combinedExcludeString || combinedExcludeString.length === 0 || escapedExclusions.length === 0) {
 | |
|         return [];
 | |
|     }
 | |
| 
 | |
|     const replaceRegex = new RegExp(`^(${escapedExclusions.join("|")})\n`, "gm");
 | |
|     return [{
 | |
|         type: "lang",
 | |
|         regex: replaceRegex,
 | |
|         replace: ((match) => match.replace(replaceRegex, `\u0000${match} \n`))
 | |
|     }];
 | |
| }
 |