Discourse-Webseiten-Wasserzeichen

Diese Theme-Komponente fügt der Seite ein Wasserzeichen hinzu.

Es ist möglich, eine der folgenden Informationen hinzuzufügen:

  • eine kurze Textnachricht
  • der aktuell angemeldete Benutzername
  • der Zeitstempel, zu dem die Seite gerendert wurde

Mehrere Einstellungen ermöglichen die Anpassung, wie und wann das Wasserzeichen gerendert wird:

  • show_watermark_in_background: Wenn aktiviert, wird ein Wasserzeichen auf der Seite generiert und angezeigt.

  • scroll_enabled: Wenn aktiviert, wird das Wasserzeichen mit der Seite gescrollt.

  • only_in_categories: Liste der Kategorien, in denen das Wasserzeichen angezeigt werden soll.

  • except_in_categories: Liste der Kategorien, in denen das Wasserzeichen nicht angezeigt werden soll.

  • only_in_tags: Liste der Tags, in denen das Wasserzeichen angezeigt werden soll.

  • except_in_tags: Liste der Tags, in denen das Wasserzeichen nicht angezeigt werden soll.

  • if_site_title_matches: Wasserzeichen nur anzeigen, wenn der Seitentitel mit diesem regulären Ausdruck übereinstimmt. Siehe Discourse Web Page Watermark - #5 by pfaffman für einen Anwendungsfall.

  • or_if_url_matches: ODER das Wasserzeichen anzeigen, wenn die URL mit einem der regulären Ausdrücke in der Liste übereinstimmt. Beachten Sie, dass die getestete URL nicht den Hostnamen enthält.

  • tile_width: Die Breite (in Pixel) der Kachel, die die Wasserzeicheninformationen enthält.

  • tile_height: Die Höhe (in Pixel) der Kachel, die die Wasserzeicheninformationen enthält.

  • color: Die Farbe des Wasserzeichentextes.

  • text_align: Wie der Text relativ zu den x,y-Koordinaten beim Zeichnen ausgerichtet werden soll.

  • text_rotation: Der Winkel, in dem der Text relativ zu den x,y-Koordinaten beim Zeichnen gedreht werden soll.

  • display_text: Text, der im Wasserzeichen gerendert werden soll.

  • display_text_font: Die Schriftart, die zum Rendern des Textes verwendet wird (als CSS-Schriftwert geparst).

  • display_text_x: Die x-Achsen-Koordinate des Punktes, an dem das Zeichnen des Textes auf der Kachel-Leinwand beginnt, in Pixel.

  • display_text_y: Die y-Achsen-Koordinate des Punktes, an dem das Zeichnen des Textes auf der Kachel-Leinwand beginnt, in Pixel.

  • display_username: Wenn aktiviert, rendert das Wasserzeichen den aktuellen Benutzernamen.

  • display_username_font: Die Schriftart, die zum Rendern des Benutzernamens verwendet wird (als CSS-Schriftwert geparst).

  • display_username_x: Die x-Achsen-Koordinate des Punktes, an dem das Zeichnen des Benutzernamens auf der Kachel-Leinwand beginnt, in Pixel.

  • display_username_y: Die y-Achsen-Koordinate des Punktes, an dem das Zeichnen des Benutzernamens auf der Kachel-Leinwand beginnt, in Pixel.

  • display_timestamp: Wenn aktiviert, rendert das Wasserzeichen den Zeitstempel, zu dem die Seite gerendert wurde.

  • display_timestamp_format: Wie der Zeitstempel formatiert wird. Informationen zu den gültigen Formaten finden Sie unter Moment.js | Docs.

  • display_timestamp_font: Die Schriftart, die zum Rendern des Zeitstempels verwendet wird (als CSS-Schriftwert geparst).

  • display_timestamp_x: Die x-Achsen-Koordinate des Punktes, an dem das Zeichnen des Zeitstempels auf der Kachel-Leinwand beginnt, in Pixel.

  • display_timestamp_y: Die y-Achsen-Koordinate des Punktes, an dem das Zeichnen des Zeitstempels auf der Kachel-Leinwand beginnt, in Pixel.

Haftungsausschlüsse

