Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/erremauro/cz-highlights/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
CZ Highlights è un plugin WordPress che permette agli utenti registrati di evidenziare porzioni di testo negli articoli e nei volumi, aggiungere note personali e consultarle in una pagina dedicata.
Funzionalità principali
- Evidenziazione di testo su articoli (
post) e pagine volume con 5 colori selezionabili. - Aggiunta e modifica di note personali su ogni evidenziazione tramite popover.
- Supporto articoli paginati (``): le evidenziazioni vengono associate alla pagina corretta e il pulsante "Vai" naviga alla pagina giusta.
- Fingerprinting contestuale (prefisso/suffisso) per riposizionare le evidenziazioni anche se il testo dell'articolo cambia lievemente; stato
displacedse il contesto non corrisponde più,orphanedse il testo non è più trovabile. - Drawer laterale accessibile da ogni articolo/volume: lista delle evidenziazioni con pulsanti Vai, Modifica, Elimina.
- Pagina Le Mie Note (
[czh_my_notes]): creata automaticamente all'attivazione del plugin.- Lista volumi con numero di note per volume.
- Card Note sparse per articoli non appartenenti a nessun volume.
- Separatore visivo tra note sparse e volumi.
- Vista dettaglio per volume/articoli singoli: note raggruppate per articolo in sezioni collassabili.
- Pulsante Comprimi/Espandi tutto.
- Modifica inline nota e cambio colore direttamente dalla pagina.
- Conferma eliminazione con pannello inline (senza
window.confirm()).
- Tooltip "Evidenzia" visibile anche per utenti non registrati: al click reindirizza alla pagina di login con redirect back all'articolo corrente.
- Voce Le mie Note nel menu utente (
czh_nav_user_menu_items): apre il drawer su articoli/volumi, naviga alla pagina note altrove. - Preferenza stile highlight (
underlineofilled) letta dal meta utenteczup_highlight_style(impostato dacz-user-preferences). - Rispetto della preferenza utente
czup_highlights_enabled: se disabilitato nessun asset viene caricato. - Asset minificati con fallback automatico ai file sorgente se
SCRIPT_DEBUGètrue.
Dipendenze
- cz-volume (opzionale): se attivo, le note vengono raggruppate per volume. Senza di esso tutte le note appaiono nella card "Note sparse".
- cz-user-preferences (opzionale): gestisce le preferenze
czup_highlights_enabledeczup_highlight_style.
Requisiti
- WordPress 6.0+
- PHP 8.0+
- Node.js 18+ (solo per rebuild degli asset)
Installazione
- Copia la cartella
cz-highlightsinwp-content/plugins/. - Attiva il plugin da Plugin > Plugin installati.
- All'attivazione vengono eseguiti automaticamente:
- Creazione della tabella
{prefix}czh_highlights. - Creazione della pagina Le Mie Note (slug
le-mie-note) con shortcode[czh_my_notes]; l'ID viene salvato inwp_optionscomeczh_notes_page_id.
- Creazione della tabella
Endpoint REST
Namespace: czh/v1
| Metodo | Endpoint | Descrizione |
|---|---|---|
GET |
/highlights?post_id=X |
Lista evidenziazioni per post |
POST |
/highlights |
Crea evidenziazione |
PATCH |
/highlights/{id} |
Aggiorna nota/colore/status |
DELETE |
/highlights/{id} |
Elimina evidenziazione |
GET |
/highlights/summary |
Volumi con conteggio note (+ card note sparse) |
GET |
/highlights/volume?volume_id=X |
Note di un volume raggruppate per articolo |
GET |
/highlights/standalone |
Note su articoli non appartenenti a nessun volume |
Tutti gli endpoint richiedono autenticazione (is_user_logged_in()).
Build asset
node scripts/build.js
Genera:
assets/js/czh.min.js+ sourcemapassets/css/czh.min.css+ sourcemap
Schema DB
Tabella {prefix}czh_highlights:
| Colonna | Tipo | Note |
|---|---|---|
id |
BIGINT UNSIGNED |
PK auto-increment |
user_id |
BIGINT UNSIGNED |
ID utente WordPress |
post_id |
BIGINT UNSIGNED |
ID articolo o volume |
page_num |
SMALLINT UNSIGNED |
Pagina ``, default 1 |
selected_text |
TEXT |
Testo evidenziato |
prefix_text |
VARCHAR(200) |
Contesto pre-selezione |
suffix_text |
VARCHAR(200) |
Contesto post-selezione |
note |
TEXT |
Nota personale (nullable) |
color |
VARCHAR(30) |
yellow | green | blue | pink | orange |
status |
VARCHAR(20) |
active | displaced | orphaned |
created_at |
DATETIME |
|
updated_at |
DATETIME |
Aggiornato automaticamente |