{"id":107,"date":"2024-01-16T00:00:00","date_gmt":"2024-01-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/sk\/acorn-prettify-moderny-nastupca-soil-pre-cistejsi-wordpress\/"},"modified":"2026-01-20T06:33:01","modified_gmt":"2026-01-20T05:33:01","slug":"acorn-prettify-moderny-nastupca-soil-pre-cistejsi-wordpress","status":"publish","type":"post","link":"https:\/\/helloblog.io\/sk\/acorn-prettify-moderny-nastupca-soil-pre-cistejsi-wordpress\/","title":{"rendered":"Acorn Prettify: modern\u00fd n\u00e1stupca Soil pre \u010distej\u0161\u00ed WordPress (a ako na migr\u00e1ciu)"},"content":{"rendered":"\n<p>Ak stavia\u0161 WordPress projekty na stacku od Roots (Sage\/Acorn), n\u00e1zov <em>Soil<\/em> ti bude povedom\u00fd. Dlh\u00e9 roky to bol praktick\u00fd \u201ebal\u00edk drobn\u00fdch vylep\u0161en\u00ed\u201c, ktor\u00e9 urobili WordPress v\u00fdstup o nie\u010do \u010distej\u0161\u00ed a pr\u00edjemnej\u0161\u00ed na \u00fadr\u017ebu. Roots teraz uv\u00e1dza <strong>Acorn Prettify<\/strong> \u2013 bal\u00edk, ktor\u00fd preber\u00e1 udr\u017eiavan\u00e9 \u010dasti Soil a zapad\u00e1 do Acorn ekosyst\u00e9mu (Acorn je aplika\u010dn\u00fd framework od Roots pre WordPress, ktor\u00fd prin\u00e1\u0161a Laravel-like pr\u00edstup).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u010co je Acorn Prettify a pre\u010do vznikol<\/h2>\n\n\n\n<p><strong>Acorn Prettify<\/strong> je nov\u00fd Composer bal\u00edk od Roots, ktor\u00fd ofici\u00e1lne nadv\u00e4zuje na <strong>Soil<\/strong>. Soil p\u00f4vodne \u017eil priamo v Roots starter theme (2011\u20132014) a nesk\u00f4r sa oddelil do samostatn\u00e9ho pluginu. Dnes Roots komunita \u010doraz viac stavia na <strong>Acorn<\/strong> a jeho bal\u00ed\u010dkovom ekosyst\u00e9me, preto d\u00e1va zmysel ma\u0165 \u201eSoil-like\u201c funkcionalitu v podobe Acorn package.<\/p>\n\n\n\n<p>D\u00f4le\u017eit\u00fd detail: nejde o snahu prenies\u0165 \u00faplne v\u0161etko zo Soil naveky. Roots do Prettify vybrali tie funkcie, ktor\u00e9 chc\u00fa dlhodobo udr\u017eiava\u0165 a ktor\u00e9 zodpovedaj\u00fa modern\u00e9mu sp\u00f4sobu pr\u00e1ce v projektoch postaven\u00fdch na Acorne.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">K\u013e\u00fa\u010dov\u00e9 funkcie, ktor\u00e9 Prettify preber\u00e1 zo Soil<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>\u010cistej\u0161\u00ed WordPress markup<\/strong> \u2013 upratanie\/\u00faprava HTML v\u00fdstupu WordPressu tak, aby bol menej \u201eroztrasen\u00fd\u201c a pr\u00edjemnej\u0161\u00ed na pr\u00e1cu v t\u00e9me.<\/li>\n\n\n<li><strong>Nice search<\/strong> \u2013 zlep\u0161enie spr\u00e1vania vyh\u013ead\u00e1vania (typicky ide o menej prekvapiv\u00e9 URL\/requests a konzistentnej\u0161ie v\u00fdsledky).<\/li>\n\n\n<li><strong>Relative URLs<\/strong> \u2013 podpora relat\u00edvnych URL je k dispoz\u00edcii, ale pod\u013ea ozn\u00e1menia je <strong>nov\u00e9 spr\u00e1vanie tak\u00e9, \u017ee je defaultne vypnut\u00e1<\/strong> (\u010do je \u010dasto praktick\u00e9 kv\u00f4li kompatibilite a edge-case scen\u00e1rom).<\/li>\n\n<\/ul>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Pozn\u00e1mka k relat\u00edvnym URL<\/h4>\n\n\n<p>To, \u017ee s\u00fa relat\u00edvne URL v Prettify \u0161tandardne vypnut\u00e9, je dobr\u00fd sign\u00e1l pre stabilitu: relat\u00edvne cesty vedia narobi\u0165 probl\u00e9my pri feedoch, sitemape, CDN, headless integr\u00e1ci\u00e1ch alebo pri r\u00f4znych proxy vrstv\u00e1ch. Zap\u00edna\u0165 ich m\u00e1 zmysel a\u017e ke\u010f presne vie\u0161 pre\u010do.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Migr\u00e1cia zo Soil na Acorn Prettify (Composer)<\/h2>\n\n\n\n<p>Ak m\u00e1\u0161 Soil nain\u0161talovan\u00fd ako Composer dependency, prechod je priamo\u010diary. Z\u00e1klad je Soil odin\u0161talova\u0165 a prida\u0165 Prettify. Potom e\u0161te uprata\u0165 pr\u00edpadn\u00e9 theme support nastavenia v Sage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Odstr\u00e1\u0148 Soil z projektu<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer remove roots\/soil\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> roots\/soil<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2) Nain\u0161taluj Acorn Prettify<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require roots\/acorn-prettify\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> require<\/span><span style=\"color:#9ECBFF\"> roots\/acorn-prettify<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3) Ak pou\u017e\u00edva\u0161 Sage, odstr\u00e1\u0148 theme supports pre Soil<\/h3>\n\n\n\n<p>V projektoch so Sage b\u00fdvali niektor\u00e9 Soil funkcie zap\u00ednan\u00e9 cez <code>add_theme_support(...)<\/code> v s\u00fabore <code>app\/setup.php<\/code>. Pri migr\u00e1cii tieto vo\u013eby d\u00e1va zmysel odstr\u00e1ni\u0165, aby si nemal v k\u00f3de m\u0155tve konfigur\u00e1cie alebo konflikt o\u010dak\u00e1van\u00ed.<\/p>\n\n\n\n<p>Roots uv\u00e1dzaj\u00fa konkr\u00e9tny pr\u00edklad z repozit\u00e1ra Sage: <a href=\"https:\/\/github.com\/roots\/sage\/pull\/3172\/files\">https:\/\/github.com\/roots\/sage\/pull\/3172\/files<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfigur\u00e1cia: ako zap\u00edna\u0165 a upravova\u0165 funkcie Prettify<\/h2>\n\n\n\n<p>Na rozdiel od \u201eklasick\u00fdch\u201c pluginov, ktor\u00e9 \u010dasto konfiguruj\u00fa veci cez WP admin alebo cez PHP kon\u0161tanty, Acorn Prettify ide typickou acorn cestou: funkcie sa spravuj\u00fa cez konfigura\u010dn\u00fd s\u00fabor <strong><code>config\/prettify.php<\/code><\/strong>.<\/p>\n\n\n\n<p>Ak chce\u0161 meni\u0165 defaulty, najprv si konfigur\u00e1ciu publikuje\u0161 do projektu a potom ju uprav\u00ed\u0161.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>wp acorn vendor:publish --tag=prettify-config\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">wp<\/span><span style=\"color:#9ECBFF\"> acorn<\/span><span style=\"color:#9ECBFF\"> vendor:publish<\/span><span style=\"color:#79B8FF\"> --tag=prettify-config<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Praktick\u00fd tip pre t\u00edmy<\/h4>\n\n\n<p>Konfig s\u00fabory typu <code>config\/prettify.php<\/code> maj zvy\u010dajne v Gite. Je to \u010ditate\u013enej\u0161ie ako \u201eklikacie\u201c nastavenia a v review hne\u010f vid\u00ed\u0161, \u010do sa zmenilo medzi deploymi.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Kde to cel\u00e9 zapad\u00e1 v Roots\/Acorn svete<\/h2>\n\n\n\n<p>Roots t\u00fdmto krokom jasne ukazuj\u00fa, \u017ee <strong>Acorn a bal\u00ed\u010dkov\u00fd ekosyst\u00e9m<\/strong> je dnes ich hlavn\u00e1 cesta. Pre v\u00fdvoj\u00e1ra to znamen\u00e1, \u017ee doplnky a \u201eproject-level\u201c vylep\u0161enia sa \u010doraz viac bud\u00fa spr\u00e1va\u0165 ako zn\u00e1me Composer bal\u00edky z PHP sveta: in\u0161tal\u00e1cia cez Composer, konfigur\u00e1cia cez <code>config\/*.php<\/code>, publikovanie vendor configov cez CLI a podobne.<\/p>\n\n\n\n<p>Ak u\u017e v projekte pou\u017e\u00edva\u0161 Acorn, Prettify je prirodzen\u00fd sp\u00f4sob, ako ma\u0165 pod kontrolou tie \u00fapravy WordPressu, ktor\u00e9 Soil rie\u0161il roky \u2013 len v modernej\u0161om a konzistentnej\u0161om balen\u00ed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zhrnutie<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>Acorn Prettify<\/strong> je ofici\u00e1lny n\u00e1stupca <strong>Soil<\/strong> od Roots.<\/li>\n\n\n<li>Prin\u00e1\u0161a udr\u017eiavan\u00e9 jadro funkci\u00ed: \u010distej\u0161\u00ed markup, vylep\u0161en\u00e9 vyh\u013ead\u00e1vanie a relat\u00edvne URL (defaultne vypnut\u00e9).<\/li>\n\n\n<li>Migr\u00e1cia je jednoduch\u00e1: <code>composer remove roots\/soil<\/code> \u2192 <code>composer require roots\/acorn-prettify<\/code> + upratanie <code>add_theme_support<\/code> v Sage.<\/li>\n\n\n<li>Konfigur\u00e1cia ide cez <code>config\/prettify.php<\/code> a d\u00e1 sa publikova\u0165 pr\u00edkazom <code>wp acorn vendor:publish --tag=prettify-config<\/code>.<\/li>\n\n<\/ol>\n\n\n<div class=\"references-section\">\n                <h2>Referencie \/ Zdroje<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/announcing-acorn-prettify\/\" target=\"_blank\" rel=\"noopener noreferrer\">Announcing Acorn Prettify<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/acorn-prettify\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/acorn-prettify<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/soil\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/soil<\/a><\/li><li><a href=\"https:\/\/roots.io\/creating-an-acorn-package\/\" target=\"_blank\" rel=\"noopener noreferrer\">Creating an Acorn package<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/sage\/pull\/3172\/files\" target=\"_blank\" rel=\"noopener noreferrer\">Sage example PR (remove Soil supports)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Roots pos\u00fava svoj WordPress stack e\u0161te viac smerom k Acornu a s t\u00fdm prich\u00e1dza aj Acorn Prettify \u2013 n\u00e1stupca Soil pluginu pre upratan\u00fd markup, vylep\u0161en\u00e9 vyh\u013ead\u00e1vanie a (volite\u013en\u00e9) relat\u00edvne URL.<\/p>\n","protected":false},"author":36,"featured_media":106,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[4,8,3,74,10],"class_list":["post-107","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ekosystem-wordpress","tag-acorn","tag-composer","tag-roots","tag-sage","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":128,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/posts\/107\/revisions\/128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/media\/106"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/sk\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}