Filigrana sulla pagina web di Discourse

Questo componente del tema aggiunge una filigrana alla pagina.

È possibile aggiungere una qualsiasi delle seguenti informazioni:

  • un breve messaggio di testo
  • il nome utente attualmente connesso
  • l’ora di visualizzazione della pagina

Diverse impostazioni consentono di personalizzare come e quando verrà visualizzata la filigrana:

  • show_watermark_in_background: Se abilitato, genererà e visualizzerà una filigrana sulla pagina.

  • scroll_enabled: Se abilitato, la filigrana scorrerà con la pagina.

  • only_in_categories: Elenco delle categorie in cui dovrebbe essere visualizzata la filigrana.

  • except_in_categories: Elenco delle categorie in cui la filigrana non dovrebbe essere visualizzata.

  • only_in_tags: Elenco dei tag in cui dovrebbe essere visualizzata la filigrana.

  • except_in_tags: Elenco dei tag in cui la filigrana non dovrebbe essere visualizzata.

  • if_site_title_matches: Visualizza la filigrana solo se il titolo del sito corrisponde a questa espressione regolare. Vedi Discourse Web Page Watermark - #5 by pfaffman per un caso d’uso.

  • or_if_url_matches: OPPURE visualizza la filigrana se l’URL corrisponde a una qualsiasi delle espressioni regolari nell’elenco. Si noti che l’URL testato non include il nome host.

  • tile_width: La larghezza (in px) della tessera che contiene le informazioni della filigrana.

  • tile_height: L’altezza (in px) della tessera che contiene le informazioni della filigrana.

  • color: Il colore del testo della filigrana.

  • text_align: Come il testo deve essere allineato rispetto alle coordinate x,y durante il disegno.

  • text_rotation: L’angolo in cui il testo deve essere ruotato rispetto alle coordinate x,y durante il disegno.

  • display_text: Testo da visualizzare nella filigrana.

  • display_text_font: Il font utilizzato per visualizzare il testo (analizzato come valore del font CSS).

  • display_text_x: La coordinata dell’asse x del punto in cui iniziare a disegnare il testo nell’area di disegno della tessera, in pixel.

  • display_text_y: La coordinata dell’asse y del punto in cui iniziare a disegnare il testo nell’area di disegno della tessera, in pixel.

  • display_username: Se abilitato, la filigrana visualizzerà il nome utente corrente.

  • display_username_font: Il font utilizzato per visualizzare il nome utente (analizzato come valore del font CSS).

  • display_username_x: La coordinata dell’asse x del punto in cui iniziare a disegnare il nome utente nell’area di disegno della tessera, in pixel.

  • display_username_y: La coordinata dell’asse y del punto in cui iniziare a disegnare il nome utente nell’area di disegno della tessera, in pixel.

  • display_timestamp: Se abilitato, la filigrana visualizzerà l’ora di visualizzazione della pagina.

  • display_timestamp_format: Come verrà formattato l’orario. Per informazioni sui formati validi, fare riferimento a Moment.js | Docs.

  • display_timestamp_font: Il font utilizzato per visualizzare l’orario (analizzato come valore del font CSS).

  • display_timestamp_x: La coordinata dell’asse x del punto in cui iniziare a disegnare l’orario nell’area di disegno della tessera, in pixel.

  • display_timestamp_y: La coordinata dell’asse y del punto in cui iniziare a disegnare l’orario nell’area di disegno della tessera, in pixel.

Avvertenze

Caveats

  • Se si intende aggiungere una filigrana all’istanza del proprio forum, probabilmente si vorrà taggare gli screenshot da essa estratti. Sia che possano essere ricondotti a te, sia per scoraggiare i tuoi utenti dal fare screenshot e pubblicarli sui social media, ad esempio.
    Ma è importante essere consapevoli che l’aggiunta della filigrana danneggerà la leggibilità. C’è un compromesso da fare tra UX e averla.

  • La filigrana viene visualizzata in un div sotto la pagina. A seconda del tema, i componenti sopra potrebbero coprirla, quindi se si sceglie di aggiungerla alla pagina, il tema deve avere molta trasparenza. È possibile però posizionarla sopra tutti i componenti cambiando z-index con CSS. Dovresti anche regolare mix-blend-mode per migliorare la visibilità.

div#watermark-background {
  z-index: 99999;
  mix-blend-mode: multiply;
}
  • Questo componente viene fornito con impostazioni predefinite sensate che dovrebbero funzionare bene con la maggior parte dei temi chiari. Aggiungere una filigrana ai temi scuri è complicato, poiché probabilmente avrà un impatto maggiore sulla leggibilità. Incoraggio vivamente a modificare le impostazioni e il CSS per trovare ciò che funziona meglio nel tuo caso.

  • Poiché la filigrana viene visualizzata in un div, qualsiasi utente che sappia usare gli Strumenti per sviluppatori nel browser può nasconderla. Farà il lavoro previsto per probabilmente il 99% degli utenti non tecnici, ma è importante essere consapevoli che non è una soluzione infallibile.

Screenshot

Screenshots

vista desktop:

desktop view:

