mirror of
				https://github.com/jackyzha0/quartz.git
				synced 2025-10-30 03:17:39 +01:00 
			
		
		
		
	feat: openLinksInNewTab option for link transformer
This commit is contained in:
		
							parent
							
								
									b7ae7a99db
								
							
						
					
					
						commit
						7c01e8dde0
					
				| @ -20,6 +20,7 @@ const isLocalUrl = (href: string) => { | ||||
| 
 | ||||
| const getOpts = ({ target }: Event): { url: URL; scroll?: boolean } | undefined => { | ||||
|   if (!isElement(target)) return | ||||
|   if (target.attributes.getNamedItem("target")?.value === "_blank") return | ||||
|   const a = target.closest("a") | ||||
|   if (!a) return | ||||
|   if ("routerIgnore" in a.dataset) return | ||||
|  | ||||
| @ -18,11 +18,13 @@ interface Options { | ||||
|   markdownLinkResolution: TransformOptions["strategy"] | ||||
|   /** Strips folders from a link so that it looks nice */ | ||||
|   prettyLinks: boolean | ||||
|   openLinksInNewTab: boolean | ||||
| } | ||||
| 
 | ||||
| const defaultOptions: Options = { | ||||
|   markdownLinkResolution: "absolute", | ||||
|   prettyLinks: true, | ||||
|   openLinksInNewTab: false, | ||||
| } | ||||
| 
 | ||||
| export const CrawlLinks: QuartzTransformerPlugin<Partial<Options> | undefined> = (userOpts) => { | ||||
| @ -52,6 +54,10 @@ export const CrawlLinks: QuartzTransformerPlugin<Partial<Options> | undefined> = | ||||
|                 node.properties.className ??= [] | ||||
|                 node.properties.className.push(isAbsoluteUrl(dest) ? "external" : "internal") | ||||
| 
 | ||||
|                 if (opts.openLinksInNewTab) { | ||||
|                   node.properties.target = "_blank" | ||||
|                 } | ||||
| 
 | ||||
|                 // don't process external links or intra-document anchors
 | ||||
|                 const isInternal = !(isAbsoluteUrl(dest) || dest.startsWith("#")) | ||||
|                 if (isInternal) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jacky Zhao
						Jacky Zhao