<delete> // This is a simple html2text converter. It only erases all // HTML tags from a file. <init append scan="macros"> <init scan="html2text"> </init> // suppress damn warnings <define name=foo> function foo() {} </define> // the main function <define name="html2text" init="html2text" PAR_1=infile> function html2text( infile_name ) { // try open file var infile = new File( infile_name, "r", true, true ); if( !infile.is_valid() ) { message( "ERROR: cannot open file", infile.get_name() ); return; } // lex the file // create a tmp file var tmp = new File( get_tmp_file(), "rwt", false, false ); var lexer = new Lexer( infile, tmp ); if( ! lexer.is_valid() ) { message( "ERROR: cannot lex file:", lexer.get_error() ); return; } lexer.lex(); if( ! lexer.is_valid() ) { message( "ERROR: cannot lex file:", lexer.get_error() ); return; } tmp.clear(); tmp.seekg(0); // spool back to begin while( ! tmp.eof() ) { var line = new Line( tmp.getline() ); // ignore invalid lines if( ! line.is_valid() ) continue; if( line.tag_type != "" ) { // here you can now inspekt the tag // it is not necessary but a good // example var tag = new Tag( line ); if( tag.is_valid() ) { var m = "Tag: " + tag.get_tag_type(); // the message string for( var i = 0 ; i < tag.get_number_of_options() ; i++ ) { m = m + " | Option: " + tag.get_option_name( i ) + " Value: " + tag.get_option_value( i ); } message( m ); } } else { // Line is not a print the stuff out print( line.tag ); } } } </define> </delete>