display_timestamp_format: 타임스탬프가 포맷팅되는 방식. 유효한 포맷에 대한 정보는 Moment.js | Docs 을 참조하세요.
display_timestamp_font: 타임스탬프 렌더링에 사용되는 폰트(CSS 폰트 값으로 해석됨).
display_timestamp_x: 타일 캔버스에서 타임스탬프 그리기를 시작할 지점의 x축 좌표(픽셀 단위).
display_timestamp_y: 타일 캔버스에서 타임스탬프 그리기를 시작할 지점의 y축 좌표(픽셀 단위).
주의 사항
포럼 인스턴스에 워터마크를 추가할 계획이라면 거기서 촬영한 스크린샷에 태그를 붙이는 것이 좋습니다. 이를 통해 스크린샷이 본인에게 귀속될 수 있거나, 사용자가 스크린샷을 찍어 소셜 미디어에 게시하는 것을 막을 수 있습니다. 그러나 워터마크를 추가하면 가독성이 떨어질 수 있다는 점을 인지하는 것이 중요합니다. UX와 워터마크 사용 사이에서 타협점을 찾아야 합니다.
워터마크는 페이지 아래쪽의 div에 렌더링됩니다. 테마에 따라 위쪽의 컴포넌트가 이를 가릴 수 있으므로, 페이지에 추가하는 경우 테마에 높은 투명도가 있어야 합니다. CSS를 사용하여 z-index를 변경하면 모든 컴포넌트 위에 배치할 수도 있습니다. 가시성을 개선하기 위해 mix-blend-mode도 조정해야 합니다.
이 컴포넌트는 대부분의 밝은 테마와 잘 작동하는 합리적인 기본값을 갖추고 있습니다. 그러나 어두운 테마에 워터마크를 추가하는 것은 가독성에 더 큰 영향을 미칠 가능성이 있으므로 까다롭습니다. 본인의 경우에 가장 잘 작동하도록 설정과 CSS를 조정하는 것을 강력히 권장합니다.
워터마크가 div에 렌더링되므로 브라우저의 개발자 도구를 사용하는 방법을 아는 모든 사용자는 이를 숨길 수 있습니다. 이는 아마도 99%의 비기술적 사용자에게 의도된 역할을 수행할 것이지만, foolproof(완벽한) 해결책이 아님을 인지하는 것이 중요합니다.
이 PR은 기본적으로 비어 있는 테마 설정 include_if_title_matches를 추가합니다. 이 설정이 비어 있으면 아무것도 변경되지 않습니다.
설정에 값이 있는 경우, 워터마크가 표시되려면 SiteSetting.title이 해당 값과 일치해야 합니다.
사용 사례는 데이터베이스 변경 없이 스테이징 사이트에서는 워터마크가 표시되도록 하고 프로덕션에서는 표시되지 않도록 하는 것입니다. include_if_title_matches를 "staging"으로 설정하고 스테이징 사이트의 SiteSetting.title에 "staging"을 포함시켜 두면(프로덕션 데이터베이스가 복구되어도 유지되도록 ENV 변수로 설정), 워터마크는 스테이징 사이트에서는 표시되지만 프로덕션에서는 표시되지 않습니다.
이 변경 사항 덕분에 스테이징 사이트가 있는 모든 사이트에 이 플러그인을 설치할 예정입니다.
(기능적으로) 보이지 않는 워터마크를 추가할 수 있는 옵션을 넣을 수 있을까요? 예를 들어, 배경색과 색 값이 1~2 정도 다른 값을 사용하고, 모든 요소의 아래에 배치하는 방식입니다. 이렇게 하면 스크린샷에서 해당 색 값을 찾아 사용자 이름 텍스트를 식별할 수 있습니다.
사용 목적은 스크린샷을 막기 위한 것이 아니라, 비공개 포럼의 게시물을 스크린샷으로 찍어 유포하는 사용자를 찾는 것입니다.
대안으로, 저희 포럼은 자동으로 라이트/다크 모드를 전환하므로, 색 값을 하드코딩하기 위해 테마를 두 개 복사해서 실행하는 것도 가능할까요? 아니면 워터마크 색상을 테마별 설정으로 만들 수 있을까요?
저희는 라이트 테마라는 테마 하나만 사용하고 있으며, 이 테마는 자동 다크 모드에 라이트와 다크 색상 팔레트를 사용합니다.
라이트 테마 CSS에 “–secondary-watermark” 변수를 추가할 수는 있지만, 라이트 테마에서 다크 색상 팔레트를 사용할 때 변경되지 않습니다.
테마가 아닌 색상 팔레트에 변수를 추가하는 방법을 찾지 못해서, 결과적으로 라이트 테마의 오버라이드는 라이트 색상 팔레트에서만 작동합니다. 색상 팔레트가 자동으로 다크로 전환되면 워터마크가 즉시 보이기 시작합니다.
좀 이상한 특성이어서 한동안 고민해야 했습니다. 혹시 변수로 계산을 수행할 수 있는지 아시나요? 예를 들어 --secondary-watermark를 --secondary에서 10을 뺀 값으로 정의할 수 있는지요? 그런 식으로요. 가능하다고 생각되면 그 방법이 해결책이 될 것 같습니다.
솔직히 저희 사용 사례는 다소 특이합니다. 워터마크가 눈에 보인다고 해서 사람들이 이를 우회하는 방법을 찾아내지 못하도록 막을 수는 없을 것 같습니다. 저희는 폐쇄형 멤버십 그룹이라 스크린샷을 공유하는 사람들을 제명할 수 있어야 합니다. 그 부분이 저희에게는 더 중요합니다.
이 사실 우리에게 정말 좋은 일입니다. 우리 그룹에 잠입한 사람들이 사설 포럼 게시물을 소셜 미디어에 올려 우리를 나쁘게 보이게 하려고 시도해 왔기 때문에, 이 기능이 있으면 그런 일을 막거나 문제 사용자를 쉽게 차단할 수 있습니다. 이 기능을 개발해 주신 @saquetim에게 감사드립니다.
deprecate-shim.js:33 DEPRECATION: [THEME 15 'discourse-watermark'] Usage of the Ember Global is deprecated. You should import the Ember module or the specific API instead. [deprecation id: ember-global] See https://deprecations.emberjs.com/v3.x/#toc_ember-global for more details.
DEPRECATION: [THEME 15 'discourse-watermark'] Using `run.schedule` has been deprecated. Instead, import the value directly from @ember/runloop:
import { schedule } from '@ember/runloop'; [deprecation id: deprecated-run-loop-and-computed-dot-access]
제가 사용하는 테마에서는 제대로 작동하지 않습니다. 워터마크가 페이지의 얼마나 많은 부분을 차지하는지 결정할 수 있는 등 더 많은 사용자 지정 옵션이 있으면 좋겠습니다. (예를 들어, 섹션을 탐색할 때 헤더가 아니라 게시물의 콘텐츠/페이지 배경에만 워터마크가 표시되도록 하는 것)
제 테마와 관련하여, 어떤 색상 선택기 CSS를 사용하든, 색상이 아무리 밝든, 텍스트/SVG는 어둡거나 검은색으로 표시됩니다.