 b6442c233d
			
		
	
	b6442c233d
	
	
	
		
			
			web: Fix issues surrounding markdown rendering. - Fix issue where Mermaid diagrams do not render. - Fix link colors in dark mode. - Fix anchored links triggering router. - Fix issue where links occasionally link to missing page.
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @import {Plugin} from 'unified'
 | |
|  * @import {Directives} from 'mdast-util-directive'
 | |
|  * @import {} from 'mdast-util-to-hast'
 | |
|  * @import {Root} from 'mdast'
 | |
|  * @import {VFile} from 'vfile'
 | |
|  */
 | |
| import { h } from "hastscript";
 | |
| import { visit } from "unist-util-visit";
 | |
| 
 | |
| const ADMONITION_TYPES = new Set(["info", "warning", "danger", "note"]);
 | |
| 
 | |
| /**
 | |
|  * Remark plugin to process links
 | |
|  * @type {Plugin<[unknown], Root, VFile>}
 | |
|  */
 | |
| export function remarkAdmonition() {
 | |
|     return function transformer(tree) {
 | |
|         /**
 | |
|          * @param {Directives} node
 | |
|          */
 | |
|         const visitor = (node) => {
 | |
|             if (
 | |
|                 node.type === "containerDirective" ||
 | |
|                 node.type === "leafDirective" ||
 | |
|                 node.type === "textDirective"
 | |
|             ) {
 | |
|                 if (!ADMONITION_TYPES.has(node.name)) return;
 | |
| 
 | |
|                 const data = node.data || (node.data = {});
 | |
| 
 | |
|                 const tagName = node.type === "textDirective" ? "span" : "ak-alert";
 | |
| 
 | |
|                 data.hName = tagName;
 | |
| 
 | |
|                 const element = h(tagName, node.attributes || {});
 | |
| 
 | |
|                 data.hProperties = element.properties || {};
 | |
|                 data.hProperties.level = `pf-m-${node.name}`;
 | |
|             }
 | |
|         };
 | |
| 
 | |
|         // @ts-ignore - visit cannot infer the type of the visitor.
 | |
|         visit(tree, visitor);
 | |
|     };
 | |
| }
 |