public function nestedList(array $list, array $options = [], array $item_options = [], $type_list = 'list') {
        $type = $type_list == 'list' ? 'ul' : 'ol';
        $r = '<' . $type . ' ' . Str::htmlserialize($options) . '>';
        foreach ($list as $key => $l) {
            $r .= is_array($l) ? $this->nestedList($l, key_exists($key, $item_options) ? $item_options[$key] : []) : 
                '<li ' . (key_exists($key, $item_options) ? Str::htmlserialize($item_options[$key]) : '') . ' >' . 
                    $l . 
                '</li>';
        }
        $r .= '</' . $type . '>';
        
        return $r;
    }