나무위키 강제개행 버그

 


1. 개요
2. 상세
3. 발생 구조


1. 개요


나무위키에서 문서를 편집할 때 서술에 줄 바꿈을 넣지 않았음에도 의도치 않게 줄이 바뀌는 버그를 가리킨다. 발생한 시점은 명확하지 않지만 2017년 3월 안팎으로 예상된다.

2. 상세


나무위키뿐만 아니라 블로그, 카페 등 웬만한 웹사이트가 그러하지만, 문서를 작성할 때 문서 줄 바꿈(엔터)을 사용하지 않고 왼쪽부터 글을 계속 쭉 쓰다가 오른쪽 끝에 도달하면 자동으로 다음 줄로 넘어간다. 만약 그렇게 내려가지 않는다면 아래쪽에 좌우로 움직이는 스크롤 바가 생겨서 문서를 작성하는데 큰 불편을 겪게 된다. 당연하지만 표시만 봐서는 줄이 바뀐 것처럼 보이지만 실제로 줄이 바뀌는 것은 아니다.
하지만 줄의 오른쪽 끝 부분에서 스페이스 바를 누를 경우 글이 이어지지 않고 마치 엔터를 친 것처럼 나뉘게 된다. 또한 길이가 길어서 두 줄에 걸쳐서 표시되는 단어를 두 번째 줄의 왼쪽 끝에서 스페이스 바를 눌러도 똑같은 현상이 발생한다. 편집 탭에서는 정상적으로 띄어쓰기가 된 문장과 버그가 일어난 문장이 똑같이 보이기 때문에 미리보기 탭을 열어보거나 저장을 하지 않는 이상 둘을 구분할 수 있는 방법은 문장에 공백이나 줄 바꿈을 더 넣어서 확인하는 방법밖에 없다. 편집창의 좌·우 폭이 좁아지면 상대적으로 좌·우 끝에서 띄어쓰기를 할 상황이 많아지므로 특히 웹 브라우저 창을 좁게 한 상태나 모바일 편집에서 자주 발생한다.
나무위키만 그런 게 아니라 Ask.fm이나 워드프레스 등의 다른 웹사이트 입력기에서도 동일한 버그가 목격되고 있다.

3. 발생 구조


[image]
예를 들어 위와 같은 문서에서 버그가 발생한다고 가정하면, '기록 하고' 부분으로 이어지는 게 아니라, 저장을 누르면 '기록 (줄 바꿈) 하고'으로 인식되는 경우다. 따라서 위 예시에서 버그가 발생했다고 가정한다면...
'''나무위키'''는 2015년 4월 17일(KST)에 만들어진 위키 사이트이다. 본사는 파라과이 아순시온에 있다. 접속 순위로 대한민국 7위를 기록
하고 있는 사이트다. 나라별 가장 많이 접속하는 웹사이트… 한국 1위는?
처럼 줄이 바뀐다고 볼 수 있겠다.
위와 같은 버그가 한번 발생하면 같은 문장에서는 같은 위치에서 띄어쓰기를 하게 되므로 강제 줄 바꿈이 계속 일어나게 된다. 이럴 경우에는 위쪽에 있는 줄에 공백을 집어넣어서 버그 발생 구간을 아래쪽으로 내린 뒤 강제 줄 바꿈이 된 곳을 백 스페이스 키로 지우고 공백을 지우면 된다. 참고로 버그가 일어났는지 파악하려면 PC의 경우 트리플 클릭으로 문단 전체를 드래그 해보면 된다. 버그가 발생했다면 발생한 지점에서 드래그가 끊긴다. 그리고 이 버그가 일어났다면 편집창 내의 스크롤이 아닌 크롬 자체의 스크롤이 1줄 내려가므로 스크롤이 내려가는 순간 버그가 일어났음을 알 수 있다.
버그가 발생한 문서의 예시. '제작'과 '무산' 사이가 강제 줄 바꿈이 되어있다. diff 문서로 볼 때는 문서편집 영역 크기가 다르지만, 원본 문서 편집 상태의 문서편집 영역에서는(PC 크롬 1600×900 해상도를 기준으로) '제작'이 오른쪽 끝에 도달하고 '무산'이 아래쪽으로 내려간다. 이 경우 수동적으로 다시 편집해서 버그를 수정할 수밖에 없다.
다만 이 버그가 발생했다고 그 문서에 모든 영역에서 강제 줄 바꿈이 벌어지는 게 아니고, 해당 문단에 한해서 발생한다. 가끔 수정을 하다가 같은 문단에서 직접 손은 대지 않은 부분이지만 수정하는 과정에서 줄이 넘어갈 경우 본 버그가 발생할 때도 있다. 한 문단에서 여러 번 그런 경우가 발생할 경우 전부 강제 줄 바꿈이 일어나는 경우도 있다.
현재 해당 버그는 크롬 자체 내지는 크로뮴 프로젝트 소스 코드가 포함되어 있는 웹 브라우저의 버그인 것으로 추정되며, 파이어폭스 등 다른 브라우저에서는 발견되지 않는다.
각주 내에서 이 버그가 발생할 경우, 각주는 각주 글 내에 개행이 발생하면 각주로 인식하지 못하기 때문에 각주가 아예 깨져 버리는 문제가 발생한다. 아래는 예시:
정상적인 각주의 예시[1]
깨진 각주의 예시[* 강제개행
버그 각주 예시]
이러한 상황들은 약간의 꼼수를 부려서 회피할 수 있다. 가령 위의 예시의 경우, 7위의 '7'과 '위' 사이에 엔터키를 입력하여 줄을 바꾼다. 이렇게 되면 '기록 하고'가 더 이상 해당 행의 끝 부분에 위치하지 않기 때문에 줄 바꿈 없이 정상적으로 띄어쓰기를 넣을 수 있다. 다음 '7'과 '위' 사이의 줄 바꿈을 취소하면 된다. 타이핑할 때에 빈칸이 줄 바꿈으로 인식되는 버그이므로, 이미 정상적으로 입력된 빈칸은 줄 바꿈으로 바뀌지 않는다.

[1] 강제개행 버그 각주 예시