@paulpaulstudio/strapi-edit-runtime
v0.2.0
Published
Vanilla-JS Onpage-Edit-Runtime für non-React Strapi-Frontends (PHP, Webstudio-SSG, static HTML). Scannt DOM nach data-pp-edit-Attributen und macht sie editable.
Maintainers
Readme
@paulpaulstudio/strapi-edit-runtime
Vanilla-JS Onpage-Edit-Runtime + PHP-Helper für non-React Strapi-Frontends.
Geeignet für:
- PHP-Sites
- Webstudio (SSG static HTML)
- Statische HTML-Sites
- Jeder andere Renderer ohne React
Selbes postMessage-Protokoll wie @paulpaulstudio/strapi-render — die Sites lassen sich nahtlos im Onpage-Editor von cms.paulpaul.studio bearbeiten.
Quick-Start PHP
<?php require_once '/path/to/strapi-render.php'; ?>
<!DOCTYPE html><html><body>
<?= pp_content('homepage', 'singleType', null, function() use ($home) { ?>
<?= pp_text('hero.title', $home['hero']['title'], 'h1', 'text-4xl') ?>
<?= pp_image('hero.image', $home['hero']['image'], 'https://kunde.paulpaul.studio', '', 'w-full') ?>
<?= pp_richtext('content', $home['content'], $renderedHtml, 'div', 'prose') ?>
<?php }); ?>
<?= pp_inject_runtime() ?>
</body></html>Quick-Start statisches HTML / Webstudio
Hand-annotation oder automatisch durch Webstudio-Hook:
<div data-pp-content-uid="homepage" data-pp-content-kind="singleType">
<h1 data-pp-edit="hero.title" data-pp-type="text">Welcome</h1>
<img src="..." data-pp-edit="hero.image" data-pp-type="media"
data-pp-allowed-types="images" data-pp-base-url="https://kunde.paulpaul.studio">
</div>
<script src="https://cms.paulpaul.studio/edit-runtime.js" defer></script>Data-Attribute
| Attribute | Wo | Was |
|---|---|---|
| data-pp-content-uid | Container | Strapi-API-ID (homepage, inserat, …) |
| data-pp-content-kind | Container | singleType oder collectionType |
| data-pp-content-doc-id | Container | Bei Collection-Items: documentId des Items |
| data-pp-edit | Element | Dot-path im Strapi-Doc (hero.title, features.0.icon) |
| data-pp-type | Element | text / textarea / richText / media / link |
| data-pp-edit-source | Element (richText) | Original-Markdown-Quelle — verhindert Drift im Roundtrip |
| data-pp-base-url | Element (media) | Strapi-Base-URL für relative /uploads/… |
| data-pp-allowed-types | Element (media) | Comma-separated: images,videos,… |
| data-pp-multiple | Element (media) | 1 für Multi-Select |
Edit-Modes
- text / textarea / email / number: contenteditable plaintext, blur → commit
- richText: contenteditable HTML, blur → HTML→Markdown via turndown
- media: click → öffnet MediaPicker im Parent (cms.paulpaul.studio)
- link: hover zeigt 🔗-Button → Prompt für neue URL
Lizenz
UNLICENSED — internes Paul & Paul Studio Tooling.
