'자기소개-서론-본론-마무리' 형식을 지키면 됩니다. 파일 포맷은 마크다운 형식을 권장하지만 이메일로 전달할 수만 있다면 어떠한 것으로도 괜찮습니다. 기사 내에 HTML 링크 방식으로 이미지를 포함할 수 있습니다. 이전의 기사를 참고하세요.
기사 게재를 원하는 날짜보다 최소 3일 전까지
[email protected] 으로 보내주세요.
또는 github의 pull-request 기능을 이용해서
2013/drafts/
하부로 기사를 보내도 됩니다.
Seoul.pm 성탄절 달력에 기고하는 기사의 권리는 모두 Seoul.pm에 위임하고 권리를 주장하지 않습니다. Seoul.pm 성탄절 달력의 모든 기사의 권리는 Seoul.pm이 가지며 모든 기사는 GNU Free Document License를 따릅니다. 기사의 재배포 및 상업/비상업적 이용등 모든 부분에서 해당 라이센스의 허용 또는 강제 내용을 따릅니다. 따라서 문서의 권리 포기와 라이센스 부분을 숙지 부탁드립니다. :)
더 많은 열린 지식의 공유와 재생산, 행여나 발생할 수 있는 불미스러운 일을 방지하기 위한 부분으로 기사 게재를 원하시는 몽거스 분들의 양해 부탁드립니다.
모든 작업은 develop 브랜치를 기반으로 합니다.
앞으로의 작업은 git flow
를 사용하는 것을 권고합니다.
$ git flow init
$ git checkout develop
각 날짜에 배정된 원고는 feature/editor-2013-12-xx 브랜치에서 별도로 관리합니다. 이미 해당 날짜의 브랜치가 생성되어 있지는 않은지 아래와 같이 확인하세요. 한편, 파일명과 브랜치명에 포함된 2013-12-xx 포맷은 꼭 지켜야 합니다.
$ git flow feature list
이미 누군가가 해당 날짜에 배정하여 브랜치를 만들었다면. 동일한 날짜의 브랜치를 중복하여 생성해서는 안됩니다. 날짜가 겹치거나 충돌하는 문제는 커뮤니티에 문의해 주세요.
$ git flow feature start editor-2013-12-xx develop
$ ...
$ git add 2013/drafts/2013-12-xx/draft1.pdf
$ git add 2013/drafts/2013-12-xx/draft2.png
$ git add 2013/drafts/2013-12-xx/draft3.html
브랜치가 없으면 위와 같이 생성한 후, 2013/drafts/2013-12-xx
에 등록합니다.
원고 파일의 포맷과 개수는 다양하기 때문에
이를 보존하기 위해 drafts
의 하위 디렉터리에 보관합니다.
$ git flow feature publish editor-2013-12-xx
마지막으로 이 브랜치를 외부로 배포하여 편집자가 해당 브랜치에서 작업할 수 있도록 합니다.
먼저 이전 섹션에서 서술한 바와 같이 누군가가 editor-2013-12-xx 브랜치에 원고를 등록하여 배포해야 합니다. 현재 저장소를 로컬에 갱신하고 해당 날짜의 기사 원고가 등록되어 있는지 확인합니다.
$ git fetch origin
$ git flow feature list
브랜치가 존재하면 아래와 같이 체크아웃합니다.
$ git flow feature checkout editor-2013-12-xx
편집 과정을 거쳐 만들어지는 최종 기사는 마크다운 포맷입니다.
아래와 같이 articles
디렉터리에 마크다운 뼈대를 작성하고 등록합니다.
drafts
디렉터리에 등록된 원고를 참고하여 마크다운 포맷에 맞게 옮겨 적습니다.
기사의 상단에는 저자의 프로필이 있어야 합니다.
오탈자나 이해하기 힘든 문맥을 바로잡습니다.
예제 코드는 직접 실행해보고 실행이 되지 않는다면 알맞게 고쳐야 합니다.
$ vim 2013/articles/2013-12-xx.mkd
$ ..
$ git add 2013/articles/2013-12-xx.mkd
$ git commit 2013/articles/2013-12-xx.mkd
$ git push
$ ..
$ git add 2013/articles/2013-12-xx.mkd
$ git commit 2013/articles/2013-12-xx.mkd
$ git push
$ ..
이미지는 share/static
에 넣습니다. 이미지는 2013-12-nn-ab.png
와 같은
포맷을 따라야 합니다. 작게 축소된 이미지는 2013-12-nn-ab_r.png
과 같이
뒤에 _r
을 붙입니다. 2013년 웹사이트 레이아웃에서는 기사에 포함되는
축소된 이미지의 최대 너비와 높이를 각각 500px과 380px으로 제한합니다.
bash 환경에서 아래 명령을 통해 축소된 이미지를 생성할 수 있습니다.
이미지는 원본 이미지와 축소된 이미지 두 가지 모두 제공해야 합니다.
for f in 2013-12-*
do convert $f -resize 500x380\> ${f%.*}_r.${f#*.}
done
기사 브랜치의 편집이 완료되면 아래와 같이 웹사이트에 갱신합니다.
$ git feature finish editor-2013-12-xx
그런 다음 서버가 갱신된 기사를 동기화하도록 합니다.
이 웹사이트를 개발하거나 테스트하기 위해 로컬에 직접 웹페이지를 생성할 수 있습니다.
아래 두가지 모듈에 특히 의존하고 있습니다. cpanm
을 통해 설치합니다.
- WWW::AdventCalendar
- Text::MultiMarkdown
advent.ini
파일에 아래와 같이 today
값을 등록하여
오늘의 날짜를 강제로 지정할 수 있습니다.
today = 2013-12-12
또는 환경 변수를 이용해서 파일 수정 없이 바로 오늘의 날짜를 강제로 지정할 수 있습니다.
ADVCAL_FLAGS='--today 2013-12-03' make
기사를 만들고, 웹서버를 실행하기 위해 필요한 모듈을 설치합니다.
$ cpanm --installdeps .
기사는 today
이후의 날짜에 대해서는 생성되지 않습니다.
이렇게 임의로 지정한 설정 파일을 저장소에 갱신해서는 안됩니다.
$ make
$ firefox output-2013/index.html
그런다음, make
를 통해 웹페이지를 생성하면 정적 파일로만 이루어진
output-2013
디렉터리가 생성됩니다.
자신의 장비에서 웹서버를 띄워 브라우저로 접속해서 확인하려면 다음 명령을 실행합니다.
$ make run
perl -E 'symlink "2013/advent.ini", "advent.ini" unless -e "advent.ini"'
PERL5LIB=./patch/lib/:/home/askdna/.perlbrew/libs/perl-5.18.1@advent/lib/perl5:lib:extlib/lib/perl5 advcal --config advent.ini --output-dir output-2013 --article-dir 2013/articles --share-dir 2013/share
/sbin/ifconfig | perl -nlE 'do { say $1 } if /inet addr:(\d{1,3}(?:\.\d{1,3}){3})/'
127.0.0.1
192.168.25.60
http_this output-2013
Exporting 'output-2013', available at:
http://127.0.0.1:7007/
정상적으로 로컬 웹서버가 실행되면 http://127.0.0.1:7007/index.html
로
접속해서 기사를 확인합니다.