علامة مائية لصفحة ويب Discourse

يضيف مكون السمة هذا علامة مائية إلى الصفحة.

من الممكن إضافة أي من المعلومات التالية:

  • رسالة نصية قصيرة
  • اسم المستخدم المسجل حاليًا
  • الطابع الزمني الذي تم فيه عرض الصفحة

تسمح العديد من الإعدادات بتخصيص كيفية ووقت عرض العلامة المائية:

  • show_watermark_in_background: إذا تم تمكين هذا الخيار، فسيتم إنشاء وعرض علامة مائية على الصفحة.

  • scroll_enabled: إذا تم تمكين هذا الخيار، فسيتم تمرير العلامة المائية مع الصفحة.

  • only_in_categories: قائمة الفئات التي يجب عرض العلامة المائية فيها.

  • except_in_categories: قائمة الفئات التي لا يجب عرض العلامة المائية فيها.

  • only_in_tags: قائمة العلامات التي يجب عرض العلامة المائية فيها.

  • except_in_tags: قائمة العلامات التي لا يجب عرض العلامة المائية فيها.

  • if_site_title_matches: عرض العلامة المائية فقط إذا كان عنوان الموقع يطابق هذا التعبير العادي. انظر Discourse Web Page Watermark - #5 by pfaffman لحالة استخدام.

  • or_if_url_matches: أو عرض العلامة المائية إذا كان عنوان URL يطابق أيًا من التعبيرات العادية في القائمة. لاحظ أن عنوان URL الذي تم اختباره لا يتضمن اسم المضيف.

  • tile_width: عرض (بالبكسل) للبلاطة التي تحتوي على معلومات العلامة المائية.

  • tile_height: ارتفاع (بالبكسل) للبلاطة التي تحتوي على معلومات العلامة المائية.

  • color: لون نص العلامة المائية.

  • text_align: كيفية محاذاة النص بالنسبة لإحداثيات x، y عند الرسم.

  • text_rotation: الزاوية التي يجب تدوير النص بها بالنسبة لإحداثيات x، y عند الرسم.

  • display_text: النص المراد عرضه في العلامة المائية.

  • display_text_font: الخط المستخدم لعرض النص (تم تحليله كقيمة خط CSS).

  • display_text_x: إحداثي المحور السيني للنقطة التي يبدأ عندها رسم النص في لوحة البلاطة، بالبكسل.

  • display_text_y: إحداثي المحور الصادي للنقطة التي يبدأ عندها رسم النص في لوحة البلاطة، بالبكسل.

  • display_username: إذا تم تمكين هذا الخيار، فستعرض العلامة المائية اسم المستخدم الحالي.

  • display_username_font: الخط المستخدم لعرض اسم المستخدم (تم تحليله كقيمة خط CSS).

  • display_username_x: إحداثي المحور السيني للنقطة التي يبدأ عندها رسم اسم المستخدم في لوحة البلاطة، بالبكسل.

  • display_username_y: إحداثي المحور الصادي للنقطة التي يبدأ عندها رسم اسم المستخدم في لوحة البلاطة، بالبكسل.

  • display_timestamp: إذا تم تمكين هذا الخيار، فستعرض العلامة المائية الطابع الزمني الذي تم فيه عرض الصفحة.

  • display_timestamp_format: كيفية تنسيق الطابع الزمني. للحصول على معلومات حول التنسيقات الصالحة، يرجى الرجوع إلى Moment.js | Docs.

  • display_timestamp_font: الخط المستخدم لعرض الطابع الزمني (تم تحليله كقيمة خط CSS).

  • display_timestamp_x: إحداثي المحور السيني للنقطة التي يبدأ عندها رسم الطابع الزمني في لوحة البلاطة، بالبكسل.

  • display_timestamp_y: إحداثي المحور الصادي للنقطة التي يبدأ عندها رسم الطابع الزمني في لوحة البلاطة، بالبكسل.

محاذير

  • إذا كنت تنوي إضافة علامة مائية إلى مثيل المنتدى الخاص بك، فمن المحتمل أن ترغب في وضع علامة على لقطات الشاشة المأخوذة منه. سواء كان ذلك لتتبعها إليك أو لتثبيط المستخدمين عن التقاط لقطات شاشة ونشرها على وسائل التواصل الاجتماعي على سبيل المثال.
    ولكن من المهم أن تدرك أن إضافة العلامة المائية ستؤثر على سهولة القراءة. هناك مفاضلة يجب إجراؤها بين تجربة المستخدم ووجودها.

  • يتم عرض العلامة المائية في div أسفل الصفحة. اعتمادًا على السمة الخاصة بك، قد تغطي المكونات أعلاه، لذلك إذا اخترت إضافتها إلى صفحتك، فيجب أن تتمتع السمة الخاصة بك بالكثير من الشفافية. من الممكن مع ذلك وضعها فوق جميع المكونات عن طريق تغيير z-index باستخدام CSS. يجب عليك أيضًا ضبط mix-blend-mode لتحسين الرؤية.

