레드마인

From PGWiki

레드마인(Redmine)은 웹 기반의 프로젝트 관리와 추적을 돕는 도구이다.


위키에 번호 있는 제목 사용하기

다음과 같은 CSS를 테마의 application.css에 추가한다.

/* https://www.w3.org/TR/CSS22/generate.html#scope */
/* counter(x): number x*/
/* counters(x,str),  all counter with separator ( x.y.z.... )*/
/* Limit to .toc */
UL {
    counter-reset: item;
}

.toc LI {
    display: block
}

.toc LI:before {
    content: counters(item, ".") ". ";
    counter-increment: item
}

/* 위키 페이지에 적용되나, HTML 내보내기에선 X(wiki 클래스 없음) */
.wiki { counter-reset: h1 h2 h3 h4 h5 h6; }
/* HTML 내보내기에서 작동하나 위키 페이지에서 프로젝트 이름에 번호 추가됨 */
/*body { counter-reset: h1 h2 h3 h4 h5; }*/

/* 위키는 제목을 h1 헤더로 시작 */
/*: 위키/HTML 내보내기 모두 동작. 위키는 다음과 같이 시작해야 함 ...... {{toc}}  h1. first numbered h1 ...... */
ul.toc + a + h1 {
    counter-reset: h1 h2 h3 h4 h5 h6;
}

ul.toc ~ h1 {
    counter-reset: h2 h3 h4 h5 h6;
}
ul.toc ~ h1::before {
    counter-increment: h1;
    content: counter(h1) ". "  ;
}

ul.toc ~ h2 {
    counter-reset: h3 h4 h5 h6; 
}
ul.toc ~ h2::before {
    counter-increment: h2;
    /*content: counter(h1) "." counter(h2) ". ";*/
    content: counter(h2) ". ";
}

ul.toc ~ h3 {
    counter-reset: h4 h5 h6;
}
ul.toc ~ h3::before {
    counter-increment: h3;
    content: counter(h2) "." counter(h3) ". ";
}

ul.toc ~ h4 {
    counter-reset: h5 h6; 
}
ul.toc ~ h4::before {
    counter-increment: h4;
    content: counter(h2) "." counter(h3) "." counter(h4) ". ";
}

ul.toc ~ h5 {
    counter-reset: h6; 
}
ul.toc ~ h5::before {
    counter-increment: h5;
    content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". ";
}

그 후, toc의 h1에 대한 치환을 막기 위해 ./app/helpers/application_helper.rb 파일을 열어 toc 매크로를 치환하는 replace_toc() 함수를 수정한다.

 997   # Renders the TOC with given headings
 998   def replace_toc(text, headings)
 999       ....
1000       # Keep only the 4 first levels
1001       #headings = headings.select{|level, anchor, item| level <= 4}
1002       # Keey only the 4 first levels from the second level
1003       headings = headings.select{|level, anchor, item| 1 < level && level <= 4}
1004       ....
1005   end