[{"data":1,"prerenderedAt":1831},["ShallowReactive",2],{"helpers-navigation":3,"mdc-o8y00b-key":32,"helpers-version":74,"\u002Fdocs\u002Fhelpers\u002Fmeta-tags":75,"\u002Fdocs\u002Fhelpers\u002Fmeta-tags-surround":1826},[4],{"title":5,"path":6,"stem":7,"children":8,"icon":31},"Helpers","\u002Fdocs\u002Fhelpers","1.docs\u002F8.helpers\u002F1.index",[9,11,15,19,23,27],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Environment Variables","\u002Fdocs\u002Fhelpers\u002Fenvironment-variables","1.docs\u002F8.helpers\u002F2.environment-variables",{"title":16,"path":17,"stem":18},"Meta Tags","\u002Fdocs\u002Fhelpers\u002Fmeta-tags","1.docs\u002F8.helpers\u002F3.meta-tags",{"title":20,"path":21,"stem":22},"Sitemap and robots.txt","\u002Fdocs\u002Fhelpers\u002Fsitemap","1.docs\u002F8.helpers\u002F4.sitemap",{"title":24,"path":25,"stem":26},"Redirects","\u002Fdocs\u002Fhelpers\u002Fredirects","1.docs\u002F8.helpers\u002F5.redirects",{"title":28,"path":29,"stem":30},"Vite","\u002Fdocs\u002Fhelpers\u002Fvite","1.docs\u002F8.helpers\u002F6.vite","i-ri-tools-line",{"data":33,"body":34},{},{"type":35,"children":36},"root",[37],{"type":38,"tag":39,"props":40,"children":41},"element","p",{},[42,45,54,56,63,65,72],{"type":43,"value":44},"text","Kirby Tools is built on ",{"type":38,"tag":46,"props":47,"children":51},"a",{"href":48,"rel":49},"https:\u002F\u002Fgetkirby.com",[50],"nofollow",[52],{"type":43,"value":53},"Kirby",{"type":43,"value":55}," – with gratitude to the team and community who make it. Help me improve the plugins: share feedback in ",{"type":38,"tag":46,"props":57,"children":60},{"href":58,"rel":59},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fdiscussions",[50],[61],{"type":43,"value":62},"Discussions",{"type":43,"value":64}," or report bugs via ",{"type":38,"tag":46,"props":66,"children":69},{"href":67,"rel":68},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fissues",[50],[70],{"type":43,"value":71},"Issues",{"type":43,"value":73},".",null,{"id":76,"title":16,"body":77,"description":1821,"extension":1822,"meta":1823,"navigation":800,"path":17,"seo":1824,"stem":18,"__hash__":1825},"docs\u002F1.docs\u002F8.helpers\u002F3.meta-tags.md",{"type":78,"value":79,"toc":1801},"minimark",[80,96,227,241,304,310,708,713,728,779,783,1050,1063,1066,1081,1245,1261,1270,1288,1292,1296,1306,1420,1430,1504,1509,1521,1526,1547,1553,1563,1567,1598,1620,1700,1770,1774,1797],[39,81,82,83,87,88,91,92,95],{},"The ",[84,85,86],"code",{},"meta()"," page method renders the tags a page needs in its ",[84,89,90],{},"\u003Chead>",". It renders no ",[84,93,94],{},"\u003Ctitle>"," – that stays in your template:",[97,98,104],"pre",{"className":99,"code":100,"filename":101,"language":102,"meta":103,"style":103},"language-php shiki shiki-themes github-light github-light github-dark","\u003C?php $meta = $page->meta() ?>\n\u003Ctitle>\u003C?= $page->title()->escape() ?>\u003C\u002Ftitle>\n\u003C?= $meta->robots() ?>\n\u003C?= $meta->social() ?>\n\u003C?= $meta->jsonld() ?>\n","site\u002Fsnippets\u002Fhead.php","php","",[84,105,106,141,177,195,211],{"__ignoreMap":103},[107,108,111,115,118,122,125,128,131,135,138],"span",{"class":109,"line":110},"line",1,[107,112,114],{"class":113},"s8jYJ","\u003C?",[107,116,102],{"class":117},"sBjJW",[107,119,121],{"class":120},"sxrX7"," $meta ",[107,123,124],{"class":113},"=",[107,126,127],{"class":120}," $page",[107,129,130],{"class":113},"->",[107,132,134],{"class":133},"snPdu","meta",[107,136,137],{"class":120},"() ",[107,139,140],{"class":113},"?>\n",[107,142,144,147,150,153,155,157,159,162,164,167,169,172,174],{"class":109,"line":143},2,[107,145,146],{"class":113},"\u003C",[107,148,149],{"class":117},"title",[107,151,152],{"class":113},">\u003C?=",[107,154,127],{"class":120},[107,156,130],{"class":113},[107,158,149],{"class":133},[107,160,161],{"class":120},"()",[107,163,130],{"class":113},[107,165,166],{"class":133},"escape",[107,168,137],{"class":120},[107,170,171],{"class":113},"?>\u003C\u002F",[107,173,149],{"class":117},[107,175,176],{"class":113},">\n",[107,178,180,183,186,188,191,193],{"class":109,"line":179},3,[107,181,182],{"class":113},"\u003C?=",[107,184,185],{"class":120}," $meta",[107,187,130],{"class":113},[107,189,190],{"class":133},"robots",[107,192,137],{"class":120},[107,194,140],{"class":113},[107,196,198,200,202,204,207,209],{"class":109,"line":197},4,[107,199,182],{"class":113},[107,201,185],{"class":120},[107,203,130],{"class":113},[107,205,206],{"class":133},"social",[107,208,137],{"class":120},[107,210,140],{"class":113},[107,212,214,216,218,220,223,225],{"class":109,"line":213},5,[107,215,182],{"class":113},[107,217,185],{"class":120},[107,219,130],{"class":113},[107,221,222],{"class":133},"jsonld",[107,224,137],{"class":120},[107,226,140],{"class":113},[39,228,229,232,233,236,237,240],{},[84,230,231],{},"social()"," reads a ",[84,234,235],{},"description"," field and a ",[84,238,239],{},"thumbnail"," files field:",[97,242,247],{"className":243,"code":244,"filename":245,"language":246,"meta":103,"style":103},"language-yaml shiki shiki-themes github-light github-light github-dark","fields:\n  description:\n    type: textarea\n  thumbnail:\n    type: files\n    multiple: false\n","site\u002Fblueprints\u002Fpages\u002Fdefault.yml","yaml",[84,248,249,258,265,277,284,293],{"__ignoreMap":103},[107,250,251,255],{"class":109,"line":110},[107,252,254],{"class":253},"sovSZ","fields",[107,256,257],{"class":120},":\n",[107,259,260,263],{"class":109,"line":143},[107,261,262],{"class":253},"  description",[107,264,257],{"class":120},[107,266,267,270,273],{"class":109,"line":179},[107,268,269],{"class":253},"    type",[107,271,272],{"class":120},": ",[107,274,276],{"class":275},"sIIMD","textarea\n",[107,278,279,282],{"class":109,"line":197},[107,280,281],{"class":253},"  thumbnail",[107,283,257],{"class":120},[107,285,286,288,290],{"class":109,"line":213},[107,287,269],{"class":253},[107,289,272],{"class":120},[107,291,292],{"class":275},"files\n",[107,294,296,299,301],{"class":109,"line":295},6,[107,297,298],{"class":253},"    multiple",[107,300,272],{"class":120},[107,302,303],{"class":117},"false\n",[39,305,306,307,309],{},"With both filled in, ",[84,308,231],{}," renders:",[311,312,313],"code-collapse",{},[97,314,318],{"className":315,"code":316,"language":317,"meta":103,"style":103},"language-html shiki shiki-themes github-light github-light github-dark","\u003Cmeta\n  content=\"An exhibition of street photography from the 1970s.\"\n  name=\"description\"\n\u002F>\n\u003Cmeta content=\"Kirby Gallery\" property=\"og:site_name\" \u002F>\n\u003Cmeta content=\"https:\u002F\u002Fexample.com\u002Fexhibitions\u002Fstreet\" property=\"og:url\" \u002F>\n\u003Cmeta content=\"website\" property=\"og:type\" \u002F>\n\u003Cmeta content=\"Street\" property=\"og:title\" \u002F>\n\u003Cmeta\n  content=\"An exhibition of street photography from the 1970s.\"\n  property=\"og:description\"\n\u002F>\n\u003Cmeta\n  content=\"https:\u002F\u002Fexample.com\u002Fmedia\u002Fpages\u002Fexhibitions\u002Fstreet\u002F2f6c1e7a90-1791524069\u002Fposter-1200x.jpg\"\n  property=\"og:image\"\n\u002F>\n\u003Cmeta content=\"1200\" property=\"og:image:width\" \u002F>\n\u003Cmeta content=\"800\" property=\"og:image:height\" \u002F>\n\u003Cmeta content=\"Two people crossing a street\" property=\"og:image:alt\" \u002F>\n\u003Cmeta content=\"summary_large_image\" name=\"twitter:card\" \u002F>\n\u003Cmeta content=\"Street\" name=\"twitter:title\" \u002F>\n\u003Cmeta\n  content=\"An exhibition of street photography from the 1970s.\"\n  name=\"twitter:description\"\n\u002F>\n\u003Cmeta\n  content=\"https:\u002F\u002Fexample.com\u002Fmedia\u002Fpages\u002Fexhibitions\u002Fstreet\u002F2f6c1e7a90-1791524069\u002Fposter-1200x.jpg\"\n  name=\"twitter:image\"\n\u002F>\n\u003Cmeta content=\"Two people crossing a street\" name=\"twitter:image:alt\" \u002F>\n","html",[84,319,320,327,337,347,352,377,399,422,445,452,461,472,477,484,494,504,509,532,555,578,602,624,631,640,650,655,662,671,681,686],{"__ignoreMap":103},[107,321,322,324],{"class":109,"line":110},[107,323,146],{"class":120},[107,325,326],{"class":253},"meta\n",[107,328,329,332,334],{"class":109,"line":143},[107,330,331],{"class":133},"  content",[107,333,124],{"class":120},[107,335,336],{"class":275},"\"An exhibition of street photography from the 1970s.\"\n",[107,338,339,342,344],{"class":109,"line":179},[107,340,341],{"class":133},"  name",[107,343,124],{"class":120},[107,345,346],{"class":275},"\"description\"\n",[107,348,349],{"class":109,"line":197},[107,350,351],{"class":120},"\u002F>\n",[107,353,354,356,358,361,363,366,369,371,374],{"class":109,"line":213},[107,355,146],{"class":120},[107,357,134],{"class":253},[107,359,360],{"class":133}," content",[107,362,124],{"class":120},[107,364,365],{"class":275},"\"Kirby Gallery\"",[107,367,368],{"class":133}," property",[107,370,124],{"class":120},[107,372,373],{"class":275},"\"og:site_name\"",[107,375,376],{"class":120}," \u002F>\n",[107,378,379,381,383,385,387,390,392,394,397],{"class":109,"line":295},[107,380,146],{"class":120},[107,382,134],{"class":253},[107,384,360],{"class":133},[107,386,124],{"class":120},[107,388,389],{"class":275},"\"https:\u002F\u002Fexample.com\u002Fexhibitions\u002Fstreet\"",[107,391,368],{"class":133},[107,393,124],{"class":120},[107,395,396],{"class":275},"\"og:url\"",[107,398,376],{"class":120},[107,400,402,404,406,408,410,413,415,417,420],{"class":109,"line":401},7,[107,403,146],{"class":120},[107,405,134],{"class":253},[107,407,360],{"class":133},[107,409,124],{"class":120},[107,411,412],{"class":275},"\"website\"",[107,414,368],{"class":133},[107,416,124],{"class":120},[107,418,419],{"class":275},"\"og:type\"",[107,421,376],{"class":120},[107,423,425,427,429,431,433,436,438,440,443],{"class":109,"line":424},8,[107,426,146],{"class":120},[107,428,134],{"class":253},[107,430,360],{"class":133},[107,432,124],{"class":120},[107,434,435],{"class":275},"\"Street\"",[107,437,368],{"class":133},[107,439,124],{"class":120},[107,441,442],{"class":275},"\"og:title\"",[107,444,376],{"class":120},[107,446,448,450],{"class":109,"line":447},9,[107,449,146],{"class":120},[107,451,326],{"class":253},[107,453,455,457,459],{"class":109,"line":454},10,[107,456,331],{"class":133},[107,458,124],{"class":120},[107,460,336],{"class":275},[107,462,464,467,469],{"class":109,"line":463},11,[107,465,466],{"class":133},"  property",[107,468,124],{"class":120},[107,470,471],{"class":275},"\"og:description\"\n",[107,473,475],{"class":109,"line":474},12,[107,476,351],{"class":120},[107,478,480,482],{"class":109,"line":479},13,[107,481,146],{"class":120},[107,483,326],{"class":253},[107,485,487,489,491],{"class":109,"line":486},14,[107,488,331],{"class":133},[107,490,124],{"class":120},[107,492,493],{"class":275},"\"https:\u002F\u002Fexample.com\u002Fmedia\u002Fpages\u002Fexhibitions\u002Fstreet\u002F2f6c1e7a90-1791524069\u002Fposter-1200x.jpg\"\n",[107,495,497,499,501],{"class":109,"line":496},15,[107,498,466],{"class":133},[107,500,124],{"class":120},[107,502,503],{"class":275},"\"og:image\"\n",[107,505,507],{"class":109,"line":506},16,[107,508,351],{"class":120},[107,510,512,514,516,518,520,523,525,527,530],{"class":109,"line":511},17,[107,513,146],{"class":120},[107,515,134],{"class":253},[107,517,360],{"class":133},[107,519,124],{"class":120},[107,521,522],{"class":275},"\"1200\"",[107,524,368],{"class":133},[107,526,124],{"class":120},[107,528,529],{"class":275},"\"og:image:width\"",[107,531,376],{"class":120},[107,533,535,537,539,541,543,546,548,550,553],{"class":109,"line":534},18,[107,536,146],{"class":120},[107,538,134],{"class":253},[107,540,360],{"class":133},[107,542,124],{"class":120},[107,544,545],{"class":275},"\"800\"",[107,547,368],{"class":133},[107,549,124],{"class":120},[107,551,552],{"class":275},"\"og:image:height\"",[107,554,376],{"class":120},[107,556,558,560,562,564,566,569,571,573,576],{"class":109,"line":557},19,[107,559,146],{"class":120},[107,561,134],{"class":253},[107,563,360],{"class":133},[107,565,124],{"class":120},[107,567,568],{"class":275},"\"Two people crossing a street\"",[107,570,368],{"class":133},[107,572,124],{"class":120},[107,574,575],{"class":275},"\"og:image:alt\"",[107,577,376],{"class":120},[107,579,581,583,585,587,589,592,595,597,600],{"class":109,"line":580},20,[107,582,146],{"class":120},[107,584,134],{"class":253},[107,586,360],{"class":133},[107,588,124],{"class":120},[107,590,591],{"class":275},"\"summary_large_image\"",[107,593,594],{"class":133}," name",[107,596,124],{"class":120},[107,598,599],{"class":275},"\"twitter:card\"",[107,601,376],{"class":120},[107,603,605,607,609,611,613,615,617,619,622],{"class":109,"line":604},21,[107,606,146],{"class":120},[107,608,134],{"class":253},[107,610,360],{"class":133},[107,612,124],{"class":120},[107,614,435],{"class":275},[107,616,594],{"class":133},[107,618,124],{"class":120},[107,620,621],{"class":275},"\"twitter:title\"",[107,623,376],{"class":120},[107,625,627,629],{"class":109,"line":626},22,[107,628,146],{"class":120},[107,630,326],{"class":253},[107,632,634,636,638],{"class":109,"line":633},23,[107,635,331],{"class":133},[107,637,124],{"class":120},[107,639,336],{"class":275},[107,641,643,645,647],{"class":109,"line":642},24,[107,644,341],{"class":133},[107,646,124],{"class":120},[107,648,649],{"class":275},"\"twitter:description\"\n",[107,651,653],{"class":109,"line":652},25,[107,654,351],{"class":120},[107,656,658,660],{"class":109,"line":657},26,[107,659,146],{"class":120},[107,661,326],{"class":253},[107,663,665,667,669],{"class":109,"line":664},27,[107,666,331],{"class":133},[107,668,124],{"class":120},[107,670,493],{"class":275},[107,672,674,676,678],{"class":109,"line":673},28,[107,675,341],{"class":133},[107,677,124],{"class":120},[107,679,680],{"class":275},"\"twitter:image\"\n",[107,682,684],{"class":109,"line":683},29,[107,685,351],{"class":120},[107,687,689,691,693,695,697,699,701,703,706],{"class":109,"line":688},30,[107,690,146],{"class":120},[107,692,134],{"class":253},[107,694,360],{"class":133},[107,696,124],{"class":120},[107,698,568],{"class":275},[107,700,594],{"class":133},[107,702,124],{"class":120},[107,704,705],{"class":275},"\"twitter:image:alt\"",[107,707,376],{"class":120},[709,710,712],"h2",{"id":711},"where-values-come-from","Where Values Come From",[39,714,715,716,718,719,718,721,723,724,727],{},"A value such as ",[84,717,235],{},", ",[84,720,239],{},[84,722,190],{},", or ",[84,725,726],{},"canonical"," is looked up in this order, and the first one set wins:",[729,730,732,740,751,758,765,769,772,776],"steps",{"level":731},"3",[733,734,736,737],"h3",{"id":735},"the-page-models-metadata","The Page Model's ",[84,738,739],{},"metadata()",[39,741,742,743,745,746,73],{},"An array returned by a ",[84,744,739],{}," method on the ",[46,747,750],{"href":748,"rel":749},"https:\u002F\u002Fgetkirby.com\u002Fdocs\u002Fguide\u002Ftemplates\u002Fpage-models",[50],"page model",[733,752,82,754,757],{"id":753},"the-metadefaults-option",[84,755,756],{},"meta.defaults"," Option",[39,759,760,761,73],{},"See ",[46,762,764],{"href":763},"#global-defaults","Global Defaults",[733,766,768],{"id":767},"the-pages-field","The Page's Field",[39,770,771],{},"A field of the same name, if it is not empty.",[733,773,775],{"id":774},"the-sites-field","The Site's Field",[39,777,778],{},"A field of the same name in the site content, if it is not empty.",[709,780,782],{"id":781},"page-model","Page Model",[97,784,787],{"className":99,"code":785,"filename":786,"language":102,"meta":103,"style":103},"\u003C?php\n\nuse Kirby\\Cms\\Page;\n\nclass ArticlePage extends Page\n{\n    public function metadata(): array\n    {\n        return [\n            'description' => $this->text()->excerpt(160)->value(),\n            'thumbnail' => fn (Page $page) => $page->cover(),\n            'opengraph' => [\n                'type' => 'article'\n            ],\n            'jsonld' => [\n                'BlogPosting' => [\n                    'headline' => $this->title()->value(),\n                    'datePublished' => $this->date()->toDate('c')\n                ]\n            ]\n        ];\n    }\n}\n","site\u002Fmodels\u002Farticle.php",[84,788,789,796,802,813,817,831,836,855,860,868,907,933,942,952,957,966,975,996,1025,1030,1035,1040,1045],{"__ignoreMap":103},[107,790,791,793],{"class":109,"line":110},[107,792,114],{"class":113},[107,794,795],{"class":117},"php\n",[107,797,798],{"class":109,"line":143},[107,799,801],{"emptyLinePlaceholder":800},true,"\n",[107,803,804,807,810],{"class":109,"line":179},[107,805,806],{"class":113},"use",[107,808,809],{"class":117}," Kirby\\Cms\\Page",[107,811,812],{"class":120},";\n",[107,814,815],{"class":109,"line":197},[107,816,801],{"emptyLinePlaceholder":800},[107,818,819,822,825,828],{"class":109,"line":213},[107,820,821],{"class":113},"class",[107,823,824],{"class":133}," ArticlePage",[107,826,827],{"class":113}," extends",[107,829,830],{"class":133}," Page\n",[107,832,833],{"class":109,"line":295},[107,834,835],{"class":120},"{\n",[107,837,838,841,844,847,849,852],{"class":109,"line":401},[107,839,840],{"class":113},"    public",[107,842,843],{"class":113}," function",[107,845,846],{"class":133}," metadata",[107,848,161],{"class":120},[107,850,851],{"class":113},":",[107,853,854],{"class":113}," array\n",[107,856,857],{"class":109,"line":424},[107,858,859],{"class":120},"    {\n",[107,861,862,865],{"class":109,"line":447},[107,863,864],{"class":113},"        return",[107,866,867],{"class":120}," [\n",[107,869,870,873,876,879,881,883,885,887,890,893,896,899,901,904],{"class":109,"line":454},[107,871,872],{"class":275},"            'description'",[107,874,875],{"class":113}," =>",[107,877,878],{"class":117}," $this",[107,880,130],{"class":113},[107,882,43],{"class":133},[107,884,161],{"class":120},[107,886,130],{"class":113},[107,888,889],{"class":133},"excerpt",[107,891,892],{"class":120},"(",[107,894,895],{"class":117},"160",[107,897,898],{"class":120},")",[107,900,130],{"class":113},[107,902,903],{"class":133},"value",[107,905,906],{"class":120},"(),\n",[107,908,909,912,914,917,920,923,926,928,931],{"class":109,"line":463},[107,910,911],{"class":275},"            'thumbnail'",[107,913,875],{"class":113},[107,915,916],{"class":113}," fn",[107,918,919],{"class":120}," (",[107,921,922],{"class":117},"Page",[107,924,925],{"class":120}," $page) => $page",[107,927,130],{"class":113},[107,929,930],{"class":133},"cover",[107,932,906],{"class":120},[107,934,935,938,940],{"class":109,"line":474},[107,936,937],{"class":275},"            'opengraph'",[107,939,875],{"class":113},[107,941,867],{"class":120},[107,943,944,947,949],{"class":109,"line":479},[107,945,946],{"class":275},"                'type'",[107,948,875],{"class":113},[107,950,951],{"class":275}," 'article'\n",[107,953,954],{"class":109,"line":486},[107,955,956],{"class":120},"            ],\n",[107,958,959,962,964],{"class":109,"line":496},[107,960,961],{"class":275},"            'jsonld'",[107,963,875],{"class":113},[107,965,867],{"class":120},[107,967,968,971,973],{"class":109,"line":506},[107,969,970],{"class":275},"                'BlogPosting'",[107,972,875],{"class":113},[107,974,867],{"class":120},[107,976,977,980,982,984,986,988,990,992,994],{"class":109,"line":511},[107,978,979],{"class":275},"                    'headline'",[107,981,875],{"class":113},[107,983,878],{"class":117},[107,985,130],{"class":113},[107,987,149],{"class":133},[107,989,161],{"class":120},[107,991,130],{"class":113},[107,993,903],{"class":133},[107,995,906],{"class":120},[107,997,998,1001,1003,1005,1007,1010,1012,1014,1017,1019,1022],{"class":109,"line":534},[107,999,1000],{"class":275},"                    'datePublished'",[107,1002,875],{"class":113},[107,1004,878],{"class":117},[107,1006,130],{"class":113},[107,1008,1009],{"class":133},"date",[107,1011,161],{"class":120},[107,1013,130],{"class":113},[107,1015,1016],{"class":133},"toDate",[107,1018,892],{"class":120},[107,1020,1021],{"class":275},"'c'",[107,1023,1024],{"class":120},")\n",[107,1026,1027],{"class":109,"line":557},[107,1028,1029],{"class":120},"                ]\n",[107,1031,1032],{"class":109,"line":580},[107,1033,1034],{"class":120},"            ]\n",[107,1036,1037],{"class":109,"line":604},[107,1038,1039],{"class":120},"        ];\n",[107,1041,1042],{"class":109,"line":626},[107,1043,1044],{"class":120},"    }\n",[107,1046,1047],{"class":109,"line":633},[107,1048,1049],{"class":120},"}\n",[39,1051,1052,1053,1055,1056,1059,1060,1062],{},"A value can be a closure that receives the page. ",[84,1054,239],{}," takes a file ID, a UUID, or a files field returned from a closure, as in the example above – a files field set directly, or a ",[84,1057,1058],{},"File"," object, throws once ",[84,1061,231],{}," runs.",[709,1064,764],{"id":1065},"global-defaults",[39,1067,1068,1070,1071,718,1074,1077,1078,851],{},[84,1069,756],{}," takes an array, or a closure that receives ",[84,1072,1073],{},"$kirby",[84,1075,1076],{},"$site",", and ",[84,1079,1080],{},"$page",[97,1082,1085],{"className":99,"code":1083,"filename":1084,"language":102,"meta":103,"style":103},"return [\n    'johannschopplich.helpers' => [\n        'meta' => [\n            'defaults' => fn ($kirby, $site, $page) => [\n                'jsonld' => [\n                    'WebSite' => [\n                        'url' => $site->url(),\n                        'name' => $site->title()->value()\n                    ]\n                ]\n            ],\n            'twitter' => [\n                'site' => '@kirbytools',\n                'creator' => '@johannschopplich'\n            ]\n        ]\n    ]\n];\n","site\u002Fconfig\u002Fconfig.php",[84,1086,1087,1094,1103,1112,1124,1133,1142,1159,1181,1186,1190,1194,1203,1216,1226,1230,1235,1240],{"__ignoreMap":103},[107,1088,1089,1092],{"class":109,"line":110},[107,1090,1091],{"class":113},"return",[107,1093,867],{"class":120},[107,1095,1096,1099,1101],{"class":109,"line":143},[107,1097,1098],{"class":275},"    'johannschopplich.helpers'",[107,1100,875],{"class":113},[107,1102,867],{"class":120},[107,1104,1105,1108,1110],{"class":109,"line":179},[107,1106,1107],{"class":275},"        'meta'",[107,1109,875],{"class":113},[107,1111,867],{"class":120},[107,1113,1114,1117,1119,1121],{"class":109,"line":197},[107,1115,1116],{"class":275},"            'defaults'",[107,1118,875],{"class":113},[107,1120,916],{"class":113},[107,1122,1123],{"class":120}," ($kirby, $site, $page) => [\n",[107,1125,1126,1129,1131],{"class":109,"line":213},[107,1127,1128],{"class":275},"                'jsonld'",[107,1130,875],{"class":113},[107,1132,867],{"class":120},[107,1134,1135,1138,1140],{"class":109,"line":295},[107,1136,1137],{"class":275},"                    'WebSite'",[107,1139,875],{"class":113},[107,1141,867],{"class":120},[107,1143,1144,1147,1149,1152,1154,1157],{"class":109,"line":401},[107,1145,1146],{"class":275},"                        'url'",[107,1148,875],{"class":113},[107,1150,1151],{"class":120}," $site",[107,1153,130],{"class":113},[107,1155,1156],{"class":133},"url",[107,1158,906],{"class":120},[107,1160,1161,1164,1166,1168,1170,1172,1174,1176,1178],{"class":109,"line":424},[107,1162,1163],{"class":275},"                        'name'",[107,1165,875],{"class":113},[107,1167,1151],{"class":120},[107,1169,130],{"class":113},[107,1171,149],{"class":133},[107,1173,161],{"class":120},[107,1175,130],{"class":113},[107,1177,903],{"class":133},[107,1179,1180],{"class":120},"()\n",[107,1182,1183],{"class":109,"line":447},[107,1184,1185],{"class":120},"                    ]\n",[107,1187,1188],{"class":109,"line":454},[107,1189,1029],{"class":120},[107,1191,1192],{"class":109,"line":463},[107,1193,956],{"class":120},[107,1195,1196,1199,1201],{"class":109,"line":474},[107,1197,1198],{"class":275},"            'twitter'",[107,1200,875],{"class":113},[107,1202,867],{"class":120},[107,1204,1205,1208,1210,1213],{"class":109,"line":479},[107,1206,1207],{"class":275},"                'site'",[107,1209,875],{"class":113},[107,1211,1212],{"class":275}," '@kirbytools'",[107,1214,1215],{"class":120},",\n",[107,1217,1218,1221,1223],{"class":109,"line":486},[107,1219,1220],{"class":275},"                'creator'",[107,1222,875],{"class":113},[107,1224,1225],{"class":275}," '@johannschopplich'\n",[107,1227,1228],{"class":109,"line":496},[107,1229,1034],{"class":120},[107,1231,1232],{"class":109,"line":506},[107,1233,1234],{"class":120},"        ]\n",[107,1236,1237],{"class":109,"line":511},[107,1238,1239],{"class":120},"    ]\n",[107,1241,1242],{"class":109,"line":534},[107,1243,1244],{"class":120},"];\n",[39,1246,1247,1250,1251,1254,1255,1250,1258,73],{},[84,1248,1249],{},"meta.twitter.site"," and ",[84,1252,1253],{},"meta.twitter.creator"," render as ",[84,1256,1257],{},"twitter:site",[84,1259,1260],{},"twitter:creator",[39,1262,1263,1264,1266,1267,1269],{},"A key in ",[84,1265,756],{}," beats the page field of that name on every page – only ",[84,1268,739],{}," sits above it. For a site-wide fallback, use a field of that name in the site content instead. Write keys in lowercase; a camelCase key is never found.",[39,1271,82,1272,718,1275,718,1278,1077,1280,1282,1283,1250,1285,1287],{},[84,1273,1274],{},"opengraph",[84,1276,1277],{},"twitter",[84,1279,134],{},[84,1281,222],{}," arrays come only from ",[84,1284,739],{},[84,1286,756],{},", merged key by key: a page model adds entries to the defaults and replaces only the keys it sets.",[709,1289,1291],{"id":1290},"generated-tags","Generated Tags",[733,1293,1294],{"id":206},[84,1295,231],{},[39,1297,1298,1299,718,1301,723,1303,1305],{},"Every tag below can be set in the ",[84,1300,134],{},[84,1302,1274],{},[84,1304,1277],{}," array instead, and a value you set wins:",[1307,1308,1309,1324,1345,1371,1390,1403],"ul",{},[1310,1311,1312,1317,1318,1320,1321,1323],"li",{},[1313,1314,1315],"strong",{},[84,1316,235],{},": the ",[84,1319,235],{}," value, for the ",[84,1322,235],{}," meta tag and both networks.",[1310,1325,1326,718,1331,718,1336,1341,1342,73],{},[1313,1327,1328],{},[84,1329,1330],{},"og:site_name",[1313,1332,1333],{},[84,1334,1335],{},"og:url",[1313,1337,1338],{},[84,1339,1340],{},"og:type",": the site title, the page URL, and ",[84,1343,1344],{},"website",[1310,1346,1347,718,1352,1357,1358,1361,1362,1250,1365,1368,1369,73],{},[1313,1348,1349],{},[84,1350,1351],{},"og:title",[1313,1353,1354],{},[84,1355,1356],{},"twitter:title",": the page's ",[84,1359,1360],{},"customTitle"," field, else its title. This reads the page field directly, so set ",[84,1363,1364],{},"opengraph.title",[84,1366,1367],{},"twitter.title"," to change it from ",[84,1370,739],{},[1310,1372,1373,1378,1379,1381,1382,1385,1386,1389],{},[1313,1374,1375],{},[84,1376,1377],{},"og:image",": the first file of the ",[84,1380,239],{}," value, resized to at most 1200 pixels wide, with its width, height, and ",[84,1383,1384],{},"alt"," field. An ",[84,1387,1388],{},"opengraph.image"," of your own replaces the thumbnail together with its width, height, and alt text – set those yourself.",[1310,1391,1392,718,1397,1402],{},[1313,1393,1394],{},[84,1395,1396],{},"twitter:image",[1313,1398,1399],{},[84,1400,1401],{},"twitter:image:alt",": the Open Graph image and its alt text.",[1310,1404,1405,272,1410,723,1413,1416,1417,1419],{},[1313,1406,1407],{},[84,1408,1409],{},"twitter:card",[84,1411,1412],{},"summary_large_image",[84,1414,1415],{},"summary"," when there is no image – also when you set ",[84,1418,1412],{}," yourself.",[39,1421,1422,1423,1425,1426,1429],{},"Further tags go into the ",[84,1424,134],{}," array, one ",[84,1427,1428],{},"name"," per key:",[97,1431,1433],{"className":99,"code":1432,"filename":1084,"language":102,"meta":103,"style":103},"return [\n    'johannschopplich.helpers' => [\n        'meta' => [\n            'defaults' => [\n                'meta' => [\n                    'author' => 'Kirby Gallery'\n                ]\n            ]\n        ]\n    ]\n];\n",[84,1434,1435,1441,1449,1457,1465,1474,1484,1488,1492,1496,1500],{"__ignoreMap":103},[107,1436,1437,1439],{"class":109,"line":110},[107,1438,1091],{"class":113},[107,1440,867],{"class":120},[107,1442,1443,1445,1447],{"class":109,"line":143},[107,1444,1098],{"class":275},[107,1446,875],{"class":113},[107,1448,867],{"class":120},[107,1450,1451,1453,1455],{"class":109,"line":179},[107,1452,1107],{"class":275},[107,1454,875],{"class":113},[107,1456,867],{"class":120},[107,1458,1459,1461,1463],{"class":109,"line":197},[107,1460,1116],{"class":275},[107,1462,875],{"class":113},[107,1464,867],{"class":120},[107,1466,1467,1470,1472],{"class":109,"line":213},[107,1468,1469],{"class":275},"                'meta'",[107,1471,875],{"class":113},[107,1473,867],{"class":120},[107,1475,1476,1479,1481],{"class":109,"line":295},[107,1477,1478],{"class":275},"                    'author'",[107,1480,875],{"class":113},[107,1482,1483],{"class":275}," 'Kirby Gallery'\n",[107,1485,1486],{"class":109,"line":401},[107,1487,1029],{"class":120},[107,1489,1490],{"class":109,"line":424},[107,1491,1034],{"class":120},[107,1493,1494],{"class":109,"line":447},[107,1495,1234],{"class":120},[107,1497,1498],{"class":109,"line":454},[107,1499,1239],{"class":120},[107,1501,1502],{"class":109,"line":463},[107,1503,1244],{"class":120},[733,1505,1506],{"id":190},[84,1507,1508],{},"robots()",[39,1510,1511,1512,1514,1515,1517,1518,1520],{},"A ",[84,1513,190],{}," meta tag when the ",[84,1516,190],{}," value is set, and a canonical link to the ",[84,1519,726],{}," value or the page URL.",[733,1522,1523],{"id":222},[84,1524,1525],{},"jsonld()",[39,1527,1528,1529,1532,1533,1535,1536,1077,1539,1542,1543,1546],{},"One ",[84,1530,1531],{},"\u003Cscript type=\"application\u002Fld+json\">"," per entry of the ",[84,1534,222],{}," array. The key becomes ",[84,1537,1538],{},"@type",[84,1540,1541],{},"@context"," is ",[84,1544,1545],{},"https:\u002F\u002Fschema.org","; both can be overridden in the entry.",[733,1548,1550],{"id":1549},"opensearch",[84,1551,1552],{},"opensearch()",[39,1554,1511,1555,1558,1559,1562],{},[84,1556,1557],{},"\u003Clink rel=\"search\">"," to ",[84,1560,1561],{},"\u002Fopen-search.xml",", titled with the site title. The plugin does not serve that file – add it, or a route for it, yourself.",[709,1564,1566],{"id":1565},"nested-and-namespaced-properties","Nested and Namespaced Properties",[39,1568,1569,1570,1572,1573,1575,1576,1579,1580,1583,1584,723,1587,1590,1591,1250,1594,1597],{},"An array value in ",[84,1571,1274],{}," or ",[84,1574,1277],{}," expands into one tag per key: ",[84,1577,1578],{},"image"," with a ",[84,1581,1582],{},"width"," key becomes ",[84,1585,1586],{},"og:image:width",[84,1588,1589],{},"twitter:image:width",". ",[84,1592,1593],{},"'image' => ['width' => 1200]",[84,1595,1596],{},"'image:width' => 1200"," address the same tag; where both are set, the flat key wins.",[39,1599,1511,1600,1603,1604,1607,1608,1250,1611,1614,1615,1617,1618,851],{},[84,1601,1602],{},"namespace:"," prefix replaces the ",[84,1605,1606],{},"og:"," part, which is how ",[84,1609,1610],{},"article:*",[84,1612,1613],{},"product:*"," tags are written. It applies to ",[84,1616,1274],{}," only. In a page model's ",[84,1619,739],{},[97,1621,1623],{"className":99,"code":1622,"language":102,"meta":103,"style":103},"'opengraph' => [\n    'type' => 'article',\n    'namespace:article' => [\n        'published_time' => $this->date()->toDate('c'),\n        'author' => 'Johann Schopplich'\n    ]\n]\n",[84,1624,1625,1634,1646,1655,1681,1691,1695],{"__ignoreMap":103},[107,1626,1627,1630,1632],{"class":109,"line":110},[107,1628,1629],{"class":275},"'opengraph'",[107,1631,875],{"class":113},[107,1633,867],{"class":120},[107,1635,1636,1639,1641,1644],{"class":109,"line":143},[107,1637,1638],{"class":275},"    'type'",[107,1640,875],{"class":113},[107,1642,1643],{"class":275}," 'article'",[107,1645,1215],{"class":120},[107,1647,1648,1651,1653],{"class":109,"line":179},[107,1649,1650],{"class":275},"    'namespace:article'",[107,1652,875],{"class":113},[107,1654,867],{"class":120},[107,1656,1657,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678],{"class":109,"line":197},[107,1658,1659],{"class":275},"        'published_time'",[107,1661,875],{"class":113},[107,1663,878],{"class":117},[107,1665,130],{"class":113},[107,1667,1009],{"class":133},[107,1669,161],{"class":120},[107,1671,130],{"class":113},[107,1673,1016],{"class":133},[107,1675,892],{"class":120},[107,1677,1021],{"class":275},[107,1679,1680],{"class":120},"),\n",[107,1682,1683,1686,1688],{"class":109,"line":213},[107,1684,1685],{"class":275},"        'author'",[107,1687,875],{"class":113},[107,1689,1690],{"class":275}," 'Johann Schopplich'\n",[107,1692,1693],{"class":109,"line":295},[107,1694,1239],{"class":120},[107,1696,1697],{"class":109,"line":401},[107,1698,1699],{"class":120},"]\n",[97,1701,1703],{"className":315,"code":1702,"language":317,"meta":103,"style":103},"\u003Cmeta content=\"article\" property=\"og:type\" \u002F>\n\u003Cmeta content=\"2026-10-09T00:00:00+00:00\" property=\"article:published_time\" \u002F>\n\u003Cmeta content=\"Johann Schopplich\" property=\"article:author\" \u002F>\n",[84,1704,1705,1726,1748],{"__ignoreMap":103},[107,1706,1707,1709,1711,1713,1715,1718,1720,1722,1724],{"class":109,"line":110},[107,1708,146],{"class":120},[107,1710,134],{"class":253},[107,1712,360],{"class":133},[107,1714,124],{"class":120},[107,1716,1717],{"class":275},"\"article\"",[107,1719,368],{"class":133},[107,1721,124],{"class":120},[107,1723,419],{"class":275},[107,1725,376],{"class":120},[107,1727,1728,1730,1732,1734,1736,1739,1741,1743,1746],{"class":109,"line":143},[107,1729,146],{"class":120},[107,1731,134],{"class":253},[107,1733,360],{"class":133},[107,1735,124],{"class":120},[107,1737,1738],{"class":275},"\"2026-10-09T00:00:00+00:00\"",[107,1740,368],{"class":133},[107,1742,124],{"class":120},[107,1744,1745],{"class":275},"\"article:published_time\"",[107,1747,376],{"class":120},[107,1749,1750,1752,1754,1756,1758,1761,1763,1765,1768],{"class":109,"line":179},[107,1751,146],{"class":120},[107,1753,134],{"class":253},[107,1755,360],{"class":133},[107,1757,124],{"class":120},[107,1759,1760],{"class":275},"\"Johann Schopplich\"",[107,1762,368],{"class":133},[107,1764,124],{"class":120},[107,1766,1767],{"class":275},"\"article:author\"",[107,1769,376],{"class":120},[709,1771,1773],{"id":1772},"read-values","Read Values",[39,1775,1776,1779,1780,1783,1784,1787,1788,1791,1792,1796],{},[84,1777,1778],{},"$page->meta()->get('description')"," returns any value as a field, looked up in the order above; ",[84,1781,1782],{},"false"," as the second argument skips the site field. Any other method name reads the value of that name, so ",[84,1785,1786],{},"$page->meta()->description()"," is the same call. ",[84,1789,1790],{},"priority()"," returns the ",[46,1793,1795],{"href":1794},"\u002Fdocs\u002Fhelpers\u002Fsitemap#what-it-lists","sitemap"," priority as a float.",[1798,1799,1800],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sovSZ, html code.shiki .sovSZ{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":103,"searchDepth":143,"depth":143,"links":1802},[1803,1811,1812,1813,1819,1820],{"id":711,"depth":143,"text":712,"children":1804},[1805,1807,1809,1810],{"id":735,"depth":179,"text":1806},"The Page Model's metadata()",{"id":753,"depth":179,"text":1808},"The meta.defaults Option",{"id":767,"depth":179,"text":768},{"id":774,"depth":179,"text":775},{"id":781,"depth":143,"text":782},{"id":1065,"depth":143,"text":764},{"id":1290,"depth":143,"text":1291,"children":1814},[1815,1816,1817,1818],{"id":206,"depth":179,"text":231},{"id":190,"depth":179,"text":1508},{"id":222,"depth":179,"text":1525},{"id":1549,"depth":179,"text":1552},{"id":1565,"depth":143,"text":1566},{"id":1772,"depth":143,"text":1773},"Render description, Open Graph, Twitter Card, JSON-LD, robots, and canonical tags for a page from its fields, its page model, or global defaults.","md",{},{"title":16,"description":1821},"9kGl3WbVknDrRj4fh3ScoKnCLWJZs_bKFeA3AfuWidY",[1827,1829],{"title":12,"path":13,"stem":14,"description":1828,"children":-1},"Load a .env file and read its values in config.php, templates, and plugins, with booleans and null parsed from their spelling.",{"title":20,"path":21,"stem":22,"description":1830,"children":-1},"Serve an XML sitemap with hreflang alternates for the languages each page is translated into, and a robots.txt that points to it.",1791534960040]