/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
new object $pueblo_format: $html_format;

var $root created_on = 862777021;
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$pueblo_format];
var $root manager = $pueblo_format;

public method .do_dd() {
    arg vars, flags, args;
    
    return $plain_format.do_dd(vars, flags, args);
};

public method .do_detail() {
    arg vars, flags, args;
    var det;
    
    det = flags.getkey("name");
    return [((((((("<a href=\"" + (vars['base_url])) + "/bin/describe?target=") + ((vars['this]).objname())) + "&detail=") + ($http.encode(det))) + "\">") + det) + "</a></b>", vars];
};

public method .do_dl() {
    arg vars, flags, args;
    
    [args, vars] = $plain_format.do_dl(vars, flags, args);
    return [("<pre>" + args) + "</pre>", vars];
};

public method .do_dt() {
    arg vars, flags, args;
    
    return $plain_format.do_dt(vars, flags, args);
};

public method .do_img() {
    arg vars, flags, args;
    var src, html, alt;
    
    src = flags.getkey("src");
    alt = (| ("alt=\"" + (flags.getkey("alt"))) + "\"" |) || "";
    if (!match_regexp(src, "^(http|ftp):"))
        src = (vars['base_url]) + src;
    return [((("<img src=\"" + src) + "\" align=left hspace=10 ") + alt) + ">", vars];
};

public method .do_link() {
    arg vars, flags, args;
    var node;
    
    [args, vars] = ._eval_ctext([args[1]], vars);
    node = (| flags.getkey("node") |);
    if (node)
        return [((("<a xch_cmd=\"@help " + node) + "\">") + args) + "</a>", vars];
    return ["&gt;&gt;ERROR: Invalid node&lt;&lt;", vars];
};

public method .do_obj() {
    arg vars, flags, args;
    var gateway, argname, output, context, object, name, options;
    
    name = flags.getkey("name");
    [name, vars] = ._eval_ctext([name], vars);
    context = flags.getkey("context");
    options = (| flags.getkey("options") |);
    object = args[1];
    if (type(context) == 'string)
        context = tosym(context);
    if (options && (type(options) == 'string))
        options = tosym(options);
    switch (context) {
        case 'look:
            if (options) {
                switch (options) {
                    case 'exit:
                        output = [((("<a xch_cmd=\"go " + (object.name('noarticle))) + "\">") + name) + "</a>", vars];
                    case 'contained:
                        output = [((((("<a xch_cmd=\"look " + ((object.location()).name('noarticle))) + "'s ") + (object.name('noarticle))) + "\">") + name) + "</a>", vars];
                }
            } else {
                output = [((("<a xch_cmd=\"look " + (object.name('noarticle))) + "\">") + name) + "</a>", vars];
            }
        case 'display:
            [gateway, argname] = ["display", "target"];
        case 'exit:
            output = [((("<a xch_cmd=\"go " + (object.name())) + "\">") + name) + "</a>", vars];
    }
    if (output)
        return output;
    return [((((((((("<a href=\"" + (vars['base_url])) + "/bin/") + gateway) + "?") + argname) + "=") + tostr(object)) + "\">") + name) + "</a>", vars];
};

public method .do_table() {
    arg vars, flags, args;
    
    [args, vars] = $plain_format.do_table(vars, flags, args);
    return [("<pre>" + args) + "</pre>", vars];
};

public method .do_td() {
    arg vars, flags, args;
    
    return $plain_format.do_td(vars, flags, args);
};

public method .do_tr() {
    arg vars, flags, args;
    
    return $plain_format.do_tr(vars, flags, args);
};

public method .format() {
    arg data, vars;
    var str, len, line, out, base, port;
    
    base = "http://" + ($dns.hostname(""));
    port = $http_daemon.current_port();
    if (port != 80)
        base += ":" + port;
    vars = dict_add(vars, 'base_url, base);
    str = (> (._eval_ctext(data, vars))[1] <);
    if ((strlen(str) < 2) || (substr(str, strlen(str) - 1) != "\n"))
        str += "\n";
    return str_to_buf(str + "\n");
};

public method .init() {
    return #[['width, 78]];
};