Hinweise

  • Wenn Sie ein Wasserzeichen zu Ihrer Foreninstanz hinzufügen möchten, möchten Sie wahrscheinlich Screenshots davon markieren. Entweder damit sie auf Sie zurückgeführt werden können oder um Ihre Benutzer davon abzuhalten, Screenshots zu machen und sie zum Beispiel in sozialen Medien zu posten.
    Aber es ist wichtig zu bedenken, dass das Hinzufügen des Wasserzeichens die Lesbarkeit beeinträchtigt. Es gibt einen Kompromiss zwischen UX und dem Vorhandensein.

  • Das Wasserzeichen wird in einem div unterhalb der Seite gerendert. Abhängig von Ihrem Theme können die darüber liegenden Komponenten es verdecken. Wenn Sie es also zu Ihrer Seite hinzufügen, muss Ihr Theme viel Transparenz aufweisen. Es ist jedoch möglich, es über allen Komponenten zu platzieren, indem Sie den z-index mit CSS ändern. Sie sollten auch mix-blend-mode anpassen, um die Sichtbarkeit zu verbessern.

div#watermark-background {
  z-index: 99999;
  mix-blend-mode: multiply;
}
  • Diese Komponente wird mit sinnvollen Standardeinstellungen geliefert, die bei den meisten hellen Themes gut funktionieren sollten. Das Hinzufügen eines Wasserzeichens zu dunklen Themes ist jedoch knifflig, da es wahrscheinlich größere Auswirkungen auf die Lesbarkeit hat. Ich ermutige Sie dringend, die Einstellungen und das CSS anzupassen, um herauszufinden, was in Ihrem Fall am besten funktioniert.

  • Da das Wasserzeichen in einem div gerendert wird, kann es von jedem Benutzer, der die Entwicklertools im Browser zu verwenden weiß, ausgeblendet werden. Es wird wahrscheinlich für 99% der nicht-technischen Benutzer seinen Zweck erfüllen, aber es ist wichtig zu wissen, dass es keine narrensichere Lösung ist.

Screenshots

Desktop-Ansicht:

Mobile Ansicht:

|||
|-|-|-|
| : eyeglasses:|Vorschau| Discourse Watermark - Theme Creator|
| : hammer_and_wrench:|Repository| Discourse-Watermark |
| : question:|Installationsanleitung|So installieren Sie ein Theme oder eine Theme-Komponente|
| : open_book:|Neu bei Discourse Themes?| Anfängerleitfaden zur Verwendung von Discourse Themes|

Bearbeiten:

  • 12.01.2022: Neue Einstellungen hinzugefügt, um zu steuern, wann das Wasserzeichen angezeigt wird.
11 „Gefällt mir“

Kann es kategoriebasiert sein? Einige von uns benötigen möglicherweise nur für eine bestimmte Kategorie ein Wasserzeichen.

4 „Gefällt mir“

Ach, ich verstehe, ich habe das mit Wasserzeichen für Bilder verwechselt. Ich werde den Titel bearbeiten, damit er klarer ist. Eine eher ungewöhnliche Anwendungsmöglichkeit… Mir sind keine Websites bekannt, die jede Webseite mit einem Wasserzeichen versehen.

4 „Gefällt mir“

Gute Idee, ich werde mein Bestes tun, um diese Funktionalität bald zu entwickeln.

@codinghorror, danke für die Klarstellung des Titels.

Ich stimme zu, dass es eine ungewöhnliche Anwendungsmöglichkeit ist. So wie es jetzt ist, denke ich, dass es hauptsächlich für private Foren in Unternehmen mit einer paranoiden Sicherheitsabteilung nützlich ist, wie z. B. Unternehmen im Finanzsektor.

Es war ein erstes MVP. Ich werde Funktionalitäten aus dem Feedback der Community hinzufügen.

Hoffentlich kann ich bald den von Mr. X vorgeschlagenen kategoriebasierten Filter hinzufügen, der ihn für ein breiteres Publikum nützlicher macht.

1 „Gefällt mir“

Ich habe gerade einen PR eingereicht: skip display if title matches by pfaffman · Pull Request #1 · megothss/discourse-watermark · GitHub

Dies fügt eine Theme-Einstellung include_if_title_matches hinzu, die standardmäßig leer ist. Wenn die Einstellung leer ist, wird nichts geändert.

Wenn die Einstellung einen Wert hat, muss SiteSetting.title übereinstimmen, damit das Wasserzeichen angezeigt wird.

Anwendungsfall ist, das Wasserzeichen auf einer Staging-Site anzuzeigen, aber nicht auf der Produktions-Site, ohne Änderungen an der Datenbank vornehmen zu müssen. Wenn include_if_title_matches auf „staging“ gesetzt ist und „staging“ in SiteSetting.title der Staging-Site vorhanden ist (gesetzt in einer ENV-Variable, damit es bestehen bleibt, wenn die Produktionsdatenbank darauf wiederhergestellt wird), wird das Wasserzeichen auf der Staging-Site angezeigt, aber nicht auf der Produktions-Site.

