mirror of
				https://github.com/adityatelange/hugo-PaperMod.git
				synced 2025-11-04 10:22:44 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
 | 
						|
<!-- 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>
 |