div#watermark-background {
  z-index: 99999;
  mix-blend-mode: multiply;
}
  • يأتي هذا المكون مع إعدادات افتراضية معقولة يجب أن تعمل بشكل جيد مع معظم السمات الفاتحة. ومع ذلك، فإن إضافة علامة مائية إلى السمات الداكنة أمر صعب نظرًا لأنها ستؤثر على الأرجح على سهولة القراءة. أشجعك بشدة على تعديل الإعدادات و CSS للعثور على ما يناسب حالتك.

  • نظرًا لأن العلامة المائية يتم عرضها في div، يمكن لأي مستخدم يعرف كيفية استخدام أدوات المطور في المتصفح إخفاءها. ستقوم بعملها المقصود على الأرجح لـ 99٪ من المستخدمين غير التقنيين، ولكن من المهم أن تدرك أنها ليست حلاً مضمونًا.

لقطات الشاشة

عرض سطح المكتب:

عرض الجوال:

|||
|-|-|-|
| : eyeglasses:|معاينة| منشئ سمات Discourse Watermark|
| : hammer_and_wrench:|المستودع| Discourse-Watermark |
| : question:|دليل التثبيت|كيفية تثبيت سمة أو مكون سمة|
| : open_book:|جديد في سمات Discourse؟| دليل المبتدئين لاستخدام سمات Discourse|

تعديل:

  • 2022-01-12: تمت إضافة إعدادات جديدة للتحكم في وقت عرض العلامة المائية.
11 إعجابًا

هل يمكن أن يكون على أساس الفئة؟ قد يحتاج البعض منا إلى فئة معينة فقط تحتاج إلى علامة مائية.

4 إعجابات

حسنًا، فهمت، لقد خلطت هذا مع العلامات المائية للصور. سأقوم بتحرير العنوان لجعله أكثر وضوحًا. حالة استخدام غير عادية نوعًا ما.. لست على علم بأي مواقع تقوم بوضع علامة مائية على كل صفحة ويب.

4 إعجابات

فكرة رائعة، سأبذل قصارى جهدي لتطوير هذه الوظيفة قريبًا.

@codinghorror، شكرًا لك على توضيح العنوان.

أتفق على أنها حالة استخدام غير عادية. كما هي الآن، أعتقد أنها مفيدة في الغالب للمنتديات الخاصة في الشركات ذات القسم الأمني ​​المهووس، مثل الشركات في القطاع المالي.

لقد كانت أول منتج قابل للتطبيق بحد أدنى. سأضيف وظائف بناءً على التعليقات الواردة من المجتمع.

آمل أن أتمكن قريبًا من إضافة المرشح المستند إلى الفئة الذي اقترحه السيد إكس، وسيؤدي ذلك إلى جعله أكثر فائدة لجمهور أوسع.

إعجاب واحد (1)

لقد قدمت للتو طلب سحب: skip display if title matches by pfaffman · Pull Request #1 · megothss/discourse-watermark · GitHub

يضيف هذا إعداد سمة include_if_title_matches، وهو فارغ افتراضيًا. إذا كان الإعداد فارغًا، فلن يتغير شيء.

إذا كان الإعداد يحتوي على قيمة، فيجب أن يتطابق SiteSetting.title حتى يظهر العلامة المائية.

حالة الاستخدام هي عرض العلامة المائية على موقع تجريبي، ولكن ليس على موقع الإنتاج دون الحاجة إلى تغييرات في قاعدة البيانات. تعيين include_if_title_matches إلى “staging” ووجود “staging” في SiteSetting.title للموقع التجريبي (تم تعيينه في متغير بيئة حتى يستمر عند استعادة قاعدة بيانات الإنتاج إليه)، تظهر العلامة المائية على الموقع التجريبي ولكن ليس على موقع الإنتاج.

مع هذا التغيير، سأقوم بتثبيته على كل موقع يحتوي على موقع تجريبي.

إعجاب واحد (1)

لقد قمت بدمجها اليوم. قمت بتعديلها قليلاً. تم تغيير اسم الإعداد إلى if_site_title_matches.

