Skip to content

Decap CMS 和 Astro

开盖 CMS(以前称为 Netlify CMS)是一个基于 Git 的开源内容管理系统。

¥Decap CMS (formerly Netlify CMS) is an open-source, Git-based content management system.

Decap 允许你充分利用 Astro 的所有功能,包括图片优化和内容收集。

¥Decap allows you to take full advantage of all of Astro’s features, including image optimization and content collections.

Decap 向你的项目添加了一条路由(通常是 /admin),该路由将加载 React 应用,以允许授权用户直接从部署的网站管理内容。Decap 将直接将更改提交到你的 Astro 项目的源存储库。

¥Decap adds a route (typically /admin) to your project that will load a React app to allow authorized users to manage content directly from the deployed website. Decap will commit changes directly to your Astro project’s source repository.

¥Installing DecapCMS

将 Decap 添加到 Astro 有两种选择:

¥There are two options for adding Decap to Astro:

  1. 通过包管理器安装 Decap 使用以下命令:

    Terminal window
    npm install decap-cms-app
  2. 将包导入页面 <body> 中的 <script> 标记

    /admin
    <body>
    <!-- Include the script that builds the page and powers Decap CMS -->
    <script src="https://unpkg.com/decap-cms@^3.1.2/dist/decap-cms.js"></script>
    </body>

¥Configuration

  1. Create a static admin folder at public/admin/

  2. Add config.yml to public/admin/:

    • Directorypublic
      • Directoryadmin
        • config.yml
  3. To add support for content collections, configure each schema in config.yml. The following example configures a blog collection, defining a label for each entry’s frontmatter property:

    /public/admin/config.yml
    collections:
    - name: "blog" # Used in routes, e.g., /admin/collections/blog
    label: "Blog" # Used in the UI
    folder: "src/content/blog" # The path to the folder where the documents are stored
    create: true # Allow users to create new documents in this collection
    fields: # The fields for each document, usually in frontmatter
    - { label: "Layout", name: "layout", widget: "hidden", default: "blog" }
    - { label: "Title", name: "title", widget: "string" }
    - { label: "Publish Date", name: "date", widget: "datetime" }
    - { label: "Featured Image", name: "thumbnail", widget: "image" }
    - { label: "Rating (scale of 1-5)", name: "rating", widget: "number" }
    - { label: "Body", name: "body", widget: "markdown" }
  4. Add the admin route for your React app. This file can be either public/admin/index.html alongside your config.yml or, if you prefer to use an Astro route, src/pages/admin.astro.

    • Directorypublic
      • Directoryadmin
        • config.yml
        • index.html
    /public/admin/index.html
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="robots" content="noindex" />
    <link href="/admin/config.yml" type="text/yaml" rel="cms-config-url" />
    <title>Content Manager</title>
    </head>
    <body>
    <script src="https://unpkg.com/decap-cms@^3.1.2/dist/decap-cms.js"></script>
    </body>
    </html>
  5. To enable media uploads to a specific folder via the Decap editor, add an appropriate path:

    /public/admin/config.yml
    media_folder: "src/assets/images" # Location where files will be stored in the repo
    public_folder: "src/assets/images" # The src attribute for uploaded media

请参阅 Decap CMS 配置文档 以了解完整的说明和选项。

¥See the the Decap CMS configuration documentation for full instructions and options.

¥Usage

导航到 yoursite.com/admin/ 以使用 Decap CMS 编辑器。

¥Navigate to yoursite.com/admin/ to use the Decap CMS editor.

¥Authentication

使用 Netlify Identity 的 Decap CMS

Section titled 使用 Netlify Identity 的 Decap CMS

¥Decap CMS with Netlify Identity

Decap CMS 最初由 Netlify 开发,对 Netlify Identity 提供一流的支持。

¥Decap CMS was originally developed by Netlify and has first class support for Netlify Identity.

当部署到 netlify 时,通过 Netlify 仪表板为你的项目配置身份,并在项目的 admin 路由中包含 Netlify Identity 小部件。如果你计划通过电子邮件邀请新用户,可以选择在你网站的主页上包含身份小部件。

¥When deploying to netlify, configure Identity for your project via the Netlify dashboard and include the Netlify Identity Widget on the admin route of your project. Optionally include the Identity Widget on the homepage of your site if you plan to invite new users via email.

使用外部 OAuth 客户端的 Decap CMS

Section titled 使用外部 OAuth 客户端的 Decap CMS

¥Decap CMS with External OAuth Clients

当部署到 Netlify 以外的托管服务提供商时,你必须创建自己的 OAuth 路由。

¥When deploying to hosting providers other than Netlify, you must create your own OAuth routes.

在 Astro 中,这可以通过在项目中配置启用 serverhybrid 输​​出 的按需渲染路由来实现。

¥In Astro, this can be done with on-demand rendered routes in your project configured with server or hybrid output enabled.

请参阅 Decap 的 OAuth 文档 以获取兼容的社区维护的 OAuth 客户端列表。

¥See Decap’s OAuth Docs for a list of compatible community-maintained OAuth clients.

¥Community Resources

¥Production Sites

以下站点在生产中使用 Astro + Decap CMS:

¥The following sites use Astro + Decap CMS in production:

¥Themes

More CMS guides

Astro 中文网 - 粤ICP备13048890号