vista mobile:

mobile view:

|||
|-|-|-|
| :eyeglasses:|Anteprima| Discourse Watermark - Theme Creator|
| : eyeglasses:|Preview| Discourse Watermark - Theme Creator|
| :hammer_and_wrench:|Repository| Discourse-Watermark |
| :question:|Guida all’installazione|Come installare un tema o un componente del tema|
| :question:|Install Guide|How to install a theme or theme component|
| :open_book:|Nuovo ai temi di Discourse?| Guida per principianti all’uso dei temi di Discourse|
| :open_book:|New to Discourse Themes?| Beginner’s guide to using Discourse Themes|

modifica:
edit:

  • 2022-01-12: Aggiunte nuove impostazioni per controllare quando viene visualizzata la filigrana.
  • 2022-01-12: Added new settings to control when the watermark is displayed.
11 Mi Piace

Può essere basato su categorie? Alcuni di noi potrebbero avere solo una certa categoria che necessita di una filigrana.

4 Mi Piace

Oh, capisco, ho confuso questo con le filigrane per le immagini. Modificherò il titolo in modo che sia più chiaro. Un caso d’uso piuttosto insolito… Non sono a conoscenza di alcun sito web che apponga una filigrana su ogni pagina web.

4 Mi Piace

Ottima idea, farò del mio meglio per sviluppare presto questa funzionalità.

@codinghorror, grazie per aver chiarito il titolo.

Concordo sul fatto che si tratti di un caso d’uso insolito. Per come stanno le cose al momento, penso che sia utile principalmente per forum privati in aziende con un reparto di sicurezza paranoico, come le aziende del settore finanziario.

È stato un primo MVP. Aggiungerò funzionalità in base al feedback ricevuto dalla community.

Spero di poter aggiungere presto il filtro basato su categorie suggerito da Mr. X, che lo renderà più utile a un pubblico più ampio.

1 Mi Piace

Ho appena inviato una PR: skip display if title matches by pfaffman · Pull Request #1 · megothss/discourse-watermark · GitHub

Questo aggiunge un’impostazione del tema include_if_title_matches, che è vuota per impostazione predefinita. Se l’impostazione è vuota, non viene apportata alcuna modifica.

Se l’impostazione ha un valore, SiteSetting.title deve corrispondere affinché venga visualizzata la filigrana.

Il caso d’uso è quello di visualizzare la filigrana su un sito di staging, ma non su quello di produzione, senza richiedere modifiche al database. Impostando include_if_title_matches su “staging” e avendo “staging” in SiteSetting.title del sito di staging (impostato in una variabile ENV in modo che persista quando il database di produzione viene ripristinato su di esso), la filigrana viene visualizzata sul sito di staging ma non su quello di produzione.

Con questa modifica, la installerò su ogni sito che ha un sito di staging.

1 Mi Piace

L’ho unita oggi. L’ho modificata leggermente. Il nome dell’impostazione è stato rinominato in if_site_title_matches.

Puoi provare a verificare se l’ultimo commit funziona nelle tue istanze precedenti?

Ho appena rilasciato una nuova versione che consente di visualizzare la filigrana in categorie, tag o URL specifici.

Con le nuove opzioni, penso che coprirà molti più casi d’uso.

5 Mi Piace

Posso confermare che funziona sia sul mio sito di produzione che su quello di staging; il primo funzionava con Discourse.siteSettings.xxx mentre ci stavo lavorando (sto per fare un aggiornamento che penso possa cambiare questo).

È di grande aiuto vedere il mio sito di staging con la filigrana. Grazie per il tema!

4 Mi Piace

È possibile aggiungere un’opzione per creare una filigrana (funzionalmente) invisibile? Ad esempio, uno o due valori di colore diversi dallo sfondo e sotto tutto il resto? Potremmo quindi esaminare qualsiasi screenshot e cercare quei valori di colore per scoprire il testo del nome utente.

Il caso d’uso non è quello di scoraggiare gli screenshot, ma di scoprire quale utente sta effettuando screenshot e distribuendo post da un forum privato.

In alternativa, poiché il nostro forum utilizza il cambio automatico chiaro/scuro, è possibile eseguire due copie del tema per codificare i valori di colore? O forse rendere il colore della filigrana un’impostazione per tema?

Grazie per questo. Potrebbe essere una soluzione perfetta per noi.

1 Mi Piace

Forse se riesci a dissuaderli allora smetteranno e non importerà chi era?

Penso che far cambiare colore a seconda del tema corrente sarà difficile. Se quello che vuoi è provare a catturare qualcuno avendo una filigrana segreta, allora la tua migliore opzione sarebbe disabilitare l’altro tema.

1 Mi Piace

@baylands,

[quote=“baylands, post:8, topic:214108”]
È possibile aggiungere un’opzione per creare una filigrana (funzionalmente) invisibile? Ad esempio, uno o due valori di colore diversi dallo sfondo e sotto tutto il resto? Potremmo quindi esaminare qualsiasi screenshot e cercare quei valori di colore per scoprire il testo del nome utente.

