{"id":127,"date":"2024-01-16T00:00:00","date_gmt":"2024-01-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/ro\/acorn-prettify-succesorul-soil-ecosistemul-acorn\/"},"modified":"2026-01-20T06:32:56","modified_gmt":"2026-01-20T05:32:56","slug":"acorn-prettify-succesorul-soil-ecosistemul-acorn","status":"publish","type":"post","link":"https:\/\/helloblog.io\/ro\/acorn-prettify-succesorul-soil-ecosistemul-acorn\/","title":{"rendered":"Acorn Prettify: succesorul Soil \u0219i pasul urm\u0103tor \u00een ecosistemul Roots\/Acorn"},"content":{"rendered":"\n<p>\u00cen ultimii ani, Roots a \u00eempins constant WordPress spre un mod de lucru mai modern: Composer pentru dependin\u021be, conven\u021bii mai clare \u0219i o integrare tot mai str\u00e2ns\u0103 cu Acorn (stratul lor de aplica\u021bie pentru WordPress). \u00cen acest context apare <strong>Acorn Prettify<\/strong>, un pachet nou care preia rolul pluginului <strong>Soil<\/strong> \u0219i continu\u0103 doar acele func\u021bionalit\u0103\u021bi pe care echipa Roots vrea s\u0103 le men\u021bin\u0103 pe termen lung.<\/p>\n\n\n\n<p>Pe scurt: dac\u0103 folose\u0219ti Soil pentru \u201ccur\u0103\u021benie\u201d \u00een markup sau pentru ajust\u0103ri de UX la c\u0103utare, Acorn Prettify este direc\u021bia recomandat\u0103 de Roots. Nu e un rebrand; e o repozi\u021bionare a acestor features \u00een ecosistemul de pachete Acorn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De ce se renun\u021b\u0103 la Soil (\u0219i ce \u00eenseamn\u0103 asta pentru proiecte)<\/h2>\n\n\n\n<p>Soil a pornit ini\u021bial ca parte din Roots starter theme (\u00een perioada 2011\u20132014). Ulterior, odat\u0103 cu Roots v7, Soil a fost separat ca plugin standalone. Acum, Roots anun\u021b\u0103 c\u0103 merge \u201eall-in\u201d pe <strong>Acorn<\/strong> \u0219i pe ecosistemul s\u0103u de pachete, iar Acorn Prettify devine succesorul natural pentru func\u021bionalit\u0103\u021bile considerate esen\u021biale.<\/p>\n\n\n\n<p>Pentru tine, ca developer WordPress, schimbarea important\u0103 e la nivel de <strong>dependency management<\/strong>: \u00een loc s\u0103 tratezi aceste optimiz\u0103ri ca un plugin generic, le adaugi ca pachet Composer (\u00een stilul proiectelor Roots), cu configurare standardizat\u0103 prin fi\u0219iere de config.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce include Acorn Prettify (func\u021bionalit\u0103\u021bile p\u0103strate din Soil)<\/h2>\n\n\n\n<p>Acorn Prettify aduce mai departe principalele func\u021bii din Soil pe care Roots vrea s\u0103 le men\u021bin\u0103:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Clean up \/ cleaner WordPress markup<\/strong> \u2013 ajust\u0103ri care \u201ccur\u0103\u021b\u0103\u201d output-ul WordPress (markup mai curat, mai previzibil).<\/li>\n\n\n<li><strong>Nice search<\/strong> \u2013 \u00eembun\u0103t\u0103\u021biri pentru experien\u021ba \u0219i comportamentul c\u0103ut\u0103rii.<\/li>\n\n\n<li><strong>Relative URLs<\/strong> \u2013 suport pentru URL-uri relative; important: \u00een Acorn Prettify aceast\u0103 op\u021biune este <strong>dezactivat\u0103 implicit<\/strong>.<\/li>\n\n<\/ul>\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\">Aten\u021bie la Relative URLs<\/h4>\n\n\n<p>Dac\u0103 \u00een proiectele tale te bazai pe URL-uri relative prin Soil, noteaz\u0103 c\u0103 \u00een Acorn Prettify ele sunt acum dezactivate by default. Verific\u0103 explicit configurarea \u00eenainte de deploy, ca s\u0103 evi\u021bi diferen\u021be de comportament \u00eentre medii.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Migrarea de la Soil la Acorn Prettify (Composer)<\/h2>\n\n\n\n<p>Migrarea e direct\u0103 dac\u0103 proiectul t\u0103u gestioneaz\u0103 dependin\u021bele cu Composer (scenariu tipic pentru Roots\/Sage). Pa\u0219ii recomanda\u021bi de Roots sunt:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Elimin\u0103 Soil din dependin\u021be.<\/li>\n\n\n<li>Adaug\u0103 Acorn Prettify ca dependen\u021b\u0103.<\/li>\n\n\n<li>\u00cen proiectele Sage, elimin\u0103 op\u021biunile <code>add_theme_support<\/code> dedicate Soil (dac\u0103 le ai \u00een setup).<\/li>\n\n<\/ol>\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># 1) Elimin\u0103 Soil\ncomposer remove roots\/soil\n\n# 2) Adaug\u0103 Acorn Prettify\ncomposer 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:#6A737D\"># 1) Elimin\u0103 Soil<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> roots\/soil<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># 2) Adaug\u0103 Acorn Prettify<\/span><\/span>\n<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<p>Pentru proiectele <strong>Sage<\/strong>, Roots men\u021bioneaz\u0103 c\u0103 po\u021bi elimina \u0219i op\u021biunile <code>add_theme_support<\/code> legate de Soil din <code>app\/setup.php<\/code>. Exist\u0103 un exemplu concret \u00een Sage repo (PR-ul din referin\u021be) care arat\u0103 modific\u0103rile tipice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configurare: cum activezi\/ajustezi features \u00een Acorn Prettify<\/h2>\n\n\n\n<p>Acorn Prettify \u00ee\u0219i controleaz\u0103 func\u021bionalit\u0103\u021bile printr-un fi\u0219ier de configurare: <code>config\/prettify.php<\/code>. Cu alte cuvinte, \u201ctoggles\u201d-urile nu mai sunt doar theme supports sau set\u0103ri disparate, ci o configura\u021bie centralizat\u0103, specific\u0103 pachetului.<\/p>\n\n\n\n<p>Dac\u0103 vrei s\u0103 schimbi valorile implicite, publici fi\u0219ierul de config (\u00een stil Laravel\/Acorn) \u0219i apoi \u00eel editezi \u00een proiect:<\/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-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\">De ce e util\u0103 configurarea prin config file<\/h4>\n\n\n<p>\u00cen proiectele mai mari, un config dedicat reduce \u201cmisterele\u201d din theme setup \u0219i te ajut\u0103 s\u0103 urm\u0103re\u0219ti mai clar ce activ\u0103ri sunt f\u0103cute \u0219i de ce. \u00cen plus, e o potrivire natural\u0103 cu modul \u00een care Acorn \u00ee\u0219i organizeaz\u0103 pachetele.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ce s\u0103 verifici dup\u0103 migrare<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>C\u0103utarea: valideaz\u0103 c\u0103 scenariile de search din tema ta (\u0219i eventuale query-uri custom) se comport\u0103 la fel ca \u00eenainte.<\/li>\n\n\n<li>URL-uri relative: dac\u0103 le foloseai, activeaz\u0103-le explicit \u00een <code>config\/prettify.php<\/code> \u0219i testeaz\u0103 asset-urile, canonical-urile \u0219i redirect-urile.<\/li>\n\n\n<li>Markup: f\u0103 un smoke test pe template-urile principale (home, single, archive) ca s\u0103 surprinzi diferen\u021be de output care pot afecta CSS\/JS sau snapshot tests.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Context: Roots mizeaz\u0103 pe ecosistemul de pachete Acorn<\/h2>\n\n\n\n<p>Lansarea Acorn Prettify vine la pachet cu mesajul mai larg: Roots investe\u0219te \u00een adop\u021bia Acorn \u0219i \u00een cre\u0219terea ecosistemului de pachete. Dac\u0103 dezvol\u021bi proiecte WordPress \u201cmoderne\u201d \u00een jurul Sage\/Acorn, e un semnal clar c\u0103 zona de extensibilitate se mut\u0103 dinspre plugin-uri clasice spre pachete Composer integrate \u00een aplica\u021bie.<\/p>\n\n\n\n<p>Practic, Acorn Prettify nu este doar un \u00eenlocuitor pentru Soil, ci \u0219i un exemplu de cum arat\u0103 \u201cnoul normal\u201d \u00een lumea Roots: dependin\u021be gestionate cu Composer, config publicabil, \u0219i o abordare mai apropiat\u0103 de un framework PHP modern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rezumat<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Acorn Prettify este succesorul Soil \u0219i concentreaz\u0103 func\u021bionalit\u0103\u021bile pe care Roots le va men\u021bine \u00een continuare.<\/li>\n\n\n<li>Include cleanup pentru markup, \u00eembun\u0103t\u0103\u021biri pentru search \u0219i suport pentru relative URLs (dezactivat implicit).<\/li>\n\n\n<li>Migrarea se face prin Composer: elimini <code>roots\/soil<\/code>, adaugi <code>roots\/acorn-prettify<\/code> \u0219i cure\u021bi op\u021biunile Soil din setup (\u00een special \u00een Sage).<\/li>\n\n\n<li>Configurarea se face prin <code>config\/prettify.php<\/code>, publicat cu <code>wp acorn vendor:publish --tag=prettify-config<\/code>.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Referin\u021be \/ Surse<\/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 PR example (remove Soil supports)<\/a><\/li><li><a href=\"https:\/\/discourse.roots.io\/t\/-\/26545\" target=\"_blank\" rel=\"noopener noreferrer\">Roots Discourse thread<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Roots a lansat Acorn Prettify, pachetul care preia esen\u021bialul din Soil \u0219i \u00eel mut\u0103 definitiv \u00een lumea Acorn. Dac\u0103 ai proiecte bazate pe Sage\/Acorn, merit\u0103 s\u0103 \u0219tii ce p\u0103streaz\u0103, ce se schimb\u0103 \u0219i cum faci migrarea corect.<\/p>\n","protected":false},"author":32,"featured_media":126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[4,8,3,70,10],"class_list":["post-127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecosistem-wordpress","tag-acorn","tag-composer","tag-roots","tag-sage","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/posts\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/comments?post=127"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/posts\/127\/revisions"}],"predecessor-version":[{"id":148,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/posts\/127\/revisions\/148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/media?parent=127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/categories?post=127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/ro\/wp-json\/wp\/v2\/tags?post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}