Footer & Legal

This commit is contained in:
LittleSheep 2024-02-15 16:22:17 +08:00
parent 5f4f1dd659
commit ce082c1cbf
9 changed files with 337 additions and 51 deletions

View File

@ -0,0 +1,51 @@
<footer class="p-10 bg-base-200 text-base-content">
<div class="footer container mx-auto">
<nav>
<h6 class="footer-title">服务</h6>
<a class="link link-hover" href="https://id.smartsheep.studio" target="_blank">Goatpass</a>
<a class="link link-hover" href="https://feed.smartsheep.studio" target="_blank">Goatplaza</a>
<a class="link link-hover" href="https://wiki.smartsheep.studio" target="_blank">Goatpedia</a>
<a class="link link-hover" href="https://disk.smartsheep.studio" target="_blank">Goatdisk</a>
</nav>
<nav>
<h6 class="footer-title">工作室</h6>
<a class="link link-hover">关于我们</a>
<a class="link link-hover">联系方式</a>
<a class="link link-hover">招才纳贤</a>
</nav>
<nav>
<h6 class="footer-title">法律</h6>
<a class="link link-hover" href="/legal/privacy-policy">隐私协议</a>
<a class="link link-hover" href="/legal/user-agreement">用户协议</a>
<a class="link link-hover" href="/legal/community-guidelines">社区准则</a>
</nav>
</div>
</footer>
<footer class="px-10 py-4 border-t bg-base-200 text-base-content border-base-300">
<div class="footer container mx-auto">
<aside class="items-center grid-flow-col">
<img class="me-1" src="/favicon.svg" alt="Logo" width="32" height="32" />
<p>
SmartSheep Studio<br />
Developing open-source software since 2019
</p>
</aside>
<nav class="md:place-self-center md:justify-self-end">
<div class="grid grid-flow-col gap-4">
<a href="https://github.com/LittleSheep2Code" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 496 512">
<path
d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"
></path>
</svg>
</a>
<a href="https://twitter.com/littlesheepovo" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512">
<path d="M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103v-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z"/>
</svg>
</a>
</div>
</nav>
</div>
</footer>

View File

