diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/EditorPreview.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/EditorPreview.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/EditorPreview.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.js
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Frontend.js
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/Frontend.js
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/accordion_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/accordion_item.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/accordion_item.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/accordion_item.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/accordion/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/EditorPreview.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/EditorPreview.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/EditorPreview.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/card_group_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/card_group_item.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/card_group_item.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/card_group_item.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Partials/LinkWrap.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/Partials/LinkWrap.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Partials/LinkWrap.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/Partials/LinkWrap.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/card_group/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/EditorPreview.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/EditorPreview.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/EditorPreview.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/cta/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/cta/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/EditorPreview.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/EditorPreview.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/EditorPreview.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/icon_group_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon_group_item.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Assets/icon_group_item.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/assets/icon_group_item.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/icon_group/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/EditorPreview.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/EditorPreview.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/EditorPreview.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/EditorPreview.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.js
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Library/SwiffySlider/swiffy-slider.min.js
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/Library/SwiffySlider/swiffy-slider.min.js
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/imageslider/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.css b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.css
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.css
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.css
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.js b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.js
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Frontend.js
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/Frontend.js
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/tabs_item.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/tabs_item.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Assets/tabs_item.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/assets/tabs_item.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/preview.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/tabs/templates/preview.html
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Frontend.html b/Build/content-blocks-examples/ContentBlocks/ContentElements/text/templates/frontend.html
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/ContentElements/text/Source/Frontend.html
rename to Build/content-blocks-examples/ContentBlocks/ContentElements/text/templates/frontend.html
diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconHideInMenu.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-hide-in-menu.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconHideInMenu.svg
rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-hide-in-menu.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconRoot.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-root.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/IconRoot.svg
rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon-root.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/PageTypes/example/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/PageTypes/example/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/PageTypes/example/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/PageTypes/example/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/notype/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record1/language/labels.xlf
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Assets/Icon.svg b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/assets/icon.svg
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Assets/Icon.svg
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/assets/icon.svg
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/EditorInterface.yaml b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/config.yaml
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/EditorInterface.yaml
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/config.yaml
diff --git a/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Source/Language/Labels.xlf b/Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/language/labels.xlf
similarity index 100%
rename from Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/Source/Language/Labels.xlf
rename to Build/content-blocks-examples/ContentBlocks/RecordTypes/record2/language/labels.xlf
diff --git a/Classes/Backend/Preview/PageLayout.php b/Classes/Backend/Preview/PageLayout.php
index eade1c80..6bbd5240 100644
--- a/Classes/Backend/Preview/PageLayout.php
+++ b/Classes/Backend/Preview/PageLayout.php
@@ -115,7 +115,7 @@ protected function getContentBlocksLayoutRootPaths(string $contentBlockPrivatePa
protected function getContentBlockPrivatePath(ContentTypeInterface $contentTypeDefinition): string
{
$contentBlockExtPath = $this->getEditorPreviewExtPath($contentTypeDefinition);
- $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getPrivateFolder();
+ $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getTemplatesFolder();
return $contentBlockPrivatePath;
}
diff --git a/Classes/Backend/Preview/PreviewRenderer.php b/Classes/Backend/Preview/PreviewRenderer.php
index 04f9d18b..c6a4a329 100644
--- a/Classes/Backend/Preview/PreviewRenderer.php
+++ b/Classes/Backend/Preview/PreviewRenderer.php
@@ -58,7 +58,7 @@ public function renderPageModulePreviewContent(GridColumnItem $item): string
$contentTypeDefinition = $contentTypeCollection->getFirst();
}
$contentBlockExtPath = $this->contentBlockRegistry->getContentBlockExtPath($contentTypeDefinition->getName());
- $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getPrivateFolder();
+ $contentBlockPrivatePath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getTemplatesFolder();
// Fall back to standard preview rendering if EditorPreview.html does not exist.
$editorPreviewExtPath = $contentBlockExtPath . '/' . ContentBlockPathUtility::getBackendPreviewPath();
diff --git a/Classes/Builder/ContentBlockBuilder.php b/Classes/Builder/ContentBlockBuilder.php
index fb4fb5a3..580340ad 100644
--- a/Classes/Builder/ContentBlockBuilder.php
+++ b/Classes/Builder/ContentBlockBuilder.php
@@ -65,9 +65,13 @@ public function create(LoadedContentBlock $contentBlock): void
$this->initializeRegistries($contentBlock);
- // Create public Assets directory.
- $publicPath = $basePath . '/' . ContentBlockPathUtility::getPublicFolder();
- GeneralUtility::mkdir_deep($publicPath);
+ // Create base directories for a Content Block.
+ $assetsPath = $basePath . '/' . ContentBlockPathUtility::getAssetsFolder();
+ $templatePath = $basePath . '/' . ContentBlockPathUtility::getTemplatesFolder();
+ $languagePath = $basePath . '/' . ContentBlockPathUtility::getLanguageFolder();
+ GeneralUtility::mkdir_deep($assetsPath);
+ GeneralUtility::mkdir_deep($templatePath);
+ GeneralUtility::mkdir_deep($languagePath);
$this->createLabelsXlf($contentBlock, $basePath);
$this->createEditorInterfaceYaml($contentBlock, $basePath);
@@ -76,7 +80,7 @@ public function create(LoadedContentBlock $contentBlock): void
if ($contentType === ContentType::CONTENT_ELEMENT) {
$this->createFrontendHtml($contentBlock, $basePath);
$this->createBackendPreviewHtml($contentBlock, $basePath);
- $this->createExamplePublicAssets($publicPath);
+ $this->createExamplePublicAssets($assetsPath);
}
$this->copyDefaultIcon($contentType, $basePath);
if ($contentType === ContentType::PAGE_TYPE) {
@@ -115,7 +119,6 @@ protected function createEditorInterfaceYaml(LoadedContentBlock $contentBlock, s
protected function createLabelsXlf(LoadedContentBlock $contentBlock, string $basePath): void
{
- GeneralUtility::mkdir_deep($basePath . '/' . ContentBlockPathUtility::getLanguageFolderPath());
$xliffContent = $this->languageFileGenerator->generate($contentBlock);
GeneralUtility::writeFile(
$basePath . '/' . ContentBlockPathUtility::getLanguageFilePath(),
@@ -142,15 +145,15 @@ protected function createFrontendHtml(LoadedContentBlock $contentBlock, string $
protected function createExamplePublicAssets(string $publicPath): void
{
GeneralUtility::writeFile(
- $publicPath . '/EditorPreview.css',
+ $publicPath . '/editor-preview.css',
'/* Created by Content Blocks */'
);
GeneralUtility::writeFile(
- $publicPath . '/Frontend.css',
+ $publicPath . '/frontend.css',
'/* Created by Content Blocks */'
);
GeneralUtility::writeFile(
- $publicPath . '/Frontend.js',
+ $publicPath . '/frontend.js',
'/* Created by Content Blocks */'
);
}
diff --git a/Classes/Command/GenerateLanguageFileCommand.php b/Classes/Command/GenerateLanguageFileCommand.php
index 075dad80..57062228 100644
--- a/Classes/Command/GenerateLanguageFileCommand.php
+++ b/Classes/Command/GenerateLanguageFileCommand.php
@@ -107,7 +107,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
protected function writeLabelsXlf(LoadedContentBlock $contentBlock): void
{
$contentBlockPath = GeneralUtility::getFileAbsFileName($contentBlock->getExtPath());
- $labelsFolder = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFolderPath();
+ $labelsFolder = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFolder();
$labelsXlfPath = $contentBlockPath . '/' . ContentBlockPathUtility::getLanguageFilePath();
$result = $this->languageFileGenerator->generate($contentBlock);
GeneralUtility::mkdir_deep($labelsFolder);
diff --git a/Classes/Generator/HtmlTemplateCodeGenerator.php b/Classes/Generator/HtmlTemplateCodeGenerator.php
index 8ef05797..5ce39f44 100644
--- a/Classes/Generator/HtmlTemplateCodeGenerator.php
+++ b/Classes/Generator/HtmlTemplateCodeGenerator.php
@@ -49,7 +49,7 @@ public function generateEditorPreviewTemplate(LoadedContentBlock $contentBlockCo
$package = $contentBlockConfiguration->getName();
$vendor = $contentBlockConfiguration->getVendor();
- $defaultContent[] = '';
+ $defaultContent[] = '';
$defaultContent[] = '';
$defaultContent[] = 'Preview for Content Block: ' . $contentBlockConfiguration->getName() . ' ';
$defaultContent[] = 'Header: {data.header}';
@@ -64,8 +64,8 @@ public function generateFrontendTemplate(LoadedContentBlock $contentBlockConfigu
{
$package = $contentBlockConfiguration->getName();
$vendor = $contentBlockConfiguration->getVendor();
- $frontendTemplate[] = '';
- $frontendTemplate[] = '';
+ $frontendTemplate[] = '';
+ $frontendTemplate[] = '';
$frontendTemplate[] = '';
$frontendTemplate[] = 'Frontend template for Content Block: ' . $contentBlockConfiguration->getName() . ' ';
$frontendTemplate[] = 'Header: {data.header}';
diff --git a/Classes/Generator/LanguageFileGenerator.php b/Classes/Generator/LanguageFileGenerator.php
index f58b0a3a..4452e9b4 100644
--- a/Classes/Generator/LanguageFileGenerator.php
+++ b/Classes/Generator/LanguageFileGenerator.php
@@ -97,7 +97,7 @@ protected function wrap(string $content, string $date, string $vendor, string $n
$xliffContent = <<
-
+
$content
diff --git a/Classes/Loader/ContentBlockLoader.php b/Classes/Loader/ContentBlockLoader.php
index 29ecdd29..d0534459 100644
--- a/Classes/Loader/ContentBlockLoader.php
+++ b/Classes/Loader/ContentBlockLoader.php
@@ -145,6 +145,9 @@ protected function loadContentBlocksInExtension(string $path, string $extensionK
$contentBlockFolderName = $splFileInfo->getRelativePathname();
$contentBlockExtPath = ContentBlockPathUtility::getContentBlockExtPath($extensionKey, $contentBlockFolderName, $contentType);
$editorInterfaceYaml = $this->parseEditorInterfaceYaml($absoluteContentBlockPath, $contentBlockExtPath, $contentType);
+ if ($editorInterfaceYaml === null) {
+ continue;
+ }
$result[] = $this->loadSingleContentBlock(
$editorInterfaceYaml['name'],
$contentType,
@@ -157,15 +160,12 @@ protected function loadContentBlocksInExtension(string $path, string $extensionK
return $result;
}
- protected function parseEditorInterfaceYaml(string $absoluteContentBlockPath, string $contentBlockExtPath, ContentType $contentType): array
+ protected function parseEditorInterfaceYaml(string $absoluteContentBlockPath, string $contentBlockExtPath, ContentType $contentType): ?array
{
$contentBlockDefinitionFileName = ContentBlockPathUtility::getContentBlockDefinitionFileName();
$yamlPath = $absoluteContentBlockPath . '/' . $contentBlockDefinitionFileName;
if (!file_exists($yamlPath)) {
- throw new \RuntimeException(
- 'Found Content Block folder in "' . $contentBlockExtPath . '" but ' . $contentBlockDefinitionFileName . ' is missing.',
- 1711039210
- );
+ return null;
}
$editorInterfaceYaml = Yaml::parseFile($yamlPath);
if (!is_array($editorInterfaceYaml) || strlen($editorInterfaceYaml['name'] ?? '') < 3 || !str_contains($editorInterfaceYaml['name'], '/')) {
@@ -285,7 +285,7 @@ protected function publishAssets(array $loadedContentBlocks): void
$fileSystem = new Filesystem();
foreach ($loadedContentBlocks as $loadedContentBlock) {
$hostExtension = $loadedContentBlock->getHostExtension();
- $contentBlockExtPublicPath = $loadedContentBlock->getExtPath() . '/' . ContentBlockPathUtility::getPublicFolder();
+ $contentBlockExtPublicPath = $loadedContentBlock->getExtPath() . '/' . ContentBlockPathUtility::getAssetsFolder();
$contentBlockAbsolutePublicPath = GeneralUtility::getFileAbsFileName($contentBlockExtPublicPath);
// If the Content Block does not have an Assets folder, nothing to publish here.
if (!file_exists($contentBlockAbsolutePublicPath)) {
diff --git a/Classes/Service/Icon/ContentTypeIconResolver.php b/Classes/Service/Icon/ContentTypeIconResolver.php
index fe1d1a8a..d223c4ec 100644
--- a/Classes/Service/Icon/ContentTypeIconResolver.php
+++ b/Classes/Service/Icon/ContentTypeIconResolver.php
@@ -33,7 +33,7 @@ public static function resolve(ContentTypeIconResolverInput $input): ?ContentTyp
{
$allowedFileExtension = ['svg', 'png', 'gif'];
foreach ($allowedFileExtension as $fileExtension) {
- $iconPathWithoutFileExtension = ContentBlockPathUtility::getPublicFolder() . '/' . $input->identifier;
+ $iconPathWithoutFileExtension = ContentBlockPathUtility::getAssetsFolder() . '/' . $input->identifier;
$relativeIconPath = $iconPathWithoutFileExtension . '.' . $fileExtension;
$checkIconPath = $input->absolutePath . '/' . $relativeIconPath;
if (!file_exists($checkIconPath)) {
diff --git a/Classes/ServiceProvider.php b/Classes/ServiceProvider.php
index 70959fb9..607a22a1 100644
--- a/Classes/ServiceProvider.php
+++ b/Classes/ServiceProvider.php
@@ -162,20 +162,17 @@ public static function getContentBlockTypoScript(ContainerInterface $container):
foreach ($tableDefinition->getContentTypeDefinitionCollection() ?? [] as $typeDefinition) {
if ($tableDefinition->getContentType() === ContentType::CONTENT_ELEMENT) {
$extPath = $contentBlockRegistry->getContentBlockExtPath($typeDefinition->getName());
- $privatePath = $extPath . '/' . ContentBlockPathUtility::getPrivateFolder();
- $template = ContentBlockPathUtility::getFrontendTemplateFileNameWithoutExtension();
+ $privatePath = $extPath . '/' . ContentBlockPathUtility::getTemplatesFolder();
+ $template = ContentBlockPathUtility::getFrontendTemplateFileName();
$typoScript = <<getTypeName()} =< lib.contentBlock
tt_content.{$typeDefinition->getTypeName()} {
- templateName = {$template}
- templateRootPaths {
- 20 = $privatePath/
- }
+ file = $privatePath/$template
partialRootPaths {
- 20 = $privatePath/Partials/
+ 20 = $privatePath/partials/
}
layoutRootPaths {
- 20 = $privatePath/Layouts/
+ 20 = $privatePath/layouts/
}
}
HEREDOC;
diff --git a/Classes/Update/ContentBlockFolderStructureMigration.php b/Classes/Update/ContentBlockFolderStructureMigration.php
new file mode 100644
index 00000000..14c026e7
--- /dev/null
+++ b/Classes/Update/ContentBlockFolderStructureMigration.php
@@ -0,0 +1,155 @@
+findContentBlockPaths() as $path) {
+ $this->migrate($path);
+ }
+ return true;
+ }
+
+ public function updateNecessary(): bool
+ {
+ return $this->findContentBlockPaths() !== [];
+ }
+
+ public function getPrerequisites(): array
+ {
+ return [];
+ }
+
+ /**
+ * @return string[]
+ */
+ protected function findContentBlockPaths(): array
+ {
+ $contentBlockPaths = [];
+ foreach ($this->packageManager->getActivePackages() as $package) {
+ $contentElementsFolder = $package->getPackagePath() . 'ContentBlocks/ContentElements';
+ $pageTypesFolder = $package->getPackagePath() . 'ContentBlocks/PageTypes';
+ $recordTypesFolder = $package->getPackagePath() . 'ContentBlocks/RecordTypes';
+ if (is_dir($contentElementsFolder)) {
+ $contentBlockPaths[] = $this->loadContentBlocksInExtension($contentElementsFolder);
+ }
+ if (is_dir($pageTypesFolder)) {
+ $contentBlockPaths[] = $this->loadContentBlocksInExtension($pageTypesFolder);
+ }
+ if (is_dir($recordTypesFolder)) {
+ $contentBlockPaths[] = $this->loadContentBlocksInExtension($recordTypesFolder);
+ }
+ }
+ $contentBlockPaths = array_merge(...$contentBlockPaths);
+ return $contentBlockPaths;
+ }
+
+ /**
+ * @return string[]
+ */
+ protected function loadContentBlocksInExtension(string $path): array
+ {
+ $result = [];
+ $finder = new Finder();
+ $finder->directories()->depth(0)->in($path);
+ foreach ($finder as $splFileInfo) {
+ $absoluteContentBlockPath = $splFileInfo->getPathname();
+ if (file_exists($absoluteContentBlockPath . '/EditorInterface.yaml')) {
+ $result[] = $absoluteContentBlockPath;
+ }
+ }
+ return $result;
+ }
+
+ protected function migrate(string $path): void
+ {
+ rename($path . '/EditorInterface.yaml', $path . '/config.yaml');
+ if (file_exists($path . '/Source')) {
+ rename($path . '/Source', $path . '/templates');
+ }
+ if (file_exists($path . '/templates/Frontend.html')) {
+ rename($path . '/templates/Frontend.html', $path . '/templates/frontend.html');
+ }
+ if (file_exists($path . '/templates/Partials')) {
+ rename($path . '/templates/Partials', $path . '/templates/partials');
+ }
+ if (file_exists($path . '/templates/Layouts')) {
+ rename($path . '/templates/Layouts', $path . '/templates/layouts');
+ }
+ if (file_exists($path . '/templates/EditorPreview.html')) {
+ rename($path . '/templates/EditorPreview.html', $path . '/templates/preview.html');
+ }
+ if (file_exists($path . '/templates/Language')) {
+ rename($path . '/templates/Language', $path . '/language');
+ }
+ if (file_exists($path . '/language/Labels.xlf')) {
+ rename($path . '/language/Labels.xlf', $path . '/language/labels.xlf');
+ $this->migrateLocalizedLabelFiles($path . '/language');
+ }
+ if (file_exists($path . '/Assets')) {
+ rename($path . '/Assets', $path . '/assets');
+ }
+ if (file_exists($path . '/assets/Icon.svg')) {
+ rename($path . '/assets/Icon.svg', $path . '/assets/icon.svg');
+ }
+ if (file_exists($path . '/assets/IconHideInMenu.svg')) {
+ rename($path . '/assets/IconHideInMenu.svg', $path . '/assets/icon-hide-in-menu.svg');
+ }
+ if (file_exists($path . '/assets/IconRoot.svg')) {
+ rename($path . '/assets/IconRoot.svg', $path . '/assets/icon-root.svg');
+ }
+ }
+
+ protected function migrateLocalizedLabelFiles(string $languagePath): void
+ {
+ $finder = new Finder();
+ $finder->files()->name('*.xlf')->in($languagePath);
+ foreach ($finder as $splFileInfo) {
+ $fileName = $splFileInfo->getFilename();
+ $parts = explode('.', $fileName);
+ if (count($parts) !== 3) {
+ continue;
+ }
+ $parts[1] = 'labels';
+ $newFileName = implode('.', $parts);
+ rename($splFileInfo->getPathname(), $languagePath . '/' . $newFileName);
+ }
+ }
+}
diff --git a/Classes/Utility/ContentBlockPathUtility.php b/Classes/Utility/ContentBlockPathUtility.php
index 383ead83..5b6de1b8 100644
--- a/Classes/Utility/ContentBlockPathUtility.php
+++ b/Classes/Utility/ContentBlockPathUtility.php
@@ -37,12 +37,12 @@ public static function getContentBlockExtPath(string $extensionKey, string $cont
public static function getContentBlockDefinitionFileName(): string
{
- return 'EditorInterface.yaml';
+ return 'config.yaml';
}
public static function getBackendPreviewFileName(): string
{
- return 'EditorPreview.html';
+ return 'preview.html';
}
public static function getBackendPreviewFileNameWithoutExtension(): string
@@ -52,12 +52,12 @@ public static function getBackendPreviewFileNameWithoutExtension(): string
public static function getBackendPreviewPath(): string
{
- return self::getPrivateFolder() . '/' . self::getBackendPreviewFileName();
+ return self::getTemplatesFolder() . '/' . self::getBackendPreviewFileName();
}
public static function getFrontendTemplateFileName(): string
{
- return 'Frontend.html';
+ return 'frontend.html';
}
public static function getFrontendTemplateFileNameWithoutExtension(): string
@@ -67,42 +67,37 @@ public static function getFrontendTemplateFileNameWithoutExtension(): string
public static function getFrontendTemplatePath(): string
{
- return self::getPrivateFolder() . '/' . self::getFrontendTemplateFileName();
- }
-
- public static function getLanguageFolderPath(): string
- {
- return self::getPrivateFolder() . '/Language';
+ return self::getTemplatesFolder() . '/' . self::getFrontendTemplateFileName();
}
public static function getLanguageFilePath(): string
{
- return self::getLanguageFolderPath() . '/Labels.xlf';
+ return self::getLanguageFolder() . '/labels.xlf';
}
public static function getIconNameWithoutFileExtension(): string
{
- return 'Icon';
+ return 'icon';
}
public static function getIconHideInMenuNameWithoutFileExtension(): string
{
- return 'IconHideInMenu';
+ return 'icon-hide-in-menu';
}
public static function getIconRootNameWithoutFileExtension(): string
{
- return 'IconRoot';
+ return 'icon-root';
}
public static function getIconPathWithoutFileExtension(): string
{
- return self::getPublicFolder() . '/' . self::getIconNameWithoutFileExtension();
+ return self::getAssetsFolder() . '/' . self::getIconNameWithoutFileExtension();
}
public static function getHideInMenuIconPathWithoutFileExtension(): string
{
- return self::getPublicFolder() . '/' . self::getIconHideInMenuNameWithoutFileExtension();
+ return self::getAssetsFolder() . '/' . self::getIconHideInMenuNameWithoutFileExtension();
}
public static function getRelativeContentElementsPath(): string
@@ -140,14 +135,19 @@ public static function getRecordTypesFolder(): string
return 'RecordTypes';
}
- public static function getPublicFolder(): string
+ public static function getAssetsFolder(): string
+ {
+ return 'assets';
+ }
+
+ public static function getTemplatesFolder(): string
{
- return 'Assets';
+ return 'templates';
}
- public static function getPrivateFolder(): string
+ public static function getLanguageFolder(): string
{
- return 'Source';
+ return 'language';
}
public static function getHostExtPublicContentBlockBasePath(string $hostExtension): string
diff --git a/Documentation/Appendix/CoreContentTypes/Index.rst b/Documentation/Appendix/CoreContentTypes/Index.rst
index 2b56255a..c4287df4 100644
--- a/Documentation/Appendix/CoreContentTypes/Index.rst
+++ b/Documentation/Appendix/CoreContentTypes/Index.rst
@@ -73,5 +73,5 @@ cases like file references or collections.
:ref:`Fluid ` is the templating engine for TYPO3
and is both used in the backend and the frontend. Content Blocks registers a
-`Frontend.html` and a `EditorPreview.html` file, which can immediately be used
+`frontend.html` and a `preview.html` file, which can immediately be used
for styling your Content Element. Layouts and partials can be used as usual.
diff --git a/Documentation/Appendix/History/Index.rst b/Documentation/Appendix/History/Index.rst
index 31efba3a..3068940e 100644
--- a/Documentation/Appendix/History/Index.rst
+++ b/Documentation/Appendix/History/Index.rst
@@ -37,13 +37,13 @@ The outcome of the research and the discussions in the community is:
* A content block is a definition in your {extDir}/ContentBlocks/ folder, which will be determined and loaded automatically
* A content block is not a TYPO3 Extension but a sub-resource, so there is no PHP, TypoScript, SQL nor TSconfig inside
-* The configuration for a new content element is stored in a YAML file, the EditorInterface.yaml
+* The configuration for a new content element is stored in a YAML file, the config.yaml
* Content blocks are made for frontend developers / TYPO3 beginners as main target group
* As a common best practice in TYPO3, labels and every other language related stuff is stored in a XLF file. This will be registered and processed by convention
-* The entered name (vendor/name) in the EditorInterface.yaml file defines the identifier of a content block
+* The entered name (vendor/name) in the config.yaml file defines the identifier of a content block
* GUI to create / kickstart a new content block
* If there are breaking changes, support e.g via UpgradeWizards to migrate easily to the new version
-* Better UX for editors by shipping a template (EditorPreview.html) for the backend preview
+* Better UX for editors by shipping a template (preview.html) for the backend preview
* Usage of the AssetCollector: JavaScript and CSS in backend and frontend
* The content blocks are encapsulated, in a own folder
* You can move a content block from one project to another project and it will work out of the box
@@ -53,9 +53,9 @@ The outcome of the research and the discussions in the community is:
What it does
============
-Basically, this extension registers the new content type with the entered vendor/name in the corresponding EditorInterface.yaml
+Basically, this extension registers the new content type with the entered vendor/name in the corresponding config.yaml
file in TYPO3 and the newContentElementWizard, and translates the YAML-file into TCA and SQL.
-It registers the Labels.xlf and sets the labels and descriptions by the field identifiers,
+It registers the labels.xlf and sets the labels and descriptions by the field identifiers,
registers the icon and adds the necessary TypoScript.
So it is a abstraction layer to ease up and speed up the work of integrators and frontend developers.
@@ -85,7 +85,7 @@ Learnings are:
* Overriding of TCA is essential to add custom functions
* Copy and paste is useful and easy
* Writing the YAML file is not so hard as expected, but a GUI for editing would be beneficial
-* The identifiers in the Labels.xlf are not so easy to work with, would be better to have a GUI for that
+* The identifiers in the labels.xlf are not so easy to work with, would be better to have a GUI for that
* The GUI / kickstarter in big projects should not be available in production environment
diff --git a/Documentation/Commands/LanguageGenerate/Index.rst b/Documentation/Commands/LanguageGenerate/Index.rst
index 090b048d..653c3a8f 100644
--- a/Documentation/Commands/LanguageGenerate/Index.rst
+++ b/Documentation/Commands/LanguageGenerate/Index.rst
@@ -5,9 +5,9 @@
Language Generate command
=========================
-The command :bash:`content-blocks:language:generate` updates the Labels.xlf
+The command :bash:`content-blocks:language:generate` updates the labels.xlf
content for the specified Content Block. Already set labels in both the
-Labels.xlf file and in the EditorInterface.yaml are considered. The Labels.xlf
+labels.xlf file and in the config.yaml are considered. The labels.xlf
file has precedence over inline labels in the YAML definition. Optional keys
like descriptions or labels for existing fields will only be be generated if
they have been set manually. Custom translations, which don't belong to the
@@ -33,7 +33,7 @@ Options
:Shortcut: p
:Type: bool
- Print Labels.xlf to terminal instead of writing to file system.
+ Print labels.xlf to terminal instead of writing to file system.
.. confval:: extension
:name: language-generate-extension
@@ -41,21 +41,21 @@ Options
:Shortcut: e
:Type: string
- Write Labels.xlf to all Content Blocks within the given extension.
+ Write labels.xlf to all Content Blocks within the given extension.
-Write up-to-date Labels.xlf file for Content Block example/example.
+Write up-to-date labels.xlf file for Content Block example/example.
.. code-block:: bash
vendor/bin/typo3 content-blocks:language:generate example/example
-Update all Labels.xlf files within the extension "site_package".
+Update all labels.xlf files within the extension "site_package".
.. code-block:: bash
vendor/bin/typo3 content-blocks:language:generate example/example --extension="site_package"
-Print up-to-date Labels.xlf content for Content Block example/example.
+Print up-to-date labels.xlf content for Content Block example/example.
.. code-block:: bash
@@ -67,7 +67,7 @@ Example output:
-
+
diff --git a/Documentation/Definition/Assets/Index.rst b/Documentation/Definition/Assets/Index.rst
index 9cc078b4..f6dfcd3f 100644
--- a/Documentation/Definition/Assets/Index.rst
+++ b/Documentation/Definition/Assets/Index.rst
@@ -2,10 +2,10 @@
.. _cb_definition_assets:
======
-Assets
+assets
======
-The **Assets** folder contains public resources. If you are familiar with the
+The **assets** folder contains public resources. If you are familiar with the
directory structure of extensions, this would be the **Resources/Public**
folder. This is the place where you can put your CSS, JavaScript or image files
inside. In order to include these in your template, you must use custom
@@ -22,7 +22,7 @@ line to the host extension's :file:`.gitignore` file:
.. code-block::
/Resources/Public/ContentBlocks
-Icon.svg
+icon.svg
========
This is the icon for the Content Type. There is a fallback to a default icon,
@@ -30,14 +30,14 @@ but it is **recommended** to replace it with your own, custom icon. You can find
many official TYPO3 icons `here `__.
Allowed file extensions are **svg**, **png** and **gif** (in preferred order).
-IconHideInMenu.svg
+icon-hide-in-menu.svg
==================
This is a special icon for Page Types for the "hide in menu" state. The same
-logic applies as for the standard Icon.svg.
+logic applies as for the standard icon.svg.
IconRoot.svg
============
This is a special icon for Page Types for the "is_siteroot" state. The same
-logic applies as for the standard Icon.svg.
+logic applies as for the standard icon.svg.
diff --git a/Documentation/Definition/EditorInterface/Index.rst b/Documentation/Definition/EditorInterface/Index.rst
index 7bc9f72c..89d8e8e9 100644
--- a/Documentation/Definition/EditorInterface/Index.rst
+++ b/Documentation/Definition/EditorInterface/Index.rst
@@ -1,11 +1,11 @@
.. include:: /Includes.rst.txt
.. _cb_definition_editor_interface:
-====================
-EditorInterface.yaml
-====================
+===========
+config.yaml
+===========
-The heart of a Content Block is the **EditorInterface.yaml** file. This YAML
+The heart of a Content Block is the **config.yaml** file. This YAML
file defines both the available fields and the structure:
.. code-block:: yaml
diff --git a/Documentation/Definition/Index.rst b/Documentation/Definition/Index.rst
index 99362923..228a9b9e 100644
--- a/Documentation/Definition/Index.rst
+++ b/Documentation/Definition/Index.rst
@@ -6,23 +6,22 @@ Definition
==========
The minimal viable definition consists of a folder with a YAML file named
-**EditorInterface.yaml** inside. All other resources are split into two folders
-named **Assets** and **Source**. These include public resources, translations
-and templates.
+**config.yaml** inside. All other resources are split into three folders
+named **assets**, **templates** and **language**.
.. code-block:: none
:caption: Directory structure of a Content Block
- ├── Assets
- │ └── Icon.svg
- ├── Source
- │ ├── Language
- │ │ └── Labels.xlf
- │ ├── Partials
- │ │ └── Component.html
- │ ├── EditorPreview.html
- │ └── Frontend.html
- └── EditorInterface.yaml
+ ├── assets
+ │ └── icon.svg
+ ├── language
+ │ └── labels.xlf
+ ├── templates
+ | ├── partials
+ | | └── component.html
+ │ ├── preview.html
+ │ └── frontend.html
+ └── config.yaml
.. toctree::
:titlesonly:
diff --git a/Documentation/Definition/Language/Index.rst b/Documentation/Definition/Language/Index.rst
index a7eb9e41..7ac0dfbe 100644
--- a/Documentation/Definition/Language/Index.rst
+++ b/Documentation/Definition/Language/Index.rst
@@ -2,20 +2,20 @@
.. _cb_definition_language:
========
-Language
+language
========
This is the folder for your translations. In fact, if you only have one
language, there is no actual need to maintain translations here. However, it is
best practice to separate labels and configuration.
-Labels.xlf
+labels.xlf
==========
This XLF file is the **english** basis for your translations. All translations
for backend labels as well as for frontend labels are defined here. Translations
to other languages are defined in separate files prefixed with the language code
-e.g. **de.Labels.xlf**.
+e.g. **de.labels.xlf**.
* Learn more about the :ref:`XLIFF Format in TYPO3 `
@@ -43,29 +43,29 @@ Have a look at the example beneath for better understanding.
You don't have to remember all these rules. The command
:ref:`content-blocks:language:generate ` creates
- the Labels.xlf file with all available keys for you.
+ the labels.xlf file with all available keys for you.
.. note::
- Labels defined in Labels.xlf will always override :yaml:`label` defined in
- EditorInterface.yaml.
+ Labels defined in labels.xlf will always override :yaml:`label` defined in
+ config.yaml.
Workflow
--------
The recommended workflow is defining the :yaml:`label` in the
-EditorInterface.yaml first. When you are done, you run the command to
-auto-generate the Labels.xlf file. After that you can remove the labels from
+config.yaml first. When you are done, you run the command to
+auto-generate the labels.xlf file. After that you can remove the labels from
the yaml definition. You can also skip the first step and generate the xlf
without defining labels first. This will add the :yaml:`identifier` as label
and you can adjust it afterwards. Either way, it is recommended to maintain a
-Labels.xlf file so you don't mix labels with configuration.
+labels.xlf file so you don't mix labels with configuration.
.. code-block:: xml
-
+
diff --git a/Documentation/Definition/Source/Index.rst b/Documentation/Definition/Source/Index.rst
index 56153c78..e4bdba65 100644
--- a/Documentation/Definition/Source/Index.rst
+++ b/Documentation/Definition/Source/Index.rst
@@ -1,19 +1,19 @@
.. include:: /Includes.rst.txt
.. _cb_definition_source:
-======
-Source
-======
+=========
+templates
+=========
-The **Source** folder contains private resources. If you are familiar with the
+The **templates** folder contains private resources. If you are familiar with the
directory structure of extensions, this would be the **Resources/Private**
folder. There is a limited set of directories and files, which you can place
here.
-EditorPreview.html
-==================
+preview.html
+============
-The **EditorPreview.html** can be added to customize the backend preview for
+The **preview.html** can be added to customize the backend preview for
your editors. By default, TYPO3 comes with a standard preview renderer. However,
it is specialized in rendering the preview of Core Content Elements. This means
only Core fields like :sql:`header`, :sql:`subheader` or :sql:`bodytext` are
@@ -50,7 +50,7 @@ See also:
* Learn more about :ref:`templating `.
* Learn how to include :ref:`shared partials `
-Frontend.html
+frontend.html
=============
This is the default frontend rendering definition for :ref:`Content Elements `.
@@ -61,14 +61,14 @@ Learn more about :ref:`templating `.
Partials
========
-For larger Content Elements, you can divide your **Frontend.html** template into
+For larger Content Elements, you can divide your **frontend.html** template into
smaller chunks by creating separate partials here.
Partials are included as you normally would in any Fluid template.
.. code-block:: html
-
+
See also:
diff --git a/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst b/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst
index eabbe354..3fda0a2c 100644
--- a/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst
+++ b/Documentation/Guides/ExtendContentBlockTypoScript/Index.rst
@@ -35,7 +35,7 @@ known as "TypoScript Object Browser", the Content Elements created by Content
Blocks can be found as usual in the section `tt_content`.
The name corresponds to the :confval:`typeName `
-defined in EditorInterface.yaml.
+defined in config.yaml.
Example:
@@ -43,15 +43,12 @@ Example:
tt_content {
myvendor_mycontentblockname {
+ file = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/frontend.html
layoutRootPaths {
- 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/Layouts/
+ 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/Layouts/
}
partialRootPaths {
- 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/Partials/
- }
- templateName = Frontend
- templateRootPaths {
- 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/Source/
+ 20 = EXT:site_package/ContentBlocks/ContentElements/content-element-name/templates/Partials/
}
}
}
diff --git a/Documentation/Guides/FluidStyledContent/Index.rst b/Documentation/Guides/FluidStyledContent/Index.rst
index ccdfbfc3..75d2eb0d 100644
--- a/Documentation/Guides/FluidStyledContent/Index.rst
+++ b/Documentation/Guides/FluidStyledContent/Index.rst
@@ -51,10 +51,10 @@ templates.
partials.
In order to use the standard FSC fields, you should include them as Basics in
-your EditorInterface.yaml file. These are already shipped by Content Blocks.
+your config.yaml file. These are already shipped by Content Blocks.
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/config.yaml
name: vendor/fsc-test
title: FSC Element
@@ -65,10 +65,10 @@ your EditorInterface.yaml file. These are already shipped by Content Blocks.
type: Basic
Now the setup is complete and all what's left to do is to use the newly
-available layout in your Frontend.html templates.
+available layout in your frontend.html templates.
.. code-block:: html
- :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/Source/Frontend.html
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/fsc-test/templates/frontend.html
diff --git a/Documentation/Guides/NestedContentElements/Index.rst b/Documentation/Guides/NestedContentElements/Index.rst
index 9b38aac3..cd8d0293 100644
--- a/Documentation/Guides/NestedContentElements/Index.rst
+++ b/Documentation/Guides/NestedContentElements/Index.rst
@@ -24,7 +24,7 @@ In order to have nested Content Elements, we need to make use of the field type
relation to another table. In our case :sql:`tt_content`.
.. code-block:: yaml
- :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/EditorInterface.yaml
+ :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/config.yaml
name: example/tabs
fields:
@@ -55,7 +55,7 @@ contains all relations which might have a frontend rendering definition defined
in TypoScript. Normally, these are only Content Elements.
.. code-block:: html
- :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/Frontend.html
+ :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/frontend.html
@@ -81,7 +81,7 @@ used as a child. This method is a lot more flexible, but requires a little bit
more work.
.. code-block:: html
- :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/Frontend.html
+ :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/frontend.html
@@ -103,7 +103,7 @@ the backend. For this Content Blocks provides ready to use Fluid partials which
are able to render backend previews the same way the Core page layout does it.
.. code-block:: html
- :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/Source/EditorPreview.html
+ :caption: EXT:my_extension/ContentBlocks/ContentElements/tabs/templates/preview.html
diff --git a/Documentation/Guides/PageTypes/Index.rst b/Documentation/Guides/PageTypes/Index.rst
index c1d3c492..b7d0e389 100644
--- a/Documentation/Guides/PageTypes/Index.rst
+++ b/Documentation/Guides/PageTypes/Index.rst
@@ -84,7 +84,7 @@ extension.
Backend preview
===============
-Just like for Content Elements, you can define an **EditorPreview.html** file
+Just like for Content Elements, you can define an **preview.html** file
to create a preview of your Page Type. This can be used to preview custom
properties and to link directly to them. To make them prettier it is advised to
utilise CSS bootstrap classes like `card`.
@@ -105,8 +105,8 @@ Icons for states
Page Types can have special states like disabled or hidden in menu. Depending
on this state, the icon changes or is overlayed with another icon. As for now,
the "hide in menu" and "is site root" states can be supplied via a custom icons.
-Put an icon with the name **IconHideInMenu.svg** and one with **IconRoot.svg**
-inside your Assets folder to use them.
+Put an icon with the name **icon-hide-in-menu.svg** and one with **IconRoot.svg**
+inside your assets folder to use them.
Processing of page data
=======================
diff --git a/Documentation/Guides/RecordTypes/Index.rst b/Documentation/Guides/RecordTypes/Index.rst
index 6db7ba53..301e65af 100644
--- a/Documentation/Guides/RecordTypes/Index.rst
+++ b/Documentation/Guides/RecordTypes/Index.rst
@@ -10,7 +10,7 @@ not a Content Element or Page Type. Adding custom records requires you to define
a :yaml:`table` name. A minimal example looks like this:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml
name: example/my-record-type
table: tx_vendor_my_record_type
@@ -35,7 +35,7 @@ It is also possible to allow creation of Record Types in normal pages. For that
you have to enable :yaml:`ignorePageTypeRestriction`:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml
name: example/my-record-type
table: my_record_type
@@ -58,7 +58,7 @@ interface as a select dropdown. The different types will be also added
automatically to the list:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/diver/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/diver/config.yaml
name: example/diver
table: person
@@ -69,7 +69,7 @@ automatically to the list:
type: Text
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/instructor/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/instructor/config.yaml
name: example/instructor
table: person
@@ -94,7 +94,7 @@ as the "default" type. This is done simply by giving it the highest
configuration for all other types.
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/default/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/default/config.yaml
name: example/default
table: my_record
@@ -109,7 +109,7 @@ configuration for all other types.
type: Text
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/special/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/special/config.yaml
name: example/special
table: my_record
@@ -162,7 +162,7 @@ In addition, you can set a fixed :yaml:`typeName` if you wish. In this example
we extend the News records with a custom type:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-news-record/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-news-record/config.yaml
name: example/my-news-record
table: tx_news_domain_model_news
diff --git a/Documentation/Guides/SharedPartials/Index.rst b/Documentation/Guides/SharedPartials/Index.rst
index 4ae69401..d1dacff2 100644
--- a/Documentation/Guides/SharedPartials/Index.rst
+++ b/Documentation/Guides/SharedPartials/Index.rst
@@ -40,8 +40,8 @@ For a specific Content Block
.. _editor_preview_partials:
-For all EditorPreview.html templates
-====================================
+For all preview.html templates
+==============================
Sometimes it is needed to include partials from another source to be used in the
preview. For this some Page TsConfig is needed. This can be included in the
diff --git a/Documentation/Introduction/Index.rst b/Documentation/Introduction/Index.rst
index a985ae85..52af6a04 100644
--- a/Documentation/Introduction/Index.rst
+++ b/Documentation/Introduction/Index.rst
@@ -37,26 +37,26 @@ easily copy-pasted into other projects.
.. code-block:: none
:caption: Directory structure of a Content Block
- ├── Assets
- │ └── Icon.svg
- ├── Source
- │ ├── Language
- │ │ └── Labels.xlf
- │ ├── EditorPreview.html
- │ └── Frontend.html
- └── EditorInterface.yaml
+ ├── assets
+ │ └── icon.svg
+ ├── language
+ │ └── labels.xlf
+ ├── templates
+ │ ├── preview.html
+ │ └── frontend.html
+ └── config.yaml
* Learn more about the :ref:`Content Block definition `
-EditorInterface.yaml
-====================
+config.yaml
+===========
This file is the **basis** for the definition. It defines **exactly** one
Content Type. Using YAML over PHP includes a wider range of people, which is
able to modify Content Blocks without the need of a developer.
.. code-block:: yaml
- :caption: EXT:some_extension/ContentBlocks/ContentElements/content-block-name/EditorInterface.yaml
+ :caption: EXT:some_extension/ContentBlocks/ContentElements/content-block-name/config.yaml
name: vendor/content-block-name
fields:
diff --git a/Documentation/Migrations/Mask/Index.rst b/Documentation/Migrations/Mask/Index.rst
index 3aec4e91..3ed5a9ca 100644
--- a/Documentation/Migrations/Mask/Index.rst
+++ b/Documentation/Migrations/Mask/Index.rst
@@ -46,7 +46,7 @@ vendor and name, which you don't want in this case. We disable prefixing, so we
can adopt the existing Mask fields.
.. code-block:: yaml
- :caption: EXT:site_package/ContentBlocks/ContentElements/slider/EditorInterface.yaml
+ :caption: EXT:site_package/ContentBlocks/ContentElements/slider/config.yaml
name: tx-mask/slider
typeName: mask_slider
@@ -62,7 +62,7 @@ All other fields can be re-defined in Content Blocks as usual. Don't forget
to prefix **all** fields with `tx_mask`, even inside Collections.
.. code-block:: yaml
- :caption: EXT:site_package/ContentBlocks/ContentElements/slider/EditorInterface.yaml
+ :caption: EXT:site_package/ContentBlocks/ContentElements/slider/config.yaml
name: tx-mask/slider
typeName: mask_slider
@@ -83,29 +83,29 @@ to prefix **all** fields with `tx_mask`, even inside Collections.
Templates
---------
-This is the easy part. Simply copy the Mask template into **Frontend.html** and
+This is the easy part. Simply copy the Mask template into **frontend.html** and
you are done. That said, if you didn't use any partials or layouts. If so, move
-these to the according **Source/Partials** and **Source/Layouts** folder in your
+these to the according **templates/partials** and **templates/Layouts** folder in your
Content Block.
Icon
----
In case you've used a custom SVG icon for the Mask Element, you can rename it
-to **Icon.svg** and move it to the **Assets** folder. For FontAwesome icons you
+to **icon.svg** and move it to the **assets** folder. For FontAwesome icons you
can download the SVG version from the official website.
Labels
------
Mask doesn't have a translation feature. Labels can be copied from the backend
-module view, and pasted directly into the **Labels.xlf** file.
+module view, and pasted directly into the **labels.xlf** file.
.. tip::
Use the :ref:`command `
:bash:`content-blocks:language:generate vendor/name` to automatically
- generate the **Labels.xlf** file with automatic keys prefilled.
+ generate the **labels.xlf** file with automatic keys prefilled.
Finish
------
@@ -151,7 +151,7 @@ You do the migration as described with Collections above. In addition, you have
to add some more config.
.. code-block:: yaml
- :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/EditorInterface.yaml
+ :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/config.yaml
name: tx-mask/nested-content
typeName: mask_nested_content
@@ -169,7 +169,7 @@ The limitation is, that you can't add constraints to the available CTypes in the
child field. However, you can set a default value.
.. code-block:: yaml
- :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/EditorInterface.yaml
+ :caption: EXT:site_package/ContentBlocks/ContentElements/nested-content/config.yaml
name: tx-mask/nested-content
typeName: mask_nested_content
diff --git a/Documentation/Registration/Index.rst b/Documentation/Registration/Index.rst
index e410a8a3..61425fc5 100644
--- a/Documentation/Registration/Index.rst
+++ b/Documentation/Registration/Index.rst
@@ -30,7 +30,7 @@ folder. These are named **ContentElements**, **PageTypes** and **RecordTypes**.
└── composer.json
The system loads them automatically as soon as it finds any folder inside these
-directories, which has a file with the name **EditorInterface.yaml** inside.
+directories, which has a file with the name **config.yaml** inside.
Refer to the :ref:`YAML reference `, on how to define this file.
.. tip::
diff --git a/Documentation/Templating/Index.rst b/Documentation/Templating/Index.rst
index 04de5527..62b553d5 100644
--- a/Documentation/Templating/Index.rst
+++ b/Documentation/Templating/Index.rst
@@ -12,7 +12,7 @@ additional features like own variables and ViewHelpers with it.
Accessing variables
===================
-Inside your `Frontend.html` or `EditorPreview.html` file you can access the
+Inside your `frontend.html` or `preview.html` file you can access the
properties of your Content Element as usual by the :html:`{data}` variable.
This variable, however, is special. It has real superpowers!
@@ -112,8 +112,8 @@ experience for the editors. With this feature, there is the possibility to
provide nearly the same layout in the frontend and the backend, so the editors
easily find the element they want to edit.
-The frontend template is located in **Source/Frontend.html** and the backend
-template in **Source/EditorPreview.html**.
+The frontend template is located in **templates/frontend.html** and the backend
+template in **templates/preview.html**.
.. _asset_view_helpers:
@@ -125,11 +125,11 @@ the current Content Block in the template.
.. code-block:: html
-
-
+
+
-
-
+
+
The information of the current Content Block is stored in :html:`{data}`. This
means if you use an asset ViewHelper in a partial, you have to provide
@@ -139,13 +139,13 @@ means if you use an asset ViewHelper in a partial, you have to provide
.. code-block:: html
-
+
Translation ViewHelper
======================
Content Blocks provides a LanguagePathViewHelper to retrieve the LLL-path for
-the Labels.xlf file of the current Content Block.
+the labels.xlf file of the current Content Block.
.. code-block:: html
@@ -164,7 +164,7 @@ Partials
Partials are a very useful feature of Fluid. You can use them to split up your
templates into smaller parts. If you want to use a partial in a Content Block,
-you can create a subdirectory **Partials** in the **Source** directory and place
+you can create a subdirectory **partials** in the **templates** directory and place
your partials there.
This part is automatically added, but you can also
@@ -176,7 +176,7 @@ want to make use of automatic detection of the current Content Block.
.. code-block:: html
-
+
See also:
@@ -186,7 +186,7 @@ Layouts
=======
Analogous to partials, you can also use layouts. You can create a subdirectory
-`Layouts` in the `Source` directory and place your layouts there. The
+`layouts` in the `templates` directory and place your layouts there. The
configuration is added automatically, but you can also extend or overwrite the
TypoScript configuration in your sitepackage. Afterwards you can use your
layouts as usual in Fluid.
diff --git a/Documentation/YamlReference/Basics/Index.rst b/Documentation/YamlReference/Basics/Index.rst
index 7b6bc3aa..7e88f506 100644
--- a/Documentation/YamlReference/Basics/Index.rst
+++ b/Documentation/YamlReference/Basics/Index.rst
@@ -6,7 +6,7 @@ Basics (Mixins)
===============
**Basics**, also known as partials or mixins, are used to have a pre-defined set
-of fields that can be used to better organize your EditorInterface.yaml file and
+of fields that can be used to better organize your config.yaml file and
to reduce redundancy by sharing them between multiple Content Blocks.
.. note::
@@ -39,7 +39,7 @@ This is an example on how to add the classic Fluid Styled Content **Appearance**
Tab and the additional **Links** palette.
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml
name: example/basics
basics:
@@ -58,7 +58,7 @@ be done by using the according Basic :yaml:`identifier` and the type
:yaml:`Basic`.
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml
name: example/basics
fields:
@@ -102,7 +102,7 @@ Example on how to create a single Basic:
type: Text
label: LLL:EXT:sitepackage/Resources/Private/Language/locallang.xlf:a_basic_field
-The :yaml:`fields` part is exactly the same as in the EditorInterface.yaml. Here
+The :yaml:`fields` part is exactly the same as in the config.yaml. Here
you can define a Tab, a Palette or simply a set of fields.
The most practical way to use Basics is to use pre-defined tabs as the global
diff --git a/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst b/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst
index f1093c2c..4e67d5ff 100644
--- a/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst
+++ b/Documentation/YamlReference/ContentTypes/ContentElements/Index.rst
@@ -16,7 +16,7 @@ do need to know the name, you can inspect it e.g. in the Page TsConfig module.
A minimal Content Element looks like this:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/config.yaml
name: example/cta
fields:
@@ -27,7 +27,7 @@ In case you need the well-known `Appearance` tab back, you can add pre-defined
Basics to your definition:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/cta/config.yaml
name: example/cta
basics:
@@ -50,7 +50,7 @@ Here you can find all :ref:`common root options `.
:Required: false
:Type: string
- This is the description of the Content Element. If you have a Labels.xlf
+ This is the description of the Content Element. If you have a labels.xlf
file, you should define it there with the key :xml:`description`. If both are
defined, the translation file has precedence.
diff --git a/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst b/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst
index c52e1310..69e94eff 100644
--- a/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst
+++ b/Documentation/YamlReference/ContentTypes/PageTypes/Index.rst
@@ -12,7 +12,7 @@ already defined in the TYPO3 Core. Content Blocks only adds new types to it. A
minimal Page Type looks like this:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/PageTypes/blog/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/PageTypes/blog/config.yaml
name: example/blog
typeName: 1701284006
diff --git a/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst b/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst
index c857b485..847080df 100644
--- a/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst
+++ b/Documentation/YamlReference/ContentTypes/RecordTypes/Index.rst
@@ -12,7 +12,7 @@ not a Content Element or Page Type. Adding custom records requires you to define
a :yaml:`table` name. A minimal example looks like this:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/RecordTypes/my-record-type/config.yaml
name: example/my-record-type
table: tx_vendor_my_record_type
diff --git a/Documentation/YamlReference/FieldTypes/Basic/Index.rst b/Documentation/YamlReference/FieldTypes/Basic/Index.rst
index 38960b32..84e244b8 100644
--- a/Documentation/YamlReference/FieldTypes/Basic/Index.rst
+++ b/Documentation/YamlReference/FieldTypes/Basic/Index.rst
@@ -11,7 +11,7 @@ the main article about Basics :ref:`here `.
Example:
.. code-block:: yaml
- :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/EditorInterface.yaml
+ :caption: EXT:your_extension/ContentBlocks/ContentElements/basics/config.yaml
name: example/basics
basics:
diff --git a/Documentation/YamlReference/FieldTypes/Collection/Index.rst b/Documentation/YamlReference/FieldTypes/Collection/Index.rst
index aaa2a768..55becfc7 100644
--- a/Documentation/YamlReference/FieldTypes/Collection/Index.rst
+++ b/Documentation/YamlReference/FieldTypes/Collection/Index.rst
@@ -24,7 +24,7 @@ Custom icon
===========
In order to define a custom icon for your Collection field, you may place an
-image file inside **Assets** folder called **{identifier}.svg**. So for example
+image file inside **assets** folder called **{identifier}.svg**. So for example
if your identifier for the Collection is :yaml:`my_collection`, then your image
should be named **my_collection.svg**. Alternatively, you can also provide png
or gif files. These should be 64x64px.
diff --git a/Documentation/YamlReference/FieldTypes/Index.rst b/Documentation/YamlReference/FieldTypes/Index.rst
index a87685d0..085e7232 100644
--- a/Documentation/YamlReference/FieldTypes/Index.rst
+++ b/Documentation/YamlReference/FieldTypes/Index.rst
@@ -86,7 +86,7 @@ Field options, which can be defined inside the :yaml:`fields` array.
:Required: false
:Type: string
- By default labels should be defined inside the :file:`Labels.xlf` file. But in
+ By default labels should be defined inside the :file:`labels.xlf` file. But in
case there is only one language for the backend you may define labels directly
in the YAML configuration. Translation files have precedence over this.
diff --git a/Documentation/YamlReference/FieldTypes/Select/Index.rst b/Documentation/YamlReference/FieldTypes/Select/Index.rst
index 4ab74d84..68c9ecf8 100644
--- a/Documentation/YamlReference/FieldTypes/Select/Index.rst
+++ b/Documentation/YamlReference/FieldTypes/Select/Index.rst
@@ -48,7 +48,7 @@ Settings
.. tip::
You can omit the label, if you have the translation already in your
- Labels.xlf file.
+ labels.xlf file.
.. code-block:: yaml
diff --git a/Documentation/YamlReference/Index.rst b/Documentation/YamlReference/Index.rst
index 9fed4381..e223f8d8 100644
--- a/Documentation/YamlReference/Index.rst
+++ b/Documentation/YamlReference/Index.rst
@@ -5,7 +5,7 @@
YAML reference
==============
-The heart of a Content Block is the `EditorInterface.yaml` file. Here you can
+The heart of a Content Block is the `config.yaml` file. Here you can
find all possible configuration options. There are slight differences, whether
you are dealing with :ref:`Content Elements `,
:ref:`Page Types ` or
diff --git a/Documentation/YamlReference/Root/Index.rst b/Documentation/YamlReference/Root/Index.rst
index a5e40814..3de90d07 100644
--- a/Documentation/YamlReference/Root/Index.rst
+++ b/Documentation/YamlReference/Root/Index.rst
@@ -28,7 +28,7 @@ Common root options
:Required: false
:Type: string
- This is the title of the Content Block. If you have a Labels.xlf file, you
+ This is the title of the Content Block. If you have a labels.xlf file, you
should define it there with the key :xml:`title`. If both are defined, the
translation file has precedence. If nothing is defined, the title falls back
to :yaml:`name`.
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/EditorPreview.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/EditorPreview.css
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/EditorPreview.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.css
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.js
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Frontend.js
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/Frontend.js
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/frontend.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/frontend.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/EditorPreview.html b/Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/preview.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/Source/EditorPreview.html
rename to Tests/Fixtures/Extensions/test_content_blocks_a/ContentBlocks/ContentElements/content-element-a/templates/preview.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/EditorPreview.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/EditorPreview.css
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/EditorPreview.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.css
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.js
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Frontend.js
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/Frontend.js
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/frontend.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/frontend.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/EditorPreview.html b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/preview.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/Source/EditorPreview.html
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/ContentElements/content-element-b/templates/preview.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_b/ContentBlocks/RecordTypes/test-record/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/EditorPreview.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/EditorPreview.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/EditorPreview.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.js
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Frontend.js
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/Frontend.js
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/templates/frontend.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-relation/templates/frontend.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/templates/frontend.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-vendor/templates/frontend.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/EditorPreview.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/EditorPreview.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/EditorPreview.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.js
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Frontend.js
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/Frontend.js
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/templates/frontend.html
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple-with-basics/templates/frontend.html
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/EditorPreview.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/EditorPreview.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/EditorPreview.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/EditorPreview.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.css b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.css
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.css
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.css
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.js b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.js
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Frontend.js
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/Frontend.js
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Icon.svg b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/icon.svg
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Assets/Icon.svg
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/assets/icon.svg
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/EditorInterface.yaml b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/config.yaml
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/EditorInterface.yaml
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/config.yaml
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Language/Labels.xlf b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/language/labels.xlf
similarity index 100%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Language/Labels.xlf
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/language/labels.xlf
diff --git a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html
similarity index 86%
rename from Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html
rename to Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html
index 9fba2b5d..7dde57f7 100644
--- a/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/Source/Frontend.html
+++ b/Tests/Fixtures/Extensions/test_content_blocks_c/ContentBlocks/ContentElements/simple/templates/frontend.html
@@ -18,5 +18,5 @@