summaryrefslogtreecommitdiff
path: root/src/components/licenses/CC.astro
diff options
context:
space:
mode:
authorJoão Augusto Costa Branco Marado Torres <torres.dev@disroot.org>2025-06-24 12:08:41 -0300
committerJoão Augusto Costa Branco Marado Torres <torres.dev@disroot.org>2025-06-24 12:50:43 -0300
commitf9a77c5c27aede4e5978eb55d9b7af781b680a1d (patch)
treed545e325ba1ae756fc2eac66fac1001b6753c40d /src/components/licenses/CC.astro
feat!: initial commit
Signed-off-by: João Augusto Costa Branco Marado Torres <torres.dev@disroot.org>
Diffstat (limited to 'src/components/licenses/CC.astro')
-rw-r--r--src/components/licenses/CC.astro120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/components/licenses/CC.astro b/src/components/licenses/CC.astro
new file mode 100644
index 0000000..61f9114
--- /dev/null
+++ b/src/components/licenses/CC.astro
@@ -0,0 +1,120 @@
+---
+import type { Props as BaseProps } from "../CopyRightNotice.astro";
+interface Props extends BaseProps {}
+
+let { title, website, author, dateCreated, license } = Astro.props;
+const publicdomain = license === "CC0";
+const sa = /SA/.test(license);
+const nd = /ND/.test(license);
+const nc = /NC/.test(license);
+const licenseURL = `https://creativecommons.org/licenses/${
+ license.slice(3).toLowerCase()
+}/4.0/`;
+---
+
+<footer itemprop="copyrightNotice">
+ {
+ publicdomain ? (
+ <p>
+ <small>
+ <a href={Astro.url}>{title}</a> by <span
+ itemprop="copyrightholder"
+ itemscope
+ itemtype="https://schema.org/Person"
+ >{
+ website ? (
+ <a
+ itemprop="url"
+ rel="author external noreferrer"
+ target="_blank"
+ href={website}
+ content={website}
+ ><span itemprop="name">{author}</span></a>
+ ) : author
+ }</span> is marked <a
+ itemprop="license"
+ rel="license noreferrer"
+ target="_blank"
+ href="https://creativecommons.org/publicdomain/zero/1.0/"
+ content="https://creativecommons.org/publicdomain/zero/1.0/"
+ >CC0 1.0</a>
+ <img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/cc.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ >
+ <img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/zero.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ >
+ </small>
+ </p>
+ ) : (
+ <p>
+ <small>
+ <a href={Astro.url}>{title}</a> © <span itemprop="copyrightYear">{
+ dateCreated.getFullYear()
+ }</span> by <span
+ itemprop="copyrightholder"
+ itemscope
+ itemtype="https://schema.org/Person"
+ >{
+ website ? (
+ <a
+ itemprop="url"
+ href={website}
+ target="_blank"
+ rel="author external noreferrer"
+ content={website}
+ ><span itemprop="name">{author}</span></a>
+ ) : author
+ }</span> is licensed under <a
+ itemprop="license"
+ rel="license noreferrer"
+ target="_blank"
+ href={licenseURL}
+ content={licenseURL}
+ >{license.replace("CC-", "CC ")} 4.0</a>
+ <img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/cc.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ >
+ <img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/by.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ >
+ {
+ nc && (
+ <img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/nc.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ >
+ )
+ }
+ {
+ sa && (
+ <>{" "}<img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/sa.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ ></>
+ )
+ }
+ {
+ nd && (
+ <>{" "}<img
+ alt=""
+ src="https://mirrors.creativecommons.org/presskit/icons/nd.svg"
+ style="max-width: 1em; max-height: 1em; margin-left: 0.2em"
+ ></>
+ )
+ }
+ </small>
+ </p>
+ )
+ }
+</footer>