On 22/3/2006, at 16:52, Niko Dittmann wrote:
In that case, you could also call iconv -f iso-8859-1 -t utf-8
certainly right. thank you. this is a shell-command, right? the ruby-method is "iconv", too, i suppose... couldn't figure out how to get this to work... is this used in any other command?
It’s a shell command, yes. Iconv though exist as a library and is thus available in a few programming languages as iconv as well.
Using it in Ruby to convert from iso-8859-1 should be a matter of:
require 'iconv' ... $html = Iconv.iconv("utf-8", "iso-8859-1", $html)
But you could also do something like:
puts "<meta http-equiv='Refresh' content='0;URL=#{url}'>" That should then also save you the trouble of rewriting the relative URLs.
hm.... but as i include 2 selfhtml-pages (elemtens and attributes) into one page of output i thought it would be a good idea to filter the pages before concating them and just show the documentation for what i lookup... with your method it isn't even possible to include 2 pages into one, is it?
It is not, no. I overlooked that part, sorry.
You can also read TM_CURRENT_LINE and TM_LINE_INDEX for the carets position and search back for the tag in code.
hmm... i couldn't figure out how to do this. this would be far more elegant. is there another command where this is used?
The CSS -> Documentation for Property does something close, but not exactly the same.
Here’s an example which grab the first (when scanning right-to-left) tag to the left of the caret:
line = ENV["TM_CURRENT_LINE"].to_s pos = ENV["TM_LINE_INDEX"].to_i
if m = /\A.{0,#{pos}}<\s*(\w+)/.match(line) then puts "Tag: " + m[1] end
The magic is in the regexp. What it does is, first it ensures the match starts from the beginning of the line (‘\A’), then it matches at most “caret index” characters, and then it matches a tag (‘<\s*(\w +)’), putting the name in capture group 1.
Since the range given (‘{0,#{pos}}’) is greedy, it will match as many characters as possible, which still allow for a tag to be matched.