Page Annotator
Disegna annotazioni SVG a mano libera sopra qualsiasi pagina o post di WordPress. I tratti vengono salvati come post meta e ridisegnati sul frontend come overlay non interattivo, con animazioni di stroke attivate dallo scroll (GSAP ScrollTrigger).
by Salvatore Corsi · github.com/salvatorecorsi/page-annotator · website
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/salvatorecorsi/page-annotator/archive/refs/heads/master.zipDisegna annotazioni SVG a mano libera sopra qualsiasi pagina o post di WordPress. I tratti vengono salvati come post meta e ridisegnati sul frontend come overlay non interattivo, con animazioni di stroke attivate dallo scroll (GSAP ScrollTrigger).
Cosa fa
- Editor di disegno che si apre sul frontend del contenuto reale (
?annotation=true), caricato dentro un iframe in modalità preview, così disegni esattamente sopra il layout vero. - Tratti organizzati in layer, con undo, duplica/sposta/rinomina, selezione ed eliminazione dei singoli path.
- Immagini (SVG / PNG) caricabili dalla Media Library e posizionabili nell'editor con gizmo stile Figma (sposta, ridimensiona con aspect-lock, ruota). Vivono nei layer accanto ai tratti, ma sul frontend sono statiche e non interattive.
- Due slot di annotazione (
coverescribbles) e due breakpoint (desktop / mobile), gestiti in modo indipendente. - Sul frontend i tratti si animano allo scroll secondo lo stile e il timing scelti nelle impostazioni.
- Thumbnail virtuale: se un post ha un disegno nello slot
covere nessuna immagine in evidenza,has_post_thumbnail()/get_the_post_thumbnail()restituiscono l'SVG inline.
Come funziona
- Editor: app React (
@wordpress/element) buildata ineditor/build, caricata solo con?annotation=truee permessoedit_posts. Un bottone "Aggiungi annotazioni" nel pannello Gutenberg apre l'editor. - Dati: due post meta per ogni post type pubblico —
_page_annotator_svg(markup) e_page_annotator_timeline(punti del tratto constartTime/durationper l'animazione). - API: namespace REST
page-annotator, rotta/annotations/{post_id}(GET/POST). L'SVG salvato è sanitizzato conwp_kses(la whitelist include<path>,<g>e<image>). - Immagini: l'upload SVG nella Media Library è abilitato solo per chi ha
edit_postse ogni file SVG è sanitizzato in upload viaDOMDocument(includes/svg-upload.php) — rimozione di `