어떻게 www.debian.org이 만들어지는가
룩 & 필
데비안 웹사이트는 www-master.debian.org의 /org/www.debian.org/www 디렉터리 안의 디렉터리와 파일의 모음입니다. 대부분의 페이지는 정적 HTML 파일입니다. 이 HTML에는 CGI 또는 PHP 스크립트와 같은 동적인 요소가 들어있지 않는데, 왜냐면 웹사이트가 미러되기 때문입니다.
데비안 웹사이트는 Website Meta Languag를
(WML) 사용해 HTML
페이지를 (내부의 머리말, 꼬리말, 제목, 목차 등을 포함)
생성합니다. wml 파일은 처음 보기에는 HTML처럼 보이지만, HTML은
WML에서 사용할 수 있는 여러가지 정보 중에 하나의 종류일 뿐입니다. Perl
프로그램 코드를 페이지에 포함할 수도 있으므로 거의 모든 것을 할 수 있습니다.
WML이 파일에 대해 여러가지 필터를 실행한 뒤에 마치면, 최종 생산물은 HTML 입니다. WML에서 기본적인 HTML 코드가 올바른지 확인하지만 (심지어 자동으로 바로잡기도 하지만), HTML 문법 및 최소한의 스타일 검사 도구로서 weblint 그리고/또는 tidy와 같은 도구를 설치해야 합니다.
계속해서 데비안 웹사이트에 기여하는 모든 사람은 WML을 설치해, 코드를
테스트하고 결과 HTML 페이지가 제대로 보이는지 확인해야 합니다. 데비안을
사용한다면, 간단히 wml 패키지를 설치하십시오.
더 많은 정보를 얻으려면 WML 사용하기 페이지를 읽으십시오.
소스 코드
웹 페이지의 소스 코드는 git에 저장됩니다. git은 버전 관리 시스템이며 우리가 어떤 것을, 누가, 언제, 왜 변경했는지에 대한 로그를 남길 수 있게 해줍니다. 이는 다양한 저자들 사이에서 현재 수정 중인 소스 파일을 제어하는 안전한 방법이며, 데비안 웹 팀은 크기 때문에 우리에게 아주 중요합니다.
다음은 소스 코드가 어떻게 구성되어 있는지 배경 설명입니다:
- git 저장소의 최상위 디렉터리에는 (
webwml) 페이지의 언어 이름을 딴 디렉터리, Makefile 2개, 여러 스크립트가 있습니다. 번역된 페이지의 디렉터리 이름은 영어로 소문자를 사용합니다. 예를 들어korean이지,Korean이나한글이 아닙니다. Makefile.common파일이 특히 중요합니다. 이름이 말하는 것처럼 이 파일에는 다른 makefile에서 포함해 적용되는 공통 규칙이 들어 있습니다.- 각 언어별 하위 디렉터리에도 makefile, 여러
.wml소스 파일, 추가 하위 디렉터리가 있습니다. 모든 파일과 디렉터리 이름에는 특정 패턴이 있어서, 링크가 번역 페이지에 대해 동작하도록 합니다. 일부 디렉터리에는.wmlrc설정 파일도 들어 있어서 WML에 대한 추가 명령이나 설정이 들어 있습니다. webwml/english/template디렉터리에는 서식으로 동작하는 특별한 WML 파일이 들어있습니다. 서식 파일은 다른 파일에서#use명령으로 참조할 수 있습니다.
주의하십시오: 이 서식 파일이 바뀌었을 때 그 변화가 서식을 포함하는 다른 파일에도
전파될 수 있도록, 이 파일에 대해 Makefile 의존성이 걸려 있습니다. 대부분의 파일에는
일반적인 의존성으로 template 서식을 사용하므로, 맨 위에 다음 줄이
들어 있습니다:
#use wml::debian::template
물론 이 규칙에 예외도 있습니다.
스크립트
스크립트는 대부분 쉘(shell)이나 펄(Perl)로 작성되어 있습니다. 일부는 독립적으로 동작을 하고, 일부는 WML 소스 파일에 통합되기도 합니다.
- webmaster-team/cron:
이 git 저장소는 데비안 웹사이트를 업데이트하는데 사용하는 모든 스크립트가 들어 있습니다.
즉,
www-master를 다시 빌드하는 스크립트에 대한 소스 코드입니다. - webmaster-team/packages:
이 git 저장소는
packages.debian.org사이트를 다시 빌드하는 스크립트에 대한 소스 코드가 들어 있습니다.
웹사이트 생성
WML, 서식 그리고 쉘 및 Perl 스크립트는 모두 데비안 웹사이트를 생성하는데 필요한 재료입니다:
- 대부분은 WML을 이용해 생성합니다 (git 저장소에서).
- 문서는 DocBook XML (
ddp
git 저장소) 또는 해당 데비안 패키지의 cron 스크립트로 생성합니다. - 웹사이트의 일부분은 다른 곳의 스크립트에서 생성됩니다. 예를 들어, 메일링 리스트 구독/해제 페이지가 있습니다.
자동 업데이트는 (git 저장소에서, 그리고 웹트리의 다른 곳에서) 하루에 6번 실행되고 있습니다. 그 밖에 전체 웹사이트에 대해 다음과 같은 검사를 정기적으로 실행합니다:
웹사이트의 현재 빌드 기록은 https://www-master.debian.org/build-logs/ 위치에 있습니다..
사이트에 기여하고 싶다면, 단순히 www/ 디렉터리의 파일을
편집하거나 항목을 추가하지 마세요.
웹 마스터에게 먼저 연락하십시오.
돕는 방법
데비안 사이트에 도움을 주실 모든 분을 환영합니다. 놓치고 있다고 생각하는 데비안 관련 가치있는 정보가 여러분에게 있다면, 저희에게 공유해 주십시오. 저희가 그 정보를 포함할 겁니다. 또 위에서 언급한 빌드 로그를 보시고 문제 해결을 제안할 수 있는지 봐 주십시오.
디자인에 (그래픽, 배치 등) 도움을 주실 분도 찾고 있습니다. 영어가 유창하다면, 페이지를 교정해 주시고 모든 오류를 알려 주십시오. 다른 언어를 쓴다면, 기존 페이지를 여러분의 언어로 번역하여 도움을 주실 수 있고, 이미 번역된 페이지의 문제를 바로잡는데 도움을 주실 수도 있습니다. 어떠한 경우든 번역 코디네이터 목록을 보시고, 책임자에게 연락하십시오. 더 많은 정보는 번역자를 위한 페이지를 보십시오.
도움 안 되는 방법... (자주 하는 질문)
[질문] 멋진 웹 기능을 www.debian.org 안에 넣고 싶은데, 해도 되나요?
[답변] 아뇨. 우리는 www.debian.org이 되도록 모든 브라우저에서 접근 가능하길 바랍니다. 그래서
- 특정 브라우저의 "확장 기능" 사용 안 합니다.
- 오직 이미지에만 의존하면 안 됩니다. 이미지는 명확히 하는 데 쓸 수는 있지만, www.debian.org의 정보는 lynx 같은 텍스트전용 브라우저를 통해서도 접근할 수 있어야 합니다.
[질문] 좋은 생각이 있습니다. 어떤 기능을 www.debian.org의 HTTPD에서 켤 수 있나요?
[답변] 아뇨. 우리는 관리자들이 www.debian.org를 쉽게 미러하기를 바라기 때문에 특별한 HTTPD 기능을 쓰지 말아야 합니다. 아니, SSI(Server Side Includes)조차 사용하지 않습니다. 예외는 내용 협상입니다. 내용 협상은 여러 언어를 지원하는 유일하고 강력한 방법이기 때문입니다.
