사이트
소개
저희는 붙여넣은 파일을 존중하는 작은 개발자 도구를 만듭니다.
왜 만들었나
YAML → JSON 변환기는 부족하지 않습니다. 부족한 것은 YAML이 깨졌을 때 도움이 되는 변환기입니다 — 그리고 그때야말로 한 줄짜리 스크립트가 아니라 도구가 진짜 필요한 유일한 순간입니다.
이것을 만들기 전에 가장 인기 있는 변환기 열다섯 개를 살펴봤습니다. 하나는 모든 실패를 "An error has occured"로 보고합니다 — 철자가 틀렸고 줄 번호도 없습니다. 다른 하나는 "Error: Not a valid value"라고 합니다. 세 번째는 소스 코드에서 복사 버튼이 비활성화되어 있습니다. 네 번째는 사용자 자신의 기기에서 실행되는 변환에 48시간에 9달러를 청구합니다. 여럿은 공유 링크를 제공하기 위해 설정을 자기 서버로 보내며, 적어도 하나는 그 링크를 기본적으로 공개합니다.
무엇이 다른가
모든 파싱 오류는 행동으로 옮길 수 있는 한 문장으로 번역되어 정확한 줄과 열에 고정되고 편집기에 표시됩니다. 닫히지 않은 괄호와 따옴표 — 대부분의 파서가 완전히 다른 곳의 들여쓰기 문제로 잘못 보고하는 것 — 는 개별적으로 감지되며, 닫히지 않은 구분자를 가리킵니다.
또한 저희가 찾은 다른 어떤 변환기도 하지 않는 YAML 1.1과 1.2의 차이에 대해서도 경고합니다. country: no가 문자열 "no"를 뜻하느냐 false를 뜻하느냐의 차이이며, 실제 배포를 망가뜨려 왔습니다.
작동 방식
사이트는 정적입니다. 변환은 브라우저에서 js-yaml로 이루어지고, 포매터는 yaml 패키지를 사용하며 그 구체 구문 트리가 주석 보존을 가능하게 합니다. 편집기는 CodeMirror 6로, 페이지가 상호작용 가능해진 뒤에 불러오므로 첫 화면 표시를 지연시키지 않습니다. 백엔드도, 데이터베이스도, 붙여넣은 내용에 대한 분석도 없습니다.
중요하게 여기는 것
목표는 무거운 플랫폼이 되는 것이 아닙니다. 일상적인 텍스트 형식 작업을 덜 성가시게 만드는 것입니다: 명확한 오류 메시지, 예측 가능한 출력, 빠른 페이지, 그리고 사용자와 하려는 일 사이에 계정 장벽이 없는 것.
절대 하지 않을 것
- 가입을 요구하는 것.
- 변환을 측정하거나 제한하거나 상한을 두는 것.
- 기능을 잠금 해제하려면 페이지를 공유하라고 요구하는 것.
- 붙여넣은 내용을 서버로 보내는 것 — 보낼 곳 자체가 없습니다.