문제
루비 디버거로 몇 시간을 보낸 후 마침내 HPRICOT에 공급하기 전에 오르플 링 된 HTML 페이지를 정리해야한다는 것을 알게되었습니다. 내가 지금까지 찾은 최고의 솔루션은 다음과 같습니다 깔끔한 루비 인터페이스.
깔끔한 명령 줄에서 잘 작동하고 루비 인터페이스도 작동합니다. 그러나 필요합니다 DL/가져 오기, Jruby에로드하지 못하는 것 :
$ jirb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'tidy'
LoadError: no such file to load -- dl/import
이 라이브러리가 Jruby에서 사용할 수 있습니까? 웹 검색에서 밝혀졌습니다 작년에 사용할 수 없었습니다.
또는 누군가 Jruby에서 기형 HTML을 정리할 수있는 다른 방법을 제안 할 수 있습니까?
업데이트
Markus의 제안에 따라 나는 이제 libtidy 대신 Popen을 통해 Tidy를 사용합니다. 향후 참조를 위해 Tidy를 통해 문서 데이터를 파이프하는 코드를 게시했습니다. 바라건대, 이것은 강력하고 휴대용입니다.
def clean(data)
cleaned = nil
tidy = IO.popen('tidy -f "log/tidy.log" --force-output yes -wrap 0 -utf8', 'w+')
begin
tidy.write(data)
tidy.close_write
cleaned = tidy.read
tidy.close_read
rescue Errno::EPIPE
$stderr.print "Running 'tidy' failed: " + $!
tidy.close
end
return cleaned if cleaned and cleaned != ""
return data
end
해결책
내부의 명령 줄에서 사용할 수 있습니다. Jruby ~와 함께 %x{...}
또는 백틱. 당신은 또한 고려하고 싶을 수도 있습니다 popen
(그리고 그것을 통해 물건을 파이프하십시오).
아마도 우아하지는 않지만 지원되지 않은 라이브러리를 엉망으로 만들기보다는 최소한의 번거 로움을 느낄 가능성이 높습니다.
제휴하지 않습니다 StackOverflow