Find file History
Pull request Compare This branch is even with seoulpm:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
..
Failed to load latest commit information.
articles
drafts
share
trailer
Makefile
README.mkd
advent.ini

README.mkd

Seoul Perl Mongers Advent Calendar 2012년

기사 형식은 어떻게 하나요?

'자기소개-서론-본론-마무리' 형식을 지키면 됩니다. 파일 포맷은 이메일로 전달할 수만 있다면 어떠한 것으로도 괜찮습니다. 이미지를 포함할 수 있습니다. 작년의 기사를 참고하세요.

어떻게 전달하나요?

11월 말까지 여기로(amoc.yn@gmail.com) 보내주세요.

기타

자세한 설명은 위키(http://advent.perl.kr/2012/wiki)를 확인해 주세요.

원고를 직접 등록하려고 합니다

모든 작업은 develop 브랜치를 기반으로 합니다. 앞으로의 작업은 git flow를 사용하는 것을 권고합니다.

$ git flow init
$ git checkout develop

각 날짜에 배정된 원고는 feature/editor-2012-12-xx 브랜치에서 별도로 관리합니다. 이미 해당 날짜의 브랜치가 생성되어 있지는 않은지 아래와 같이 확인하세요. 한편, 파일명과 브랜치명에 포함된 2012-12-xx 포맷은 꼭 지켜야 합니다.

$ git flow feature list

이미 누군가가 해당 날짜에 배정하여 브랜치를 만들었다면. 동일한 날짜의 브랜치를 중복하여 생성해서는 안됩니다. 날짜가 겹치거나 충돌하는 문제는 커뮤니티에 문의해 주세요.

$ git flow feature start editor-2012-12-xx develop
$ ...
$ git add 2012/drafts/2012-12-xx/draft1.pdf
$ git add 2012/drafts/2012-12-xx/draft2.png
$ git add 2012/drafts/2012-12-xx/draft3.html

브랜치가 없으면 위와 같이 생성한 후, 2012/drafts/2012-12-xx에 등록합니다. 원고 파일의 포맷과 개수는 다양하기 때문에 이를 보존하기 위해 drafts의 하위 디렉터리에 보관합니다.

$ git flow feature publish editor-2012-12-xx

마지막으로 이 브랜치를 외부로 배포하여 편집자가 해당 브랜치에서 작업할 수 있도록 합니다.

기사를 편집하려고 합니다

먼저 이전 섹션에서 서술한 바와 같이 누군가가 editor-2012-12-xx 브랜치에 원고를 등록하여 배포해야 합니다. 현재 레포지터리를 로컬에 갱신하고 해당 날짜의 기사 원고가 등록되어 있는지 확인합니다.

$ git fetch origin
$ git flow feature list

브랜치가 존재하면 아래와 같이 체크아웃합니다.

$ git flow feature checkout editor-2012-12-xx

편집 과정을 거쳐 만들어지는 최종 기사는 마크다운 포맷입니다. 아래와 같이 articles 디렉터리에 마크다운 뼈대를 작성하고 등록합니다. drafts 디렉터리에 등록된 원고를 참고하여 마크다운 포맷에 맞게 옮겨 적습니다. 기사의 상단에는 저자의 프로필이 있어야 합니다. 오탈자나 이해하기 힘든 문맥을 바로잡습니다. 예제 코드는 직접 실행해보고 실행이 되지 않는다면 알맞게 고쳐야 합니다.

$ vim 2012/articles/2012-12-xx.mkd
$ ..
$ git add 2012/articles/2012-12-xx.mkd
$ git commit 2012/articles/2012-12-xx.mkd
$ git push
$ ..
$ git add 2012/articles/2012-12-xx.mkd
$ git commit 2012/articles/2012-12-xx.mkd
$ git push
$ ..

이미지는 share/static에 넣습니다. 이미지는 2012-12-nn-ab.png와 같은 포맷을 따라야 합니다. 작게 축소된 이미지는 2012-12-nn-ab_r.png과 같이 뒤에 _r을 붙입니다. 2012년 웹사이트 레이아웃에서는 기사에 포함되는 축소된 이미지의 최대 너비와 높이를 각각 500px과 380px으로 제한합니다. bash 환경에서 아래 명령을 통해 축소된 이미지를 생성할 수 있습니다.

for f in 2012-12-*
  do convert $f -resize 500x380\> ${f%.*}_r.${f#*.}
done

기사를 웹사이트에 배포하려 합니다

기사 브랜치의 편집이 완료되면 아래와 같이 웹사이트에 갱신합니다.

$ git feature finish editor-2012-12-xx

그런 다음 서버가 갱신된 기사를 동기화하도록 합니다.

웹사이트를 직접 구축하려 합니다

이 웹사이트를 개발하거나 테스트하기 위해 로컬에 직접 웹페이지를 생성할 수 있습니다.

아래 두가지 모듈에 특히 의존하고 있습니다. cpanm을 통해 설치합니다.

  • WWW::AdventCalendar
  • Text::MultiMarkdown

advent.ini 파일에 아래와 같이 today 값을 등록하여 오늘의 날짜를 강제로 지정할 수 있습니다.

today = 2012-12-12

기사는 today 이후의 날짜에 대해서는 생성되지 않습니다. 이렇게 임의로 지정한 설정 파일을 레포지터리에 갱신해서는 안됩니다.

$ make
$ firefox output-2012/index.html

그런다음, make를 통해 웹페이지를 생성하면 정적 파일로만 이루어진 output-2012 디렉터리가 생성됩니다.