▲GN⁺ 2025-02-24 | parent | ★ favorite | on: mdq - 마크다운을 위한 jq(github.com/yshavit)Hacker News 의견 GitHub PR은 Markdown 문서이며, 일부 조직은 모든 리뷰어가 완료해야 하는 체크리스트가 포함된 특정 템플릿을 사용함 이러한 기능을 강제하려면 복잡한 정규 표현식을 사용해야 하며, 이는 작성하기 어렵고 디버깅하기 더 어려움 GitHub는 필요한 기능을 개발하지 않고 AI에 집중하고 있음 Bitbucket은 설명 상자 외부에서 체크박스 목록을 사용하여 PR을 차단할 수 있는 기능을 제공함 이 문제를 해결할 더 나은 방법이 있으며, OP의 README에서 첫 번째 예제를 참조할 수 있음 멋진 프로젝트이며, 요즘 주로 MDX를 작성하므로 해당 방언에 대한 지원을 보는 것이 좋을 것 같음 Markdown과 같은 텍스트 기반 파일 형식이 인기를 끌었던 이유 중 하나는 정규 표현식으로 분석하고 버전 관리를 통해 관리할 수 있었기 때문임 내 작업 흐름은 Pandoc JSON AST를 통해 진행한 후 Jq를 사용하는 것임 이는 다른 입력 형식에도 작동함 공유해줘서 고맙고, 확인해보겠음 비슷한 것을 원했음 여러 가지를 시도한 후, 내가 계속 사용하고 있는 유일한 "노트 시스템"은 변경 시 자동으로 git에 커밋되는 Markdown 파일의 디렉토리임 약간의 스마트 기능을 추가하여 작업을 추적할 수 있도록 하고 싶었음 예를 들어, 완료된 작업을 정리하고, 완료되지 않은 작업을 다음 날의 저널로 전달하며, "프로젝트"에서 작업을 수집하는 것 등 이를 위해 markdown-rs를 사용하여 일부 Rust 코드를 작성하기 시작했음 변경 사항과 함께 Markdown을 라운드 트립하기 위해 현재 GitHub 스타일의 Markdown을 직렬화하는 라이브러리의 JavaScript 버전만 지원함 그래서 Rust에서 Markdown AST를 JSON으로 덤프하고 JavaScript에서 직렬화하여 개념 증명을 했음 markdown-rs는 위치 정보를 저장하지만 소스 토큰 정보를 저장하지 않음 따라서 신뢰할 수 있는 라운드 트립이 불가능함 Markdown 문서를 트리로 취급하고 싶었음 헤딩을 기반으로 섹션을 추출하기 위해 xpath와 같은 언어를 사용하고 싶었음 어쨌든 코드를 확인해보겠음, 게시해줘서 고맙음 MarkdownDB는 Markdown 파일에 대한 SQLite 백엔드를 제공함 .md 파일의 구조가 항상 데이터 직렬화 대상으로 존중되거나 고려되지 않는다고 느낌 공유해줘서 고맙고, 현재 나에게 즉각적인 사용 사례는 없지만 이런 것이 있다는 것을 아는 것이 좋음 문서화된 셸 호출에 대한 작은 지적 사항을 언급하고 싶었음 예를 들어, cat example.md | mdq '# usage'는 불필요한 cat 프로세스를 호출하지 않도록 stdin 파일 리디렉션으로 변경할 수 있음 비슷하게, echo "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'도 불필요한 echo 프로세스를 피할 수 있음 README에 더 현실적인 예제를 추가하면 좋을 것 같음 직관적으로 사용 용도를 알지 못하는 사람에게 도움이 될 것임 기존 도구와 라이브러리를 연구하면서 배운 한 가지 흥미로운 점은 많은 도구가 구조화된 추출/조작을 실행하기 전에 Markdown을 HTML로 직렬화한다는 것임 Markdown은 HTML로 직렬화되도록 설계되었기 때문에 Markdown 문서/AST는 주로 트리 구조가 아님 대신 문서에 나타나는 순서대로 요소의 배열임 목록과 블록 인용만 중첩을 지원함 예를 들어, h1 -> 단락 -> h2 -> 단락은 중첩되지 않으며, 네 개의 순서 있는 요소의 배열임 Cursor나 Copilot에 HTML을 사용한 구현을 테스트해보면 더 빠르게 개발할 수 있을 것임 이 도구를 딱 필요한 순간에 발견한 것 같음 특정 작업에 완벽하게 적합할 것임 Yuval에게 이 도구를 공유해줘서 고맙고, 허용적인 라이선스를 사용해줘서 직장에서 사용할 수 있음에 감사함
Hacker News 의견
GitHub PR은 Markdown 문서이며, 일부 조직은 모든 리뷰어가 완료해야 하는 체크리스트가 포함된 특정 템플릿을 사용함
Markdown과 같은 텍스트 기반 파일 형식이 인기를 끌었던 이유 중 하나는 정규 표현식으로 분석하고 버전 관리를 통해 관리할 수 있었기 때문임
내 작업 흐름은 Pandoc JSON AST를 통해 진행한 후 Jq를 사용하는 것임
공유해줘서 고맙고, 확인해보겠음
여러 가지를 시도한 후, 내가 계속 사용하고 있는 유일한 "노트 시스템"은 변경 시 자동으로 git에 커밋되는 Markdown 파일의 디렉토리임
약간의 스마트 기능을 추가하여 작업을 추적할 수 있도록 하고 싶었음
Markdown 문서를 트리로 취급하고 싶었음
MarkdownDB는 Markdown 파일에 대한 SQLite 백엔드를 제공함
공유해줘서 고맙고, 현재 나에게 즉각적인 사용 사례는 없지만 이런 것이 있다는 것을 아는 것이 좋음
문서화된 셸 호출에 대한 작은 지적 사항을 언급하고 싶었음
cat example.md | mdq '# usage'는 불필요한cat프로세스를 호출하지 않도록 stdin 파일 리디렉션으로 변경할 수 있음echo "$ISSUE_TEXT" | mdq -q '- [x] I have searched for existing issues'도 불필요한echo프로세스를 피할 수 있음README에 더 현실적인 예제를 추가하면 좋을 것 같음
기존 도구와 라이브러리를 연구하면서 배운 한 가지 흥미로운 점은 많은 도구가 구조화된 추출/조작을 실행하기 전에 Markdown을 HTML로 직렬화한다는 것임
이 도구를 딱 필요한 순간에 발견한 것 같음
Yuval에게 이 도구를 공유해줘서 고맙고, 허용적인 라이선스를 사용해줘서 직장에서 사용할 수 있음에 감사함