[{"data":1,"prerenderedAt":897},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-public-routes-mode":93,"-getting-started-public-routes-mode-surround":892},[4,26,77],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","/getting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Installation","/getting-started/installation","1.getting-started/1.installation","i-lucide-download",{"title":16,"path":17,"stem":18,"icon":19},"Frontend Setup (headless)","/getting-started/frontend-setup","1.getting-started/2.frontend-setup","i-lucide-layout",{"title":21,"path":22,"stem":23,"icon":24},"Public-routes mode","/getting-started/public-routes-mode","1.getting-started/3.public-routes-mode","i-lucide-zap",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Essentials","i-lucide-book-open","/essentials","2.essentials",[32,37,42,47,52,57,62,67,72],{"title":33,"path":34,"stem":35,"icon":36},"Blade Components","/essentials/blade-components","2.essentials/1.blade-components","i-lucide-component",{"title":38,"path":39,"stem":40,"icon":41},"Filament Admin","/essentials/filament-admin","2.essentials/2.filament-admin","i-lucide-layout-dashboard",{"title":43,"path":44,"stem":45,"icon":46},"MCP Tools","/essentials/mcp-tools","2.essentials/3.mcp-tools","i-lucide-bot",{"title":48,"path":49,"stem":50,"icon":51},"Configuration","/essentials/configuration","2.essentials/4.configuration","i-lucide-settings",{"title":53,"path":54,"stem":55,"icon":56},"Tags Taxonomy","/essentials/tags","2.essentials/5.tags","i-lucide-hash",{"title":58,"path":59,"stem":60,"icon":61},"MediaLibrary Integration","/essentials/media-library","2.essentials/6.media-library","i-lucide-image",{"title":63,"path":64,"stem":65,"icon":66},"Search","/essentials/search","2.essentials/7.search","i-lucide-search",{"title":68,"path":69,"stem":70,"icon":71},"Schema","/essentials/schema","2.essentials/8.schema","i-lucide-code-2",{"title":73,"path":74,"stem":75,"icon":76},"Listing SEO","/essentials/listing-seo","2.essentials/9.listing-seo","i-lucide-list",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":25},"Community","i-lucide-users","/community","4.community",[83,88],{"title":84,"path":85,"stem":86,"icon":87},"Contributing","/community/contributing","4.community/1.contributing","i-lucide-git-pull-request",{"title":89,"path":90,"stem":91,"icon":92},"License","/community/license","4.community/2.license","i-lucide-scale",{"id":94,"title":21,"body":95,"description":885,"extension":886,"links":887,"meta":888,"navigation":889,"path":22,"seo":890,"stem":23,"__hash__":891},"docs/1.getting-started/3.public-routes-mode.md",{"type":96,"value":97,"toc":877},"minimark",[98,107,232,237,360,363,367,378,617,624,646,650,653,687,690,694,701,705,708,772,787,791,862,873],[99,100,101,102,106],"p",{},"The package ships an ",[103,104,105],"strong",{},"opt-in public-routes mode",". Flip a flag in config and you get:",[108,109,110,126],"table",{},[111,112,113],"thead",{},[114,115,116,120,123],"tr",{},[117,118,119],"th",{},"Route",[117,121,122],{},"Name",[117,124,125],{},"Notes",[127,128,129,146,161,176,195,214],"tbody",{},[114,130,131,138,143],{},[132,133,134],"td",{},[135,136,137],"code",{},"GET /blog",[132,139,140],{},[135,141,142],{},"blog.index",[132,144,145],{},"Paginated post listing",[114,147,148,153,158],{},[132,149,150],{},[135,151,152],{},"GET /blog/{slug}",[132,154,155],{},[135,156,157],{},"blog.show",[132,159,160],{},"Single post (only published)",[114,162,163,168,173],{},[132,164,165],{},[135,166,167],{},"GET /blog/category/{slug}",[132,169,170],{},[135,171,172],{},"blog.category",[132,174,175],{},"Category archive (paginated)",[114,177,178,183,188],{},[132,179,180],{},[135,181,182],{},"GET /blog/preview/{post}",[132,184,185],{},[135,186,187],{},"blog.preview",[132,189,190,191,194],{},"Signed-only draft preview, with ",[135,192,193],{},"noindex,nofollow"," meta",[114,196,197,202,207],{},[132,198,199],{},[135,200,201],{},"GET /blog/feed",[132,203,204],{},[135,205,206],{},"blog.feed",[132,208,209,210,213],{},"RSS 2.0 feed (gated by ",[135,211,212],{},"features.feed",")",[114,215,216,221,226],{},[132,217,218],{},[135,219,220],{},"GET /blog/tag/{slug}",[132,222,223],{},[135,224,225],{},"blog.tag",[132,227,228,229,213],{},"Tag archive (gated by ",[135,230,231],{},"features.tags",[233,234,236],"h2",{"id":235},"enable-it","Enable it",[238,239,245],"pre",{"className":240,"code":241,"filename":242,"language":243,"meta":244,"style":244},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","'features' => [\n    'public_routes' => true,\n    'feed'          => true,   // optional, enables /blog/feed\n    'tags'          => true,   // optional, enables /blog/tag/{slug}\n],\n\n'layout' => 'layouts.app',     // your host layout the page views extend\n","config/ink.php","php","",[135,246,247,268,284,304,321,327,334],{"__ignoreMap":244},[248,249,252,256,260,262,265],"span",{"class":250,"line":251},"line",1,[248,253,255],{"class":254},"sMK4o","'",[248,257,259],{"class":258},"sfazB","features",[248,261,255],{"class":254},[248,263,264],{"class":254}," =>",[248,266,267],{"class":254}," [\n",[248,269,271,274,277,279,281],{"class":250,"line":270},2,[248,272,273],{"class":254},"    '",[248,275,276],{"class":258},"public_routes",[248,278,255],{"class":254},[248,280,264],{"class":254},[248,282,283],{"class":254}," true,\n",[248,285,287,289,292,294,297,300],{"class":250,"line":286},3,[248,288,273],{"class":254},[248,290,291],{"class":258},"feed",[248,293,255],{"class":254},[248,295,296],{"class":254},"          =>",[248,298,299],{"class":254}," true,",[248,301,303],{"class":302},"sHwdD","   // optional, enables /blog/feed\n",[248,305,307,309,312,314,316,318],{"class":250,"line":306},4,[248,308,273],{"class":254},[248,310,311],{"class":258},"tags",[248,313,255],{"class":254},[248,315,296],{"class":254},[248,317,299],{"class":254},[248,319,320],{"class":302},"   // optional, enables /blog/tag/{slug}\n",[248,322,324],{"class":250,"line":323},5,[248,325,326],{"class":254},"],\n",[248,328,330],{"class":250,"line":329},6,[248,331,333],{"emptyLinePlaceholder":332},true,"\n",[248,335,337,339,342,344,346,349,352,354,357],{"class":250,"line":336},7,[248,338,255],{"class":254},[248,340,341],{"class":258},"layout",[248,343,255],{"class":254},[248,345,264],{"class":254},[248,347,348],{"class":254}," '",[248,350,351],{"class":258},"layouts.app",[248,353,255],{"class":254},[248,355,356],{"class":254},",",[248,358,359],{"class":302},"     // your host layout the page views extend\n",[99,361,362],{},"That's it. The service provider registers the routes at boot — no Filament panel boot is required, so the public site keeps working for guests who never touch the admin.",[233,364,366],{"id":365},"required-a-host-layout","Required: a host layout",[99,368,369,370,373,374,377],{},"The page views extend the layout you set in ",[135,371,372],{},"'layout'",". It must define a ",[135,375,376],{},"@yield('content')"," slot. A minimal example:",[238,379,384],{"className":380,"code":381,"filename":382,"language":383,"meta":244,"style":244},"language-blade shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!doctype html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n    \u003Cmeta charset=\"utf-8\">\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    \u003Ctitle>{{ $title ?? config('app.name') }}\u003C/title>\n    @stack('head')\n\u003C/head>\n\u003Cbody class=\"bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100\">\n    @yield('content')\n\u003C/body>\n\u003C/html>\n","resources/views/layouts/app.blade.php","blade",[135,385,386,402,426,435,457,489,535,551,560,582,599,608],{"__ignoreMap":244},[248,387,388,391,395,399],{"class":250,"line":251},[248,389,390],{"class":254},"\u003C!",[248,392,394],{"class":393},"swJcz","doctype",[248,396,398],{"class":397},"spNyl"," html",[248,400,401],{"class":254},">\n",[248,403,404,407,410,413,416,419,422,424],{"class":250,"line":270},[248,405,406],{"class":254},"\u003C",[248,408,409],{"class":393},"html",[248,411,412],{"class":397}," lang",[248,414,415],{"class":254},"=",[248,417,418],{"class":254},"\"",[248,420,421],{"class":258},"en",[248,423,418],{"class":254},[248,425,401],{"class":254},[248,427,428,430,433],{"class":250,"line":286},[248,429,406],{"class":254},[248,431,432],{"class":393},"head",[248,434,401],{"class":254},[248,436,437,440,443,446,448,450,453,455],{"class":250,"line":306},[248,438,439],{"class":254},"    \u003C",[248,441,442],{"class":393},"meta",[248,444,445],{"class":397}," charset",[248,447,415],{"class":254},[248,449,418],{"class":254},[248,451,452],{"class":258},"utf-8",[248,454,418],{"class":254},[248,456,401],{"class":254},[248,458,459,461,463,466,468,470,473,475,478,480,482,485,487],{"class":250,"line":323},[248,460,439],{"class":254},[248,462,442],{"class":393},[248,464,465],{"class":397}," name",[248,467,415],{"class":254},[248,469,418],{"class":254},[248,471,472],{"class":258},"viewport",[248,474,418],{"class":254},[248,476,477],{"class":397}," content",[248,479,415],{"class":254},[248,481,418],{"class":254},[248,483,484],{"class":258},"width=device-width, initial-scale=1",[248,486,418],{"class":254},[248,488,401],{"class":254},[248,490,491,493,496,499,503,506,510,513,516,518,521,523,525,528,531,533],{"class":250,"line":329},[248,492,439],{"class":254},[248,494,495],{"class":393},"title",[248,497,498],{"class":254},">",[248,500,502],{"class":501},"s2Zo4","{{",[248,504,505],{"class":254}," $",[248,507,509],{"class":508},"sTEyZ","title ?? ",[248,511,512],{"class":501},"config",[248,514,515],{"class":254},"(",[248,517,255],{"class":254},[248,519,520],{"class":258},"app.name",[248,522,255],{"class":254},[248,524,213],{"class":254},[248,526,527],{"class":501}," }}",[248,529,530],{"class":254},"\u003C/",[248,532,495],{"class":393},[248,534,401],{"class":254},[248,536,537,540,542,544,546,548],{"class":250,"line":336},[248,538,539],{"class":254},"    @stack",[248,541,515],{"class":508},[248,543,255],{"class":254},[248,545,432],{"class":258},[248,547,255],{"class":254},[248,549,550],{"class":508},")\n",[248,552,554,556,558],{"class":250,"line":553},8,[248,555,530],{"class":254},[248,557,432],{"class":393},[248,559,401],{"class":254},[248,561,563,565,568,571,573,575,578,580],{"class":250,"line":562},9,[248,564,406],{"class":254},[248,566,567],{"class":393},"body",[248,569,570],{"class":397}," class",[248,572,415],{"class":254},[248,574,418],{"class":254},[248,576,577],{"class":258},"bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100",[248,579,418],{"class":254},[248,581,401],{"class":254},[248,583,585,588,590,592,595,597],{"class":250,"line":584},10,[248,586,587],{"class":254},"    @yield",[248,589,515],{"class":508},[248,591,255],{"class":254},[248,593,594],{"class":258},"content",[248,596,255],{"class":254},[248,598,550],{"class":508},[248,600,602,604,606],{"class":250,"line":601},11,[248,603,530],{"class":254},[248,605,567],{"class":393},[248,607,401],{"class":254},[248,609,611,613,615],{"class":250,"line":610},12,[248,612,530],{"class":254},[248,614,409],{"class":393},[248,616,401],{"class":254},[99,618,619,620,623],{},"If your layout uses a different slot mechanism (e.g. Blade components with ",[135,621,622],{},"{{ $slot }}","), publish the page views and adapt them:",[238,625,630],{"className":626,"code":627,"filename":628,"language":629,"meta":244,"style":244},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","php artisan vendor:publish --tag=ink-views\n","Terminal","bash",[135,631,632],{"__ignoreMap":244},[248,633,634,637,640,643],{"class":250,"line":251},[248,635,243],{"class":636},"sBMFI",[248,638,639],{"class":258}," artisan",[248,641,642],{"class":258}," vendor:publish",[248,644,645],{"class":258}," --tag=ink-views\n",[233,647,649],{"id":648},"customizing-pages","Customizing pages",[99,651,652],{},"The shipped pages live at:",[654,655,656,662,667,672,677,682],"ul",{},[657,658,659],"li",{},[135,660,661],{},"resources/views/vendor/blog/pages/index.blade.php",[657,663,664],{},[135,665,666],{},"resources/views/vendor/blog/pages/show.blade.php",[657,668,669],{},[135,670,671],{},"resources/views/vendor/blog/pages/category.blade.php",[657,673,674],{},[135,675,676],{},"resources/views/vendor/blog/pages/preview.blade.php",[657,678,679],{},[135,680,681],{},"resources/views/vendor/blog/pages/tag.blade.php",[657,683,684],{},[135,685,686],{},"resources/views/vendor/blog/pages/feed.blade.php",[99,688,689],{},"Edit them freely — once published, the package no longer serves its own copies.",[233,691,693],{"id":692},"custom-prefix","Custom prefix",[99,695,696,697,700],{},"Change ",[135,698,699],{},"'prefix' => 'blog'"," in config. All routes pick up the new prefix.",[233,702,704],{"id":703},"disabling-individual-pieces","Disabling individual pieces",[99,706,707],{},"Each feature flag is independent:",[238,709,711],{"className":240,"code":710,"language":243,"meta":244,"style":244},"'features' => [\n    'public_routes' => true,\n    'feed'          => false,   // no RSS feed\n    'tags'          => false,   // no tag archive (admin still works if registered)\n],\n",[135,712,713,725,737,753,768],{"__ignoreMap":244},[248,714,715,717,719,721,723],{"class":250,"line":251},[248,716,255],{"class":254},[248,718,259],{"class":258},[248,720,255],{"class":254},[248,722,264],{"class":254},[248,724,267],{"class":254},[248,726,727,729,731,733,735],{"class":250,"line":270},[248,728,273],{"class":254},[248,730,276],{"class":258},[248,732,255],{"class":254},[248,734,264],{"class":254},[248,736,283],{"class":254},[248,738,739,741,743,745,747,750],{"class":250,"line":286},[248,740,273],{"class":254},[248,742,291],{"class":258},[248,744,255],{"class":254},[248,746,296],{"class":254},[248,748,749],{"class":254}," false,",[248,751,752],{"class":302},"   // no RSS feed\n",[248,754,755,757,759,761,763,765],{"class":250,"line":306},[248,756,273],{"class":254},[248,758,311],{"class":258},[248,760,255],{"class":254},[248,762,296],{"class":254},[248,764,749],{"class":254},[248,766,767],{"class":302},"   // no tag archive (admin still works if registered)\n",[248,769,770],{"class":250,"line":323},[248,771,326],{"class":254},[99,773,774,775,778,779,782,783,786],{},"When a flag is off, requests to that path return ",[103,776,777],{},"404"," (not registered). ",[135,780,781],{},"Route::has(...)"," returns true (the route is defined) but the controller calls ",[135,784,785],{},"abort_unless($flag, 404)",". That's a deliberate choice so route ordering stays predictable and you can probe the route name without crashing.",[233,788,790],{"id":789},"mode-comparison","Mode comparison",[108,792,793,805],{},[111,794,795],{},[114,796,797,799,802],{},[117,798],{},[117,800,801],{},"Headless",[117,803,804],{},"Public-routes",[127,806,807,818,829,840,851],{},[114,808,809,812,815],{},[132,810,811],{},"Routes registered",[132,813,814],{},"None",[132,816,817],{},"All 6",[114,819,820,823,826],{},[132,821,822],{},"Controllers",[132,824,825],{},"You write",[132,827,828],{},"Shipped",[114,830,831,834,837],{},[132,832,833],{},"Views",[132,835,836],{},"Components only",[132,838,839],{},"Full pages",[114,841,842,845,848],{},[132,843,844],{},"Custom domain logic",[132,846,847],{},"Yes (any)",[132,849,850],{},"Limited to view overrides",[114,852,853,856,859],{},[132,854,855],{},"Effort to ship a blog",[132,857,858],{},"~2 hours",[132,860,861],{},"~5 minutes",[99,863,864,865,868,869,872],{},"If you outgrow public-routes mode, flip the flag back to ",[135,866,867],{},"false"," and write your own controllers — see ",[870,871,16],"a",{"href":17},".",[874,875,876],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":244,"searchDepth":270,"depth":270,"links":878},[879,880,881,882,883,884],{"id":235,"depth":270,"text":236},{"id":365,"depth":270,"text":366},{"id":648,"depth":270,"text":649},{"id":692,"depth":270,"text":693},{"id":703,"depth":270,"text":704},{"id":789,"depth":270,"text":790},"Get a working blog at /blog without writing controllers — opt in via config flags.","md",null,{},{"icon":24},{"title":21,"description":885},"MTreIjcb-hNhYkWi17fh8vg_ExIenNkOW0aC4WRfiFE",[893,895],{"title":16,"path":17,"stem":18,"description":894,"icon":19,"children":-1},"Build your own blog frontend using the package's Blade components.",{"title":33,"path":34,"stem":35,"description":896,"icon":36,"children":-1},"All available Blade components for building your blog frontend.",1778707660477]