هل يمكنك المحاولة والتحقق مما إذا كان آخر تثبيت يعمل في مثيلاتك القديمة؟

لقد أصدرت للتو إصدارًا جديدًا يسمح بعرض العلامة المائية في فئات أو علامات أو عناوين URL محددة.

مع الخيارات الجديدة، أعتقد أنها ستغطي المزيد من حالات الاستخدام.

5 إعجابات

يمكنني التأكيد على أنه يعمل في كل من مواقع الإنتاج والمواقع التجريبية الخاصة بي؛ كان الموقع الأول يعمل مع Discourse.siteSettings.xxx عندما كنت أعمل على هذا (أنا على وشك إجراء ترقية أعتقد أنها قد تغير ذلك).

إنه يساعد كثيرًا رؤية موقعي التجريبي مع العلامة المائية عليه. شكرًا على السمة!

4 إعجابات

هل من الممكن إضافة خيار لإنشاء علامة مائية (غير مرئية وظيفيًا)؟ على سبيل المثال، قيمة لون أو قيمتين بعيدًا عن الخلفية، وتحت كل شيء آخر؟ يمكننا بعد ذلك النظر إلى أي لقطة شاشة والبحث عن قيم الألوان هذه لاكتشاف نص اسم المستخدم.

حالة الاستخدام ليست لردع لقطات الشاشة ولكن لمعرفة المستخدم الذي يلتقط لقطات الشاشة ويوزع المشاركات من منتدى خاص.

بدلاً من ذلك، نظرًا لأن منتدانا يستخدم التبديل التلقائي بين الوضع الفاتح والداكن، فهل من الممكن تشغيل نسختين من السمة لتشفير قيم الألوان بشكل ثابت؟ أو ربما جعل لون العلامة المائية إعدادًا لكل سمة؟

شكرًا على هذا. قد يكون حلاً مثاليًا لنا.

إعجاب واحد (1)

ربما إذا استطعت ردعهم فسيتوقفون ولن يهم من كان؟

أعتقد أن جعلها تغير اللون اعتمادًا على السمة الحالية سيكون صعبًا. إذا كان ما تريده هو محاولة الإمساك بشخص ما عن طريق وضع علامة مائية سرية، فإن أفضل رهان لك هو تعطيل السمة الأخرى.

إعجاب واحد (1)

@baylands,

[quote=“baylands, post:8, topic:214108”]
هل من الممكن إضافة خيار لإنشاء علامة مائية (غير مرئية وظيفيًا)؟ على سبيل المثال، قيم لون أو لونين بعيدًا عن الخلفية، وتحت كل شيء آخر؟ يمكننا بعد ذلك النظر إلى أي لقطة شاشة والبحث عن قيم الألوان هذه لاكتشاف نص اسم المستخدم.

حالة الاستخدام ليست لردع لقطات الشاشة ولكن لمعرفة المستخدم الذي يلتقط لقطات الشاشة ويوزع المشاركات من منتدى خاص.
[/quote]نظريًا، هذا ممكن. لكنني سأختبره بعناية قبل استخدامه في الإنتاج. نظرًا لأنه في حالة الاستخدام الخاصة بك لن يكون هناك تباين تقريبًا بين العلامة المائية ولون الخلفية، فهناك فرصة جيدة جدًا لأن تضيع هذه المعلومات في الضغط اعتمادًا على التنسيق والإعدادات المطبقة عند التحميل.

حالة الاستخدام الأساسية لهذا المكون هي ردع لقطات الشاشة ولكن يمكنك تجربة نهجك ومعرفة ما إذا كان يعمل. ستكون هذه حالة استخدام لم أفكر فيها من قبل.

من الممكن استخدام هذا المكون مع كل من السمات الفاتحة والداكنة في وقت واحد. إنها حالة استخدام فكرت فيها عند تطويره. لست بحاجة حتى إلى تشغيل نسخ متعددة من نفس المكون.

يدعم إعداد color استخدام متغير CSS. على سبيل المثال، القيمة الافتراضية لهذا الإعداد هي var(--primary-low).

لذا طالما أن متغير CSS تم تعيينه بالألوان المناسبة ويتم استخدامه في جميع السمات التي تريد وضع علامة مائية عليها. يجب أن تكون جاهزًا!

إذا جربت، يرجى إخباري بما إذا كان يعمل كما توقعت.

إعجابَين (2)

شكراً، هذا يوضح الكثير من الأمور!

واجهت مشكلة عند تجربة المسار المتغير.

السمة الوحيدة لدينا هي السمة الفاتحة، والتي تستخدم لوحات الألوان الفاتحة والداكنة لوضعها التلقائي الداكن.

