{"id":15167208,"url":"https://github.com/milankyncl/nette-seo","last_synced_at":"2026-01-21T01:33:07.509Z","repository":{"id":62528912,"uuid":"143854993","full_name":"milankyncl/nette-seo","owner":"milankyncl","description":"Nette SEO component for building SEO optimized website.","archived":false,"fork":false,"pushed_at":"2020-02-01T23:56:37.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-23T01:42:26.634Z","etag":null,"topics":["nette","nette-extension","nette-framework","php","seo","seotools"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/milankyncl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-07T10:04:14.000Z","updated_at":"2025-05-14T17:09:14.000Z","dependencies_parsed_at":"2022-11-02T10:45:48.893Z","dependency_job_id":null,"html_url":"https://github.com/milankyncl/nette-seo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/milankyncl/nette-seo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milankyncl%2Fnette-seo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milankyncl%2Fnette-seo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milankyncl%2Fnette-seo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milankyncl%2Fnette-seo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milankyncl","download_url":"https://codeload.github.com/milankyncl/nette-seo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milankyncl%2Fnette-seo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28621666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T23:49:58.628Z","status":"ssl_error","status_checked_at":"2026-01-20T23:47:29.996Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nette","nette-extension","nette-framework","php","seo","seotools"],"created_at":"2024-09-27T05:41:41.332Z","updated_at":"2026-01-21T01:33:07.493Z","avatar_url":"https://github.com/milankyncl.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nette-framework SEO extension\n\nNette-framework SEO extension is a simple module to build head meta tags for website in simple steps.\n\n## Installation\n\n```shell\ncomposer require milankyncl/nette-seo\n```\n\n## Usage\n\n1. Register extension in your ```config.neon``` file.\n\n    ```yaml\n    extensions:\n        # ...\n        seo: MilanKyncl\\Nette\\SEO\\DI\\SEOExtension\n    ```\n\n2. Set your preferences.\n\n    ```yaml\n    \n    seo:\n        site_name: \"Super cool website!\" # Your website Name\n        description: \"Description for your website\" # Website default description\n        image: \n            url: \"//www.example.cz/super-cool-image.png\" # Preview image URL\n            width: 1260 # Image width\n            height: 630 # Image height\n        # Or just:\n        # image: \"//www.example.cz/super-cool-image.png\"\n        separator: '-' # Title separator \n        customTags: # Your custom tags, will show before title tag\n            copyright: 'Company 2018' # Copyright eg.\n            author: 'Name \u003cemail@email.com\u003e' # Author eg.\n    ```\n    \n3. Inject SEOResolver factory and MetaTags component in your BasePresenter.\n\n    ```php\n    \n    // With @inject annotation:\n     \n    /** @var \\MilanKyncl\\Nette\\SEO\\SEOResolver @inject */\n    public $seo;\n     \n    /** @var \\MilanKyncl\\Nette\\SEO\\Components\\MetaTags @inject */\n    public $metaTagsComponent;\n     \n    // Or in constructor:\n     \n    public function __construct(\\MilanKyncl\\Nette\\SEO\\SEOResolver $seo, \\MilanKyncl\\Nette\\SEO\\Components\\MetaTags $metaTagsComponent) {\n     \n       $this-\u003eseo = $seo;\n       $this-\u003emetaTagsComponent = $metaTagsComponent;\n     \n    }\n \n    ```\n    \n4. Create Seo Meta tags component (in BasePresenter) and in your action set title, description, or custom meta tags for your head. Use methods from [documentation](#documentation)\n\n    ```php\n \n    // HomepagePresenter eg.\n     \n    public function indexAction() {\n       \n       $this-\u003eseo-\u003esetTitle('Homepage'); // The title will look like: Homepage - Super cool website! ({$title} {$separator} {$site_name})\n \n    }\n     \n    // Base Presenter\n     \n    public function createComponentSeoMetaTags() {\n       \n       // You can use some methods to change default options from documentation here\n       // before returning the component\n       // $this-\u003eseo–\u003esetTitle($title)\n       // $this-\u003eseo–\u003esetDescription($description)\n       // $this-\u003eseo–\u003esetImage($url, $width, $height)\n        \n       // Use this right before returning the component\n       $this-\u003emetaTagsComponent-\u003esetResolver($this-\u003eseo);\n     \n       return $this-\u003emetaTagsComponent;   \n     \n    }\n \n    ```\n    \n5. Place control macro in your .latte file.\n    \n    ```latte\n       \n       \u003chtml\u003e\n           \u003chead\u003e\n               {* \n                * Will genereate all custom meta tags, \n                * then title and finally seo tags \n                *}\n               {control seoMetaTags}\n            \n               {* Your head content *}\n               \u003clink rel=\"stylesheet\" href=\"style.css\"\u003e   \n           \u003c/head\u003e\n           \u003cbody\u003e\n        \n           \u003c/body\u003e\n       \u003c/html\u003e\n    ```\n    \n## Documentation\n\n### Configuration\n\n**site_name**\n\nName of your site, will be showed in `\u003ctitle\u003e` tag after/before page title and separator. Will set `og:title`, `twitter:title`, `og:site_name` meta properies.\n```\ndefault: null\noptions: string\n```\n\n**description**\n\nDescription of your page, will set in `description`, `og:description`, `twitter:description` meta properties.\n```\ndefault: null\noptions: string\n```\n\n**type**\n\nType of your object/content. More info about the property at [ogp.me#types](http://ogp.me/#types).\n```\ndefault: 'website'\noptions: string\n```\n\n**image**\n\nPreview image of your website. Will set `og:image`, `twitter:image`. You can specify only Url of image, or specify `url`, `width` and `height` parameters.\n```\ndefault: null\noptions: string|object\n```\n\n**separator**\n\nSeparator in your `\u003ctitle\u003e` element.\n```\ndefault: '-'\noptions: string\n```\n\n**customTags**\n\nCustom meta tags. Key of array item will appear `name` attribute and its value will appear in `content` attribute. \n```\ndefault: []\noptions: Array\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilankyncl%2Fnette-seo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilankyncl%2Fnette-seo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilankyncl%2Fnette-seo/lists"}