Exemple #1
0
        /*
         @css-patch name {
         }
        */
        if (!$bracket || !preg_match('/^\\s*([\\w-]+)\\s*$/', $args, $matches)) {
            $fragment->trace($root, '格式错误: @css-patcher name{}');
            return FALSE;
        }
        $name = $matches[1];
        $pos = $fragment->get_var($name);
        if ($pos === NULL) {
            $fragment->trace($root, '未定义的补丁: ' . $name);
            return FALSE;
        }
        CSSP::register_rule_patcher('*', 'CSSP_BuildIn::do_patch', array('patcher_pos' => $pos), 'do_patch');
        $fragment->parse_content($root);
        CSSP::unregister_rule_patcher('*', 'do_patch');
    }
}
// 注册内置CSS Rule Patcher
CSSP::register_pseudo_handler('css-define', 'CSSP_BuildIn::pseudo_define');
CSSP::register_pseudo_handler('css-foreach', 'CSSP_BuildIn::pseudo_foreach');
CSSP::register_pseudo_handler('css-for', 'CSSP_BuildIn::pseudo_for');
CSSP::register_pseudo_handler('css-rule', 'CSSP_BuildIn::pseudo_rule');
CSSP::register_pseudo_handler('css-test', 'CSSP_BuildIn::pseudo_test');
CSSP::register_pseudo_handler('css-switch', 'CSSP_BuildIn::pseudo_switch');
CSSP::register_pseudo_handler('css-patcher', 'CSSP_BuildIn::pseudo_patcher');
CSSP::register_pseudo_handler('css-patch', 'CSSP_BuildIn::pseudo_patch');
CSSP::register_rule_patcher('extends', 'CSSP_BuildIn::patch_extends');
CSSP::$css_prefix = @file_get_contents(dirname(__FILE__) . '/cssp_prefix.cssp');