가독성을 향상시키기 위해 시간 테스트 된 타이포그래피 규칙을 문서에 적용하기위한 모듈.
타이포그래피는 역사 과정에서 세련된 과학만큼이나 예술입니다. 전 세계의 타이포그래피 터는 텍스트의 유리성과 흐름을 개선하기 위해 끊임없이 노력하고 있습니다. 이 모듈은이 상황을 수정하는 것을 목표로합니다.
이것은 진행중인 작업 이며 자신의 요구에 적합하지 않을 수 있습니다. 이 프로젝트를 개선하기 위해 많은 방법으로 기여할 수 있습니다. 풀 요청을 제출하거나 아이디어 제안 또는 국가 자체 인쇄 규칙을 문서화함으로써.
typographer ( input , configuration ) ; input 문자열 또는 HTML 요소입니다 (HTML 입력에 대한 제한 사항 참조).
configuration 다음과 같은 선택적 특성을 가진 객체입니다.
locale : 사용할 언어 코드. 기본값은 en 입니다.output_format : text 또는 html , 교체에 사용되는 형식 (예 : u00a0 또는 비 분해 공간). 기본값은 text 입니다.disable_rules : 비활성화 할 규칙/규칙 세트 배열 (예 : ['ruleset/name1', 'ruleset2/name2', 'ruleset3', ...] ).입력 유형에 따라 타이포 그래퍼는 문자열을 반환하거나 (문자열 입력을 사용할 때) 요소와 그 자손을 DOM에서 직접 업데이트합니다.
const fixed = typographer (
'Bonjour typographer: enchanté !' ,
{
locale : 'fr_FR' ,
output_format : 'html'
}
) ;
console . log ( fixed ) // 'Bonjour typographer : enchanté !' const elements = document . querySelectorAll ( '.fixTypography' )
[ ] . forEach . call ( elements , element => {
typographer (
element ,
{
locale : 'fr_FR' ,
output_format : 'html'
}
) ;
} ) ; 이 프로젝트의 첫 번째 동기는 공간 입니다. 아시다시피 한 가지 이상의 공간이 있습니다. 몇 가지를 볼 것입니다.
일반 공간과 비슷하지만 포장 할 때 두 줄을 가로 질러 파손될 수 없습니다. 두 단어 (깨지지 않는 공간으로 분리 됨)는 항상 같은 줄로 끝납니다.  일반 공간보다 좁은 공간입니다.  얇은 공간과 같은 크기이지만 두 줄을 가로 질러 깨질 수 없습니다.이 네 가지 유형의 공간 이상이 있지만 아이디어를 얻을 수 있습니다. 비 분쇄 공간은 이상한 포장을 방지하는 데 정말 유용합니다.
451 °F 고려하십시오. 값보다 단위를 별도의 선에 두는 것이 이상하지 않습니까? 이것은 비 분해 공간입니다. 비 분해 공간을 사용하려고합니다.
이것은 결코 완벽 할 수 없으며 타이포 그래퍼가 어려움을 겪는 많은 사례가 있습니다. 예를 들어, 국제 유닛 시스템에는 유닛이 공간 (비 파괴)이 앞서야한다고 지정하지만, 무언가가 단위인지 확인하기가 어렵습니다. 일부 유닛은 매우 모호 할 수 있습니다 (예 : Volt의 경우 V, 5의 로마 숫자 일 수도 있습니다).
우리는 우리가 확신 할 수있는 유닛에 위탁 공간을 추가 할 것이며, 모호한 사람들을 위해 당신에게 그것을 남길 것입니다.
문장 부호 표지판 전에 깨지지 않는 공간 (일반 또는 좁은)이 필요한 로케일과 함께 HTML 문자열 입력을 사용하는 경우, 예를 들어 <code> 또는 <style> 과 같이 변환되지 않아야 할 태그가 포함되어 있지 않은지 확인해야합니다. 그렇지 않으면 당신은 color : red ; 과 같은 것들로 끝납니다. 스타일링 또는 코드 샘플을 깨뜨릴 수 있습니다.
HTML 요소 입력을 사용하면 앞서 언급 한 노드 (및 다른 사람들)처럼 변환해서는 안되는 노드를 걸러 내기 때문에 안전합니다. 입력 내의 요소에 해당 노드 유형 중 일부가 포함 된 경우 전체 컨테이너 요소를 건너 뜁니다.
우리는 최선을 다해 최선을 다해 최대한 많이 고치려고 노력하지만 타이포 그래퍼의 첫 번째 규칙은 다음과 같습니다.
이것은 까다로워지고 규칙이 국가마다 다르며, 주어진 국가에서도 하나 이상의 권장 스타일이있을 수 있습니다. 기본적으로, 전형적인 80-20 접근법에서 논쟁의 여지가없는 타이포그래피 규칙을 적용하는 데 중점을 둡니다.
참고 : 캐나다 (프랑스어)는 구두점에 다른 규칙을 사용합니다.
, 이전에는 공간이없고 정기적 인 공간이 있어야합니다.. 전에 공간이 없어야하고 그 후 정기적 인 공간이 있어야합니다.: 이전에는 비분한 공간이 있어야하고 그 후 정기적 인 공간이 있어야합니다.; 이전에는 좁은 비 분쇄 공간이 있어야하며 그 후 정기적 인 공간이 있어야합니다.? 이전에는 좁은 비 분쇄 공간이 있어야하며 그 후 정기적 인 공간이 있어야합니다.! 이전에는 좁은 비 분쇄 공간이 있어야하며 그 후 정기적 인 공간이 있어야합니다.« , ‹ 이전에 일반 공간이 있어야하고 그 후에는 좁은 비 분해 공간이 있어야합니다.» , › 이전에 좁지 않은 공간과 정기적 인 공간이 있어야합니다.“ , ' 이전에는 일반 공간이 있어야하며 그 후에는 공간이 없어야합니다.” , ' 이전에는 공간이없고 정기적 인 공간이 있어야합니다.( 이전에 일반 공간이 있어야하고 그 후에는 공간이 없어야합니다.) 전에 공간이없고 정기적 인 공간이 있어야합니다.[ 이전에 일반 공간이 있어야하고 그 후 공간이 없어야합니다.] 이전에는 공간이없고 일반 공간이 있어야합니다.- (하이픈)는 공간이 없어야합니다.— (em, long) 또는 – (en, medium)는 텍스트 주위에 짝을 이룰 때 외부의 정기 공간과 내부에 공간이 없어야합니다.… , ... , 또는 . . . 전에 공간이없고 정기적 인 공간이 있어야합니다. 사각형 괄호 나 괄호 사이에있을 때를 제외하고 전과 후에 공간이 없어야합니다.' 전과 후에 공간이 없어야합니다., 이전에는 공간이없고 정기적 인 공간이 있어야합니다.. 전에 공간이 없어야하고 그 후 정기적 인 공간이 있어야합니다.: 전에 공간이없고 그 후에는 일반 공간이 있어야합니다.; 전에 공간이 없어야하고 그 후 정기적 인 공간이 있어야합니다.? 전에 공간이 없어야하고 그 후 정기적 인 공간이 있어야합니다.! 전에 공간이 없어야하고 그 후 정기적 인 공간이 있어야합니다.“ , ' 이전에는 일반 공간이 있어야하며 그 후에는 공간이 없어야합니다.” , ' 이전에는 공간이없고 정기적 인 공간이 있어야합니다.« , ‹ 이전에 일반 공간이 있어야하고 그 후에는 좁은 비 분해 공간이 있어야합니다.» , › 이전에 좁지 않은 공간과 정기적 인 공간이 있어야합니다.( 이전에 일반 공간이 있어야하고 그 후에는 공간이 없어야합니다.) 전에 공간이없고 정기적 인 공간이 있어야합니다.[ 이전에 일반 공간이 있어야하고 그 후 공간이 없어야합니다.] 이전에는 공간이없고 일반 공간이 있어야합니다.- (하이픈)는 공간이 없어야합니다.— (em, long) 또는 – (en, medium)는 전이나 후에 공간이 없어야합니다. EM 대시에는 인용문의 출처를 표시하는 데 익숙한 공간이 있어야합니다.… , ... , 또는 . . . 전후에 공간이없고, 전 공간이없고, 정기적 인 공간이없고, 이전과 공간이 없을 수 있습니다.' 전과 후에 공간이 없어야합니다. 대부분의 시간은 일반 언어 코드를 단순히 사용할 수 있지만 적용된 변환이 잘못된 경우 해당 국가의 특정 로케일 코드를 사용해보십시오. 예를 들어, Canadian French ( fr_CA )는 구두점에 다른 간격 규칙을 사용하므로 해당 컨텍스트에서 fr 사용하면 부적절한 결과가 발생할 수 있습니다.
en 영어를위한 일반 언어 코드en_US 미국en_GB 영국en_CA 캐나다en_AU 호주en_NZ 뉴질랜드en_IN 인도fr 프랑스어의 일반 언어 코드fr_FR 프랑스fr_BE 벨기에fr_CA 캐나다fr_CH 스위스fr_LU -룩셈부르크fr_MC -MONACOde 독일어의 일반 언어 코드de_DE 독일de_AT 오스트리아de_BE 벨기에de_CH 스위스de_LI -Liechtensteinde_LU 룩셈부르크es 스페인어의 일반 언어 코드es_ES 스페인es_AR 아르헨티나es_BO 볼리비아es_CL 칠레es_CO 콜롬비아es_CR 코스타리카es_DO 도미니카 공화국es_EC 에콰도르es_SV -EL SALVADORes_GT 과테말라es_HN 온두라스es_MX 멕시코es_NI 니카라과es_PA 파나마es_PY 파라과이es_PE -PERUes_PR 푸에르토 리코es_UY 우루과이es_US 미국es_VE 베네수엘라