justin
(Justin DiRose)
1
이 테마 구성 요소는 이제 Discourse의 핵심 기능인 코드 블록 내용을 클립보드에 복사을 대신하여 **비권장(deprecated)**되었습니다.
테마 크리에이터에서 미리보기
Git 저장소: https://github.com/discourse/discourse-copy-codeblocks
테마 또는 테마 구성 요소를 설치하는 방법?
이 테마 구성 요소는 Discourse 게시물 내의 코드 블록에 복사 버튼을 추가합니다. 코드 샘플이나 텍스트 복사가 필요한 지식 베이스 문서를 공유하는 커뮤니티에 적합합니다.
데스크톱에서는 블록에 마우스를 올리면 복사 버튼이 표시됩니다.
모바일에서는 코드 버튼이 항상 표시되지만, 코드가 너무 길 경우 첫 번째 줄이 가려지지 않도록 블록 안의 코드를 아래로 밀어냅니다.
이 기능은 ``` ```로 생성된 코드 블록에만 적용되며, 인라인 코드 블록에는 적용되지 않습니다.
이것은 코드 블록입니다.
이 텍스트를 복사하십시오.
이것은 인라인 코드 블록입니다. 여기서는 복사가 작동하지 않습니다.
이 프로젝트의 초기 개발의 상당 부분을 담당해 주신 @j.jaffeux님께 감사드립니다.
24개의 좋아요
Falco
(Falco)
2
7개의 좋아요
j.jaffeux
(Joffrey Jaffeux)
4
여러 가지가 있습니다:
- 전체 클립보드 라이브러리를 벤더링하지 않음
- jQuery에 의존하지 않음
- 이벤트 리스너가 누출되지 않음
- 여러 이벤트에 의존하지 않음
- 최신 코딩 표준을 사용
- 인용 오류가 없음
- …
모바일에서도 올바르게 작동하는지 확실하지 않습니다.
15개의 좋아요
최고입니다!!
로컬라이즈된 “복사”/“복사됨” 텍스트를 아이콘으로 교체하는 것에 대해 어떻게 생각하시나요? "복사"에는 복사 아이콘, "복사됨"에는 체크마크 아이콘을 사용하는 것이 좋을까요?
3개의 좋아요
justin
(Justin DiRose)
6
컴포넌트에 설정 항목을 추가하는 데 개방적인 입장입니다. 로컬라이즈된 텍스트를 선택한 이유는 현재 일어나는 일이 명확하게 드러나고, 텍스트는 높이가 더 짧아도 여전히 가독성이 유지되기 때문입니다. 또한, 그 미학이 해당 사용 사례에 더 잘 맞는다고 느꼈습니다.
7개의 좋아요
하나를 제거하거나 비활성화하고 노력을 통합해야 한다는 소리가 들리는데? 
7개의 좋아요
sam
(Sam Saffron)
8
사소한 문제인데, iPhone에서 복사 지연이 너무 빠른 것 같아요. 텍스트가 원래 상태로 돌아가기 전에 약 3초 동안 '복사됨’으로 표시되어야 합니다.
그래도 잘생겼네요 
8개의 좋아요
justin
(Justin DiRose)
10
여기에서 수정했습니다:
https://github.com/discourse/discourse-copy-codeblocks/commit/d1af36a4a5197dab4ca1dd62a05930088882de45
@ember/runloop과 rsvp 라이브러리의 Promise가 없는 구형 Discourse 버전에서 발생하는 몇 가지 버그도 수정했습니다. (해당 문제에 대한 보고를 해 주신 @jomaxro님께 감사드립니다)
7개의 좋아요
pfaffman
(Jay Pfaffman)
11
죄송하지만 이번에는
만으로는 부족합니다.
좋아요! 정말 멋진 기능입니다. 이 기능과 Placeholder Forms 을 함께 사용하면 정말 유용합니다.
방금 이것으로 한 일
sfdisk -d /dev/=gooddev= | sfdisk /dev/=newdev=
mdadm --manage /dev/md1 --add /dev/=newdev=
mdadm --detail /dev/md1
작동하는 모습을 확인하세요!
while true; do mdadm --detail /dev/md1|grep "Rebuild Status" ; sleep 10;done
모든 드라이브의 전원 온 시간 확인
for x in a b c d ; do smartctl -a /dev/sd$x|grep Power_On; done
12개의 좋아요
정말 마음에 들어요!
그런데 모바일에서는 복사 버튼이 탭할 때만 보이도록 할 수 있을까요? 모바일에서 화면 공간이 줄어드는 게 좀 아쉬워서, 코드 블록마다 한 줄씩 더 차지하는 게 부담됩니다:
하지만 다시 생각해보니
- 코드 블록은 그렇게까지 흔하지 않고
- 옵트인 방식이라 실제로 코드 블록 복사가 일반적인 사이트에서만 활성화할 테니
.. 그렇게 말은 해도.. 특정 코드 블록이 모바일에서 복사될 확률은 매우 낮아서, UI 대비 사용 비율이 어색한 것 같고 모바일에서는 탭 시에만 표시되는 방식이 더 나을 것 같아요?
급한 건 아닙니다.
3개의 좋아요
j.jaffeux
(Joffrey Jaffeux)
13
네, 완전히 정당한 요청입니다
저도 같은 우려를 하고 있으며, 해결책을 찾아보겠습니다.
1개의 좋아요
모바일에서는 이 방식이 더 나을 것 같습니다. 정렬은 어긋나 있지만, 개념은 이해하실 수 있을 겁니다:
(텍스트와 겹치는 등의 문제가 있지만, 탭 시 표시 방식보다 이게 더 어렵거나 쉬운 건지 확신이 서지 않습니다.
)
justin
(Justin DiRose)
15
처음에는 그렇게 되어 있었지만, 텍스트가 겹쳐서 보이지 않는 문제가 있었습니다. 탭하면 보이도록 하는 아이디어가 좋습니다. 그 부분을 검토해 보겠습니다.
1개의 좋아요
모바일에서는 훨씬 나은 타협안입니다. 노트북/데스크톱/태블릿에서는 추가로 차지되는 공간은 전혀 문제가 되지 않습니다.
1개의 좋아요
lcestou
(Lutechi)
17
안녕하세요,
이 기능을 사용하고 싶은데, Grey Amber 테마에 활성화하자마자 사이트가 가끔 느려지고 반응이 없다가 기능을 끄면 다시 정상으로 돌아옵니다.
누군가 이런 현상을 경험해 보셨나요, 아니면 이 기능이 활성화되면 VPS에 그만큼 부하가 걸리는 건가요?
사이트는 99.9%가 단일 코드 라인으로 구성되어 있고, 이 기능을 통해 코드 블록으로 전환하려던 중이었습니다. 기존 코드를 가져와 변환하려는 건 아니에요. 그런데 실제로 그런가요?
정상화되도록 시간을 좀 줘야 하는 걸까요? 사이트가 일시적으로 다운되는 일이 반복되었고, 가끔 페이지가 로드되면 오류 메시지와 함께 discourse의 다시 시도 안내가 표시되었습니다.
미리 감사드립니다.
2개의 좋아요
riking
(Kane York)
19
경미한 버그: “복사” 텍스트가 인용문에 표시될 수 있습니다. (이전 게시물보다 훨씬 경미한 문제입니다.)
button.copy-cmd가 인용문에서 제외되어야 합니다. CSS에 user-select: none을 적용하면 Ctrl-C는 수정되지만 인용문 기능은 수정되지 않습니다.
3개의 좋아요
j.jaffeux
(Joffrey Jaffeux)
20
사이트 링크를 가지고 계신가요? 테마 때문에 이런 문제가 발생한다는 건 좀 이상해 보이는데요. 페이지마다 코드 블록이 몇 개나 있나요?
j.jaffeux
(Joffrey Jaffeux)
21
여기서 여러 가지 변경 사항을 적용했습니다. 우리가 겪던 문제들은 다음과 같았습니다:
- 모바일에서의 화면 공간 부족
- 인용(quote) 시 텍스트 버그
- 텍스트 대신 아이콘을 사용하라는 요청
이 모든 문제를 해결하는 가장 명백한 해결책은… 아이콘을 사용하는 것이었습니다.
모바일에서는 오른쪽에 배치하는 것이 이제 허용됩니다. 공간 사용량이 적고 텍스트에 패딩만 적용하면 되니까요:
오직 사소한 불만 하나, 긴 첫 줄(FIRST lines)의 경우 버튼 뒤에 숨겨질 수 있습니다. 하지만 스크롤이 가능하므로 허용 가능한 수준이라고 생각합니다:
데스크톱에서는 이전과 동일하게 작동하며 인용 버그는 해결되었습니다:
가능한 성능 버그에 관해서는, 수십 개의 코드 블록이 있는 페이지를 테스트해 보았지만 문제가 0건이었습니다. 따라서 @lcestou 님, 조치를 취하기 전에 재현 사례가 필요합니다.
새로운 코드 블록을 여기서 시도해 보세요:
rsync -a file.txt file_backup.txt
rsync -a /var/www/public_html/ /var/www/public_html_backup/
7개의 좋아요
justin
(Justin DiRose)
22
이 기능이 이제 Discourse 코어에 포함되어 있습니다 
이에 따라 이 테마 컴포넌트는 이제 비추천(DEPRECATED) 상태입니다. 구형 Discourse 인스턴스에서는 계속 작동하지만, 더 이상 업데이트를 받지 않습니다.
이 정보를 반영하도록 첫 게시글(OP)을 수정했습니다.
5개의 좋아요