mirror of
				https://github.com/adityatelange/hugo-PaperMod.git
				synced 2025-10-25 22:52:32 +02:00 
			
		
		
		
	add blockquote as shortcode
This commit is contained in:
		
							
								
								
									
										72
									
								
								layouts/shortcodes/blockquote.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								layouts/shortcodes/blockquote.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,72 @@ | ||||
|  | ||||
| <!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes --> | ||||
| <!-- port of Octopress blockquote plugin http://octopress.org/docs/plugins/blockquote/ to Hugo | ||||
|      see readme for usage --> | ||||
|  | ||||
| <!-- reset scratch variables at the start --> | ||||
| {{ $.Scratch.Set "bl_author" false }} | ||||
| {{ $.Scratch.Set "bl_source" false }} | ||||
| {{ $.Scratch.Set "bl_link" false }} | ||||
| {{ $.Scratch.Set "bl_title" false }} | ||||
|  | ||||
| {{ if .IsNamedParams }} | ||||
|   {{ $.Scratch.Set "bl_author" (.Get "author") }} | ||||
|   {{ $.Scratch.Set "bl_source" (.Get "source") }} | ||||
|   {{ $.Scratch.Set "bl_link" (.Get "link") }} | ||||
|   {{ $.Scratch.Set "bl_title" (.Get "title") }} | ||||
| {{ else }} | ||||
|   <!-- for the positional version if any --> | ||||
| {{ end }} | ||||
|  | ||||
| <!-- if title is not set explicitly then we need to beautify the link | ||||
|      if length of link is more than 32 chars, we will cut it off by 32 and | ||||
|      then drop everything after the last / if any and put it in into title --> | ||||
|  | ||||
| {{ with $.Scratch.Get "bl_title" }} | ||||
|   <!-- do nothing --> | ||||
| {{ else }} | ||||
|   {{ with $.Scratch.Get "bl_link" }}    <!-- if link is given --> | ||||
|     {{ range last 1 (split ($.Scratch.Get "bl_link" ) "://") }}  <!-- split by :// and then only take the items after it to remove protocol:// --> | ||||
|       {{ $.Scratch.Set "title_without_protocol" . }} | ||||
|     {{ end }} | ||||
|     {{ range last 1 (split ($.Scratch.Get "title_without_protocol" ) "www.")  }} <!-- also remove the www. at the start if any. we are using a second split because all URLS may not start with it --> | ||||
|       {{ $.Scratch.Set "title_without_protocol" . }} | ||||
|     {{ end }} | ||||
|     {{ $.Scratch.Set "bl_title" ($.Scratch.Get "title_without_protocol") }} | ||||
|  | ||||
|     <!-- if link is longer than 32 bytes we should trim it --> | ||||
|     {{ if (gt (len ($.Scratch.Get "title_without_protocol") ) 32) }} | ||||
|       {{ $title := (slicestr ($.Scratch.Get "title_without_protocol") 0 32) }}   <!-- get the first 32 characters of title_without_protocol --> | ||||
|       {{ $split_by_fw_slash := split $title "/" }}   <!-- now split on / because we want to stop after the last forward slash --> | ||||
|       {{ $count := (sub (len $split_by_fw_slash) 1) }}   <!-- we want everything but the last part so we adjust the count accordingly --> | ||||
|  | ||||
|       {{ $.Scratch.Set "tempstring" "" }}   <!-- temp variable to hold the concatinated string --> | ||||
|       {{ range first $count $split_by_fw_slash  }}  <!-- loop through all parts except last and concat them (add / between halves) --> | ||||
|         {{ $.Scratch.Set "tempstring" ( . | printf "%s%s/" ($.Scratch.Get "tempstring") | printf "%s" ) }} | ||||
|       {{ end }} | ||||
|       {{ $.Scratch.Set "bl_title" ( printf "%s..." ($.Scratch.Get "tempstring") | printf "%s" ) }} | ||||
|     {{ end }} | ||||
|   {{ end }} | ||||
| {{ end }} | ||||
|  | ||||
| <blockquote> | ||||
|   <p>{{ .Inner | markdownify }}</p> | ||||
|   <footer> | ||||
|     <strong>{{ with $.Scratch.Get "bl_author" }}{{ . }}{{ end }}</strong> | ||||
|     {{ with $.Scratch.Get "bl_source" }} | ||||
|       <cite>{{ . }}</cite> | ||||
|     {{ else }} | ||||
|       {{ with $.Scratch.Get "bl_link" }} | ||||
|         <cite> | ||||
|           <a href="{{ . }}" title="{{ . }}">{{ $.Scratch.Get "bl_title" }}</a> <!-- can't have new lines here --> | ||||
|         </cite> | ||||
|       {{ else }} | ||||
|         {{ with $.Scratch.Get "bl_title" }} | ||||
|           <cite> | ||||
|             {{ $.Scratch.Get "bl_title" }}</a> | ||||
|           </cite> | ||||
|         {{ end }} | ||||
|       {{ end }} | ||||
|     {{ end }} | ||||
|   </footer> | ||||
| </blockquote> | ||||
		Reference in New Issue
	
	Block a user
	 parsiya
					parsiya