chore: use cms w/ open authoring for site edits (#3287)
This commit is contained in:
parent
bcdd68045d
commit
783440e370
@ -1,42 +1,15 @@
|
||||
const pkg = require('./package.json');
|
||||
const fs = require('fs');
|
||||
const yaml = require('js-yaml');
|
||||
|
||||
const staticConfig = yaml.safeLoad(fs.readFileSync('./site.yml', 'utf8'));
|
||||
|
||||
module.exports = {
|
||||
siteMetadata: {
|
||||
title: 'Netlify CMS | Open-Source Content Management System',
|
||||
description: 'Open source content management for your Git workflow',
|
||||
siteUrl: pkg.homepage,
|
||||
menu: {
|
||||
docs: [
|
||||
{
|
||||
name: 'start',
|
||||
title: 'Quick Start',
|
||||
},
|
||||
{
|
||||
name: 'features',
|
||||
title: 'Features',
|
||||
},
|
||||
{
|
||||
name: 'reference',
|
||||
title: 'Reference',
|
||||
},
|
||||
{
|
||||
name: 'media',
|
||||
title: 'Media',
|
||||
},
|
||||
{
|
||||
name: 'guides',
|
||||
title: 'Guides',
|
||||
},
|
||||
{
|
||||
name: 'customization',
|
||||
title: 'Customization',
|
||||
},
|
||||
{
|
||||
name: 'contributing',
|
||||
title: 'Contributing',
|
||||
},
|
||||
],
|
||||
},
|
||||
menu: staticConfig.menu,
|
||||
},
|
||||
plugins: [
|
||||
{
|
||||
|
@ -15,24 +15,25 @@
|
||||
"dependencies": {
|
||||
"@emotion/core": "^10.0.27",
|
||||
"@emotion/styled": "^10.0.27",
|
||||
"dayjs": "^1.8.19",
|
||||
"dayjs": "^1.8.20",
|
||||
"emotion-theming": "^10.0.27",
|
||||
"gatsby": "2.19.12",
|
||||
"gatsby": "2.19.18",
|
||||
"gatsby-plugin-catch-links": "2.1.25",
|
||||
"gatsby-plugin-emotion": "^4.1.22",
|
||||
"gatsby-plugin-manifest": "2.2.41",
|
||||
"gatsby-plugin-netlify-cms": "^4.1.38",
|
||||
"gatsby-plugin-netlify-cms": "^4.1.40",
|
||||
"gatsby-plugin-react-helmet": "3.1.22",
|
||||
"gatsby-remark-autolink-headers": "2.1.24",
|
||||
"gatsby-remark-external-links": "^0.0.4",
|
||||
"gatsby-remark-prismjs": "3.3.31",
|
||||
"gatsby-source-filesystem": "2.1.48",
|
||||
"gatsby-transformer-json": "2.2.26",
|
||||
"gatsby-transformer-remark": "2.6.50",
|
||||
"gatsby-transformer-yaml": "2.2.24",
|
||||
"gatsby-transformer-remark": "2.6.52",
|
||||
"gatsby-transformer-yaml": "2.2.25",
|
||||
"js-yaml": "^3.13.1",
|
||||
"lodash": "^4.17.15",
|
||||
"moment": "^2.24.0",
|
||||
"netlify-cms-app": "^2.11.13",
|
||||
"netlify-cms-app": "^2.11.20",
|
||||
"prismjs": "^1.19.0",
|
||||
"react": "^16.12.0",
|
||||
"react-dom": "^16.12.0",
|
||||
@ -43,7 +44,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-plugin-prismjs": "^2.0.1",
|
||||
"babel-preset-gatsby": "^0.2.28",
|
||||
"babel-preset-gatsby": "^0.2.29",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-plugin-import": "^2.20.1"
|
||||
},
|
||||
|
16
website/site.yml
Normal file
16
website/site.yml
Normal file
@ -0,0 +1,16 @@
|
||||
menu:
|
||||
docs:
|
||||
- name: start
|
||||
title: Quick Start
|
||||
- name: features
|
||||
title: Features
|
||||
- name: reference
|
||||
title: Reference
|
||||
- name: media
|
||||
title: Media
|
||||
- name: guides
|
||||
title: Guides
|
||||
- name: customization
|
||||
title: Customization
|
||||
- name: contributing
|
||||
title: Contributing
|
@ -2,92 +2,135 @@ import React from 'react';
|
||||
import CMS from 'netlify-cms-app';
|
||||
import dayjs from 'dayjs';
|
||||
import Prism from 'prismjs';
|
||||
import { CacheProvider } from '@emotion/core';
|
||||
import createCache from '@emotion/cache';
|
||||
import { BlogPostTemplate } from '../templates/blog-post';
|
||||
import { LayoutTemplate as Layout } from '../components/layout';
|
||||
import { DocsTemplate } from '../templates/doc-page';
|
||||
import WidgetDoc from '../components/widget-doc';
|
||||
import WhatsNew from '../components/whats-new';
|
||||
import Notification from '../components/notification';
|
||||
import Community from '../components/community';
|
||||
import siteConfig from '../../site.yml';
|
||||
|
||||
const withHighlight = WrappedComponent =>
|
||||
class Highlight extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.ref = React.createRef();
|
||||
}
|
||||
let emotionCache;
|
||||
function getEmotionCache() {
|
||||
const previewPaneIframe = document.querySelector('iframe[class*="PreviewPaneFrame"]');
|
||||
const previewPaneHeadEl = previewPaneIframe.contentWindow.document.querySelector('head');
|
||||
if (!emotionCache || emotionCache.sheet.container !== previewPaneHeadEl) {
|
||||
emotionCache = createCache({ container: previewPaneHeadEl });
|
||||
}
|
||||
return emotionCache;
|
||||
}
|
||||
|
||||
highlight() {
|
||||
Prism.highlightAllUnder(this.ref.current);
|
||||
}
|
||||
const PreviewContainer = ({ children, highlight }) => (
|
||||
<CacheProvider value={getEmotionCache()}>
|
||||
<Layout>
|
||||
{highlight ? <Highlight>{children}</Highlight> : children}
|
||||
</Layout>
|
||||
</CacheProvider>
|
||||
);
|
||||
|
||||
componentDidMount() {
|
||||
this.highlight();
|
||||
}
|
||||
class Highlight extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.ref = React.createRef();
|
||||
}
|
||||
|
||||
componentDidUpdate() {
|
||||
this.highlight();
|
||||
}
|
||||
highlight() {
|
||||
setTimeout(() => {
|
||||
if (this.ref.current) {
|
||||
Prism.highlightAllUnder(this.ref.current);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="language-markup" ref={this.ref}>
|
||||
<WrappedComponent {...this.props} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
componentDidMount() {
|
||||
this.highlight();
|
||||
}
|
||||
|
||||
componentDidUpdate() {
|
||||
this.highlight();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div ref={this.ref}>
|
||||
{this.props.children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const BlogPostPreview = ({ entry, widgetFor }) => {
|
||||
const data = entry.get('data');
|
||||
return (
|
||||
<BlogPostTemplate
|
||||
title={data.get('title')}
|
||||
author={data.get('author')}
|
||||
date={dayjs(data.get('date')).format('MMMM D, YYYY')}
|
||||
body={widgetFor('body')}
|
||||
/>
|
||||
<PreviewContainer highlight={true}>
|
||||
<BlogPostTemplate
|
||||
title={data.get('title')}
|
||||
author={data.get('author')}
|
||||
date={dayjs(data.get('date')).format('MMMM D, YYYY')}
|
||||
body={widgetFor('body')}
|
||||
/>
|
||||
</PreviewContainer>
|
||||
);
|
||||
};
|
||||
|
||||
const CommunityPreview = ({ entry }) => {
|
||||
const { title, headline, subhead, sections } = entry.get('data').toJS();
|
||||
return <Community title={title} headline={headline} subhead={subhead} sections={sections} />;
|
||||
return (
|
||||
<PreviewContainer>
|
||||
<Community title={title} headline={headline} subhead={subhead} sections={sections} />
|
||||
</PreviewContainer>
|
||||
);
|
||||
};
|
||||
|
||||
const DocsPreview = ({ entry, widgetFor }) => (
|
||||
<DocsTemplate title={entry.getIn(['data', 'title'])} body={widgetFor('body')} />
|
||||
<PreviewContainer highlight={true}>
|
||||
<DocsTemplate title={entry.getIn(['data', 'title'])} body={widgetFor('body')} />
|
||||
</PreviewContainer>
|
||||
);
|
||||
|
||||
const WidgetDocPreview = ({ entry, widgetFor }) => (
|
||||
<WidgetDoc visible={true} label={entry.get('label')} body={widgetFor('body')} />
|
||||
<PreviewContainer highlight={true}>
|
||||
<WidgetDoc visible={true} label={entry.get('label')} body={widgetFor('body')} />
|
||||
</PreviewContainer>
|
||||
);
|
||||
|
||||
const ReleasePreview = ({ entry }) => (
|
||||
<WhatsNew
|
||||
updates={entry
|
||||
.getIn(['data', 'updates'])
|
||||
.map(release => ({
|
||||
version: release.get('version'),
|
||||
date: dayjs(release.get('date')).format('MMMM D, YYYY'),
|
||||
description: release.get('description'),
|
||||
}))
|
||||
.toJS()}
|
||||
/>
|
||||
<PreviewContainer highlight={true}>
|
||||
<WhatsNew
|
||||
updates={entry
|
||||
.getIn(['data', 'updates'])
|
||||
.map(release => ({
|
||||
version: release.get('version'),
|
||||
date: dayjs(release.get('date')).format('MMMM D, YYYY'),
|
||||
description: release.get('description'),
|
||||
}))
|
||||
.toJS()}
|
||||
/>
|
||||
</PreviewContainer>
|
||||
);
|
||||
|
||||
const NotificationPreview = ({ entry }) =>
|
||||
entry
|
||||
.getIn(['data', 'notifications'])
|
||||
.filter(notif => notif.get('published'))
|
||||
.map((notif, idx) => (
|
||||
<Notification key={idx} url={notif.get('url')} loud={notif.get('loud')}>
|
||||
{notif.get('message')}
|
||||
</Notification>
|
||||
));
|
||||
const NotificationPreview = ({ entry }) => (
|
||||
<PreviewContainer>
|
||||
{entry
|
||||
.getIn(['data', 'notifications'])
|
||||
.filter(notif => notif.get('published'))
|
||||
.map((notif, idx) => (
|
||||
<Notification key={idx} url={notif.get('url')} loud={notif.get('loud')}>
|
||||
{notif.get('message')}
|
||||
</Notification>
|
||||
))
|
||||
}
|
||||
</PreviewContainer>
|
||||
);
|
||||
|
||||
CMS.registerPreviewTemplate('blog', withHighlight(BlogPostPreview));
|
||||
CMS.registerPreviewTemplate('docs', withHighlight(DocsPreview));
|
||||
CMS.registerPreviewTemplate('widget_docs', withHighlight(WidgetDocPreview));
|
||||
CMS.registerPreviewTemplate('blog', BlogPostPreview);
|
||||
siteConfig.menu.docs.forEach(group => {
|
||||
CMS.registerPreviewTemplate(`docs_${group.name}`, DocsPreview);
|
||||
});
|
||||
CMS.registerPreviewTemplate('widget_docs', WidgetDocPreview);
|
||||
CMS.registerPreviewTemplate('releases', ReleasePreview);
|
||||
CMS.registerPreviewTemplate('notifications', NotificationPreview);
|
||||
CMS.registerPreviewTemplate('community', CommunityPreview);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from 'react';
|
||||
import { css } from '@emotion/core';
|
||||
|
||||
const EditLink = ({ path }) => (
|
||||
const EditLink = ({ collection, filename }) => (
|
||||
<div
|
||||
css={css`
|
||||
float: right;
|
||||
@ -15,7 +15,7 @@ const EditLink = ({ path }) => (
|
||||
}
|
||||
`}
|
||||
>
|
||||
<a href={`https://github.com/netlify/netlify-cms/blob/master/website/content/${path}`}>
|
||||
<a href={`/admin/#/edit/${collection}/${filename}`} target="_blank">
|
||||
<svg
|
||||
version="1.1"
|
||||
id="pencil"
|
||||
|
@ -28,6 +28,13 @@ const LAYOUT_QUERY = graphql`
|
||||
}
|
||||
`;
|
||||
|
||||
export const LayoutTemplate = ({ children }) => (
|
||||
<ThemeProvider theme={theme}>
|
||||
<GlobalStyles />
|
||||
{children}
|
||||
</ThemeProvider>
|
||||
)
|
||||
|
||||
const Layout = ({ hasPageHero, children }) => {
|
||||
return (
|
||||
<StaticQuery query={LAYOUT_QUERY}>
|
||||
@ -35,8 +42,12 @@ const Layout = ({ hasPageHero, children }) => {
|
||||
const { title, description } = data.site.siteMetadata;
|
||||
|
||||
return (
|
||||
<ThemeProvider theme={theme}>
|
||||
<GlobalStyles />
|
||||
<LayoutTemplate
|
||||
title={title}
|
||||
description={description}
|
||||
hasPageHero={hasPageHero}
|
||||
footerButtons={data.footer.childDataYaml.footer.buttons}
|
||||
>
|
||||
<Helmet defaultTitle={title} titleTemplate={`%s | ${title}`}>
|
||||
<meta name="description" content={description} />
|
||||
<link
|
||||
@ -47,7 +58,7 @@ const Layout = ({ hasPageHero, children }) => {
|
||||
<Header hasHeroBelow={hasPageHero} />
|
||||
{children}
|
||||
<Footer buttons={data.footer.childDataYaml.footer.buttons} />
|
||||
</ThemeProvider>
|
||||
</LayoutTemplate>
|
||||
);
|
||||
}}
|
||||
</StaticQuery>
|
||||
|
@ -125,12 +125,11 @@ const StyledMarkdown = styled.div`
|
||||
}
|
||||
`;
|
||||
|
||||
const Markdown = ({ html }) => {
|
||||
if (React.isValidElement(html)) {
|
||||
return html;
|
||||
} else {
|
||||
return <StyledMarkdown dangerouslySetInnerHTML={{ __html: html }} />;
|
||||
const Markdown = ({ body, html }) => {
|
||||
if (body) {
|
||||
return <StyledMarkdown>{body}</StyledMarkdown>
|
||||
}
|
||||
return <StyledMarkdown dangerouslySetInnerHTML={{ __html: html }} />;
|
||||
};
|
||||
|
||||
export default Markdown;
|
||||
|
@ -15,12 +15,12 @@ const SidebarLayout = ({ sidebar, children }) => (
|
||||
css={css`
|
||||
${mq[1]} {
|
||||
display: grid;
|
||||
grid-template-columns: 300px 1fr;
|
||||
grid-template-columns: ${sidebar ? '300px' : ''} minmax(0, 1fr);
|
||||
grid-gap: 2rem;
|
||||
}
|
||||
`}
|
||||
>
|
||||
<div>{sidebar}</div>
|
||||
{sidebar && <div>{sidebar}</div>}
|
||||
<Children>{children}</Children>
|
||||
</Page>
|
||||
);
|
||||
|
@ -10,7 +10,7 @@ const WidgetDoc = ({ visible, label, body, html }) => {
|
||||
return (
|
||||
<div>
|
||||
<h3>{label}</h3>
|
||||
<Markdown html={body || html} />
|
||||
<Markdown html={html} body={body} />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@ -24,7 +24,7 @@ export const BlogPostTemplate = ({ title, author, date, body, html }) => (
|
||||
<MetaInfo>
|
||||
by {author} on {date}
|
||||
</MetaInfo>
|
||||
<Markdown html={body || html} />
|
||||
<Markdown body={body} html={html} />
|
||||
</Page>
|
||||
</Container>
|
||||
);
|
||||
|
@ -4,13 +4,17 @@ import { graphql } from 'gatsby';
|
||||
import 'prismjs/themes/prism-tomorrow.css';
|
||||
|
||||
import Layout from '../components/layout';
|
||||
import EditLink from '../components/edit-link';
|
||||
import Widgets from '../components/widgets';
|
||||
import DocsNav from '../components/docs-nav';
|
||||
import Container from '../components/container';
|
||||
import SidebarLayout from '../components/sidebar-layout';
|
||||
import EditLink from '../components/edit-link';
|
||||
import Widgets from '../components/widgets';
|
||||
import Markdown from '../components/markdown';
|
||||
|
||||
function filenameFromPath(p) {
|
||||
return p.split('/').slice(-1)[0].split('.')[0];
|
||||
}
|
||||
|
||||
const toMenu = (menu, nav) =>
|
||||
menu.map(group => ({
|
||||
title: group.title,
|
||||
@ -25,7 +29,7 @@ const DocsSidebar = ({ docsNav, location }) => (
|
||||
|
||||
export const DocsTemplate = ({
|
||||
title,
|
||||
editLinkPath,
|
||||
filename,
|
||||
body,
|
||||
html,
|
||||
showWidgets,
|
||||
@ -33,15 +37,18 @@ export const DocsTemplate = ({
|
||||
showSidebar,
|
||||
docsNav,
|
||||
location,
|
||||
group,
|
||||
}) => (
|
||||
<Container size="md">
|
||||
<SidebarLayout
|
||||
sidebar={<div>{showSidebar && <DocsSidebar docsNav={docsNav} location={location} />}</div>}
|
||||
sidebar={showSidebar && <DocsSidebar docsNav={docsNav} location={location} />}
|
||||
>
|
||||
<article data-docs-content>
|
||||
{editLinkPath && <EditLink path={editLinkPath} />}
|
||||
{filename && (
|
||||
<EditLink collection={`docs_${group}`} filename={filename} />
|
||||
)}
|
||||
<h1>{title}</h1>
|
||||
<Markdown html={body || html} />
|
||||
<Markdown body={body} html={html} />
|
||||
{showWidgets && <Widgets widgets={widgets} />}
|
||||
</article>
|
||||
</SidebarLayout>
|
||||
@ -49,22 +56,25 @@ export const DocsTemplate = ({
|
||||
);
|
||||
|
||||
const DocPage = ({ data, location }) => {
|
||||
const { nav, page, widgets, menu } = data;
|
||||
const { nav, page: { frontmatter, html, fields }, widgets, menu } = data;
|
||||
const { title, group } = frontmatter
|
||||
|
||||
const docsNav = toMenu(menu.siteMetadata.menu.docs, nav);
|
||||
const showWidgets = location.pathname.indexOf('/docs/widgets') !== -1;
|
||||
const filename = filenameFromPath(fields.path);
|
||||
|
||||
return (
|
||||
<Layout>
|
||||
<Helmet title={page.frontmatter.title} />
|
||||
<Helmet title={title} />
|
||||
<DocsTemplate
|
||||
title={page.frontmatter.title}
|
||||
editLinkPath={page.fields.path}
|
||||
html={page.html}
|
||||
title={title}
|
||||
filename={filename}
|
||||
html={html}
|
||||
showWidgets={showWidgets}
|
||||
widgets={widgets}
|
||||
docsNav={docsNav}
|
||||
location={location}
|
||||
group={group}
|
||||
showSidebar
|
||||
/>
|
||||
</Layout>
|
||||
@ -79,6 +89,7 @@ export const pageQuery = graphql`
|
||||
}
|
||||
frontmatter {
|
||||
title
|
||||
group
|
||||
}
|
||||
html
|
||||
}
|
||||
|
@ -2,71 +2,116 @@ backend:
|
||||
name: github
|
||||
repo: netlify/netlify-cms
|
||||
squash_merges: true
|
||||
open_authoring: true
|
||||
|
||||
site_url: "https://www.netlifycms.org"
|
||||
local_backend: true
|
||||
|
||||
site_url: https://www.netlifycms.org
|
||||
|
||||
publish_mode: editorial_workflow
|
||||
|
||||
media_folder: "website/static/img" # Folder where user uploaded files should go
|
||||
public_folder: "img"
|
||||
media_folder: website/static/img
|
||||
public_folder: img
|
||||
|
||||
collections: # A list of collections the CMS should be able to edit
|
||||
- name: "docs" # Used in routes, ie.: /admin/collections/:slug/edit
|
||||
label: "Docs" # Used in the UI, ie.: "New Post"
|
||||
folder: "website/content/docs" # The path to the folder where the documents are stored
|
||||
create: true # Allow users to create new documents in this collection
|
||||
preview_path: "docs/{{slug}}"
|
||||
fields: # The fields each document in this collection have
|
||||
- {label: "Title", name: "title", widget: "string", tagname: "h1"}
|
||||
- {label: "Group", name: "group", widget: "string"}
|
||||
- {label: "Weight", name: "weight", widget: "number"}
|
||||
- {label: "Body", name: "body", widget: "markdown"}
|
||||
- name: "widget_docs" # Used in routes, ie.: /admin/collections/:slug/edit
|
||||
label: "Widget Docs" # Used in the UI, ie.: "New Post"
|
||||
folder: "website/content/docs/widgets" # The path to the folder where the documents are stored
|
||||
docs_collection: &docs_collection
|
||||
folder: website/content/docs
|
||||
create: true
|
||||
preview_path: "docs/{{slug}}"
|
||||
fields:
|
||||
- { label: Title, name: title }
|
||||
- { label: Group, name: group, widget: select, options: [start, features, reference, media, guides, customization, contributing] }
|
||||
- { label: Weight, name: weight, widget: number }
|
||||
- { label: Body, name: body, widget: markdown }
|
||||
|
||||
collections:
|
||||
- <<: *docs_collection
|
||||
name: docs_start
|
||||
label: "Docs: Quick Start"
|
||||
filter:
|
||||
field: group
|
||||
value: start
|
||||
- <<: *docs_collection
|
||||
name: docs_features
|
||||
label: "Docs: Features"
|
||||
filter:
|
||||
field: group
|
||||
value: features
|
||||
- <<: *docs_collection
|
||||
name: docs_reference
|
||||
label: "Docs: Reference"
|
||||
filter:
|
||||
field: group
|
||||
value: reference
|
||||
- <<: *docs_collection
|
||||
name: docs_media
|
||||
label: "Docs: Media"
|
||||
filter:
|
||||
field: group
|
||||
value: media
|
||||
- <<: *docs_collection
|
||||
name: docs_guides
|
||||
label: "Docs: Guides"
|
||||
filter:
|
||||
field: group
|
||||
value: guides
|
||||
- <<: *docs_collection
|
||||
name: docs_customization
|
||||
label: "Docs: Customization"
|
||||
filter:
|
||||
field: group
|
||||
value: customization
|
||||
- <<: *docs_collection
|
||||
name: docs_contributing
|
||||
label: "Docs: Contributing"
|
||||
filter:
|
||||
field: group
|
||||
value: contributing
|
||||
- name: widget_docs
|
||||
label: "Docs: Widgets"
|
||||
folder: website/content/docs/widgets
|
||||
preview_path: "docs/widgets/{{title}}"
|
||||
create: true # Allow users to create new documents in this collection
|
||||
fields: # The fields each document in this collection have
|
||||
- {label: "Name", name: "title"}
|
||||
- {label: "Label", name: "label"}
|
||||
- {label: "Body", name: "body", widget: "markdown"}
|
||||
- name: "blog"
|
||||
label: "Blog"
|
||||
label_singular: "Post"
|
||||
folder: "website/content/blog"
|
||||
create: true
|
||||
fields:
|
||||
- { label: Name, name: title }
|
||||
- { label: Label, name: label }
|
||||
- { label: Body, name: body, widget: markdown }
|
||||
- name: blog
|
||||
label: Blog
|
||||
label_singular: Post
|
||||
folder: website/content/blog
|
||||
preview_path: "blog/{{year}}/{{month}}/{{title}}"
|
||||
create: true
|
||||
fields:
|
||||
- {label: "Title", name: "title", widget: "string", tagname: "h1"}
|
||||
- {label: "Author", name: "author", widget: "string"}
|
||||
- {label: "Description (for blog list)", name: "description", widget: "text"}
|
||||
- {label: "Meta Description (defaults to Description)", name: "meta_description", widget: "text", required: false}
|
||||
- {label: "Twitter Image", name: "twitter_image", widget: "image"}
|
||||
- {label: "Date", name: "date", widget: "date"}
|
||||
- {label: "Body", name: "body", widget: "markdown"}
|
||||
- { label: Title, name: title }
|
||||
- { label: Author, name: author }
|
||||
- { label: Description (for blog list), name: description, widget: text }
|
||||
- { label: Meta Description (defaults to Description), name: meta_description, widget: text, required: false }
|
||||
- { label: Twitter Image, name: twitter_image, widget: image }
|
||||
- { label: Date, name: date, widget: date }
|
||||
- { label: Body, name: body, widget: markdown }
|
||||
- name: community
|
||||
label: Community
|
||||
files:
|
||||
- name: community
|
||||
label: Community
|
||||
file: website/content/pages/community.md
|
||||
preview_path: "community"
|
||||
preview_path: community
|
||||
fields:
|
||||
- {label: Title, name: title}
|
||||
- {label: Headline, name: headline}
|
||||
- {label: Subheading, name: subhead}
|
||||
- { label: Title, name: title }
|
||||
- { label: Headline, name: headline }
|
||||
- { label: Subheading, name: subhead }
|
||||
- label: Sections
|
||||
name: sections
|
||||
widget: list
|
||||
fields:
|
||||
- {name: title, label: Title}
|
||||
- { name: title, label: Title }
|
||||
- name: channels
|
||||
label: Channels
|
||||
widget: list
|
||||
fields:
|
||||
- {name: title, label: Title}
|
||||
- {name: url, label: URL}
|
||||
- {name: description, label: Description}
|
||||
- { name: title, label: Title }
|
||||
- { name: url, label: URL }
|
||||
- { name: description, label: Description }
|
||||
- name: updates
|
||||
label: Updates
|
||||
files:
|
||||
@ -78,9 +123,9 @@ collections: # A list of collections the CMS should be able to edit
|
||||
label: Releases
|
||||
widget: list
|
||||
fields:
|
||||
- {name: version, label: Version}
|
||||
- {name: date, label: Date, widget: date}
|
||||
- {name: description, label: Description}
|
||||
- { name: version, label: Version }
|
||||
- { name: date, label: Date, widget: date }
|
||||
- { name: description, label: Description }
|
||||
- name: notifications
|
||||
label: Notifications
|
||||
file: website/data/notifications.yml
|
||||
@ -90,8 +135,8 @@ collections: # A list of collections the CMS should be able to edit
|
||||
label: Notifications
|
||||
widget: list
|
||||
fields:
|
||||
- {label: Title, name: title, widget: string, tagname: h1}
|
||||
- {label: Published, name: published, widget: boolean}
|
||||
- {label: Loud, name: loud, widget: boolean}
|
||||
- {label: Message, name: message, widget: text}
|
||||
- {label: URL, name: url}
|
||||
- { label: Title, name: title }
|
||||
- { label: Published, name: published, widget: boolean }
|
||||
- { label: Loud, name: loud, widget: boolean }
|
||||
- { label: Message, name: message, widget: text }
|
||||
- { label: URL, name: url}
|
||||
|
@ -1200,16 +1200,15 @@
|
||||
string-width "^2.0.0"
|
||||
strip-ansi "^3"
|
||||
|
||||
"@reach/router@1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e"
|
||||
integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ==
|
||||
"@reach/router@^1.3.1":
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.1.tgz#0a49f75fa9621323d6e21c803447bcfcde1713b2"
|
||||
integrity sha512-Ov1j1J+pSgXliJHFL7XWhjyREwc6GxeWfgBTa5MMH5eRmYtHbPhaovba4xKo7aTVCg8fxkt2yDMNSpvwfUP+pA==
|
||||
dependencies:
|
||||
create-react-context "^0.2.1"
|
||||
create-react-context "0.3.0"
|
||||
invariant "^2.2.3"
|
||||
prop-types "^15.6.1"
|
||||
react-lifecycles-compat "^3.0.4"
|
||||
warning "^3.0.0"
|
||||
|
||||
"@sindresorhus/is@^0.14.0":
|
||||
version "0.14.0"
|
||||
@ -2186,10 +2185,10 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24:
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
|
||||
integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
|
||||
|
||||
babel-preset-gatsby@^0.2.28:
|
||||
version "0.2.28"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.28.tgz#6bd421e1a18115889e608b2a8fa5076205bacd1a"
|
||||
integrity sha512-PnQgmGHTgGHgMmTeK1raV5rFk4puUX2bX0L7Ayqomi5xMQqQXLYOeE5bsaB1YIBpdFMdCUgbf9skX7vfqyy7hw==
|
||||
babel-preset-gatsby@^0.2.29:
|
||||
version "0.2.29"
|
||||
resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.29.tgz#cf50a2ec0e6d44fd715b559bfd5481c4221cab5c"
|
||||
integrity sha512-asJV/UMq7riYiY4ZhMi83Mbhwwtkvhp9gmmJgJJSJyAWw/tTgAmYan6Udpco3P4Kvd91lj+f8kzXJHT0G2sdwQ==
|
||||
dependencies:
|
||||
"@babel/plugin-proposal-class-properties" "^7.7.4"
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4"
|
||||
@ -2203,6 +2202,7 @@ babel-preset-gatsby@^0.2.28:
|
||||
babel-plugin-dynamic-import-node "^2.3.0"
|
||||
babel-plugin-macros "^2.8.0"
|
||||
babel-plugin-transform-react-remove-prop-types "^0.4.24"
|
||||
gatsby-core-utils "^1.0.28"
|
||||
|
||||
babel-runtime@^6.26.0:
|
||||
version "6.26.0"
|
||||
@ -3422,12 +3422,13 @@ create-react-class@^15.5.1, create-react-class@^15.5.2:
|
||||
loose-envify "^1.3.1"
|
||||
object-assign "^4.1.1"
|
||||
|
||||
create-react-context@^0.2.1:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
|
||||
create-react-context@0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c"
|
||||
integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==
|
||||
dependencies:
|
||||
fbjs "^0.8.0"
|
||||
gud "^1.0.0"
|
||||
warning "^4.0.3"
|
||||
|
||||
cross-fetch@2.2.2:
|
||||
version "2.2.2"
|
||||
@ -3695,10 +3696,10 @@ date-now@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
||||
|
||||
dayjs@^1.8.19:
|
||||
version "1.8.19"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.19.tgz#5117dc390d8f8e586d53891dbff3fa308f51abfe"
|
||||
integrity sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==
|
||||
dayjs@^1.8.20:
|
||||
version "1.8.20"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.20.tgz#724a5cb6ad1f6fc066b0bd9a800dedcc7886f19e"
|
||||
integrity sha512-mH0MCDxw6UCGJYxVN78h8ugWycZAO8thkj3bW6vApL5tS0hQplIDdAQcmbvl7n35H0AKdCJQaArTrIQw2xt4Qg==
|
||||
|
||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.9:
|
||||
version "2.6.9"
|
||||
@ -4923,7 +4924,7 @@ faye-websocket@~0.11.1:
|
||||
dependencies:
|
||||
websocket-driver ">=0.5.1"
|
||||
|
||||
fbjs@^0.8.0, fbjs@^0.8.9:
|
||||
fbjs@^0.8.9:
|
||||
version "0.8.17"
|
||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
|
||||
dependencies:
|
||||
@ -5203,10 +5204,10 @@ fuzzy@^0.1.1:
|
||||
resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8"
|
||||
integrity sha1-THbsL/CsGjap3M+aAN+GIweNTtg=
|
||||
|
||||
gatsby-cli@^2.8.29:
|
||||
version "2.8.29"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.29.tgz#53dd79d2ff01d555570cd2a81a51c95be585bd7e"
|
||||
integrity sha512-HVZmb22D+Qf24rceY37MEzaPOk7v3ffw/tzu8pFkG1IoHLIJumbo2LMSJRvnd2+SUMQf1ZIVQCmbdEuaJ9Fn1A==
|
||||
gatsby-cli@^2.8.30:
|
||||
version "2.8.30"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.30.tgz#29655d05890d7c54b04d3fecd97446941e0c0507"
|
||||
integrity sha512-dEGuvF91EwSzLwBV98NDihtn6e6uZedcPljlx9Mr7ZQLlOhGAVDcWR9KNq0Z1SWeRInwWc3cEdUJ6TUmPa308Q==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.5.5"
|
||||
"@babel/runtime" "^7.7.6"
|
||||
@ -5235,7 +5236,7 @@ gatsby-cli@^2.8.29:
|
||||
pretty-error "^2.1.1"
|
||||
progress "^2.0.3"
|
||||
prompts "^2.3.0"
|
||||
react "^16.12.0"
|
||||
react "^16.8.0"
|
||||
redux "^4.0.4"
|
||||
resolve-cwd "^2.0.0"
|
||||
semver "^6.3.0"
|
||||
@ -5259,10 +5260,10 @@ gatsby-core-utils@^1.0.28:
|
||||
ci-info "2.0.0"
|
||||
node-object-hash "^2.0.0"
|
||||
|
||||
gatsby-graphiql-explorer@^0.2.33:
|
||||
version "0.2.33"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.33.tgz#0414f50369c82f3b156fbb1b0968d81ca8bc8bc3"
|
||||
integrity sha512-prc/OU9dcrQQDRswguLuRqlBLGNZO/oadRR0rhmxVPrTVps3RyX4VDYvGBzaMhSfr4tMNAVDYP5iPjaaQz+D8A==
|
||||
gatsby-graphiql-explorer@^0.2.34:
|
||||
version "0.2.34"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.34.tgz#ed3e8406e7f263687727717481ccee9e5b4cb83c"
|
||||
integrity sha512-r3JW4NPC69kRV8VTlDYrR9E9ROyw3Po4qKB5C067fE0bRhtU3DTSSf6MT+C97XS+JqKEZAaub0unptB//gnaCw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.6"
|
||||
|
||||
@ -5315,10 +5316,10 @@ gatsby-plugin-manifest@2.2.41:
|
||||
semver "^5.7.1"
|
||||
sharp "^0.23.4"
|
||||
|
||||
gatsby-plugin-netlify-cms@^4.1.38:
|
||||
version "4.1.38"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.38.tgz#ddba90b931c9ba73d4906a40bde97aa3716cecc0"
|
||||
integrity sha512-GqlZBbhHFwR/QIzPr3GlNjdJxYB8zvi6LUjTajBaUj7SX4e5brY9acCFHq8NmfSZc+875L5EV0U0XsiYt/yLpg==
|
||||
gatsby-plugin-netlify-cms@^4.1.40:
|
||||
version "4.1.40"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.40.tgz#6c687d68d0252917f7cfccff896304905fb18857"
|
||||
integrity sha512-24ShOOO6Q67Y+AGJ6aRa6ptucuZlUjDLtY1o+u8K4rFp7BmTSk29sakRaV0D9KCQ4WmDXDkUovwNNgDC7CsT7A==
|
||||
dependencies:
|
||||
"@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2"
|
||||
copy-webpack-plugin "^5.1.0"
|
||||
@ -5441,10 +5442,10 @@ gatsby-transformer-json@2.2.26:
|
||||
"@babel/runtime" "^7.7.6"
|
||||
bluebird "^3.7.2"
|
||||
|
||||
gatsby-transformer-remark@2.6.50:
|
||||
version "2.6.50"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.6.50.tgz#5278c41279f58e2409ab61fa458e0d6d47cfc956"
|
||||
integrity sha512-TeJ9wBoZB3xTengF8Dzt8+gKnKYLlTHaIp87Lab4nuP9XMTT0GiMsqJwvAFBo4SnOFUa30qNRbz+Fyirk7oPew==
|
||||
gatsby-transformer-remark@2.6.52:
|
||||
version "2.6.52"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.6.52.tgz#ab843006fa4e7242452d732d2756b2ccb5f264a4"
|
||||
integrity sha512-G0Fw2ZHFMiC1KdIR31NSZcQ3+KtghVfWK8FmiExMmN8bZQROyuqrjv1DqhUgg2yChHZKZ14H3hTnVmvCv48shg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.6"
|
||||
bluebird "^3.7.2"
|
||||
@ -5468,20 +5469,20 @@ gatsby-transformer-remark@2.6.50:
|
||||
unist-util-select "^1.5.0"
|
||||
unist-util-visit "^1.4.1"
|
||||
|
||||
gatsby-transformer-yaml@2.2.24:
|
||||
version "2.2.24"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.2.24.tgz#93989ac6cf7a1c22c597f7b6559ccfff17ed8e84"
|
||||
integrity sha512-6+uQwzIaMRc6WPIFJIaR1MqAULpev8+eo6pdZFm/6/MAMSb9t6A9dge8+V4ahhGhLJr26HI4d2/JpnzLihKTTg==
|
||||
gatsby-transformer-yaml@2.2.25:
|
||||
version "2.2.25"
|
||||
resolved "https://registry.yarnpkg.com/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.2.25.tgz#4aa432d571a41d39c6cb3c85c9261b7806a98192"
|
||||
integrity sha512-W+rbrTbpabF74U9B6PcqwbUSvlKPtnUEq+ujx4w8mqbP152ttN15TRFtZHmqQdqupokdHMzq87dTZlD4qkWbzw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.6"
|
||||
js-yaml "^3.13.1"
|
||||
lodash "^4.17.15"
|
||||
unist-util-select "^1.5.0"
|
||||
|
||||
gatsby@2.19.12:
|
||||
version "2.19.12"
|
||||
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.12.tgz#9819d47407386912ad89f8067d69cec4ef7aec23"
|
||||
integrity sha512-oI76KUEIebmaVOwtHuRINBspLvKHCIOdVPiNdgT/ly05iJLg9OsKd6/eYZ/rO+YYWew8t+MmoMVmRLpaWE2RBQ==
|
||||
gatsby@2.19.18:
|
||||
version "2.19.18"
|
||||
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.18.tgz#bc03a806eb577e056d66b7ab5f7ca50070fc14c7"
|
||||
integrity sha512-DRVak6eh3vCrokdn1taibno9Z/I+XxaWcTdorGVXnS1TCOjXeWJ838f/i3bc+BuuSmoq1V3lOKfggyvtccF74w==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.5.5"
|
||||
"@babel/core" "^7.7.5"
|
||||
@ -5492,7 +5493,7 @@ gatsby@2.19.12:
|
||||
"@hapi/joi" "^15.1.1"
|
||||
"@mikaelkristiansson/domready" "^1.0.10"
|
||||
"@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2"
|
||||
"@reach/router" "1.2.1"
|
||||
"@reach/router" "^1.3.1"
|
||||
"@typescript-eslint/eslint-plugin" "^2.11.0"
|
||||
"@typescript-eslint/parser" "^2.11.0"
|
||||
address "1.1.2"
|
||||
@ -5504,7 +5505,7 @@ gatsby@2.19.12:
|
||||
babel-plugin-add-module-exports "^0.3.3"
|
||||
babel-plugin-dynamic-import-node "^2.3.0"
|
||||
babel-plugin-remove-graphql-queries "^2.7.23"
|
||||
babel-preset-gatsby "^0.2.28"
|
||||
babel-preset-gatsby "^0.2.29"
|
||||
better-opn "1.0.0"
|
||||
better-queue "^3.8.10"
|
||||
bluebird "^3.7.2"
|
||||
@ -5542,9 +5543,9 @@ gatsby@2.19.12:
|
||||
flat "^4.1.0"
|
||||
fs-exists-cached "1.0.0"
|
||||
fs-extra "^8.1.0"
|
||||
gatsby-cli "^2.8.29"
|
||||
gatsby-cli "^2.8.30"
|
||||
gatsby-core-utils "^1.0.28"
|
||||
gatsby-graphiql-explorer "^0.2.33"
|
||||
gatsby-graphiql-explorer "^0.2.34"
|
||||
gatsby-link "^2.2.29"
|
||||
gatsby-plugin-page-creator "^2.1.40"
|
||||
gatsby-react-router-scroll "^2.1.21"
|
||||
@ -8382,69 +8383,70 @@ neo-async@^2.6.1:
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
|
||||
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
|
||||
|
||||
netlify-cms-app@^2.11.13:
|
||||
version "2.11.13"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-app/-/netlify-cms-app-2.11.13.tgz#c625fc75a77b62de803ec9b32f600137d17e227a"
|
||||
integrity sha512-4SbE8+I1ud5RZVDTyXGisiEMptH/45eOVsu5/XofBzOGcOHZDDVegDMHgQyoj8in/GtanNzuL3uYOm2bRV+kng==
|
||||
netlify-cms-app@^2.11.20:
|
||||
version "2.11.20"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-app/-/netlify-cms-app-2.11.20.tgz#2fbc12129d6c9ac8e96b6823b6202749152614ea"
|
||||
integrity sha512-AwK2uN8BDJLFSD9Iy2QVK2ASNWxMotWFEqlez/INoMWWVSx93JD1ZENPYHCcxFxJcFl8Ax6rWmBy8KiY/CDOzA==
|
||||
dependencies:
|
||||
"@emotion/core" "^10.0.9"
|
||||
"@emotion/styled" "^10.0.9"
|
||||
immutable "^3.7.6"
|
||||
lodash "^4.17.11"
|
||||
moment "^2.24.0"
|
||||
netlify-cms-backend-bitbucket "^2.8.0"
|
||||
netlify-cms-backend-git-gateway "^2.7.1"
|
||||
netlify-cms-backend-github "^2.6.5"
|
||||
netlify-cms-backend-gitlab "^2.5.2"
|
||||
netlify-cms-backend-test "^2.7.1"
|
||||
netlify-cms-core "^2.16.0"
|
||||
netlify-cms-editor-component-image "^2.5.0"
|
||||
netlify-cms-backend-bitbucket "^2.9.0"
|
||||
netlify-cms-backend-git-gateway "^2.7.2"
|
||||
netlify-cms-backend-github "^2.7.1"
|
||||
netlify-cms-backend-gitlab "^2.6.0"
|
||||
netlify-cms-backend-test "^2.7.2"
|
||||
netlify-cms-core "^2.18.4"
|
||||
netlify-cms-editor-component-image "^2.6.2"
|
||||
netlify-cms-lib-auth "^2.2.7"
|
||||
netlify-cms-lib-util "^2.6.2"
|
||||
netlify-cms-locales "^1.8.0"
|
||||
netlify-cms-ui-default "^2.8.0"
|
||||
netlify-cms-lib-util "^2.7.1"
|
||||
netlify-cms-locales "^1.9.0"
|
||||
netlify-cms-ui-default "^2.9.1"
|
||||
netlify-cms-widget-boolean "^2.3.0"
|
||||
netlify-cms-widget-code "^1.1.3"
|
||||
netlify-cms-widget-date "^2.4.0"
|
||||
netlify-cms-widget-datetime "^2.2.5"
|
||||
netlify-cms-widget-file "^2.5.2"
|
||||
netlify-cms-widget-image "^2.5.0"
|
||||
netlify-cms-widget-list "^2.4.1"
|
||||
netlify-cms-widget-datetime "^2.2.6"
|
||||
netlify-cms-widget-file "^2.6.2"
|
||||
netlify-cms-widget-image "^2.6.2"
|
||||
netlify-cms-widget-list "^2.4.3"
|
||||
netlify-cms-widget-map "^1.3.3"
|
||||
netlify-cms-widget-markdown "^2.8.3"
|
||||
netlify-cms-widget-markdown "^2.9.2"
|
||||
netlify-cms-widget-number "^2.3.5"
|
||||
netlify-cms-widget-object "^2.3.1"
|
||||
netlify-cms-widget-relation "^2.5.0"
|
||||
netlify-cms-widget-select "^2.5.0"
|
||||
netlify-cms-widget-relation "^2.5.2"
|
||||
netlify-cms-widget-select "^2.5.1"
|
||||
netlify-cms-widget-string "^2.2.3"
|
||||
netlify-cms-widget-text "^2.3.0"
|
||||
prop-types "^15.7.2"
|
||||
react-immutable-proptypes "^2.1.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
netlify-cms-backend-bitbucket@^2.8.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.8.0.tgz#d06b4e0946a3646910bb3158ff1d237e2dbd1ebd"
|
||||
integrity sha512-g8Xq7uERSi7bErgMJshAZb+yNj4ZBy3FH3O+DpLdf92kUyrliVUF3BnXfKqD+Xf37PeLSQPMe/Xz5HjeaZ1ehg==
|
||||
netlify-cms-backend-bitbucket@^2.9.0:
|
||||
version "2.9.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.9.0.tgz#06676ad586cbcc34dc1339e52fb0caa5a4a7db6e"
|
||||
integrity sha512-GgMp1oClfhTeqDOtpy0RVeFwTVKJuBhiYkeyHvNYLg4C3QUHRD4VCTX1qlN6YKn+fLX5YKCj7NV+8X+OlCymkg==
|
||||
dependencies:
|
||||
common-tags "^1.8.0"
|
||||
js-base64 "^2.5.1"
|
||||
semaphore "^1.1.0"
|
||||
what-the-diff "^0.6.0"
|
||||
|
||||
netlify-cms-backend-git-gateway@^2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.7.1.tgz#5cf3b1d438275d32f073cdb1b7a684d4194ee3e0"
|
||||
integrity sha512-ZcSLzp9VwGZtDpG6C9XhsrIyO840Zn+p76+fD+jtZL96OVSN/p2Tmnr1TaeLUIbQh/GPtvuTaR3ht5p8b8M6lA==
|
||||
netlify-cms-backend-git-gateway@^2.7.2:
|
||||
version "2.7.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.7.2.tgz#2085ac9efdfb55b80ef3841ad59519112e8b2e76"
|
||||
integrity sha512-gwEoNES1pBSe1udtzAfO1IDlLOSIT6ppUTyjxZx5po9bnV5yMCWu/sQK0POFMz0Mcz8qpDPnwkUbtC6X4GVi9Q==
|
||||
dependencies:
|
||||
gotrue-js "^0.9.24"
|
||||
ini "^1.3.5"
|
||||
jwt-decode "^2.2.0"
|
||||
minimatch "^3.0.4"
|
||||
|
||||
netlify-cms-backend-github@^2.6.5:
|
||||
version "2.6.5"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-github/-/netlify-cms-backend-github-2.6.5.tgz#081235d20d7ffca1bc032f0b07130f7738b71dce"
|
||||
integrity sha512-b/EgxlewcLwW727H2ZYY9SHyDgNrt9nLs7qp08NNHI0MhflE7R01PxDaQRPPcqGEuvKXs23/ZAKdjLLdQbjigg==
|
||||
netlify-cms-backend-github@^2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-github/-/netlify-cms-backend-github-2.7.1.tgz#c3d73eeabc49dc9a3a6eee96d3e74939fe8cb584"
|
||||
integrity sha512-1FV/CwiclNNm6pdIHy+YaVtuV04SrWrJ0qItWe9KIRm20bCr9ad6VYA9yT7tpZQeDPx6AlkiMsnmf3twORPALw==
|
||||
dependencies:
|
||||
apollo-cache-inmemory "^1.6.2"
|
||||
apollo-client "^2.6.3"
|
||||
@ -8456,23 +8458,23 @@ netlify-cms-backend-github@^2.6.5:
|
||||
js-base64 "^2.5.1"
|
||||
semaphore "^1.1.0"
|
||||
|
||||
netlify-cms-backend-gitlab@^2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.5.2.tgz#e3c3f2f398cac97533205fb812a8551d52796a02"
|
||||
integrity sha512-iUNjr6+8c2cLPu8lZ77o1oK6rE2Ev7VqQlVEsID/h13/4Safa3secb/8os0VWnB/0Rvgl9seBd5J9CY+aXt02g==
|
||||
netlify-cms-backend-gitlab@^2.6.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.6.0.tgz#b62097326364adc2fcf26e53f48f649e0510559e"
|
||||
integrity sha512-Kd1KXB5P9LGnjVZl4+tdaGQwnEJRDsE+6acfB0iztyC7uKVrKdWdBEF+3MV7Tf62AwlSCbM8k0qNA2X/Jly1Ow==
|
||||
dependencies:
|
||||
js-base64 "^2.5.1"
|
||||
semaphore "^1.1.0"
|
||||
|
||||
netlify-cms-backend-test@^2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-test/-/netlify-cms-backend-test-2.7.1.tgz#93fe0571063e131d9f52bdef76a5f1348d3e4b40"
|
||||
integrity sha512-yDkrR8bqXsd6RJ1eZcMgHq8iax8p/iFpvyKWqCU/YCHjqQXRfX3CeamU46a/CV18Eio4qqhOMul/vMqOsF8xgg==
|
||||
netlify-cms-backend-test@^2.7.2:
|
||||
version "2.7.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-backend-test/-/netlify-cms-backend-test-2.7.2.tgz#b5895b95de5dbe05576e99f72fe5d182a3e46033"
|
||||
integrity sha512-E1QkgyI+PsIGFg7rErVIfSaMUqRyah4rJnfwAm3x0+R3omv2tOk+1SfN7HFqdkrnieen5nfNLseZFvKwg5j4Ng==
|
||||
|
||||
netlify-cms-core@^2.16.0:
|
||||
version "2.16.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-core/-/netlify-cms-core-2.16.0.tgz#938fd6bd523e7bbfbc3550f9d5563f035656095d"
|
||||
integrity sha512-hmf7sz48t/606xAeIB3yEG82znSDx0kLkrgLC5VrAdOZWpJRdK5MThC2V+oEZTe2GZQRB5n28MT16u/PtArtIg==
|
||||
netlify-cms-core@^2.18.4:
|
||||
version "2.18.4"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-core/-/netlify-cms-core-2.18.4.tgz#7afe694abb1a8bcbeb5fd3e679ee532ef6cba60d"
|
||||
integrity sha512-aQf8pAC47n/DjZ00q7oweA6CR7BSlS/1Kx8bRqP0AU2Vi6cXrmMSGpQ9t6qh2Sc/3zzvq+wqbN3THTOuJVf5MA==
|
||||
dependencies:
|
||||
"@iarna/toml" "2.2.3"
|
||||
ajv "^6.10.0"
|
||||
@ -8517,34 +8519,34 @@ netlify-cms-core@^2.16.0:
|
||||
url "^0.11.0"
|
||||
what-input "^5.1.4"
|
||||
|
||||
netlify-cms-editor-component-image@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.5.0.tgz#f43eb0e07c3b541eda524a8adc18cef6cc490a9a"
|
||||
integrity sha512-dQ04372Xj/tgQKJUUQnrOe8q+DfansUXalAy92mI1X+4l7m+r7SpIrhdvhlo2zclyCtRuOU6VbjCm1Ypb9kj/A==
|
||||
netlify-cms-editor-component-image@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.6.2.tgz#aa048ed6379578f8ab6ee00a2fa1eadbb70ddbf4"
|
||||
integrity sha512-I7427tvMP364seqAFQ10O1nPlIqNBfdUmwE9NjBiuJxYQQ0A22p1fdT3ip2R2YohfYRk4sqOhyq/FZAz9O+o4A==
|
||||
|
||||
netlify-cms-lib-auth@^2.2.7:
|
||||
version "2.2.7"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-lib-auth/-/netlify-cms-lib-auth-2.2.7.tgz#d01793551cf1e2aef9979702710f9e394d839d62"
|
||||
integrity sha512-ZZtG9ZLDZHK8tvntq6nFp3VpSqbZ8hMx3HNvbTeMaTDFwka8/65w8HEZAddCOORxboHdHDvqKiE7ShCkn6Ni6w==
|
||||
|
||||
netlify-cms-lib-util@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-lib-util/-/netlify-cms-lib-util-2.6.2.tgz#06551cf1b0205a0f5fa997aaca31467d9f889f77"
|
||||
integrity sha512-+RbT2sQW9d+CO3s4puLiVrvALy4e8O6eR5oMHbsp3ip8X4h5C6KbkEKn8T0gF90yE4+oH6NZ0QDppQM8wG19Pg==
|
||||
netlify-cms-lib-util@^2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-lib-util/-/netlify-cms-lib-util-2.7.1.tgz#7fbe323367f9b4635455775be714e1632ed9dcdf"
|
||||
integrity sha512-NiqFjObuZryI4gMxDiwv3lRxDVFnikeoLw30vR1JzkZZok/hvSVNBxg1aHa7osCcHT6UOASEBPTCxGv+U3ugqA==
|
||||
dependencies:
|
||||
js-sha256 "^0.9.0"
|
||||
localforage "^1.7.3"
|
||||
semaphore "^1.1.0"
|
||||
|
||||
netlify-cms-locales@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-locales/-/netlify-cms-locales-1.8.0.tgz#43ed74e7c9d0f964eb63c50a311b9072c69cda5b"
|
||||
integrity sha512-dfEmUu7nm03rT5JrhEE+qrcU+xW9U+ZHbh1KZYKWAJtCnvyBA82AILSWMR8OoLJmWSCJgrMbmQWll+e9Pa2BYw==
|
||||
netlify-cms-locales@^1.9.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-locales/-/netlify-cms-locales-1.9.0.tgz#045b30a4051be867d15d4dc6245f9f2f3992d561"
|
||||
integrity sha512-3El36xOPAhUUiEOInuqPYiwvsnr4eEbRejxRVPG7O7TVmP+ZWPQJbwlMRErsnUxZQv63CrGsxxoklPPf2XeXBA==
|
||||
|
||||
netlify-cms-ui-default@^2.8.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-ui-default/-/netlify-cms-ui-default-2.8.0.tgz#1bb371e915d9b6c644f4e11dc81bb559e186b730"
|
||||
integrity sha512-3LibKWDUqJ+WfbebFaRDsK1v3l3HiMviVRvbCcGEnGrEo5Gjkp+6J/njtvMiRCKLp/WBQ4aCCDbETtqv8b9M3w==
|
||||
netlify-cms-ui-default@^2.9.1:
|
||||
version "2.9.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-ui-default/-/netlify-cms-ui-default-2.9.1.tgz#aa4f79edadf8cc0f683a10bb0e88d71f0fc7aafe"
|
||||
integrity sha512-o0u0Ln5BlUI/shoCpdQMVVJJsg0PXSVThyyiOeIBknl3k1Rb2yo31RRDKZToNqqpMHCheVI0+WLIsde3Tuthaw==
|
||||
dependencies:
|
||||
react-aria-menubutton "^6.0.0"
|
||||
react-toggled "^1.1.2"
|
||||
@ -8571,27 +8573,27 @@ netlify-cms-widget-date@^2.4.0:
|
||||
dependencies:
|
||||
react-datetime "^2.16.3"
|
||||
|
||||
netlify-cms-widget-datetime@^2.2.5:
|
||||
version "2.2.5"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.5.tgz#a030a09299d2448dc181b31224d55fd76074b893"
|
||||
integrity sha512-zoCuqkcelNvBwKlv5tJll67rKXFE/tq1W6SlT/f0LbRR78X/CY7jSTuTKbawHYi4XAg4Hhc4NmgKX2C8AWm39g==
|
||||
netlify-cms-widget-datetime@^2.2.6:
|
||||
version "2.2.6"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.6.tgz#a5d4b88d96e902439f21156f612f6df510f28edc"
|
||||
integrity sha512-6hOGEyx+V1gc/88cVEHR29FZQPyYuEk8p0Kg0dsWO/KHspJkzwv0jI91Mad4ATTQD8hBUHKm1adTp6fwcWTQVw==
|
||||
|
||||
netlify-cms-widget-file@^2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-file/-/netlify-cms-widget-file-2.5.2.tgz#351baa6e74949f3e3220bae10b628f8c01941ca6"
|
||||
integrity sha512-SAdKy8Cy3cgqjjlRJpEtA4aBoR99ntQAMCkbzYja+/KuREe1MBOuw+hUC624XOcDjEGnpFjvX2FG60T/yM96hg==
|
||||
netlify-cms-widget-file@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-file/-/netlify-cms-widget-file-2.6.2.tgz#d0c6c327b71cc332dde04c5976efe8903e505716"
|
||||
integrity sha512-JmhwfO0lTtXEo1zvu9yZFAx9xoLozCkleqtYGEm5gMd6um6perbW+rCAfEKS+ivr+2U7oC0YHLAUAg7pkiJ05g==
|
||||
dependencies:
|
||||
common-tags "^1.8.0"
|
||||
|
||||
netlify-cms-widget-image@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-image/-/netlify-cms-widget-image-2.5.0.tgz#7abacbc7b43b7baa92917a3c7887e66f84d5d84f"
|
||||
integrity sha512-fq/uc0Kixi5V1Sy5YhwWbxmmWUKfFWYvWdRhdASHReqS9i4WXdtdvAiS8xPqRMnN7LfM+NR03E+pX7u1ve2EcQ==
|
||||
netlify-cms-widget-image@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-image/-/netlify-cms-widget-image-2.6.2.tgz#de4c7091d0ae5097b369762e45b0e5cac594a188"
|
||||
integrity sha512-2D9pMSWtxmEDnl8Rg1XjJA0IQREfP3eD6C+aNgsENCXl22tFdCkvhuNq6MrnJSkf4xqkHYs0M8/O1x56OLhmlQ==
|
||||
|
||||
netlify-cms-widget-list@^2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-list/-/netlify-cms-widget-list-2.4.1.tgz#e8596b68a281bc5e8e4e0a30652a9b987119fb49"
|
||||
integrity sha512-Ilkvj6d3e2T4cTvnUss5S8xTXy3YMoqWjwnqGDlb/K3OKOt3RJlB9dEk6iTw93g0vp9gIXyDd/r887ycUCbcZQ==
|
||||
netlify-cms-widget-list@^2.4.3:
|
||||
version "2.4.3"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-list/-/netlify-cms-widget-list-2.4.3.tgz#a1baf13aadbbff14a82851b7529da3769715605e"
|
||||
integrity sha512-n7G4xgORf2n9qex77PwJ9Mf0kTxH7EmSS23yabhxYyjwXazhhiemlEU0q7CUyK8uZwTiGPJrbkqbOIsbJB4cXA==
|
||||
dependencies:
|
||||
react-sortable-hoc "^1.0.0"
|
||||
|
||||
@ -8602,10 +8604,10 @@ netlify-cms-widget-map@^1.3.3:
|
||||
dependencies:
|
||||
ol "^5.3.1"
|
||||
|
||||
netlify-cms-widget-markdown@^2.8.3:
|
||||
version "2.8.3"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.8.3.tgz#1ea44b2923db711a795693a4c76c515f1c55bc7c"
|
||||
integrity sha512-PQsp4tuu6ZC2hFqMmvqElcp0LUblWgzrQZXKY3LkV21/LOhhbMTuJ5QiHdD/LBvVGElFdc1E2lbPmct5TrA5LA==
|
||||
netlify-cms-widget-markdown@^2.9.2:
|
||||
version "2.9.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.9.2.tgz#b14725c4be4af1b68091588fcf33525bf9687d1c"
|
||||
integrity sha512-FYmXKlYKS86VR+MstHloQUvgUVvvDqEIS3/v8ob8zQjXXw8K1XbDvEzTJD3yrhbZq3pzomlbyC1yM5UYQ1HA9A==
|
||||
dependencies:
|
||||
is-hotkey "^0.1.4"
|
||||
mdast-util-definitions "^1.2.3"
|
||||
@ -8638,17 +8640,17 @@ netlify-cms-widget-object@^2.3.1:
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-object/-/netlify-cms-widget-object-2.3.1.tgz#a8adc1f97f5b2772809690b2478007e7e610e407"
|
||||
integrity sha512-i9NDAfxv1WGEklbPpdU2uIUUH2IP3M6XzQN1kion2eqzoIORlW5lQEuHBRjzvaIAIXIo6PyRbgAPC3xzgedUhA==
|
||||
|
||||
netlify-cms-widget-relation@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.0.tgz#e837044706cc0ef9a7e42b69919cd71b38765dc3"
|
||||
integrity sha512-jZZsO4+PUYgiz4VWRVH/cwRnqgdSXWOvFSRLgpDfped4B8jsCEDHp0M07hOiFr2K1p6HOmMnk65TbziA5kG8FQ==
|
||||
netlify-cms-widget-relation@^2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.2.tgz#1af1813737cb90d0a6793feb862c294a19589000"
|
||||
integrity sha512-7Gb/ckpoJr6ehKpSn4Zag4UMM926xyZW6jinLb69SwF3UbFuj4o9waxrqX0LhFBYBMAGksryxXeXOI4+I6flVg==
|
||||
dependencies:
|
||||
react-select "^2.4.2"
|
||||
|
||||
netlify-cms-widget-select@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-select/-/netlify-cms-widget-select-2.5.0.tgz#f9f75371c4441e7e6b20b052c014ef32e69b3573"
|
||||
integrity sha512-GDVkls/IV7uRjAPB1N6kjIyzZLWbQdDHzSFJA2srRDLmOya5zphfo7iYRWEmaiASYlYfIsFauEpiS/q95xNi5Q==
|
||||
netlify-cms-widget-select@^2.5.1:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/netlify-cms-widget-select/-/netlify-cms-widget-select-2.5.1.tgz#a4ab47c6dc4204bb42238f35c62973dd69e35092"
|
||||
integrity sha512-KL4iNqThPVS73uBxVz8KE4wvEsMQGUVZcq5qIm70mlclcMw11XriJr499BUXRqjPAWyKx88zfMthMYz+5Ha6wQ==
|
||||
dependencies:
|
||||
react-select "^2.4.2"
|
||||
|
||||
@ -10730,7 +10732,7 @@ react-waypoint@^8.1.0:
|
||||
prop-types "^15.0.0"
|
||||
react-is "^16.6.3"
|
||||
|
||||
react@^16.12.0, react@^16.8.4:
|
||||
react@^16.12.0, react@^16.8.0, react@^16.8.4:
|
||||
version "16.12.0"
|
||||
resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
|
||||
integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==
|
||||
@ -13465,6 +13467,11 @@ what-input@^5.1.4:
|
||||
resolved "https://registry.yarnpkg.com/what-input/-/what-input-5.2.6.tgz#ac6f003bf8d3592a0031dea7a03565469b00020b"
|
||||
integrity sha512-a0BcI5YR7xp87vSzGcbN0IszJKpUQuTmrZaTSQBl7TLDIdKj6rDhluQ7b/7lYGG81gWDvkySsEvwv4BW5an9kg==
|
||||
|
||||
what-the-diff@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/what-the-diff/-/what-the-diff-0.6.0.tgz#445cc56a9d8ee9aea0ee1ed943f4957ae009291e"
|
||||
integrity sha512-8BgQ4uo4cxojRXvCIcqDpH4QHaq0Ksn2P3LYfztylC5LDSwZKuGHf0Wf7sAStjPLTcB8eCB8pJJcPQSWfhZlkg==
|
||||
|
||||
whatwg-fetch@2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
|
||||
|
Loading…
x
Reference in New Issue
Block a user