يمكنني إضافة متغير “–secondary-watermark” إلى CSS السمة الفاتحة، لكنه لا يتغير عند استخدام لوحة الألوان الداكنة على السمة الفاتحة.

لا يمكنني معرفة كيفية إضافة المتغير إلى لوحة الألوان بدلاً من السمة، ونتيجة لذلك، فإن تجاوز السمة الفاتحة يعمل فقط مع لوحة الألوان الفاتحة، وعندما تتحول لوحة الألوان تلقائيًا إلى داكنة، تصبح العلامة المائية مرئية على الفور.

إنها مشكلة غريبة اضطررت للتفكير فيها لفترة. على حد علمك، هل تعرف ما إذا كان يمكنك إجراء حسابات باستخدام متغير؟ بحيث يمكنني تعريف --secondary-watermark كـ --secondary ناقص 10؟ أو شيء من هذا القبيل؟ إذا كان الأمر كذلك، أعتقد أن هذا سيحل المشكلة.

حالة الاستخدام لدينا هي بالتأكيد متخصصة قليلاً. أشك في أن علامة مائية مرئية ستثني الناس عن ذلك لأنهم سيحاولون معرفة كيفية التحايل عليها. نحن مجموعة عضوية مغلقة ونحتاج إلى أن نكون قادرين على طرد الأشخاص الذين ينشرون لقطات الشاشة. هذا أكثر أهمية بالنسبة لنا.

شكراً مرة أخرى!

إعجاب واحد (1)

لقد حصلت عليها باستخدام دالة if is-light-color-scheme. تعمل تمامًا كما هو متوقع. شكرًا!

3 إعجابات

هذا رائع لنا في الواقع، فقد كنا نتلقى منشورات منتدى خاصة يتم نشرها على وسائل التواصل الاجتماعي من قبل أشخاص يتسللون إلى مجموعتنا لمحاولة تشويه سمعتنا، لذا فإن وجود هذا سيمنع ذلك أو يسمح لنا بسهولة بحظر المستخدمين المسيئين. شكرًا @saquetim على تطوير هذا.

4 إعجابات

لديك بعض الإيقافات.

deprecate-shim.js:33 إيقاف: [THEME 15 'discourse-watermark'] تم إيقاف استخدام Ember Global. يجب عليك استيراد وحدة Ember أو واجهة برمجة التطبيقات المحددة بدلاً من ذلك. [معرف الإيقاف: ember-global] انظر https://deprecations.emberjs.com/v3.x/#toc_ember-global لمزيد من التفاصيل.
إيقاف: [THEME 15 'discourse-watermark'] تم إيقاف استخدام `run.schedule`. بدلاً من ذلك، قم باستيراد القيمة مباشرة من @ember/runloop:

  import { schedule } from '@ember/runloop'; [معرف الإيقاف: deprecated-run-loop-and-computed-dot-access]

سأحاول المساعدة ولكنني أطفئ حرائقي الخاصة :fire:

إعجابَين (2)

هذا شخصي. :rofl:

أحتاج أيضًا إلى إعادة هيكلته للابتعاد عن الأدوات.
لم تعد هناك حاجة لذلك.

سأحاول إصلاحه بمجرد أن أحصل على بعض وقت الفراغ. :wink:

3 إعجابات

لا يعمل بشكل جيد جدًا مع السمة التي أستخدمها، وستكون خيارات التخصيص الإضافية رائعة، مثل القدرة على تحديد مقدار مساحة الصفحة التي تشغلها العلامة المائية (بحيث تشغل محتوى المنشور/خلفية الصفحة فقط، وليس على سبيل المثال الرأس عند تصفح الأقسام).

فيما يتعلق بالسمة الخاصة بي، بغض النظر عن محدد الألوان CSS الذي أستخدمه وبغض النظر عن مدى سطوع اللون، يظهر النص/SVG داكنًا/أسود.

إعجاب واحد (1)

هل هناك أي تحديث قادم لهذا؟ @saquetim

إعجابَين (2)

مكون جيد، ولكنه لا يدعم Ember 5؟
أتلقى الخطأ: ReferenceError: Ember is not defined،
إصدار Ember الخاص بي هو v5.5.0.
@saquetim

إعجاب واحد (1)

سأحاول إيجاد بعض الوقت للعمل على إصدار متوافق قريبًا.

إعجاب واحد (1)

مرحباً @saquetim . هل أتيحت لك الفرصة للنظر في هذا؟ يبدو أنه لا يزال معطلاً:

إعجابَين (2)