1 minute read


블로그 포팅 스크립트 테스트 - 중복 내용 제거

시점 문제는 스트림 인터페이스를 쓰지 않고 기본 인터페이스 써서 processSync로 해결.

표기방식이 다른 태그 문서에 대한 처리 추가.

문제는.. 문서 형식을 따르지 않으면 포스트로 표시되지 않긴 하지만 커밋에 결국 들어가므로 private은 아예 제외해야 한다. 이것에 대한 처리도 추가 필요.

태그 목록에 대한 표기가 상당히 다양해서, 그냥 테스트 스크립트를 하나 만드는 것도 좋을 듯하다.

  • 태그 핸들러 테스트 만들기

팁대상 mochachai로 구성하는데, import하려니 아래와 같은 에러가 뜨길래 왜인가 했더니 확장자 .js를 붙여주지 않아서였다.

다시 생각해보니, 태그 리스트에서 태그 목록 정보를 추출하고, 태그 리스트를 지워주는 작업도 필요하다 보니, 각 형태별 태그 리스트를 트리로부터 추출하는 스텝도 같이 필요하게 된다.

그러면 visit이 필요한데, 굳이 두 번을 따로 돌릴 필요는 없을 것 같다. 하지만 의미상으로는 detect, remove, extract의 과정이 필요하다.

다시 생각해보니 굳이 두 번을 돌릴 필요 없긴 하지만, 그렇게 느린것도 아니고 의미상 두번 나눠서 해도 될 듯하다.

그리고, 이 태그핸들러를 어떻게 사용할 것인가 생각해 보아야 한다. handler쪽에서는 파싱해서 gfm 적용하는 등의 작업을 하고, 그 다음 이 태그핸들러를 통해 추출 및 태그 삭제를 거치고, stringify쪽으로 넘겨주어야 하므로, 태그핸들러는 플러그인 형태 함수를 노출해주어야 한다.

그런데, 생각해보니 까다로운 문제가 있다. 태그핸들러에서 추출한 정보를 핸들러가 받아서 frontmatter를 세팅해주어야 하는데, 플러그인 형태로는 트리를 리턴하므로 그게 어렵다.

tree.data 인터페이스를 사용해서 가능한 모양이다. 어떤 식으로는 다음 플러그인으로 필요한 데이터를 넘길 수만 있다면, 그 플러그인에서 변수를 할당하면 된다.

  • 태그 핸들러 테스트 대상
    • 1 라인 리스트아이템 표기
    • 멀티 라인 리스트아이템 표기
    • 1 라인 문단 표기
  • private 처리

Tags: ,

Categories:

Updated:

Comments