Angular Scully 블로그 사이트에 Netlify CMS 추가
소개
이 기사는 Scully 정적 사이트 생성기로 구축되고 Netlify에 배포된 각도 프로젝트에서 netlify CMS 구성을 안내하는 것을 목표로 합니다.
우리는 a previous article에서 빌드한 Angular scully 블로그 프로젝트를 사용할 것입니다. 그렇지 않은 경우 속도를 높일 수 있도록 친절하게 확인하십시오.
데모
다음은 우리가 구축할 최종 결과입니다.
넷리파이 CMS
Github, Bitbucket 또는 Gitlab과 같은 버전 제어 플랫폼의 리포지토리에 저장된 애플리케이션의 콘텐츠를 관리할 수 있는 git 기반 CMS입니다. Markdown, JSON, YAML 및 TOML과 같은 다양한 파일 형식을 지원합니다.
이제 우리가 사용하고 있는 도구에 대한 배경 지식이 있으므로 시작하겠습니다.
Angular-Scully 앱에 Netlify CMS 추가하기
앱의
src
폴더에서 admin
라는 이름의 폴더를 생성합니다. 여기에는 다음 두 파일이 포함됩니다. index.html
및 config.yml
.src
└ admin
├ index.html
└ config.yml
src/admin/index.html
는 Netlify CMS 구성을 처리하는 동안 사이트의 netlify CMS 앱에 대한 액세스를 처리하는 관리자 패널을 로드/가져오는 파일입니다.아래 코드 스니펫을
src/admin/config.yml
에 추가합니다.<!-- src/admin/index.html -->
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Content Manager</title>
</head>
<body>
<!-- Include the script that builds the page and powers Netlify CMS -->
<script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
</body>
</html>
위의 코드 스니펫은 CDN에서 실제 관리 페이지를 로드하는 기본 html 페이지입니다.
다음은
src/admin/index.html
에 대한 샘플 구성입니다. 이러한 설정이 수행하는 작업에 대한 자세한 정보를 보려면 configuration docs을 살펴보는 것도 중요합니다. 아래에 이 스니펫을 추가하거나 사용 사례에 맞게 사용자 정의하십시오.# src/admin/config.yml
backend:
name: git-gateway
branch: main # Branch to update (optional; defaults to master)
media_folder: "src/assets/images" # Media files will be stored in the repo under assets/images
public_folder: "/assets/images" # The src attribute for uploaded media will begin with /assets/images
collections:
- name: "blog" # Used in routes, e.g., /admin/collections/blog
label: "Blog" # Used in the UI
folder: "blog" # The path to the folder where the documents are stored
create: true # Allow users to create new documents in this collection
#slug: "{{year}}-{{month}}-{{day}}-{{slug}}" # Filename template, e.g., YYYY-MM-DD-title.md
fields: # The fields for each document, usually in front matter
- {label: "Layout", name: "layout", widget: "hidden", default: "blog"}
- {label: "Title", name: "title", widget: "string"}
- {label: "Description", name: "description", widget: "string"}
#- {label: "Slug", name: "slug", widget: "string"}
- {label: "Published", name: "published", widget: "boolean", default: true}
- {label: "Publish Date", name: "date", widget: "datetime"}
- {label: "Post Image", name: "image", widget: "image"}
- {label: "Rating (scale of 1-5)", name: "rating", widget: "number"}
- {label: "Body", name: "body", widget: "markdown"}
파일이 정적 사이트의 빌드 디렉토리에 포함될 수 있도록 Netlify CMS의
config.yml
디렉토리를 src/admin
파일에 포함합니다."projects": {
"angular-blog": {
...
"architect": {
"build": {
...
"assets": [
"src/favicon.ico",
"src/assets",
"src/admin"
],
...
},
...
}
}
},
명령
angular.json
을 실행하면 npm run build
폴더에 admin
디렉토리가 표시되어야 합니다.dist
├ angular-blog
| └ admin
| ├ index.html
| └ config.yml
└ static
└ admin
├ index.html
└ config.yml
Netlify CMS 인증
Netlify 웹 앱(백엔드)에서 인증
ID 및 Git 게이트웨이를 활성화하는 단계
앱에서 인증(프론트엔드)
기본적으로 이전 단계에서 구성한 백엔드에 연결하는 데 필요한 인터페이스를 처리하는 Netlify Identity Widget을 추가해야 합니다. 위젯을 포함하려면
dist
에 있는 CMS 색인 파일의 script
및 기본 색인 파일head
의 src/admin/index.html
아래에 head
태그를 추가합니다.<!-- src/admin/index.html -->
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Content Manager</title>
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
</head>
<body>
<!-- Include the script that builds the page and powers Netlify CMS -->
<script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
</body>
</html>
<!-- src/index.html -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>AngularBlog</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
</head>
<body>
<app-root></app-root>
</body>
</html>
When a user logs in with the Netlify Identity widget, an access token directs to the site homepage. In order to complete the login and get back to the CMS, redirect the user back to the
/admin/
path. To do this, add the following script before the closing body tag of your site's main index page:<script> if (window.netlifyIdentity) { window.netlifyIdentity.on("init", user => { if (!user) { window.netlifyIdentity.on("login", () => { document.location.href = "/admin/"; }); } }); } </script>
netlify에서 빌드 프로세스를 트리거할 github 저장소에 코드를 푸시합니다.
브라우저에서 CMS에 액세스
src/index.html
에서 사이트의 CMS에 액세스할 수 있습니다.CMS demo에 대한 Angular-Scully blog을 확인하십시오.Netlify Identity로 로그인을 클릭하고 가입을 선택하면 CMS에 액세스할 계정을 만들 수 있습니다.
건강하시고 즐거운 포스팅 부탁드립니다. 읽어 주셔서 감사합니다.
참조
연결하다
저와 연결하고 싶으시면 제가 연락할 수 있습니다.
yoursite.com/admin/
Reference
이 문제에 관하여(Angular Scully 블로그 사이트에 Netlify CMS 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brunoelo/adding-netlify-cms-to-an-angular-scully-blog-site-285k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)