URL 하이라이팅이 사양에 맞지 않습니다

P.S. 게시물을 작성하려고 했을 때 An error occurred: Sorry, new users can only put 2 links in a post.라는 팝업이 나타났습니다. 대부분의 스팸은 링크 하나면 충분하기 때문에 이 규칙이 어떤 종류의 스팸을 방지할 수 있는지 모르겠지만, 이제 잘 포맷된 마크다운 링크 중 일부를 텍스트 기반 각주로 대체해야 합니다. 기본 마크다운 편집기에서 각주를 추가하는 과정 자체가 버그가 많고 짜증이 나서 별도의 보고서를 작성할 가치가 있습니다.


P.S.S. 마크다운 기반 참조도 링크로 계산되는 것 같습니다. 유니코드 위 첨자 숫자로 대체합니다. 이 게시글을 작성하려고 시도한 지 40분째입니다.


STD 66 / RFC 3986¹(사람이 읽기 쉽게 추출된 목록²)에 따르면, URL의 단편(fragment) 또는 쿼리(queue)에서 81개의 문자는 이스케이프 없이 사용할 수 있습니다. Swift 프로그래밍 언어의 프레임워크 "Foundation³"에서 ASCII 순서로 정렬된 이 목록은 다음과 같습니다: !$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

다음은 이러한 문자 중 일부가 포함된 URL입니다: Example Domain '()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ 보시는 것처럼 하이라이트가 특정 지점에서 잘립니다.

이 81개의 문자를 사용하여 단편에 바이너리 데이터를 인코딩하는(베이스64 방식과 유사하지만 더 컴팩트한) 제 프로젝트를 작업하면서, 현재 여러 웹사이트에서 사양에 맞는 하이라이트가 활성화되어 있는지 확인했습니다. 유사한 버그가 다른 곳(예: ~이 마지막 문자인 경우 마지막 문자를 하이라이트하지 못하는 GitHub 포럼)에도 일관성 없이 존재했지만, Discourse는 깨진 기호의 선택지가 가장 광범위합니다. 일부 문자는 미스터리한 컨텍스트에 따라 하이라이트가 깨지거나 안 깨질 수 있으므로, 포괄적인 목록을 작성할 수 있다고 생각하지 않습니다.

¹ Google rfc/rfc3986.txt
² Stack Overflow 답변 #26119120을 찾아보세요
³ Apple > Developer에서 documentation/foundation/nscharacterset/urlfragmentallowed를 찾아보세요


P.S.S.S. 일부 표준 이메일 주소도 하이라이트되지 않습니다. 제 두 번째 링크를 사용하여 https://e-mail.wtf로 가서 몇 가지 예를 확인해 보세요.

하이라이트되지 않지만 하이라이트되어야 하는 것:

orgmail(to John Doe)@example.com
“:(){ :|:& };:”@example.com
magic@[::1]

1개의 좋아요

커뮤니티에 오신 것을 환영합니다!

게시해 주셔서 감사합니다. 보고하신 내용이 엄밀히 말해 Contribute > Bug(버그)는 아닌 것 같아 Contribute > Feature(기능 요청)로 이동했습니다. 매우 기술적인 내용이라 Development(개발) 게시판이 더 적합할 수도 있습니다.

이것은 링크를 대량으로 게시하는 일회성 스팸을 방지하기 위한 신규 사용자용 제한입니다. 이곳에서 조금만 시간을 보내시면 이 제한은 자동으로 해제됩니다. 메타(meta)에서는 이 제한이 다소 엄격하다고 판단되어, 기본값인 URL 2개에서 5개로 상향 조정했습니다. 또한, 링크 개수와 관계없이 모든 스팸을 걸러내는 AI 기반 안티스팸 조치도 갖추고 있기 때문입니다.

이와 관련하여 더 많은 피드백이 있으시면 Contribute > Site feedback(사이트 피드백) 게시판에서 주제를 시작해 주세요.