I like the term "Git-based CMS". This term applies to an emerging CMS style that looks and behaves very similarly to other CMSs, but has a fascinating twist: It doesn't actually store any data for you. These CMSs are connected to a Git repository where data is stored as flat files such as Markdown. You need to tell CMS where these files are and how they are structured. These changes are then made to the repository as a commit (or pull/merge request) when you create, edit, and delete content using CMS. Too cool.
For example, CloudCannon can do this specifically for hosted Jekyll sites.
But more in line with the spirit of independent networks/JAMstack, there are some participants, such as Forestry and the one I have the most experience: Netlify CMS.
Let me illustrate this with a series of screenshots with titles.
OK OK OK OK OK OK What is "open creation"?
At the time of writing this article, this is a beta feature.
The main content is as follows: I can use Netlify CMS for my website. My team can use it as well, as I can invite them to the warehouse specifically. But you, a random user on the Internet, cannot. If you write to me that you want to be a volunteer content administrator for your website, then maybe, well, I'll invite you to the warehouse. (You become a member of the repository will allow you to log in to Netlify CMS, assuming you are using the GitHub backend, which is the only connection currently supported by open authoring.)
However, it is frustrating that random Internet users cannot submit pull requests for content via Netlify CMS. This is much easier than manually forking the repository and all of this - although to be fair, clicking on the small pencil icon and editing it while viewing the Markdown file on GitHub makes the process very simple by automatically opening the pull request (but it doesn't help you add new content or upload images, etc.).
This is where open creation comes in. In my Netlify CMS configuration, I can basically turn it on with one line of configuration. They explained it very well:
You can use Netlify CMS to accept contributions from GitHub users without granting them access to your repository . When they make changes in CMS, CMS forks your repository for them behind the scenes, and all changes will be made to the fork. When contributors are ready to submit their changes, they can set their draft in the CMS to prepare for review. This will trigger a pull request to your repository, which you can merge using the GitHub UI.
My emphasis.
Want to see its true charm? Now we can place the Edit This Content button on everything and if you click on it you will go directly to Netlify CMS to edit. If you are me, a member of my team or you, a random user on the internet, it will work fine.
That's what I always wanted. It makes the website a wiki! But with enough public accountability (they have to use a real GitHub account), I don't have to worry about too much spam or annoying behavior.
The above is the detailed content of Netlify CMS Open Authoring. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

Theconic-gradient()functioninCSScreatescirculargradientsthatrotatecolorstopsaroundacentralpoint.1.Itisidealforpiecharts,progressindicators,colorwheels,anddecorativebackgrounds.2.Itworksbydefiningcolorstopsatspecificangles,optionallystartingfromadefin

TocreatestickyheadersandfooterswithCSS,useposition:stickyforheaderswithtopvalueandz-index,ensuringparentcontainersdon’trestrictit.1.Forstickyheaders:setposition:sticky,top:0,z-index,andbackgroundcolor.2.Forstickyfooters,betteruseposition:fixedwithbot

The scope of CSS custom properties depends on the context of their declaration, global variables are usually defined in :root, while local variables are defined within a specific selector for componentization and isolation of styles. For example, variables defined in the .card class are only available for elements that match the class and their children. Best practices include: 1. Use: root to define global variables such as topic color; 2. Define local variables inside the component to implement encapsulation; 3. Avoid repeatedly declaring the same variable; 4. Pay attention to the coverage problems that may be caused by selector specificity. Additionally, CSS variables are case sensitive and should be defined before use to avoid errors. If the variable is undefined or the reference fails, the fallback value or default value initial will be used. Debug can be done through the browser developer

CSSanimationsenhancewebpagesbyimprovinguserexperienceandsitefunctionality.1)Usetransitionsforsmoothstylechanges,asinthebuttoncolorexample.2)Employkeyframesfordetailedanimations,likethebouncingball.3)Ensureperformancebykeepinganimationssimpleandusingt
