public function link($content, $url = [], array $options = []) {
        /* @var $url_helper UrlHelper */
        $url_helper = $this->url;
        
        $cfg = [
            'href' => is_array($url) ? (
                key_exists('push', $url) ? $url_helper->push($url['push']) : (
                key_exists('add', $url) || key_exists('remove', $url) ? 
                    $url_helper->modify(
                        key_exists('add', $url) ? $url['add'] : [],
                        key_exists('remove', $url) ? $url['remove'] : []
                    ) : (
                        key_exists('generate', $url) ? $url_helper->build($url, Arr::trim($url, 'generate')) :
                            (key_exists('mailto', $url) ? 'mailto:' . $url['mailto'] : $url_helper->build($url))
                    )
            )) : ( $url_helper->routeExist($url) ? $url_helper->build([], $url) : $url )
        ] + $options;
        return '<a ' . Str::htmlserialize($cfg) . ' >' . $content . '</a>';
    }