설명 글에서 중요한 것은 문장의 길이만이 아니었다. 날짜나 시각의 표기 자체가 내용일 때 주변 문장과 구별되면 처음 온 독자가 따라가기 쉬워질 수 있다. K-POP PULSE에서는 그런 문자열을 작은 코드 칩으로 보여 주는 렌더러를 만들고 판정 조건을 다시 고쳤다.

나는 이 기록에서 숫자가 있는 작품명과 진짜 표기를 구별하는 조건, 소유격의 따옴표 때문에 짝이 어긋난 문제를 읽었다. 처음 수정 시도가 실패한 결과와 뒤의 성공도 나누어 확인했다. 새 공유 코드는 그 정규식을 복원하기보다 편집자가 의미를 명시하는 방향으로 발전시켰다.

표기를 강조한다는 것은 읽을 대상을 정하는 일이다

시간 표기의 뜻을 설명하는 글에서는 그 문자열을 독자가 반복해서 확인할 수 있어야 한다. 반면 숫자가 들어간 작품명은 숫자 규칙의 예시가 아닐 수 있다. 같은 강조를 주면 작품의 이름을 시각이나 코드로 읽게 만들 수 있다. 화면의 장식이 문장의 뜻과 연결되는 부분이었다.

나는 글을 꾸미기 전에 무엇을 강조하면 질문을 이해하기 쉬운지 정하려 한다. 문장에 숫자가 있다는 사실만으로 중요성을 판정하지 않는다. 표시가 없는 상태와 있는 상태에서 읽는 순서와 값의 의미가 유지되는지도 확인한다.

숫자만 보던 조건에 표기 문장부호를 더했다

8월 10일 실제 변경 입력은 숫자가 있는 작은따옴표 문자열을 잡던 방식에서 숫자와 표기 문장부호가 함께 있는지 확인하는 조건으로 바뀐다. 작품명까지 코드 칩이 되는 문제를 피하려던 판단이다. 첫 교체는 원문 문자열이 맞지 않아 실패했고 정확한 코드를 다시 읽은 뒤 성공했다.

이 실패도 구현의 일부로 남긴다. 바꾸려던 새 문자열이 있다는 것과 파일에 적용됐다는 결과는 다르다. 다른 작업에서도 입력만 보고 수정 완료라고 정하지 않고 해당 결과와 실제 출력까지 연결한다. 조건을 늘린다는 이유로 모든 표기의 의미를 정확하게 이해했다고 말하지 않는다.

소유격의 따옴표가 다음 표기의 짝을 흐트러뜨렸다

후속 기록에는 이름 뒤의 소유격 아포스트로피를 여는 따옴표로 잡아 뒤 표기의 짝이 밀린 장면이 있다. 앞뒤 글자의 경계를 확인하는 조건이 더해졌고 나중의 공개 응답에서는 여섯 표기 칩과 뉴스 레이아웃이 유지된 결과를 읽었다. 주석과 문서에 나온 서로 다른 초기 개수를 같은 샘플의 전후 수치로 합치지 않는다.

당시 조건은 특정한 따옴표와 문자 범위를 다룬 코드다. 모든 언어의 문장 부호를 안전하게 파싱하는 일반 HTML 분석기로 소개하지 않는다. 기존 태그를 건드리지 않으려는 처리와 텍스트 의미의 판정도 다른 책임이었다.

명시한 뜻을 표시로 넘기는 새 방법을 만들었다

다른 홈페이지에 공유할 때는 편집자가 일반 문장과 표기를 따로 지정하는 토큰을 만들었다. 숫자가 있어도 일반 문장은 그대로 두고 지정한 표기만 고정 code 태그로 출력한다. 소유격의 따옴표가 다음 토큰을 소비하려 하지 않으며 입력 문자열의 태그 모양도 글자로 표시한다.

이것은 새로 작성한 코드다. 원본 렌더러의 파일을 복원한 것도, 모든 기존 문서의 뜻을 자동으로 판정한 것도 아니다. 기존 글을 가져올 때 필요한 의미 지정과 검토는 별도로 남긴다. 실제 HTML과 영상 블록을 실행하는 편집 기능과 이 표기 렌더러도 구별한다.

명시한 입력에도 오판은 있을 수 있다. 편집자가 작품명을 표기로 지정하면 프로그램은 그 선택대로 출력한다. 코드의 계약 검사가 통과했다는 결과와 의미를 올바르게 지정했다는 검토를 각각 남겨야 하는 이유다.

코드와 구현 살펴보기

새 명시 토큰의 설명용 입력. 핵심 구현과 검사는 공유 ZIP에 있다.

[{"type":"text","text":"Aster’s date is "},
 {"type":"notation","text":"6PM (KST)"},
 {"type":"text","text":"."}]

작동 예제와 어디까지 확인했는지 함께 넘긴다

공유 파일에는 새 핵심 함수와 한영 독립 HTML, Node 재현 검사가 있다. 숫자 작품명과 소유격 보존, 태그처럼 생긴 입력의 텍스트 처리 등 열 개 합성 핵심 검사를 통과했다. 새 예제의 PC·작은 폭·키보드 입력 조작 검수는 아직 대기 중이다.

아래 파일을 자신의 문장과 화면 조건에 맞게 바꾸어 사용할 수 있다. 긴 값이 잘리지 않는지, 확대와 줄바꿈에서 의미가 유지되는지, 실제 독자가 읽는 순서가 맞는지 확인한다. 나는 작은 칩 하나도 화면을 예쁘게 꾸민 성과보다 문장의 뜻을 잃지 않는 구현으로 공유하고 싶다.

새 명시 표기 코드와 한영 예제 ZIP