매뉴얼 페이지에 구조화된 콘텐츠로 액세스하는 방법

매뉴얼 페이지에 구조화된 콘텐츠로 액세스하는 방법

맨페이지를 참조하는 리소스를 작성 중인데 맨페이지에 액세스하는 방법을 아는 사람이 있는지 궁금합니다.구조화된데이터? 나의 현재 접근 방식은많은정규식을 사용하면 지루하고 오류가 발생하기 쉽습니다.

나는 *nix 전문가는 아니지만 매뉴얼 페이지는 기본적으로 명령으로 구문 분석할 수 있는 특정 구문이 포함된 텍스트 파일이라는 것이 내 이해입니다 man. 옵션이나 플래그 목록에 접근하는 쉬운 방법이 있다면 약간 회의적입니다. 하지만 어쩌면 내가 모르는 방법이 있을 수도 있습니다.

답변1

당신은 방법을 볼 수 있습니다생선 껍질설립하다매뉴얼 페이지 완성특히 그것이 어떻게 __fish_complete_man작동하는지. 더 간단한 옵션은 groffHTML을 내보낸 다음 많은 HTML 파서 중 하나를 사용하여 원하는 것을 얻는 것이라고 가정합니다.

$ groff -T html -mdoc xpquery.1 | xpquery -p HTML '//p[b="xpquery"][2]' -
<p style="margin-left:17%;"><b>xpquery</b>
[<b>−E </b><i>encoding</i>]
[<b>−n </b><i>namespace</i>]
[<b>−p </b><i>method</i>]
[<b>−S </b><i>xpath-subquery</i>]
[<b>−t </b><i>timeout</i>] <i>xpath-query
file-or-url ..</i></p>
$ 

그건매뉴얼 페이지HTML로 렌더링된 후 사용할 때 선택됨X 경로요약 섹션에서 플래그 목록을 가져오세요. 요즘에는 CSS 선택기를 사용하는 것이 더 인기가 있습니다. 그러나 생성된 HTML은 그다지 구조화되어 있지 않습니다.

답변2

맨 페이지는 다음과 같습니다로프서식이 지정된 텍스트 파일은 불행히도 현재 서식이 지정된 언어로 구문 분석되는 가장 성가신 파일 중 하나입니다. 시스템에서 사용하는 roff 구현에 대한 문서를 살펴보면 원하는 것을 찾을 수 있을 것입니다 (거의 항상 nroff, troff또는 중 하나임). groff형식 자체는 약간 복잡하지만(미니멀리즘이 좋은 소프트웨어 디자인의 전형이었던 시대에 디자인되었습니다), 대부분의 매뉴얼 페이지는 구조가 상당히 일관되므로 그리 어렵지는 않습니다.

그 외에도 몇 가지 다른 옵션이 있습니다. 첫 번째 단계는 소프트웨어 소스 코드 배포판에서 매뉴얼 페이지의 소스 코드를 보는 것입니다. 오늘날 대부분의 소프트웨어는 맨 페이지를 다른 형식의 man 프로그램에 의해 분석되는 roff 소스 코드로 컴파일하며, 대부분은 roff 매크로보다 분석하기가 더 쉽습니다. 또 다른 방법은 groffthrig의 답변에서 제안한 대로 매뉴얼 페이지를 다른 형식으로 변환하기 위한 도구(포함)를 조사하는 것입니다 .

답변3

확인하다인간 서버이것은 매뉴얼 페이지를 구문 분석하고 이를 간단한 방법으로 웹 페이지로 렌더링하는 1999년의 Perl 스크립트입니다. 여기에는 troff 소스 코드를 해석하는 데 필요한 모든 Perl 코드가 포함되어 있습니다.

답변4

문서 엘리베이터, 특히 그역도 선수troff 및 일부 troff 매크로 세트를 XML로 변환하는 스크립트-문서화 책.

관련 정보