닥북
DocBook파일 이름 확장명 | .dbk, .xml |
---|---|
인터넷 미디어 유형 | 애플리케이션/docbook+xml |
개발자 | 오아시스 |
형식 유형 | 마크업 언어 |
연장 위치 | SGML, XML |
표준 | 5.1(2016년 11월), 4.5(2006년 10월) |
오픈 포맷? | 네 |
DocBook은 기술 문서를 위한 의미 마크업 언어다.원래는 컴퓨터 하드웨어 및 소프트웨어와 관련된 기술 문서를 작성하기 위한 것이었지만, 다른 종류의 문서에도 사용할 수 있다.[1]
의미 언어로서 DocBook은 사용자가 출처를 변경할 필요 없이 HTML, XHTML, EPUB, PDF, 맨 페이지, 웹 도움말[2] 및 HTML 도움말을 포함한 다양한 형식으로 내용을 게시할 수 있도록 한다.즉, 문서가 DocBook 형식으로 작성되면 다시 작성해야 하는 것이 아니라 다른 형식으로 쉽게 이동할 수 있게 된다.
디자인
DocBook은 XML 언어다.DocBook의 언어는 현재 버전(5.x)에서 통합된 Schematron 규칙이 있는 REACE NG 스키마에 의해 공식적으로 정의된다.(사용 가능한 스키마의 W3C XML Schema+Schematron 및 DTD(Document Type Definition) 버전도 있지만, 비표준으로 간주된다.)
의미 언어로서 DocBook 문서들은 그들의 콘텐츠가 "모양"되어 있는 것이 아니라, 오히려 그 콘텐츠의 의미를 기술하고 있다.예를 들어, DocBook은 기사에 대한 추상화가 시각적으로 어떻게 포맷될 수 있는지를 설명하기 보다는 특정 섹션이 추상적인 것이라고 간단히 말한다.페이지의 추상화가 어디로 가야 하는지, 어떤 모습이어야 하는지 또는 최종 산출물에 포함되어야 하는지 여부를 결정하는 것은 외부 처리 도구 또는 응용 프로그램의 몫이다.
DocBook은 방대한 수의 의미 요소 태그를 제공한다.구조, 블록 레벨, 인라인 등 세 가지 광범위한 범주로 나뉜다.
구조 태그는 내용물의 광범위한 특성을 명시한다.그book
예를 들어, 원소는 그것의 자식 요소가 책의 부분을 나타낸다고 명시한다.여기에는 제목, 장, 용어집, 부록 등이 포함된다.DocBook의 구조 태그에는 다음이 포함되지만 이에 국한되지는 않는다.
set
: 하나 이상의 제목 컬렉션book
s 또는articles
s, 다른 집합과 함께 내포될 수 있음book
: 제목 컬렉션chapter
sarticle
s 및/또는part
s(선택적 용어집, 부록 등)part
: 하나 이상의 제목 컬렉션chapter
s—다른 부분과 함께 중첩될 수 있으며, 특별한 소개 텍스트가 있을 수 있음article
: 블록 레벨 요소의 제목, 번호 없는 수집chapter
: 블록 레벨 요소의 제목, 번호 컬렉션—장에서는 명시적인 숫자를 요구하지 않으며, 챕터 번호는 XML 문서에 있는 이전 장 요소의 번호 + 1이다.appendix
: 부록을 나타내는 텍스트 포함dedication
: 텍스트는 포함된 구조 요소의 헌신을 나타낸다.
구조 요소는 다른 구조 요소를 포함할 수 있다.구조 요소는 DocBook 문서에서 허용된 유일한 최상위 요소다.
블록 레벨 태그는 단락, 목록 등과 같은 요소들이다.이 요소들이 모두 직접 텍스트를 포함할 수 있는 것은 아니다.순차적 블록 레벨 요소는 하나를 "후"로 렌더링한다.이후, 이 경우 언어에 따라 다를 수 있다.대부분의 서양 언어에서 "후"는 다음을 의미한다: 텍스트 단락은 페이지 아래로 인쇄된다.다른 언어의 쓰기 시스템은 다른 방향성을 가질 수 있다. 예를 들어, 일본어에서는 단락이 종종 오른쪽에서 왼쪽으로 이어지는 하향 열로 인쇄되기 때문에, 그 경우 "후"는 왼쪽이 될 것이다.DocBook 의미론은 이러한 종류의 언어 기반 개념에 완전히 중립적이다.
인라인 레벨 태그는 강조, 하이퍼링크 등과 같은 요소다.블록 수준 요소 내에서 텍스트를 줄 바꿈.이러한 요소들은 문단 형식으로 렌더링할 때 텍스트가 끊어지는 원인이 되지 않지만, 일반적으로 글꼴, 크기 또는 유사한 속성을 변경하여 문서 프로세서가 동봉된 텍스트에 어떤 종류의 구별되는 인쇄 처리를 적용하도록 한다.(DocBook 명세서에는 다른 인쇄 처리를 예상한다고 나와 있지만, 이 치료법이 무엇인지에 대한 구체적인 요구 사항은 제시되어 있지 않다.)즉, DocBook 프로세서는 변환할 필요가 없다.emphasis
이탤릭체로 달다독서자 기반 DocBook 프로세서는 단어의 크기를 늘리거나 텍스트 기반 프로세서가 기울임꼴 대신 굵게 사용할 수 있다.
샘플 문서
<?xml 버전="1.0" 인코딩="UTF-8"?><book xml:id="book_book" xmlns="http://docbook.org/ns/docbook"버전="5"0">><title>매우 간단한 책 <</제목> xml:id="chapter_1"> 제1장 </제목> <para>헬로 월드!</기분> <기분>너의 하루가 스플레디하게 진행되었으면 좋겠어!</para> </chapter> <chapter xml:id="chapter_2"> <title>제2장 </title> <para>다시 안녕, 세상아!</기억> </기억> </책>
의미론적으로, 이 문서는 "제목"이 있는 "책"이며, 각각 "제목"이 있는 두 개의 "제목"이 들어 있다.그 "장"들은 텍스트가 들어 있는 "문단"을 포함하고 있다.그 마크업은 영어로 꽤 읽을 수 있다.
자세한 내용은 문서의 루트 요소는 다음과 같다.book
. 모든 DocBook 요소는 XML 네임스페이스에 있으므로 루트 요소에는 현재 네임스페이스를 설정하는 xmlns 속성이 있다.또한 DocBook 문서의 루트 요소에는 문서가 빌드되는 형식의 버전을 지정하는 버전이 있어야 한다.
(XML 문서는 한 번에 여러 네임스페이스의 요소를 포함할 수 있다.간단히 말해서, 이 예는 이것을 설명하지 않는다.)
A book
요소에는 다음이 포함되어야 한다.title
, 또는 .info
a를 포함하는 요소title
이것은 어린이 구조 요소보다 먼저 이루어져야 한다.제목에 따라 구조적인 아이들이 있는데, 이 경우, 두 명이다.chapter
요소들이 각각은 반드시title
그것들에는para
블록 요소: 사용 가능한 텍스트 및 기타 인라인 요소(예:emphasis
제1장의 제2항에서
스키마 및 유효성 검사
규칙은 DocBook XML 스키마에 공식적으로 정의된다.적절한 프로그래밍 도구는 해당 스키마에 대해 XML 문서(DocBook 또는 기타)의 유효성을 확인하여 문서가 해당 스키마를 준수하지 않는지(및 어디에서)를 결정할 수 있다.XML 편집 도구는 또한 스키마 정보를 사용하여 애초에 부적합한 문서가 만들어지지 않도록 할 수 있다.
저작 및 처리
DocBook은 XML이기 때문에 어떤 텍스트 편집기로도 문서를 만들고 편집할 수 있다.전용 XML 편집기는 기능적인 DocBook 편집기도 마찬가지다.DocBook은 널리 사용되는 XML 스키마 언어에 대한 스키마 파일을 제공하므로, 스키마를 기반으로 콘텐츠 완료를 제공할 수 있는 XML 편집기는 DocBook에 대해 그렇게 할 수 있다.많은 그래픽 또는 WYSIWYG XML 편집기는 워드프로세서처럼 DocBook을 편집할 수 있는 기능을 제공한다.[citation needed]
DocBook은 잘 정의된 XML 스키마를 준수하기 때문에 XML 지원을 포함하는 모든 도구 또는 프로그래밍 언어를 사용하여 문서를 검증하고 처리할 수 있다.
역사
DocBook은 1991년 Usenet 상의 토론 그룹에서 시작되었고, 결국 HAL Computer Systems와 O'Reilly & Associates의 공동 프로젝트가 되었고, 결국 자체적인 정비 조직(Davenport Group)을 양산한 후 1998년 SGML Open 컨소시엄으로 옮겨 오아시스가 되었다.DocBook은 현재 OASIS의 DocBook 기술 위원회에서 관리하고 있다.[3]
DocBook은 DTD로서 SGML과 XML 양식으로 제공된다.XML 버전의 REACE NG 및 W3C XML 스키마 형식을 사용할 수 있다.DocBook 5로 시작하는 REACE NG 버전은 다른 형식이 생성되는 "표준" 형식이다.
DocBook은 원래 SGML 응용 프로그램으로 시작되었지만, 동등한 XML 응용 프로그램이 개발되어 현재 대부분의 용도로 SGML 응용 프로그램을 대체했다.(SGML DTD의 버전 4부터 XML DTD는 이 버전 번호 매기기 방식으로 계속되었다.)처음에 소프트웨어 회사의 핵심 그룹은 DocBook의 초기 설계에 그들의 대표가 관여했기 때문에 DocBook을 사용했다.하지만, 결국 닥북 FreeBSD의, K데스크 톱 환경, 그 놈 데스크 톱 문서, GTK+ API관련 언급은 리눅스 커널 문서(, 7월 2016년으로, Sphinx/reStructured로 이행 등 많은 계획에 대해 설명서 작성을 위한 어디가 표준이 된다 오픈 소스 커뮤니티에 의해 입양되었다.Text[4][5]고 있는 리의 작품입니다nux Documentation Project.
DocBook 사전 v5.0
DocBook 5까지 DocBook은 DTD(Document Type Definition)에 의해 표준적으로 정의되었다.DocBook은 원래 SGML의 애플리케이션으로 구축되었기 때문에 DTD만이 사용 가능한 스키마 언어였다.DocBook 4.x 형식은 SGML 또는 XML 형식일 수 있지만 XML 버전에는 고유한 네임스페이스가 없다.
DocBook 4.x 형식은 DTD에 의해 정의되는 제한 범위 내에서 유지되어야 했다.가장 중요한 제한사항은 요소 이름이 가능한 내용을 고유하게 정의한다는 것이다.즉, 이름이 붙은 원소.info
DocBook 파일의 위치에 관계없이 동일한 정보를 포함해야 한다.DocBook 4.x에는 다음과 같은 많은 종류의 정보 요소가 있다.bookinfo
,chapterinfo
, 등. 각자는 약간 다른 컨텐츠 모델을 가지고 있지만, 그들은 컨텐츠 모델의 일부를 공유한다.또한 컨텍스트 정보를 반복한다.책의 내용info
그 원소는, 책의 직접적인 아이이기 때문에, 그것은 인간 독자를 위해 특별히 이름을 붙일 필요가 없다.그러나 형식은 DTD에 의해 정의되었기 때문에 그렇게 명명되어야 했다.루트 요소는 버전이 DocBook 5 이전 문서의 상단에 있는 DTD 선언에 내장되어 있으므로 버전이 없거나 필요하지 않다.
DocBook 4.x 문서는 DocBook 5와 호환되지 않지만 XSLT 스타일시트를 통해 DocBook 5 문서로 변환할 수 있다.원 ()db4-upgrade.xsl
DocBook 5 스키마 및 사양 패키지의 배포의 일부로 제공된다.[6]
출력 형식
DocBook 파일은 다양한 형식의 출력 파일을 준비하는 데 사용된다.거의 항상 DocBook XSL 스타일시트를 사용하여 이 작업을 수행한다.DocBook 문서를 다양한 형식으로 변환하는 XSLT 스타일시트(HTML, 나중에 PDF로 변환하기 위한 XSL-FO 등)이다.이러한 스타일시트는 목차, 용어집 및 색인을 생성할 수 있을 정도로 정교할 수 있다.그들은 동일한 문서의 다른 버전(예: "튜토리얼" 또는 "빠른 참조 가이드")을 생산하기 위해 마스터 문서의 특정 지정된 부분을 선택하는 것을 감독할 수 있다.사용자들은 자신의 필요에 따라 DocBook을 적절한 출력 형식으로 처리하기 위해 자신만의 맞춤형 스타일시트나 심지어 본격적인 프로그램을 작성할 수 있다.
Norman Walsh와 DocBook 프로젝트 개발 팀은 DocBook 원본 문서에서 출력물을 생산하기 위한 핵심 애플리케이션을 유지한다.고품질 HTML 및 인쇄(FO/PDF) 출력을 생성할 수 있는 XSLT 스타일시트 세트(및 레거시 DSSL 스타일시트 세트)와 RTF, 맨 페이지 및 HTML 도움말을 포함한 다른 형식의 출력.
웹 도움말은[2] 버전 1.76.1에서 소개된 DocBook XSL 스타일시트의 청크 처리된 HTML 출력 형식이다.또한 웹[7] 도움말에 대한 설명서는 웹 도움말의 예를 제공하며 DocBook XSL 배포의 일부분이다.
주요 특징은 완전한 CSS 기반 페이지 레이아웃, 도움말 컨텐츠 검색, 접을 수 있는 트리 형식의 목차 등이다.검색 결과, 일치 강조 표시, 명시적 페이지 점수 부여 및 표준 다국어 토큰화기가 제공됨.검색 및 TOC는 프레임셋으로 나타나는 창에 있지만 실제로는 div 태그와 쿠키(프로그레시브하도록)로 구현된다.
단순화된 문서북
DocBook은 새로운 사용자에게 압도적일 수 있는 많은 기능을 제공한다.가파른 학습 곡선이 없는 DocBook의 편의를 원하는 사용자를 위해 Simplified DocBook을 설계했다.기사나 백서와 같은 단일 문서를 위해 설계된 DocBook의 작은 부분집합이다(즉, "책"은 지원되지 않는다).Simplified DocBook DTD는 현재 버전 1.1이다.[8]
비판
오픈B의 저자인 잉고 슈바르츠SD의 만독은 DocBook을 man 페이지에 대한 의미 mdoc 매크로보다 열등하다고 간주한다.DocBook-to-mdoc 컨버터(docBook-to-man과 같은 이전의 컨버터는 의미적 요소를 다루지 않는다)를 쓰려는 시도에서 그는 mdoc에서 다룬 요소들과 비교하여 의미적 부분들은 "동시에 빌링, 중복, 불완전"함을 발견한다.게다가, Schwarze는 DocBook 사양이 태그의 사용, 버전 간 이동 불가 언어, 세부사항의 거칠고 전체적으로 일관성이 없다는 것을 발견한다.[9]
참고 항목
참조
- ^ DocBook이란?
- ^ a b DocBook WebHelp 프로젝트
- ^ DocBook 시작하기
- ^ "Linux Kernel Documentation — the Linux Kernel documentation".
- ^ "Kernel documentation with Sphinx, part 1: How we got here [LWN.net]".
- ^ Jirka Kosek, Norman Walsh, Dick Hamilton 및 Michael Smith, DocBook V5.0: 전환 가이드, 2009년 6월 16일 DocBook V4.x 문서를 DocBook V5.0으로 변환
- ^ 웹 도움말 설명서
- ^ 단순화된 문서북
- ^ Schwarze, Igor (April 19, 2019). "docbook2mdoc-1.0.0 released". OpenBSD Journal.
추가 읽기
Norman Walsh는 DocBook의 주요 저자다. DocBook의 공식 문서인 최종 가이드.이 책은 GFDL로 온라인에서 구할 수 있으며, 인쇄 출판으로도 이용할 수 있다.
- Norman Walsh (June 2010). DocBook 5: The Definitive Guide (2nd ed.). O'Reilly Associates. ISBN 978-0-596-80502-9.
- Bob Stayton (2005). DocBook XSL: The Complete Guide (3rd ed.). Sagehill Enterprises. ISBN 0-9741521-2-9.
- Joe Brockmeier (2001). DocBook Publishing — A Better Way to Create Professional Documents. Prima Tech's Linux Series. ISBN 0-7615-3331-1.
외부 링크
- DocBook.org - DocBook의 4.x 및 5.0 버전을 포함한 DocBook 정보 모음: DocBook 스키마/DTD의 모든 버전과 최종 가이드.
- OASIS의 DocBook Repository - DocBook 스키마/DTD의 표준 홈.
- DocBook XSL 프로젝트 페이지(SourceForge.net, XSLT 1.0 Stylesheets for DocBook at GitHub).
- DocBook Demistation HowTO
- DocBook: 확정 가이드, 1판 v. 2.0.6 - DocBook 3.x 및 4.x 가이드의 완전히 북마크된 PDF.
- DocBook 요소를 사용하여 쓰기.