Skip to content

Commit

Permalink
feat: implement editor components system (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
razonyang authored Nov 25, 2023
1 parent ccba22e commit 7d54cac
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 26 deletions.
28 changes: 28 additions & 0 deletions assets/decap-cms/init.js.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{{- $widgets := slice }}
{{- range resources.Match "decap-cms/widgets/*.js" }}
{{- $name := replace .Name "decap-cms/widgets/" "" }}
{{- $name = replaceRE ".js$" "" $name }}
{{- $widgetName := replaceRE `[^\w_]` "_" (printf "widget_%s" $name) }}
{{- printf `import * as %s from "./widgets/%s";` $widgetName $name }}
{{- $widgets = $widgets | append $widgetName }}
{{- end }}
{{- $editorComponents := slice }}
{{- range resources.Match "decap-cms/editor-components/*.js" }}
{{- $name := replace .Name "decap-cms/editor-components/" "" }}
{{- $name = replaceRE ".js$" "" $name }}
{{- $componentName := replaceRE `[^\w_]` "_" (printf "editor_component_%s" $name) }}
{{- printf `import { default as %s } from "./editor-components/%s";` $componentName $name }}
{{- $editorComponents = $editorComponents | append $componentName }}
{{- end }}
const plainPreview = createClass({
render: function() {
return this.props.value;
}
});
const emptySchema = {};
{{- range $widgets }}
{{- printf "CMS.registerWidget(%s.name, %s.control, %s.preview ?? plainPreview, %s.schema ?? emptySchema);" . . . . }}
{{- end }}
{{- range $editorComponents }}
{{- printf "CMS.registerEditorComponent(%s);" . }}
{{- end }}
17 changes: 0 additions & 17 deletions assets/decap-cms/widgets/index.js.tmpl

This file was deleted.

2 changes: 1 addition & 1 deletion layouts/_default/decap-cms.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</head>
<body>
<script src="{{ default `https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js` site.Params.decap_cms.js_url }}"></script>
{{ partialCached "decap-cms/widgets" . }}
{{ partialCached "decap-cms/init" . }}
{{ partialCached "decap-cms/hooks/body-end" . }}
</body>
</html>
11 changes: 11 additions & 0 deletions layouts/partials/decap-cms/init.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- $tmpl := resources.GetMatch "decap-cms/init.js.tmpl" }}
{{- $js := $tmpl | resources.ExecuteAsTemplate "decap-cms/init.js" . }}
{{- $opts := dict
"targetPath" "js/decap-cms-init.js"
"minify" hugo.IsProduction
}}
{{- $js = $js | js.Build $opts }}
{{- if hugo.IsProduction }}
{{- $js = $js | fingerprint }}
{{- end }}
<script src="{{ $js.Permalink }}"></script>
8 changes: 0 additions & 8 deletions layouts/partials/decap-cms/widgets.html

This file was deleted.

0 comments on commit 7d54cac

Please sign in to comment.