1

주제: 스킨에 글자 표시 제한을 글자 길이 제한으로

예전 0.96 시절 어떤분이 글자 Byte(당시) 단위로 잘라서 출력해 주던 태터툴즈를 글자 길이로 잘라서 출력해 주도록 변경하는 법을 적어 주셨는데, 이걸 태터툴즈1.0에 적용을 해 주었으면 합니다.


예를들어 15글자 표시로 할경우: (지금 방식)

Hello World! (1)
글자 길기 태스트 입니다~ (100)
abcdefghi jklmn (5)


보시다시피 영어, 문자, 한글의 글자 폭이 다 달라서 전체 폭이 들숙날숙 이지요.
하지만 이걸 길이로 제한해서 자르면,

예를들어 40px 단위로:


Hello World! (1)
글자 길이 테 (100)
abcdefghi jk (5)


식으로 말이죠.
좀 더 보기가 깔끔하고 좋자나요.



그나저나 너무 바라는게 많아서 죄송해 지네요 벌써 몇개째야..; roll

JWC (2006-04-16 04:25:37)에 의해 마지막으로 수정

2

답글: 스킨에 글자 표시 제한을 글자 길이 제한으로

그게; 살짝 힘든것이 서버마다 유니코드를 취급하는 단위가 다릅니다. ;;; 일반적으로 적용되게 하기가 힘들어요 ㅠ_ㅠ

예를 들어 MySQL 3와 4.0은 강제 유니코드 저장시 무조건 3바이트를 사용합니다. 그런데 4.1 이상부터는 유니코드를 지원하기 때문에 문자의 종류에 따라 가변적으로 저장되지요. 그래서 바이트를 픽셀로 번역할 때 총 길이를 어디에 맞출지가 애매해집니다.

물론 css등을 사용해서 px단위로 자르고 그 이상은 word-break등을 이용하는 수도 있겠지만 편법이 되겠죠.

방법을 생각해 보겠습니다 smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

3

답글: 스킨에 글자 표시 제한을 글자 길이 제한으로

inureyes 작성:

그게; 살짝 힘든것이 서버마다 유니코드를 취급하는 단위가 다릅니다. ;;; 일반적으로 적용되게 하기가 힘들어요 ㅠ_ㅠ

예를 들어 MySQL 3와 4.0은 강제 유니코드 저장시 무조건 3바이트를 사용합니다. 그런데 4.1 이상부터는 유니코드를 지원하기 때문에 문자의 종류에 따라 가변적으로 저장되지요. 그래서 바이트를 픽셀로 번역할 때 총 길이를 어디에 맞출지가 애매해집니다.

물론 css등을 사용해서 px단위로 자르고 그 이상은 word-break등을 이용하는 수도 있겠지만 편법이 되겠죠.

방법을 생각해 보겠습니다 smile

기대해 볼께요 wink <- 압박주기..

css로 짜르면 스크롤할때 느낌이 이상해서..;

4

답글: 스킨에 글자 표시 제한을 글자 길이 제한으로

JWC 작성:

css로 짜르면 스크롤할때 느낌이 이상해서..;

이상하다는게 무엇을 말씀하시는 건가요?
(제가 만드는 플러그인은 css로 처리하고 있거든요.)

그리고 길이(px)로 자르는 방법은 css의 설정으로 인해 어떻게 변할지 알 수가 없기때문에 서버단에서 해결할 수가 없습니다.
(font-size, font-family, font-weight, word-spacing 등 길이는 얼마든지 가변적이 되니까요.)
대안으로는 javascript와 css밖에 없죠.
예전에 대충 javascript로 만들어 봤었는데 결론은 그냥 css로 하는게 편하다 였습니다.;;

5

답글: 스킨에 글자 표시 제한을 글자 길이 제한으로

이건 기술적으로 매우 힘든 부분입니다.
원하시는 것처럼 구현해주는 탐색기 등에서 파일명을 축약해서 보여주는 건 시스템 자체 API를 활용하고 있거든요. (Windows의 경우, hDC로 지정한 글꼴 정보와 함께 DrawText 함수를 쓰지요.) 서버측에서 그런 정도의 렌더링을 조절해줄 수는 없습니다. 컴퓨터마다 보이는 크기도 다를 뿐더라 운영체제마다 렌더링 방식도 다 다를 테니..

그나마 조금 개선하는 방법이라면, 한글의 너비를 영문의 두 배 정도로 보고 약식으로 계산하는 방법이 있겠습니다. (px는 안 되겠지만..)
CSS가 발전해서 웹브라우저에게 렌더링을 맡길 수 있다면 좋겠지만 현재는 overflow로 자르는 수밖에 없지요. (javascript 삽질해서 width:auto인 가상 element를 생성해서 텍스트를 적당히 잘라 넣어가면서 그 너비를 측정해서 잘라주고 한다면 또 모를까요..-_-)

daybreaker (2006-04-16 14:10:07)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

6

답글: 스킨에 글자 표시 제한을 글자 길이 제한으로

daybreaker 작성:

이건 기술적으로 매우 힘든 부분입니다.
원하시는 것처럼 구현해주는 탐색기 등에서 파일명을 축약해서 보여주는 건 시스템 자체 API를 활용하고 있거든요. (Windows의 경우, hDC로 지정한 글꼴 정보와 함께 DrawText 함수를 쓰지요.) 서버측에서 그런 정도의 렌더링을 조절해줄 수는 없습니다. 컴퓨터마다 보이는 크기도 다를 뿐더라 운영체제마다 렌더링 방식도 다 다를 테니..

GD를 사용하면 어느정도까지는 비슷하게나마 가능합니다만 이것도 확실히 한계가 있죠.
브라우져 자체에서 글자 크기를 바꿔버리면 어찌할 방법이 없으니까요.
(잘라낸 글을 아예 이미지로 보이게 해버리면 되기는 하겠군요. -_-;; )

daybreaker 작성:

(javascript 삽질해서 width:auto인 가상 element를 생성해서 텍스트를 적당히 잘라 넣어가면서 그 너비를 측정해서 잘라주고 한다면 또 모를까요..-_-)

예전에 대충 javascript로 만들어 봤다고 했던게 정확히 이 방법이었죠.;;