@ -17,48 +17,11 @@ const items: MenuItem[] = [
<div class="fixed top-0 navbar shadow-md bg-base-100 lg:px-5 z-10"> <div class="fixed top-0 navbar shadow-md bg-base-100 lg:px-5 z-10">
<div class="navbar-start"> <div class="navbar-start">
<div class="dropdown"> <a class="btn btn-ghost text-xl p-2 w-[48px] h-[48px] max-lg:ml-2.5" href="/">
<div tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <img width="40" height="40" src="/favicon.svg" alt="Logo" />
<svg </a>
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M4 6h16M4 12h8m-8 6h16"></path>
</svg
>
</div> </div>
<ul <div class="navbar-center flex">
tabindex="0"
class="menu menu-sm dropdown-content mt-3 z-[1] p-2 shadow bg-base-100 rounded-box w-52"
>
{
items.map((item) => (
<li>
<a href={item.href}>{item.label}</a>
{item.children && (
<ul class="p-2">
{item.children?.map((child) => (
<li>
<a href={child.href}>{child.label}</a>
</li>
))}
</ul>
)}
</li>
))
}
</ul>
</div>
<a class="btn btn-ghost text-xl" href="/">山羊寒舍</a>
</div>
<div class="navbar-center hidden lg:flex">
<ul class="menu menu-horizontal px-1"> <ul class="menu menu-horizontal px-1">
{ {
items.map((item) => ( items.map((item) => (

View File

@ -5,7 +5,7 @@ const { title } = Astro.props;
--- ---
<RootLayout title={title}> <RootLayout title={title}>
<main class="container mx-auto h-fullpage mt-header"> <main class="container mx-auto mt-header">
<slot /> <slot />
</main> </main>
</RootLayout> </RootLayout>

View File

@ -5,6 +5,7 @@ import "@fortawesome/fontawesome-free/css/all.min.css";
import "nprogress/nprogress.css"; import "nprogress/nprogress.css";
import Navbar from "../components/Navbar.astro"; import Navbar from "../components/Navbar.astro";
import Footer from "../components/Footer.astro";
import { ViewTransitions } from "astro:transitions"; import { ViewTransitions } from "astro:transitions";
const { title } = Astro.props; const { title } = Astro.props;
@ -49,6 +50,9 @@ const { title } = Astro.props;
<slot /> <slot />
</main> </main>
<!-- Footer -->
<Footer />
<!-- Styles --> <!-- Styles -->
<style> <style>
html { html {
@ -83,10 +87,5 @@ const { title } = Astro.props;
import { themeChange } from "theme-change"; import { themeChange } from "theme-change";
themeChange(); themeChange();
</script> </script>
<script
async
src="https://analytics.smartsheep.studio/script.js"
data-website-id="9d676a27-b473-44a3-b444-5a7d851e31e8"></script>
</body> </body>
</html> </html>

View File

@ -5,8 +5,8 @@ export const prerender = false;
--- ---
<RootLayout> <RootLayout>
<div class="max-h-fullpage mt-header wrapper px-5 snap-y snap-mandatory"> <div class="mt-header wrapper px-5">
<div id="hello" class="hero h-fullpage snap-start"> <div id="hello" class="hero h-fullpage">
<div class="hero-content w-full grid grid-cols-1 md:grid-cols-2 max-md:gap-[60px]"> <div class="hero-content w-full grid grid-cols-1 md:grid-cols-2 max-md:gap-[60px]">
<div class="max-md:text-center"> <div class="max-md:text-center">
<h1 class="text-5xl font-bold">你好呀 👋</h1> <h1 class="text-5xl font-bold">你好呀 👋</h1>
@ -25,7 +25,7 @@ export const prerender = false;
</div> </div>
</div> </div>
<div id="about" class="hero h-fullpage snap-start"> <div id="about" class="hero h-fullpage">
<div class="hero-content w-full grid grid-cols-1 md:grid-cols-2 max-md:gap-[60px]"> <div class="hero-content w-full grid grid-cols-1 md:grid-cols-2 max-md:gap-[60px]">
<div class="flex justify-center md:justify-start"> <div class="flex justify-center md:justify-start">
<div class="stats shadow overflow-x-auto"> <div class="stats shadow overflow-x-auto">

View File

@ -0,0 +1,98 @@
---
import PageLayout from "../../layouts/PageLayout.astro";
const updatedAt = new Date("2024-02-15T07:37:11.631Z");
---
<PageLayout title="Goatworks Community Guidelines">
<article class="prose mx-auto py-28">
<h1>Goatworks Community Guidelines</h1>
<p>Last Updated: {updatedAt.toLocaleString()}</p>
<p>
Welcome to our community! We are committed to fostering an open, friendly, and respectful environment to
facilitate meaningful communication and shared experiences. Please adhere to the following community guidelines to
ensure that every member can enjoy a positive and enriching community experience.
</p>
<h2>1. Respect Others</h2>
<p>
Ensure that your words and actions respect fellow community members. Avoid the use of insulting, discriminatory,
or offensive language. Respect others' viewpoints, even if you disagree. Engage in discussions constructively to
foster understanding and knowledge sharing.
</p>
<h2>2. Maintain Friendliness and Inclusivity</h2>
<p>
We welcome members from diverse cultures, backgrounds, and perspectives. Ensure that your interactions are
friendly and inclusive. Refrain from posting offensive or discriminatory content. Help us create an environment
that accommodates a variety of opinions and ideas.
</p>
<h2>3. Respect Privacy</h2>
<p>
Respect the privacy of other members. Avoid sharing others' personal information without their consent. If you
need to share information related to others, ensure you have obtained their permission.
</p>
<h2>4. Inappropriate Content and Behavior</h2>
<p>
Refrain from posting any illegal, obscene, threatening, or otherwise inappropriate content. This includes but is
not limited to explicit material, hate speech, false information, or any behavior that violates laws and ethical
standards.
</p>
<h2>5. Provide Valuable Contributions</h2>
<p>
Share meaningful and valuable content within the community. Avoid posting unrelated or repetitive information.
Maintain the quality of discussions and provide helpful insights and experiences for other members.
</p>
<h2>6. Respect Administrators and Moderators</h2>
<p>
Follow the guidance and rules provided by administrators and moderators. Their goal is to maintain community order
and ensure a pleasant experience for every member. If you have any questions or concerns, feel free to contact
them privately.
</p>
<h2>7. Respect Diverse Political Views</h2>
<p>
We encourage the respectful sharing of diverse political views. However, express your opinions in a way that
respects others, avoiding offensive, provocative, or insulting language. Political discussions should be conducted
constructively to promote understanding and information sharing.
</p>
<h2>8. Adhere to International Political Standards</h2>
<p>
Our community consists of members from around the world with different political beliefs. Understand and respect
international political viewpoints, avoiding conflicts arising from political stances. Keep an open mind and be
willing to listen and learn from diverse cultural and national perspectives.
</p>
<h2>9. Comply with Legal Regulations</h2>
<p>
Any form of illegal behavior is unacceptable in our community. Ensure that your words and actions comply with
local and international laws, especially in matters related to politics. Prohibitions include incitement,
advocating violence, or any other unlawful activities.
</p>
<h2>10. Avoid Improper Political Promotion</h2>
<p>
Avoid engaging in inappropriate political promotion within the community. The community is intended for
constructive exchange, not as a platform for political propaganda. Respect the preferences of other members and
refrain from forcefully advocating personal or group political stances.
</p>
<p>
We believe that by adhering to these guidelines, we can create an inclusive community rich in diverse
perspectives. Violations may result in appropriate sanctions, and the specific consequences will depend on the
severity and frequency of the violations.
</p>
<p>
Thank you for your cooperation in maintaining an open and friendly atmosphere in our community, providing an
enjoyable communication experience for all members!
</p>
</article>
</PageLayout>

View File

@ -0,0 +1,81 @@
---
import PageLayout from "../../layouts/PageLayout.astro";
const updatedAt = new Date("2024-02-15T07:37:11.631Z");
---
<PageLayout title="Privacy Policy">
<article class="prose mx-auto py-28">
<h1>Privacy Policy</h1>
<p>Last Updated: {updatedAt.toLocaleString()}</p>
<p>
SmartSheep Studio (referred to as "we," "our," or "the Studio") respects and protects your personal
privacy. This Privacy Policy is intended to explain our practices regarding the collection, use, sharing, and
protection of your personal information. Please read this Privacy Policy carefully to understand how we handle
your personal information.
</p>
<h2>1. Information Collection</h2>
<p>We may collect various types of information, including but not limited to:</p>
<ul>
<li>Personal identification information (e.g., name, address, email address, phone number, etc.)</li>
<li>Device information (e.g., IP address, operating system, browser type, etc.)</li>
<li>Usage data (e.g., access times, browsing history, clickstream data, etc.)</li>
</ul>
<p>We may collect information through various methods, including:</p>
<ul>
<li>Information you provide (e.g., account registration, form submissions, etc.)</li>
<li>Automatically collected information (e.g., through Cookies, Web Beacons, etc.)</li>
</ul>
<h2>2. Information Use</h2>
<p>We may use your personal information for various purposes, including:</p>
<ul>
<li>Providing requested products or services</li>
<li>Processing transactions and payments</li>
<li>Sending relevant notifications</li>
<li>Providing customer support and services</li>
<li>Improving our products and services</li>
</ul>
<h2>3. Information Sharing</h2>
<p>We may share your personal information with third parties, including but not limited to:</p>
<ul>
<li>Business partners</li>
<li>Third-party service providers</li>
<li>When required by law or government agencies</li>
</ul>
<h2>4. Information Security</h2>
<p>
We will take reasonable security measures to protect your personal information from unauthorized access, use, or
disclosure. However, please note that no method of transmission over the internet is 100% secure.
</p>
<h2>5. Changes to Privacy Policy</h2>
<p>
We reserve the right to modify this Privacy Policy at any time. The updated policy will be posted on our website
and will become effective upon posting. Please check our Privacy Policy regularly for updates.
</p>
<h2>6. Contact Us</h2>
<p>If you have any questions or concerns about our Privacy Policy, please contact us at:</p>
<address>alphabot@smartsheep.studio</address>
<p>Thank you for reading our Privacy Policy.</p>
</article>
</PageLayout>

View File

@ -0,0 +1,94 @@
---
import PageLayout from "../../layouts/PageLayout.astro";
const updatedAt = new Date("2024-02-15T07:37:11.631Z");
---
<PageLayout title="User Agreement">
<article class="prose mx-auto py-28">
<h1>User Agreement</h1>
<p>Last Updated: {updatedAt.toLocaleString()}</p>
<p>
Please read this user agreement carefully before using our product/service. By using our product/service, you
agree to comply with the following terms and conditions:
</p>
<h2>1. User Content</h2>
<p>
1.1 You are solely responsible for any text, images, audio, video, or other materials (collectively referred to as
"User Content") you upload, publish, or share through our product/service.
</p>
<p>
1.2 You warrant that you are the lawful owner of all User Content you upload, or you have obtained all necessary
authorizations and licenses to use and share such User Content on our product/service.
</p>
<p>
1.3 You agree not to upload, publish, or share any User Content that is illegal, infringing, obscene, threatening,
defamatory, or otherwise violates applicable laws.
</p>
<h2>2. Community Guidelines and Service Termination</h2>
<p>
2.1 You must adhere to our community guidelines, which include but are not limited to
<a href="/legal/community-guidelines">Goatworks Community Guidelines</a>.
</p>
<p>
2.2 Violation of the community guidelines may result in our sole discretion to delete, modify, or refuse
acceptance of any User Content and may lead to termination or suspension of your access to our product/service.
</p>
<p>
2.3 We reserve the right to modify the community guidelines at any time, and you agree to comply with the latest
community guidelines.
</p>
<h2>3. Legal Responsibility</h2>
<p>3.1 We do not assume any responsibility for the legality, accuracy, completeness, or quality of User Content.</p>
<p>
3.2 You agree to bear all legal responsibilities arising from your User Content, including but not limited to
claims, lawsuits, losses, and expenses incurred by third parties.
</p>
<p>
3.3 We are not liable for any losses or damages caused by User Content, including but not limited to direct or
indirect special, incidental, consequential, or punitive damages.
</p>
<h2>4. User Responsibilities</h2>
<p>
4.1 You agree to maintain the confidentiality of your account and password and assume full responsibility for all
activities conducted through your account.
</p>
<p>
4.2 You agree to promptly notify us of any unauthorized use of your account or other security vulnerabilities.
</p>
<h2>5. Termination</h2>
<p>
We reserve the right to terminate or suspend your access to our product/service at any time without prior notice
if we believe you have violated any provisions of this user agreement or community guidelines.
</p>
<h2>6. Contact Us</h2>
<p>If you have any questions about this user agreement, please contact us at:</p>
<address>
alphabot@smartsheep.studio
</address>
<p>Thank you for reading and complying with our user agreement.</p>
</article>
</PageLayout>

View File

@ -6,5 +6,5 @@
"lib": ["esnext", "es2021"], "lib": ["esnext", "es2021"],
"jsx": "react-jsx", "jsx": "react-jsx",
"jsxImportSource": "react" "jsxImportSource": "react"
}, }
} }