IndieShow 图标IndieShow 使用文档

网站协议配置

配置 IndieShow 项目的法律文档,包括隐私政策、服务条款和销售条款,以及如何创建多语言法律文档、添加新的法律页面和确保法律合规性

网站法律文档是任何专业网站的重要组成部分,它们不仅保护您的合法权益,还向用户传达您对隐私和服务质量的承诺。IndieShow-Starter-Nuxt 提供了完整的法律文档模板,包括隐私政策、服务条款和销售条款。

文件结构

法律文档相关文件分为内容和页面两部分:

Markdown 内容文件

privacy.md
terms.md
sales.md
privacy.md
terms.md
sales.md

页面组件文件

privacy.vue
terms.vue
sales.vue

页面组件示例结构:

pages/privacy.vue
<script setup lang="ts">
import { useMarkdown } from "~/composables/useMarkdown";
import { useSeo } from "~/composables/useSeo";
 
// 更新页面 SEO
const { updatePageSeo } = useSeo();
updatePageSeo("privacy");
 
// 加载 Markdown 内容
const { content } = useMarkdown("privacy");
</script>
 
<template>
  <div class="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
    <div class="prose prose-lg mx-auto dark:prose-invert">
      <div v-html="content" />
    </div>
  </div>
</template>

所有法律文档页面(privacy.vue、terms.vue、sales.vue)都使用相同的组件结构,只需修改:

  • useMarkdown 加载的文件名
  • updatePageSeo 的页面标识

更新隐私政策

使用 Cursor 生成

您可以使用 Cursor 快速生成专业的隐私政策。示例提示词:

根据网站内容更新隐私政策,品牌名称为"IndieShow",域名为"indieshow.waveany.com",联系邮箱为"support@waveany.com"(文件位置:content/zh/privacy.md)

关键内容清单

  • 收集的信息类型
  • 信息使用方式
  • 信息共享政策
  • Cookie 使用说明
  • 用户权利和选择
  • 数据保护措施
  • 隐私政策更新机制
  • 联系方式

确保同时更新所有语言版本的隐私政策,以保持一致性。建议由专业法律翻译人员审核翻译内容。

更新服务条款

使用 Cursor 生成

生成服务条款的示例提示词:

根据网站内容更新服务条款,品牌名称为"IndieShow",域名为"indieshow.waveany.com",联系邮箱为"support@waveany.com"(文件位置:content/zh/terms.md)

关键内容清单

  • 服务描述
  • 用户注册和账户管理
  • 用户行为规范
  • 知识产权声明
  • 免责声明
  • 服务终止条件
  • 争议解决方式
  • 适用法律

服务条款应明确说明用户的权利和义务,以及违规后果。确保条款符合当地法律法规要求。

更新销售条款

使用 Cursor 生成

生成销售条款的示例提示词:

根据网站内容更新销售条款,品牌名称为"IndieShow",域名为"indieshow.waveany.com",联系邮箱为"support@waveany.com"(文件位置:content/zh/sales.md)

关键内容清单

  • 产品描述和定价
  • 订单和支付流程
  • 配送和交付政策
  • 退款和退货政策
  • 产品保证
  • 责任限制
  • 客户支持信息

销售条款应特别注意:

  • 价格和支付条款的明确性
  • 退款政策的合理性
  • 配送责任的界定
  • 产品保证的范围

添加新的法律文档

创建 cookies 的 Markdown 文件

content/ 目录下创建新的 Markdown 文件:

记得同时创建所有语言版本的文件,确保内容的一致性。

新增 cookies 页面的 SEO 配置

在 i18n 配置文件中添加新页面的翻译:

i18n/locales/zh/seo.json
{
  "cookies": {
    "title": "Cookie 政策",
    "description": "了解 IndieShow 如何使用 Cookie 技术来改善您的浏览体验",
    "keywords": "cookie政策, cookie使用, 网站cookie, IndieShow"
  }
  // ... 其他页面配置
}
i18n/locales/en/seo.json
{
  "cookies": {
    "title": "Cookie Policy",
    "description": "Learn how IndieShow uses cookies to enhance your browsing experience",
    "keywords": "cookie policy, cookie usage, website cookies, IndieShow"
  }
  // ... other page configurations
}

确保在所有语言文件中都添加对应的翻译内容,保持翻译的专业性和一致性。

更新 SEO 配置

在 SEO 配置文件中添加新页面:

config/seo.ts
export const seoConfig = {
  pages: ["home", "privacy", "terms", "group", "sales"], 
  pages: ["home", "privacy", "terms", "group", "sales", "cookies"],  
  // 其他配置保持不变...
};

创建 cookies 页面

pages/ 目录下创建对应的 Vue 组件:

pages/cookies.vue
<script setup lang="ts">
import { useMarkdown } from "~/composables/useMarkdown";
import { useSeo } from "~/composables/useSeo";
 
// 更新页面 SEO
const { updatePageSeo } = useSeo();
updatePageSeo("cookies");
 
// 加载 Markdown 内容
const { content } = useMarkdown("cookies");
</script>
 
<template>
  <div class="container mx-auto px-4 py-12 sm:px-6 lg:px-8">
    <div class="prose prose-lg mx-auto dark:prose-invert">
      <div v-html="content" />
    </div>
  </div>
</template>

页脚组件添加 cookies 链接

components/layout/LayoutFooter.vue 中的 legalLinks 数组中添加 cookies 链接:

components/layout/LayoutFooter.vue
// 法律条款链接
const legalLinks = computed<FooterLink[]>(() => [
  {
    key: "footer.privacy",
    href: getLocalePath("/privacy"),
    onClick: async (e: Event) => {
      e.preventDefault()
      await router.push(getLocalePath("/privacy"))
    },
  },
  {
    key: "footer.terms",
    href: getLocalePath("/terms"),
    onClick: async (e: Event) => {
      e.preventDefault()
      await router.push(getLocalePath("/terms"))
    },
  },
  {
    key: "footer.sales",
    href: getLocalePath("/sales"),
    onClick: async (e: Event) => {
      e.preventDefault()
      await router.push(getLocalePath("/sales"))
    },
  },
  // 添加 cookies 链接
  {  
    key: "footer.cookies",  
    href: getLocalePath("/cookies"),  
    onClick: async (e: Event) => {  
      e.preventDefault()  
      await router.push(getLocalePath("/cookies"))  
    }, 
  },
])

确保:

  • 保持与其他链接相同的结构
  • 使用 getLocalePath 处理多语言路由
  • 添加 preventDefault 和路由跳转逻辑

更新页脚翻译

在页脚翻译文件中添加新页面的链接文本:

i18n/locales/zh/footer.json
{
  "cookies": "Cookie 政策",
  // ... 其他翻译
}
i18n/locales/en/footer.json
{
  "cookies": "Cookie Policy",
  // ... other translations
}

确保翻译文本:

  • 与其他法律文档的命名风格保持一致
  • 在所有语言版本中都有对应翻译

生成法律文档内容

使用 Cursor 生成文档内容,示例提示词:

根据网站内容创建 Cookie 政策,品牌名称为"IndieShow",域名为"indieshow.waveany.com",联系邮箱为"support@waveany.com"(文件位置:content/zh/cookies.md、content/en/cookies.md)

确保生成的内容:

  • 符合相关法律法规要求
  • 与现有法律文档风格一致
  • 包含必要的免责声明
  • 明确说明 Cookie 使用范围和目的

下一步