Mit dieser Änderung werde ich dies auf jeder Website installieren, die eine Staging-Site hat.

1 „Gefällt mir“

Ich habe ihn heute zusammengeführt. Leicht angepasst. Der Einstellungsname wurde in if_site_title_matches umbenannt.

Können Sie versuchen zu prüfen, ob der letzte Commit auf Ihren älteren Instanzen funktioniert?

Ich habe gerade eine neue Version veröffentlicht, die es ermöglicht, das Wasserzeichen in bestimmten Kategorien, Tags oder URLs anzuzeigen.

Mit den neuen Optionen denke ich, dass dies viel mehr Anwendungsfälle abdecken wird.

5 „Gefällt mir“

Ich kann bestätigen, dass es sowohl auf meiner Produktions- als auch auf meiner Staging-Website funktioniert. Die erstere funktionierte mit Discourse.siteSettings.xxx, als ich daran arbeitete (ich werde ein Upgrade durchführen, das dies meiner Meinung nach ändern könnte).

Es ist eine große Hilfe, meine Staging-Website mit dem Wasserzeichen darauf zu sehen. Danke für das Thema!

4 „Gefällt mir“

Ist es möglich, eine Option hinzuzufügen, um ein (funktional) unsichtbares Wasserzeichen zu erstellen? Sagen wir, ein oder zwei Farbwerte vom Hintergrund abweichend und unter allem anderen? Wir könnten dann jeden Screenshot ansehen und nach diesen Farbwerten suchen, um den Benutzernamen zu entdecken.

Der Anwendungsfall ist nicht, Screenshots abzuschrecken, sondern herauszufinden, welcher Benutzer Screenshots macht und Beiträge aus einem privaten Forum verteilt.

Alternativ, da unser Forum automatisch zwischen hellem und dunklem Modus wechselt, ist es möglich, zwei Kopien des Themas auszuführen, um die Farbwerte fest zu codieren? Oder vielleicht die Wasserzeichenfarbe als Einstellung pro Thema festzulegen?

Vielen Dank dafür. Könnte die perfekte Lösung für uns sein.

1 „Gefällt mir“

Vielleicht, wenn Sie sie davon abhalten können, werden sie aufhören und es wird nicht wichtig sein, wer es war?

Ich denke, es wird schwierig sein, die Farbe je nach aktuellem Thema zu ändern. Wenn Sie versuchen wollen, jemanden zu fangen, indem Sie ein geheimes Wasserzeichen anbringen, dann wäre es am besten, das andere Thema zu deaktivieren.

1 „Gefällt mir“

@baylands,

[quote=“baylands, post:8, topic:214108”]
Ist es möglich, eine Option hinzuzufügen, um ein (funktional) unsichtbares Wasserzeichen zu erstellen? Sagen wir, ein oder zwei Farbwerte vom Hintergrund abweichend und unter allem anderen? Wir könnten dann jeden Screenshot ansehen und nach diesen Farbwerten suchen, um den Benutzernamen zu ermitteln.

Der Anwendungsfall ist nicht, Screenshots abzuschrecken, sondern herauszufinden, welcher Benutzer Screenshots macht und Beiträge aus einem privaten Forum verteilt.
[/quote]Theoretisch ist es möglich. Aber ich würde es sorgfältig testen, bevor ich es in der Produktion verwende. Da in Ihrem Anwendungsfall fast kein Kontrast zwischen dem Wasserzeichen und der Hintergrundfarbe besteht, besteht eine ziemlich gute Chance, dass diese Informationen je nach Format und den angewendeten Einstellungen beim Hochladen bei der Komprimierung verloren gehen können.

Der primäre Anwendungsfall für diese Komponente ist die Abschreckung von Screenshots, aber Sie können Ihren Ansatz ausprobieren und sehen, ob er funktioniert. Das wäre ein Anwendungsfall, über den ich noch nie nachgedacht habe.

Es ist möglich, diese Komponente gleichzeitig mit hellen und dunklen Themen zu verwenden. Das ist ein Anwendungsfall, über den ich bei der Entwicklung nachgedacht habe. Sie müssen nicht einmal mehrere Kopien derselben Komponente ausführen.

Die Einstellung color unterstützt die Verwendung einer CSS-Variable. Zum Beispiel ist der Standardwert für diese Einstellung var(--primary-low).

Solange also eine CSS-Variable, die mit den richtigen Farben gesetzt ist, in allen Themen verwendet wird, die mit einem Wasserzeichen versehen werden sollen. Sie sollten gut zurechtkommen!

