나무위키 강제개행 버그
1. 개요
나무위키에서 문서를 편집할 때 서술에 줄 바꿈을 넣지 않았음에도 의도치 않게 줄이 바뀌는 버그를 가리킨다. 발생한 시점은 명확하지 않지만 2017년 3월 안팎으로 예상된다.
2. 상세
나무위키뿐만 아니라 블로그, 카페 등 웬만한 웹사이트가 그러하지만, 문서를 작성할 때 문서 줄 바꿈(엔터)을 사용하지 않고 왼쪽부터 글을 계속 쭉 쓰다가 오른쪽 끝에 도달하면 자동으로 다음 줄로 넘어간다. 만약 그렇게 내려가지 않는다면 아래쪽에 좌우로 움직이는 스크롤 바가 생겨서 문서를 작성하는데 큰 불편을 겪게 된다. 당연하지만 표시만 봐서는 줄이 바뀐 것처럼 보이지만 실제로 줄이 바뀌는 것은 아니다.
하지만 줄의 오른쪽 끝 부분에서 스페이스 바를 누를 경우 글이 이어지지 않고 마치 엔터를 친 것처럼 나뉘게 된다. 또한 길이가 길어서 두 줄에 걸쳐서 표시되는 단어를 두 번째 줄의 왼쪽 끝에서 스페이스 바를 눌러도 똑같은 현상이 발생한다. 편집 탭에서는 정상적으로 띄어쓰기가 된 문장과 버그가 일어난 문장이 똑같이 보이기 때문에 미리보기 탭을 열어보거나 저장을 하지 않는 이상 둘을 구분할 수 있는 방법은 문장에 공백이나 줄 바꿈을 더 넣어서 확인하는 방법밖에 없다. 편집창의 좌·우 폭이 좁아지면 상대적으로 좌·우 끝에서 띄어쓰기를 할 상황이 많아지므로 특히 웹 브라우저 창을 좁게 한 상태나 모바일 편집에서 자주 발생한다.
나무위키만 그런 게 아니라 Ask.fm이나 워드프레스 등의 다른 웹사이트 입력기에서도 동일한 버그가 목격되고 있다.
3. 발생 구조
[image]
예를 들어 위와 같은 문서에서 버그가 발생한다고 가정하면, '기록 하고' 부분으로 이어지는 게 아니라, 저장을 누르면 '기록 (줄 바꿈) 하고'으로 인식되는 경우다. 따라서 위 예시에서 버그가 발생했다고 가정한다면...
처럼 줄이 바뀐다고 볼 수 있겠다.
위와 같은 버그가 한번 발생하면 같은 문장에서는 같은 위치에서 띄어쓰기를 하게 되므로 강제 줄 바꿈이 계속 일어나게 된다. 이럴 경우에는 위쪽에 있는 줄에 공백을 집어넣어서 버그 발생 구간을 아래쪽으로 내린 뒤 강제 줄 바꿈이 된 곳을 백 스페이스 키로 지우고 공백을 지우면 된다. 참고로 버그가 일어났는지 파악하려면 PC의 경우 트리플 클릭으로 문단 전체를 드래그 해보면 된다. 버그가 발생했다면 발생한 지점에서 드래그가 끊긴다. 그리고 이 버그가 일어났다면 편집창 내의 스크롤이 아닌 크롬 자체의 스크롤이 1줄 내려가므로 스크롤이 내려가는 순간 버그가 일어났음을 알 수 있다.
버그가 발생한 문서의 예시. '제작'과 '무산' 사이가 강제 줄 바꿈이 되어있다. diff 문서로 볼 때는 문서편집 영역 크기가 다르지만, 원본 문서 편집 상태의 문서편집 영역에서는(PC 크롬 1600×900 해상도를 기준으로) '제작'이 오른쪽 끝에 도달하고 '무산'이 아래쪽으로 내려간다. 이 경우 수동적으로 다시 편집해서 버그를 수정할 수밖에 없다.
다만 이 버그가 발생했다고 그 문서에 모든 영역에서 강제 줄 바꿈이 벌어지는 게 아니고, 해당 문단에 한해서 발생한다. 가끔 수정을 하다가 같은 문단에서 직접 손은 대지 않은 부분이지만 수정하는 과정에서 줄이 넘어갈 경우 본 버그가 발생할 때도 있다. 한 문단에서 여러 번 그런 경우가 발생할 경우 전부 강제 줄 바꿈이 일어나는 경우도 있다.
현재 해당 버그는 크롬 자체 내지는 크로뮴 프로젝트 소스 코드가 포함되어 있는 웹 브라우저의 버그인 것으로 추정되며, 파이어폭스 등 다른 브라우저에서는 발견되지 않는다.
각주 내에서 이 버그가 발생할 경우, 각주는 각주 글 내에 개행이 발생하면 각주로 인식하지 못하기 때문에 각주가 아예 깨져 버리는 문제가 발생한다. 아래는 예시:
이러한 상황들은 약간의 꼼수를 부려서 회피할 수 있다. 가령 위의 예시의 경우, 7위의 '7'과 '위' 사이에 엔터키를 입력하여 줄을 바꾼다. 이렇게 되면 '기록 하고'가 더 이상 해당 행의 끝 부분에 위치하지 않기 때문에 줄 바꿈 없이 정상적으로 띄어쓰기를 넣을 수 있다. 다음 '7'과 '위' 사이의 줄 바꿈을 취소하면 된다. 타이핑할 때에 빈칸이 줄 바꿈으로 인식되는 버그이므로, 이미 정상적으로 입력된 빈칸은 줄 바꿈으로 바뀌지 않는다.
[1] 강제개행 버그 각주 예시