Tina支持从一个独立的Git仓库获取内容。通过这种方式,您可以继续在“网站仓库”中定义您的Tina配置,但文档将保存在其他地方。
您可能出于多种原因想要这样做,例如:
在本指南中,我们将提到“网站仓库”和“内容仓库”。“网站仓库”是您实际运行网站的地方,而“内容仓库”是您存储Markdown内容的地方
tina/
中的生成文件(例如tina-lock.json
、__generated__
文件等)我们已经部署了一个基本的起始“网站仓库”,您可以克隆它以开始使用。
git clone git@github.com:tinacms/separate-website-repo.git
“网站仓库”包含NextJS站点和tina
配置。
要设置“内容仓库”,我们将从一个简单的.mdx
文件开始:
mkdir -p ../demo-content-repo/content/pages && touch ../demo-content-repo/content/pages/home.mdx && echo "Hello" >> ../demo-content-repo/content/pages/home.mdx
此命令创建了一个文件夹(demo-content-repo
)并在content/pages
目录中添加了一个单独的MDX文件,我们将在Tina配置中为page
集合使用该目录。
在“网站仓库”中,安装项目的依赖项
yarn install
在本地运行项目:
yarn dev
打开http://localhost:3000/admin/index.html
。
从这里,您可以在tina/config.js
中为您的内容模型添加更多字段。访问文档以了解更多关于内容建模的信息。
接下来,我们将从“内容仓库”创建一个TinaCloud项目
切换回您的“网站仓库”并设置一个.env
文件以在连接到TinaCloud时使用:
cp .env.example .env
当您运行tinacms build
时,它将使用这些凭据连接到TinaCloud而不是本地服务器:
yarn build
当您修改Tina架构(tina/config.(ts/js))
在您的tina/config.(ts/js)中定义集合路径时,避免设置path: ''。因为Tina期望一个相对于文件夹的路径。使用''可能会导致创建新文档时出现错误,因为Tina在保存时会添加一个/,导致无效的GitHub路径。
如果您使用的是Next.js以外的静态网站生成器(SSG),例如Astro。确保您的内容管道忽略内容仓库中的tina/目录。Tina的配置文件不是内容文件,这可能会导致解析错误。
export default defineCollection) {schema: mySchema,exclude: ['tina/**/*'],};
要了解更多关于Tina的信息,请查看以下资源:
您可以查看Tina GitHub 仓库 - 欢迎您的反馈和贡献!