Wenn Sie es versuchen, lassen Sie mich bitte wissen, ob es wie erwartet funktioniert.

2 „Gefällt mir“

Vielen Dank, das klärt viele Dinge!

Ich bin auf ein Problem gestoßen, als ich die Variablenroute ausprobiert habe.

Unser einziges Theme ist das helle Theme, das die helle und dunkle Farbpalette für seinen automatischen Dunkelmodus verwendet.

Ich kann eine Variable “–secondary-watermark” zum CSS des hellen Themes hinzufügen, aber sie ändert sich nicht, wenn ich die dunkle Farbpalette auf dem hellen Theme verwende.

Ich kann nicht herausfinden, wie ich die Variable zur Farbpalette und nicht zum Theme hinzufügen kann. Daher funktioniert die Überschreibung des hellen Themes nur mit der hellen Farbpalette, und wenn die Farbpalette automatisch auf dunkel umschaltet, wird das Wasserzeichen sofort sichtbar.

Es ist eine seltsame Eigenart, über die ich eine Weile nachdenken musste. Wissen Sie zufällig, ob man Berechnungen mit einer Variablen durchführen kann? So dass ich --secondary-watermark als --secondary minus 10 definieren könnte? Oder so etwas? Wenn ja, denke ich, dass das die Lösung wäre.

Unser Anwendungsfall ist zugegebenermaßen etwas speziell. Ich bezweifle, dass ein sichtbares Wasserzeichen davon abhalten würde, da die Leute versuchen würden, einen Weg zu finden, es zu umgehen. Wir sind eine geschlossene Mitgliedergruppe und müssen in der Lage sein, diejenigen auszusperren, die Screenshots verbreiten. Das ist uns wichtiger.

Nochmals vielen Dank!

1 „Gefällt mir“

Ich habe es mit der Funktion if is-light-color-scheme erhalten. Funktioniert genau wie erwartet. Danke!

3 „Gefällt mir“

Das ist eigentlich großartig für uns, wir haben immer wieder private Forenbeiträge in sozialen Medien von Leuten erhalten, die in unsere Gruppe eingedrungen sind, um uns schlecht aussehen zu lassen. Dies würde dies verhindern oder es uns leicht ermöglichen, die störenden Benutzer zu blockieren. Danke @saquetim für die Entwicklung.

4 „Gefällt mir“

Sie haben einige Deprecations.

deprecate-shim.js:33 DEPRECATION: [THEME 15 'discourse-watermark'] Die Verwendung des Ember Global ist veraltet. Sie sollten stattdessen das Ember-Modul oder die spezifische API importieren. [deprecation id: ember-global] Weitere Details finden Sie unter https://deprecations.emberjs.com/v3.x/#toc_ember-global.
DEPRECATION: [THEME 15 'discourse-watermark'] Die Verwendung von `run.schedule` ist veraltet. Importieren Sie stattdessen den Wert direkt von @ember/runloop:

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

Ich würde versuchen zu helfen, aber ich lösche gerade mein eigenes :fire:

2 „Gefällt mir“

Das ist persönlich. :rofl:

Ich muss es auch refaktorieren, um von Widgets wegzukommen.
Das ist nicht mehr nötig.

Ich werde versuchen, es zu reparieren, sobald ich etwas Freizeit habe. :wink:

3 „Gefällt mir“

Es funktioniert nicht sehr gut mit dem Theme, das ich verwende. Mehr Anpassungsoptionen wären großartig, wie zum Beispiel die Möglichkeit zu entscheiden, wie viel Platz das Wasserzeichen auf der Seite einnimmt (damit es nur den Beitrag Inhalt/Hintergrund der Seite einnimmt, nicht z. B. die Kopfzeile beim Durchsuchen von Abschnitten).

Bezüglich meines Themes, egal welchen Farbwähler-CSS ich verwende und egal wie hell die Farbe ist, der Text/SVG erscheint dunkel/schwarz.

1 „Gefällt mir“

Gibt es ein Update dazu? @saquetim

2 „Gefällt mir“

Gute Komponente, aber sie unterstützt Ember 5 nicht?
Ich erhalte den Fehler: ReferenceError: Ember is not defined,
meine Instanz Ember-Version ist v5.5.0.
@saquetim

1 „Gefällt mir“

Ich werde versuchen, bald Zeit zu finden, um an einer kompatiblen Version zu arbeiten.

1 „Gefällt mir“

Hallo @saquetim. Hattest du schon Gelegenheit, dir das anzusehen? Sieht so aus, als wäre es immer noch kaputt:

2 „Gefällt mir“