pukiwiki 문법을 markdown 문법으로 변환하는 pukiwiki2markdown이라는 도구를 공개했습니다.

그렇다고는 해도, 1년전 정도에 쓴 툴입니다만,

「그러고 보니 Qiita에 어떻게 구현했는지, 라든지 쓰지 않았어―」

라고 생각했기 때문에 공양이 테라 기사했습니다. (∩´∀`)∩

데모 사이트





화면을 향해 왼쪽의 input 에 pukiwiki 의 문장을 넣으면 오른쪽에 변환 결과가 표시됩니다.

변환 결과를 클립보드에 복사할 수도 있습니다.

소스 코드 (Github)



API처럼 움직이는 엔드포인트



다음 명령을 실행하여 pukiwiki 문법에서 markdown 형식으로 변환할 수 있습니다.

body 안에 문장을 넣는 느낌이군요.
curl -XPOST https://pukiwiki2markdown.saino.me/api/v1/convert \
     -H 'Content-Type: application/json' \
     -d '{"body": "*Header1\n**Header2\n"}'

구현하는 데 사용한 기술



백엔드


  • PHP + Slim Framework 3
  • h tp // w w.ぃmf 라메를 rk. 코m/

  • pukiwiki 코드 본문

  • Slim Framework 는 본가의 사이트에서도 부르고 있는 대로 PHP 마이크로프레임워크입니다.
    선정 이유로는 「pukiwiki 의 코드를 그대로 재이용하고 싶었기 때문」이라고 하는 것에 다합니다.

    pukiwiki 문법의 파서를 쓸까~라고도 생각했습니다만, pukiwiki 의 원 코드를 보면 고리고리에 논리가 쓰여져 있었으므로, 「이것은 원래의 코드를 재이용하는 것이 압도적으로 빠르다」 라고 생각해, 변환하는 로직도 PHP 측에 옮겼습니다.

    (변환 도구이므로 비교적 일회용 일회용입니다)

    프런트 엔드


  • React
  • webpack

  • 이쪽은 이른바 「보통의 프런트 엔드」라고 하는 느낌으로, 아무것도 바뀐 것은 하지 않습니다.

    단지 단순히 텍스트를 입력해 변환 결과를 받을 뿐이므로, 그렇게 React 의 혜택은 받지 않습니다.

    마지막으로



    자발적으로 세우고 싶은 분은 리포지토리 안에 docker-compose.yml 를 동고하고 있으므로 시험해 주세요.
    Docker image 제공은 지금까지 생각하지 않습니다. 사실은 하는 것이 좋을지도 모르지만, 변환하는 것만의 도구이므로.

    향후 어떠한 개선점이 있을까~라고 생각했습니다만, 현재로서는 비교적 나쁘지 않은 정밀도였으므로, 이대로 잠시 운용할지도 모릅니다.

    뭔가 의견이 있으면 Issue나 Pull Request는 받아들이고 있기 때문에, 잘 부탁드립니다 ٩(๑>◡<๑)۶

    좋은 웹페이지 즐겨찾기