타이포그라피 Typography Class
타이포그라피 클래스는 텍스트의 형태를 지정할수 있도록 해 줍니다(format text).
클래스 초기화 Initializing the Class
다른 모든 클래스들 처럼 , 타이포그라피 클래스도 $this->load->library 함수로 초기화 합니다:
$this->load->library('typography');
일단 로드되면, 타이포그라피 라이브러리 객체는 $this->typography 로 사용하실 수 있습니다.
auto_typography()
의미상,문자상의 텍스트 형태로 HTML을 변경합니다. 문자열을 입력받은후 아래의 형태들로 리턴합니다:
- 단락을 <p></p>로 감쌉니다 (단락을 식별할수 있도록 2줄 줄바꿈 한것 처럼 보이게 됩니다).
- 한줄바꿈은<br />로 변경합니다.이때 <pre> 안에 있는것은 변경하지 않습니다.
- <div> 태그같은 블록수준의 요소들은 단락으로 감싸지 않으며, 포함하고 있는 텍스트가 단락을 포함한다면 그부분은 감쌉니다.
- 태그안에 있는경우를 제외하면, 따옴표는 꼬인(curly) 따옴표 엔티티로 적절하게 변환됩니다.
- 아포스트로피(Apostrophes: ' ) 는 꼬인(curly) 아포스트로피엔티티로 변경됩니다.
- 이중 대쉬(-- this 혹은 --this)는 em—대쉬로 변경됩니다.
- 단어앞 혹은 뒤에 있는 3개의 연속되는 점들은 생략표시(...)로 변환됩니다.
- 문장뒤에 나오는 두개의 공백은 실재공백이 아닌 non-breaking 공백으로 변환되어 두개공백을 표현합니다.
사용예:
$string = $this->typography->auto_typography($string);
파라미터 Parameters
옵션으로 사용하는 파라미터는 아래와 같이 두개가 있습니다.:
- Strip JavaScript Event Handlers. 보안을 위해서 모든 자바스크립트 핸들러를 벗길것인지를 결정합니다. TRUE 나 FALSE를 사용합니다.
- Reduce Linebreaks. 2개이상의 줄바꿈을 2개로 줄일것인지 여부를 결정합니다. TRUE 나 FALSE를 사용합니다.
기본값으로, 파서는 자바스크립트 이벤트 핸들러는 벗기고, 줄바꿈 줄이기는 적용하지 않습니다. 다시말해, 파라미터를 적용하지 않으면 아래를 적용한것과 같이 동작합니다:
$string = $this->typography->auto_typography($string, TRUE, FALSE);
참고: 타이포그라피 포멧팅(Typographic formatting)은 처리해야할 양이 많은 경우 프로세서를 집중적으로 사용할 수도 있습니다(부하가 높아짐).만약 이 함수를 사용하고자 한다면, 페이지를 캐싱(caching) 하는것을 고려해보세요.
convert_characters()
이함수는 문자변환만을 수행한다는점을 제외하고는 위의 auto_typography 함수와 유사합니다:
- 태그안에 있는경우를 제외하면, 따옴표는 꼬인(curly) 따옴표 엔티티로 적절하게 변환됩니다.
- 아포스트로피(Apostrophes: ' ) 는 꼬인(curly) 아포스트로피엔티티로 변경됩니다.
- 이중 대쉬(-- this 혹은 --this)는 em—대쉬로 변경됩니다.
- 단어앞 혹은 뒤에 있는 3개의 연속되는 점들은 생략표시(...)로 변환됩니다.
- 문장뒤에 나오는 두개의 공백은 실재공백이 아닌 non-breaking 공백으로 변환되어 두개공백을 표현합니다.
사용예:
$string = $this->typography->convert_characters($string);
nl2br_except_pre()
<pre>안에 있는경우를 제외하면 줄바꿈을 <br />로 변경합니다. <pre>를 무시한다는점을 빼면 PHP내장함수인 nl2br() 함수와 동일합니다..
사용예:
$string = $this->typography->nl2br_except_pre($string);
protect_braced_quotes
타이포그라피 라이브러리를 템플릿파서 라이브러리와 함께 사용할때 , 괄호(curly brace)안의 따옴표(' 혹은 ")를 보호해야할 경우가 많이 생깁니다. 그럴경우 protect_braced_quotes 속성을 TRUE로 하세요
사용예:
$this->load->library('typography');
$this->typography->protect_braced_quotes = TRUE;