Il caso d’uso non è quello di scoraggiare gli screenshot, ma di scoprire quale utente sta facendo screenshot e distribuendo post da un forum privato.
[/quote]Teoricamente, è possibile. Ma lo proverei attentamente prima di usarlo in produzione. Poiché nel tuo caso d’uso ci sarà quasi nessun contrasto tra la filigrana e il colore di sfondo, c’è una buona probabilità che queste informazioni vadano perse nella compressione a seconda del formato e delle impostazioni applicate al momento del caricamento.

Il caso d’uso principale per questo componente è scoraggiare gli screenshot, ma puoi provare il tuo approccio e vedere se funziona. Sarebbe un caso d’uso a cui non avevo mai pensato prima.

È possibile utilizzare questo componente contemporaneamente con temi chiari e scuri. È un caso d’uso a cui ho pensato durante lo sviluppo. Non è nemmeno necessario eseguire più copie dello stesso componente.

L’impostazione color supporta l’uso di una variabile CSS. Ad esempio, il valore predefinito per questa impostazione è var(--primary-low).

Quindi, finché viene utilizzata una variabile CSS impostata con i colori appropriati in tutti i temi che si desidera filigranare. Dovresti essere a posto!

Se provi, fammi sapere se funziona come ti aspettavi.

2 Mi Piace

Grazie, questo chiarisce molte cose!

Ho riscontrato un problema durante il tentativo del percorso della variabile.

Il nostro unico tema è il tema chiaro, che utilizza le palette di colori chiare e scure per la sua modalità scura automatica.

Posso aggiungere una variabile “–secondary-watermark” al CSS del tema chiaro, ma non cambia quando si utilizza la palette di colori scura sul tema chiaro.

Non riesco a capire come aggiungere la variabile alla palette di colori anziché al tema, quindi, di conseguenza, l’override del tema chiaro funziona solo con la palette di colori chiara e, quando la palette di colori passa automaticamente al buio, la filigrana diventa istantaneamente visibile.

È una strana particolarità a cui ho dovuto pensare per un po’. Di punto in bianco, sai se è possibile eseguire calcoli con una variabile? In modo tale che potrei definire --secondary-watermark come --secondary meno 10? O qualcosa del genere? Se sì, penso che risolverebbe il problema.

Il nostro caso d’uso è ammettiamolo un po’ di nicchia. Dubito che una filigrana visibile scoraggerebbe perché la gente cercherebbe di aggirarla. Siamo un gruppo a iscrizione chiusa e dobbiamo essere in grado di espellere le persone che diffondono screenshot. Questo è più importante per noi.

Grazie ancora!

1 Mi Piace

L’ho ottenuto usando la funzione if is-light-color-scheme. Funziona esattamente come previsto. Grazie!

3 Mi Piace

Questo è in realtà ottimo per noi, continuavamo a ricevere post di forum privati pubblicati sui social media da persone che si infiltrano nel nostro gruppo per cercare di farci fare brutta figura, quindi averlo eviterebbe questo o ci permetterebbe facilmente di bloccare gli utenti offensivi. Grazie @saquetim per aver sviluppato questo.

4 Mi Piace

Hai alcune deprecazioni.

deprecate-shim.js:33 DEPRECATION: [THEME 15 'discourse-watermark'] L'uso dell'Ember Global è deprecato. Dovresti importare il modulo Ember o l'API specifica invece. [deprecation id: ember-global] Vedi https://deprecations.emberjs.com/v3.x/#toc_ember-global per maggiori dettagli.
DEPRECATION: [THEME 15 'discourse-watermark'] L'uso di `run.schedule` è stato deprecato. Invece, importa il valore direttamente da @ember/runloop:

  import { schedule } from '@ember/runloop'; [deprecation id: deprecated-run-loop-and-computed-dot-access]

Proverei ad aiutarti ma sto spegnendo i miei stessi :fuoco:

2 Mi Piace

Questo è personale. :rofl:

Devo anche rifattorizzarlo per allontanarmi dai widget.
Non ce n’è più bisogno.

Proverò a risolverlo non appena avrò un po’ di tempo libero. :wink:

3 Mi Piace

Non funziona molto bene con il tema che sto usando, sarebbero utili più opzioni personalizzabili, come la possibilità di decidere quanta parte della pagina occupa la filigrana (in modo che occupi solo il contenuto del post/lo sfondo della pagina, non ad esempio l’intestazione durante la navigazione tra le sezioni).

Per quanto riguarda il mio tema, non importa quale selettore di colore CSS uso e non importa quanto sia brillante il colore, il testo/SVG appare scuro/nero.

1 Mi Piace

Ci sono aggiornamenti in arrivo per questo? @saquetim

2 Mi Piace

Ottimo componente, ma non supporta Ember 5?
Ricevo l’errore: ReferenceError: Ember is not defined,
la mia versione di Ember è v5.5.0.
@saquetim

1 Mi Piace

Cercherò di trovare del tempo per lavorare presto a una versione compatibile.

1 Mi Piace

Ciao @saquetim . Hai avuto modo di dare un’occhiata a questo? Sembra che sia ancora rotto:

2 Mi Piace