Skip to content

add font2span subroutine#2

Open
aanoaa wants to merge 1 commit into
gypark:masterfrom
aanoaa:kindle
Open

add font2span subroutine#2
aanoaa wants to merge 1 commit into
gypark:masterfrom
aanoaa:kindle

Conversation

@aanoaa

@aanoaa aanoaa commented Nov 22, 2012

Copy link
Copy Markdown

kindle 에서의 원활한 소스코드 하이라이팅을 위해 vim 에서 html 에서
font 태그를 embed stylesheet 로 대체

    <font color="#ff40ff">#!/usr/bin/env perl</font>
    <font color="#ffff00">use strict</font>;
    <font color="#ffff00">use warnings</font>;
    <font color="#ffff00">use </font><font color="#ff6060">5.010</font>;

    <style type="text/css">
    ._00ffff { color: #00ffff }
    ._ff6060 { color: #ff6060 }
    ._ffff00 { color: #ffff00 }
    ._8080ff { color: #8080ff }
    ._ff40ff { color: #ff40ff }
    </style>
    <span class="_ff40ff">#!/usr/bin/env perl</span>
    <span class="_ffff00">use strict</span>;
    <span class="_ffff00">use warnings</span>;
    <span class="_ffff00">use </span><span class="_ff6060">5.010</span>;

로 바뀜

kindle 에서의 원활한 소스코드 하이라이팅을 위해 vim 에서 html 에서
font 태그를 embed stylesheet 로 대체

    <font color="#ff40ff">#!/usr/bin/env perl</font>
    <font color="#ffff00">use strict</font>;
    <font color="#ffff00">use warnings</font>;
    <font color="#ffff00">use </font><font color="#ff6060">5.010</font>;

가

    <style type="text/css">
    ._00ffff { color: #00ffff }
    ._ff6060 { color: #ff6060 }
    ._ffff00 { color: #ffff00 }
    ._8080ff { color: #8080ff }
    ._ff40ff { color: #ff40ff }
    </style>
    <span class="_ff40ff">#!/usr/bin/env perl</span>
    <span class="_ffff00">use strict</span>;
    <span class="_ffff00">use warnings</span>;
    <span class="_ffff00">use </span><span class="_ff6060">5.010</span>;

로 바뀜
@gypark

gypark commented Nov 23, 2012

Copy link
Copy Markdown
Owner

우와 감사합니다.

vim 의 TOHtml 플러그인에서도 고전적인 font 태그를 쓰는 방식과 CSS를 쓰는 방식 중에 골라서 할 수가 있긴 한데요.

문제가 뭐냐 하면... IE에서는 전혀 저 색상이 적용되지 않는군요.

(아마 당시에도 그래서 CSS방식을 포기했던 것 같기도 하고... 아니면 별 생각없이 디폴트를 택해서 그랬나 싶기도 하고
가물가물...)

span 태그에서 아무리 스타일을 주어도,
그 상위에 있는 pre.vim 에 지정된 color 값으로만 나오고,
이걸 삭제하면 그 위에 있는 body 태그 스타일에 지정된 color 값으로만 나와버리는군요 -_-;

암튼 예전부터 IE 가 유난히 뜻대로 동작을 안 해서 온갖 편법을 부리곤 했는데...
이렇게 완전히 하일라이트가 안 되어버리면 무시할 수 있는 수준이 아니라서 적용을 할 수가...

음, 여기까지 쓰고나서 혹시나 해서 클래스로 지정하지 않고 그냥 태그에 style 속성을 넣었더니... 되는군요 -_-;
http://gypark.pe.kr/wiki/%EC%97%B0%EC%8A%B5%EC%9E%A5/%ED%85%8C%EC%8A%A4%ED%8A%B8
이 페이지에 보시면 아래 "초록색으로 나와야 함"이 두 번 나오는데, 첫번째는 클래스로, 두번째는 태그 속성으로 지정한 겁니다. IE에서는 두번째만 초록색으로 나오는군요.

암튼 못 살아요 이것때문에 아주 -_-

그래도 일단 이 문제는 클래스 대신 일일이 컬러를 넣는 지저분한 방식으로 해결할 수 있겠군요.

그런데 여기서 끝이 아니라 한가지가 더 있는데,

제가 위키소스 고칠 때 가장 조심하는 건 내가 입력한 내용이 나도 모르는 사이에 바뀌어서 출력되는 겁니다.
이것 때문에 소스 한 두줄 고치고서 테스트만 일주일(물론 시간날 때 틈틈이) 걸리기도 하고,
확신이 안 서면 포기하기도 하고 그러는데.

예를 들어 지금 패치의 마지막에 보면 "/font"를 "/span"으로 치환하고 있는데,

{{{#!vim
   ... <font>... </font> 태그를 사용
}}}

저렇게 적어놓으면 저게 "/span> 태그를 사용"이라고 치환되어 있겠군요 :-)

다행히 사용자가 입력한 부등호는 미리 lt gt 로 치환되어 있으니 여기서는 부등호까지 붙여서 치환시키면 괜찮을 거라고 생각됩니다만, 좀 더 확인해봐야겠습니다.

(아, 지금까지 얘기한 게 aanoaa님보고 고쳐서 다시 달라는 얘기 아닙니다ㅎㅎ 제가 할 일인데, 기록 차원에서)

지금은 졸려서 내일 다시 봐야겠네요.

참, 이렇게 고치면 킨들에서 제대로 보이는 건 맞는거죠?
사실 킨들을 위해서 고쳤다가 이번엔 또 다른 모바일이나 오래된 기기나 브라우저에서 안 보일까 걱정이라서요.
IE6.0까지...는 사실 오버겠지만ㅋㅋ

@aanoaa

aanoaa commented Nov 24, 2012

Copy link
Copy Markdown
Author

html spec 뭐 이런거 안따지고 편법으로 고치려다가.. @gypark 님 테스터로 고생시켜서 죄송합니다.

http://www.w3.org/TR/html4/present/styles.html#h-14.2.3 내용 중 일부입니다.

The STYLE element allows authors to put style sheet rules in the head of the document. HTML permits any number of STYLE elements in the HEAD section of a document.

(IE 가 없어서 테스트를 못해봅니다. Aㅏ.. 👎 )
style 태그가 head 가 아닌 body 태그에 정의 되었기 때문에 IE 에서 안되는 것 같습니다.
IE 가 잘못했다기 보다는 크롬이나 파폭의 스펙을 넘어선 구현이 아닌가..

wiki 의 head 에 추가로 vim 에서 사용하는 색상을 미리 정의한 css 파일을 넣어주면 될 것 같습니다.

IE 에서 안되는거

<html>
  <head>
  </head>
  <body>
    <style type="text/css">
      p { color: red }
    </style>
    <p>hi</p>
  </body>
</html>

IE 에서 될거같은거

<html>
  <head>
    <style>
      p { color: red }
    </style>
  </head>
  <body>
    <p>hi</p>
  </body>
</html>

이따가 IE 사용할 수 있을 것 같으니까 거기서 테스트 해볼게요.

@aanoaa

aanoaa commented Nov 24, 2012

Copy link
Copy Markdown
Author

제가 위키소스 고칠 때 가장 조심하는 건 내가 입력한 내용이 나도 모르는 사이에 바뀌어서 출력되는 겁니다.

이부분은 좀 더 신경쓰고 조심하도록 하겠습니다.

@gypark

gypark commented Nov 24, 2012

Copy link
Copy Markdown
Owner

이부분은 좀 더 신경쓰고 조심하도록 하겠습니다.

아이고, 위에도 말씀드렸듯이 그건 제가 체크할 테니까 신경쓰지 마세요. ^^;

이렇게 제안해주시는 것만으로도 감사합니다.

@gypark

gypark commented Nov 24, 2012

Copy link
Copy Markdown
Owner

vim 에서 css 를 사용한 형태로도 변환할 수 있어서, 그걸 써서 변환시키고 불필요한 부분을 제거하는 정도로 고쳐봤습니다.
55f970b

그리고 IE에서 안 되었던 이유는... 클래스 이름이 "_"로 시작해서 그런 거더군요. 그냥 알파벳으로 시작하게 했더니 잘 되더라고요ㅋ 못 살아요 아주.

킨들에서 이젠 잘 보이면 좋겠군요.

(설마 이번에는 CSS를 제대로 처리 못하는 오래된 기기 사용자분이 안 보인다고 말하진 않겠죠ㅎ)

@aanoaa

aanoaa commented Nov 27, 2012

Copy link
Copy Markdown
Author

Before

After

첨엔 잘되는줄 알았으나 Comment 랑 몇가지 클래스가 안보이더라고요. 이게 send to kindle 프로그램이 다시 변형할때 무슨 룰이 있는지 제가 해봤던 amazon 꺼랑 readability 둘다 비슷한 현상으로 안나왔습니다.

힘겹게 작업해주셧는데..

거기에 대해선 제가 혼자 테스트해 볼 수 있으니까 신경쓰지 마세요.
탐구생활을 해보고 코멘트 달도록 하겠습니다.(언젠가는..)

@gypark

gypark commented Nov 28, 2012

Copy link
Copy Markdown
Owner

헛 이젠 흐리게도 아니고 아예 안 나오네요. comment 는 그다지 밝은 색상도 아닐텐데...

킨들 팔고 아이패드 사세요 ^^;;; =3 =3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants