Lynx 또는 elink가 공백과 개행 문자를 해석하도록 강제

Lynx 또는 elink가 공백과 개행 문자를 해석하도록 강제

다음 명령과 그 결과를 고려하십시오.

$ echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>"|lynx -dump -stdin

   a
   b
   c
$ echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>"|elinks -dump
   a
   b
   c

둘 다 올바른 줄 수를 인쇄하지 않습니다. elinks첫 번째 공백은 건너뛰고 빈 줄과 공백만 포함하는 후행 줄은 모두 건너뜁니다.

모든 공백과 줄바꿈을 강제로 적용 lynx하거나 해석하는 방법이 있나요 ? elinks나는 그들의 맨 페이지에서 명백한 것을 볼 수 없습니다.

sed( 표시된 후 또는 기타 항목에 의해 억제되는 임시 문자를 사용하는 경우는 제외됩니다 .)tr

답변1

다음 명령을 사용하여 이 동작을 수정하도록 Lynx를 구성할 수 있습니다.COLLAPSE_BR_TAGSlynx.cfg와 같은 구성 파일에서:

FALSE로 설정 하면 COLLAPSE_BR_TAGSLynx는 직렬 BR 태그를 축소하지 않습니다. TRUE로 설정하면 두 개 이상의 동시 BR이 단일 줄 바꿈으로 축소됩니다. HTML에 추가 빈 줄을 삽입하는 효율적인 방법은 개행 문자만 포함하는 PRE 블록을 사용하는 것입니다.

기본값은 COLLAPSE_BR_TAGSTRUE 입니다.

답변2

Lynx v2.8.9(출시됨2018년 7월 8일) trim_blank_lines빈 줄을 다듬을지 여부를 제어하는 ​​옵션이 추가되었습니다.

collapse_br_tagstrim_blank_lines옵션을 다음으로 설정합니다 .잘못된1은 빈 줄을 남깁니다.

1 Lynx는 "1", "+", "on", "true"를 참값으로 인식하고, "0", "-", "off", "false"를 거짓값으로 인식합니다.
https://www.mankier.com/1/lynx

예:

echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>d" \
| lynx -stdin -collapse_br_tags=0 -trim_blank_lines=0 -nomargins=1 -dump

결과:



a
b
c


d

불행하게도 위의 출력에 표시된 것처럼 잘못된 후행 개행 문자가 표시됩니다.

다행히도 이 문제는 추가 수정으로 쉽게 해결됩니다.sed 파이프라인 단계는 EOF에서 여러 줄 바꿈을 제거합니다.:

echo "<br/> <br/>a<br/>b<br/>c<br/><br/> <br/>d" \
| lynx -stdin -collapse_br_tags=0 -trim_blank_lines=0 -nomargins=1 -dump \
| sed ':loop; /^\n*$/{$d;N;}; /\n$/b loop'

관련 정보