Browse Source

feat: add copyright license option

Enables adding Creative Commons copyright licenses on both site wide and per page basis with the new option:

`copyright_license = {enable = false, allow_derivatives = false, share_alike = true, allow_commercial = false, notice = "This work is licensed under {license}"}`

Close #1670
George Cushen 5 years ago
parent
commit
b4901e3fd2

+ 18 - 0
assets/scss/academic/_footer

@@ -0,0 +1,18 @@
+.footer-license-icons {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: center;
+  list-style: none;
+  height: auto;
+  width: auto;
+  font-size: 0;  // Hack to remove space characters between icons without using UL.
+  text-decoration: none;
+}
+
+.footer-license-icons img {
+ display: inline-flex;
+  margin-right: 8px;
+  height: 22px;
+  vertical-align: text-bottom;
+}

+ 1 - 0
assets/scss/academic/academic.scss

@@ -6,6 +6,7 @@
  **************************************************/
 
 @import "root";
+@import "footer";
 @import "nav";
 @import "card";
 @import "search";

+ 4 - 0
exampleSite/config/_default/params.toml

@@ -152,6 +152,10 @@ docs_section_pager = true  # Display pager in Docs layout (e.g. tutorials)?
 # Enable in-built social sharing buttons? (true/false)
 sharing = true
 
+# Show a copyright license from creativecommons.org in the site footer?
+# Page specific copyright licenses are also possible by adding this option to a page's front matter.
+copyright_license = {enable = false, allow_derivatives = false, share_alike = true, allow_commercial = false, notice = "This work is licensed under {license}"}
+
 # Link authors to their profile page? (true/false)
 link_authors = true
 

+ 6 - 1
layouts/partials/site_footer.html

@@ -12,8 +12,13 @@
   {{ end }}
 
   <p class="powered-by">
-    {{ with site.Copyright }}{{ replace . "{year}" now.Year | markdownify}} &middot; {{ end }}
+    {{ with site.Copyright }}{{ replace . "{year}" now.Year | markdownify}}{{ end }}
+  </p>
+
+  {{/* Display copyright license. */}}
+  {{ partial "site_footer_license" . }}
 
+  <p class="powered-by">
     Powered by the
     <a href="https://sourcethemes.com/academic/" target="_blank" rel="noopener">Academic theme</a> for
     <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a>.

+ 43 - 0
layouts/partials/site_footer_license.html

@@ -0,0 +1,43 @@
+{{/* Display copyright license. */}}
+
+{{ $copyright_license := .Params.copyright_license | default site.Params.copyright_license }}
+
+{{ if and $copyright_license $copyright_license.enable }}
+
+  {{ $notice := .Params.copyright_license.notice  | default site.Params.copyright_license.notice  }}
+  {{ $allow_commercial := .Params.allow_commercial | default site.Params.allow_commercial }}
+  {{ $allow_derivatives := .Params.allow_derivatives | default site.Params.allow_derivatives }}
+  {{ $share_alike := .Params.share_alike | default site.Params.share_alike }}
+
+  {{$cc_code := "by"}}
+  {{ if not $allow_commercial }}{{ $cc_code = printf "%s-nc" $cc_code}}{{end}}
+  {{ if not $allow_derivatives }}
+    {{ if $share_alike }}
+      {{ $cc_code = printf "%s-sa" $cc_code}}
+    {{else}}
+      {{ $cc_code = printf "%s-nd" $cc_code}}
+    {{end}}
+  {{end}}
+
+  {{ $license_url := printf "https://creativecommons.org/licenses/%s/4.0" ($cc_code | urlize) }}
+
+  {{ with $notice }}
+  <p class="powered-by copyright-license-text">
+    {{ replace . "{license}" (printf "<a href=\"%s\" rel=\"noopener noreferrer\" target=\"_blank\">CC %s 4.0</a>" $license_url (replace $cc_code "-" " " | upper)) | markdownify }}
+  </p>
+  {{ end }}
+
+  <p class="powered-by footer-license-icons">
+    <a href="{{$license_url}}" rel="noopener noreferrer" target="_blank">
+      <img src="https://search.creativecommons.org/static/img/cc_icon.svg" alt="CC icon">
+      <img src="https://search.creativecommons.org/static/img/cc-by_icon.svg" alt="CC by icon">
+      {{ if not $allow_commercial }}<img src="https://search.creativecommons.org/static/img/cc-nc_icon.svg" alt="CC NC icon">{{end}}
+      {{ if not $allow_derivatives }}
+        <img src="https://search.creativecommons.org/static/img/cc-nd_icon.svg" alt="CC ND icon">
+        {{ if $share_alike }}
+          <img src="https://search.creativecommons.org/static/img/cc-sa_icon.svg" alt="CC SA icon">
+        {{end}}
+      {{end}}
+    </a>
+  </p>
+{{ end }}