浏览代码

feat: add info related to the current instance

this commit adds additional info about instance like release tag and instance maintainer contact.

fix: https://codeberg.org/zyachel/libremdb/issues/8
zyachel 2 年之前
父节点
当前提交
2c5d2f86e4

+ 8 - 0
.env.local.example

@@ -28,3 +28,11 @@ NEXT_TELEMETRY_DISABLED=1
 # USE_REDIS=true
 # USE_REDIS=true
 ## for docker, just set the domain to the container name, default is 'libremdb_redis'
 ## for docker, just set the domain to the container name, default is 'libremdb_redis'
 REDIS_URL=localhost:6379
 REDIS_URL=localhost:6379
+
+################################################################################
+### 4. INSTANCE META FIELDS(not required but good to have)
+################################################################################
+## example: 'https://iket.me'. 
+NEXT_PUBLIC_INSTANCE_MAIN_URL=
+## eg: 'zyachel'
+NEXT_PUBLIC_INSTANCE_NAME=

+ 46 - 26
src/pages/contact/index.tsx

@@ -7,38 +7,58 @@ const Contact = () => {
   return (
   return (
     <>
     <>
       <Meta
       <Meta
-        title="Contact"
-        description="Contact page of libremdb, a free & open source IMDb front-end."
+        title='Contact'
+        description='Contact page of libremdb, a free & open source IMDb front-end.'
       />
       />
-      <Layout className="">
+      <Layout className=''>
         <section className={styles.contact}>
         <section className={styles.contact}>
           <h1 className={`heading heading__primary ${styles.contact__heading}`}>
           <h1 className={`heading heading__primary ${styles.contact__heading}`}>
             Contact
             Contact
           </h1>
           </h1>
-
           <div className={styles.list}>
           <div className={styles.list}>
-            <p className={styles.item}>
-              You can use{' '}
-              <a href="https://github.com/zyachel/libremdb" className="link">
-                GitHub
-              </a>{' '}
-              or{' '}
-              <a href="https://codeberg.org/zyachel/libremdb" className="link">
-                Codeberg
-              </a>{' '}
-              for general issues, questions, or requests.
-            </p>
-            <p className={styles.item}>
-              In case you wish to contact me personally, I'm reachable via{' '}
-              <a className="link" href="https://matrix.to/#/@ninal:matrix.org">
-                [matrix]
-              </a>{' '}
-              and{' '}
-              <a className="link" href="mailto:aricla@protonmail.com">
-                email
-              </a>
-              .
-            </p>
+            <div className={styles.item}>
+              <p className={styles.item__text}>
+                For any issues, questions, bugs, or requests regarding the
+                service, you can go to{' '}
+                <a href='https://github.com/zyachel/libremdb' className='link'>
+                  GitHub
+                </a>
+                .
+              </p>
+              <p className={styles.item__text}>
+                Alternatively, you can visit{' '}
+                <a
+                  href='https://codeberg.org/zyachel/libremdb'
+                  className='link'
+                >
+                  the repository on Codeberg
+                </a>
+                .
+              </p>
+            </div>
+            {process.env.NEXT_PUBLIC_INSTANCE_MAIN_URL && (
+              <div className={styles.item}>
+                <p className={styles.item__text}>
+                  If you have some questions related to this instance,{' '}
+                  <a
+                    href={process.env.NEXT_PUBLIC_INSTANCE_MAIN_URL}
+                    className='link'
+                  >
+                    contact instance maintainer(s)
+                  </a>
+                  .
+                </p>
+              </div>
+            )}
+            <div className={styles.item}>
+              <p className={styles.item__text}>
+                In case you wish to contact me(the dev) personally,{' '}
+                <a href='https://iket.me/contact/' className='link'>
+                  here you go
+                </a>
+                <span aria-label='smily text emoji'> :)</span>
+              </p>
+            </div>
           </div>
           </div>
         </section>
         </section>
       </Layout>
       </Layout>

+ 36 - 8
src/pages/privacy/index.tsx

@@ -1,14 +1,14 @@
 import Meta from '../../components/meta/Meta';
 import Meta from '../../components/meta/Meta';
 import Layout from '../../layouts/Layout';
 import Layout from '../../layouts/Layout';
-
+import packageInfo from '../../../package.json';
 import styles from '../../styles/modules/pages/privacy/privacy.module.scss';
 import styles from '../../styles/modules/pages/privacy/privacy.module.scss';
 
 
 const Privacy = () => {
 const Privacy = () => {
   return (
   return (
     <>
     <>
       <Meta
       <Meta
-        title="Privacy"
-        description="Privacy policy of libremdb, a free & open source IMDb front-end."
+        title='Privacy'
+        description='Privacy policy of libremdb, a free & open source IMDb front-end.'
       />
       />
       <Layout className={styles.privacy}>
       <Layout className={styles.privacy}>
         <section className={styles.policy}>
         <section className={styles.policy}>
@@ -16,15 +16,15 @@ const Privacy = () => {
             Privacy Policy
             Privacy Policy
           </h1>
           </h1>
           <div className={styles.list}>
           <div className={styles.list}>
-            <div className={styles.item}>
+            <section className={styles.item}>
               <h2
               <h2
                 className={`heading heading__secondary ${styles.item__heading}`}
                 className={`heading heading__secondary ${styles.item__heading}`}
               >
               >
                 Information collected
                 Information collected
               </h2>
               </h2>
               <p className={styles.item__text}>No information is collected.</p>
               <p className={styles.item__text}>No information is collected.</p>
-            </div>
-            <div className={styles.item}>
+            </section>
+            <section className={styles.item}>
               <h2
               <h2
                 className={`heading heading__secondary ${styles.item__heading}`}
                 className={`heading heading__secondary ${styles.item__heading}`}
               >
               >
@@ -40,12 +40,40 @@ const Privacy = () => {
                 prefrences, either turn off JavaScript or disable access to
                 prefrences, either turn off JavaScript or disable access to
                 Local Storage for libremdb.
                 Local Storage for libremdb.
               </p>
               </p>
-            </div>
+            </section>
+            <section className={styles.item}>
+              <h2
+                className={`heading heading__secondary ${styles.item__heading}`}
+              >
+                Instance information
+              </h2>
+              {process.env.NEXT_PUBLIC_INSTANCE_NAME &&
+                process.env.NEXT_PUBLIC_INSTANCE_MAIN_URL && (
+                  <p className={styles.item__text}>
+                    Operated by:&nbsp;
+                    <a
+                      className='link'
+                      href={process.env.NEXT_PUBLIC_INSTANCE_MAIN_URL}
+                    >
+                      {process.env.NEXT_PUBLIC_INSTANCE_NAME}
+                    </a>
+                  </p>
+                )}
+              <p className={styles.item__text}>
+                Version:&nbsp;
+                <a
+                  className='link'
+                  href={`https://github.com/zyachel/libremdb/tree/v${packageInfo.version}`}
+                >
+                  {packageInfo.version}
+                </a>
+              </p>
+            </section>
           </div>
           </div>
 
 
           <footer className={styles.metadata}>
           <footer className={styles.metadata}>
             <p>
             <p>
-              Last updated on <time>31 october, 2022.</time>
+              Privacy policy last updated on <time>31 october, 2022.</time>
             </p>
             </p>
             <p>
             <p>
               You can see the full revision history of this privacy policy on
               You can see the full revision history of this privacy policy on

+ 4 - 4
src/styles/modules/pages/contact/contact.module.scss

@@ -3,17 +3,17 @@
 .contact {
 .contact {
   // to make text more readable for large screen users
   // to make text more readable for large screen users
   margin: auto;
   margin: auto;
-  width: min(100%, 100rem);
+  width: min(100%, 85rem);
 
 
   display: grid;
   display: grid;
   --doc-whitespace: var(--spacer-8);
   --doc-whitespace: var(--spacer-8);
-  --comp-whitespace: var(--spacer-3);
+  --comp-whitespace: var(--spacer-5);
 
 
   padding: var(--doc-whitespace);
   padding: var(--doc-whitespace);
-  place-content: center;
+  // place-content: center;
 
 
   &__heading {
   &__heading {
-    text-align: center;
+    // text-align: center;
   }
   }
 
 
   @include helper.bp('bp-700') {
   @include helper.bp('bp-700') {

+ 1 - 1
src/styles/modules/pages/privacy/privacy.module.scss

@@ -12,7 +12,7 @@
   padding: var(--doc-whitespace);
   padding: var(--doc-whitespace);
 
 
   &__heading {
   &__heading {
-    text-align: center;
+    // text-align: center;
   }
   }
 
 
   @include helper.bp('bp-700') {
   @include helper.bp('bp-700') {