commit 3b20dadd2d383536408552f220b361ede82dae70
parent 7ebaed550e699b082651c019e019f5c923d9c954
Author: MTRNord <mtrnord1@gmail.com>
Date: Fri, 28 Jan 2022 22:57:29 +0100
Add License to the post page
Diffstat:
2 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml
@@ -18,7 +18,7 @@ jobs:
- name: Checkout Actions Repository
uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
- - name: Check spelling of proposals
+ - name: Check spelling
uses: crate-ci/typos@4b2e66487c0d94e0f0ab1765a9e74bfed663aa1e # master
with:
config: ${{github.workspace}}/_typos.toml
diff --git a/pages/post/[id].tsx b/pages/post/[id].tsx
@@ -120,6 +120,48 @@ class Post extends PureComponent<Props, State> {
}
}
+ getLicenseUrl(license_type: string): string {
+ switch (license_type) {
+ case "cc-by-4.0":
+ return "https://creativecommons.org/licenses/by/4.0/";
+ case "cc-by-sa-4.0":
+ return "https://creativecommons.org/licenses/by-sa/4.0/";
+ case "cc-by-nc-4.0":
+ return "https://creativecommons.org/licenses/by-nc/4.0/";
+ case "cc-by-nc-sa-4.0":
+ return "https://creativecommons.org/licenses/by-nc-sa/4.0/";
+ case "cc-by-nd-4.0":
+ return "https://creativecommons.org/licenses/by-nd/4.0/";
+ case "cc-by-nc-nd-4.0":
+ return "https://creativecommons.org/licenses/by-nc-nd/4.0/";
+ case "CC0-1.0":
+ return "https://creativecommons.org/publicdomain/zero/1.0/";
+ default:
+ return "";
+ }
+ }
+
+ getLicenseName(license_type: string): string {
+ switch (license_type) {
+ case "cc-by-4.0":
+ return "Attribution 4.0 International (CC BY 4.0)";
+ case "cc-by-sa-4.0":
+ return "Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)";
+ case "cc-by-nc-4.0":
+ return "Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)";
+ case "cc-by-nc-sa-4.0":
+ return "Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)";
+ case "cc-by-nd-4.0":
+ return "Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)";
+ case "cc-by-nc-nd-4.0":
+ return "Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)";
+ case "CC0-1.0":
+ return "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication";
+ default:
+ return "Unknown License";
+ }
+ }
+
render() {
const { error, hasFullyLoaded, image_event, displayname, avatar_url } = this.state;
@@ -191,10 +233,11 @@ class Post extends PureComponent<Props, State> {
<div className="grow bg-[#f8f8f8] dark:bg-[#06070D] min-h-[25rem] flex flex-col items-center">
<div className="flex flex-col items-start lg:min-w-[60rem] lg:w-[60rem]">
<h1 className="my-4 text-6xl text-gray-900 dark:text-gray-200 font-bold">{post_title}</h1>
- <h3 className="cursor-pointer mt-0 mb-4 text-l text-gray-900 dark:text-gray-200 font-normal inline-flex">
+ <h3 className="cursor-pointer mt-0 mb-4 text-xl text-gray-900 dark:text-gray-200 font-normal inline-flex">
{avatar_url ? <span className="block object-cover rounded-full mr-4"> <img className="object-cover rounded-full" src={this.context.client.downloadLink(avatar_url)!} height="24" width="24" alt={displayname} title={displayname} /> </span> : undefined}
<Link href={"/profile/" + encodeURIComponent(image_event.sender)} passHref><span className='hover:text-teal-400'>{displayname}</span></Link>
</h3>
+ {isImageEvent(image_event) ? (image_event.content['matrixart.license'] ? <h3 className='cursor-pointer mt-0 mb-4 text-l text-gray-600 dark:text-gray-400 font-normal'>License: <a href={this.getLicenseUrl(image_event.content['matrixart.license'])} title={this.getLicenseName(image_event.content['matrixart.license'])}>{this.getLicenseName(image_event.content['matrixart.license'])}</a></h3> : undefined) : undefined}
{isImageGalleryEvent(image_event) ? this.renderImageGalleryTags(image_event) : (isImageEvent(image_event) ? this.renderSingleImageTags(image_event) : <div key={(image_event as MatrixEventBase).event_id + "tags"}></div>)}
</div>
</div>