{"id":140,"date":"2024-01-16T00:00:00","date_gmt":"2024-01-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/nl\/acorn-prettify-opvolger-van-soil-roots\/"},"modified":"2026-01-20T06:32:48","modified_gmt":"2026-01-20T05:32:48","slug":"acorn-prettify-opvolger-van-soil-roots","status":"publish","type":"post","link":"https:\/\/helloblog.io\/nl\/acorn-prettify-opvolger-van-soil-roots\/","title":{"rendered":"Acorn Prettify: de moderne opvolger van Soil in het Roots-ecosysteem"},"content":{"rendered":"\n<p>Binnen het Roots-ecosysteem was <em>Soil<\/em> jarenlang zo\u2019n \u201cinstalleer ik standaard\u201d-plugin: een bundel met pragmatische verbeteringen voor WordPress. Roots heeft nu <strong>Acorn Prettify<\/strong> aangekondigd als opvolger, met een duidelijke boodschap: ze zetten stevig in op <strong>Acorn<\/strong> en de bijbehorende package-architectuur.<\/p>\n\n\n\n<p>Als je al met Acorn werkt (de Laravel-achtige applicatielaag voor WordPress binnen Roots), dan past Prettify precies in dat plaatje: minder losse WordPress-plugin-mentaliteit, meer configuratie en onderhoud via packages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Van Soil naar Prettify: waarom deze stap logisch is<\/h2>\n\n\n\n<p>Soil begon ooit als onderdeel van het Roots starter theme (in de periode 2011\u20132014). Later, bij de release van Roots v7, werd Soil een standalone plugin. De nieuwe situatie is dat Roots de onderhoudbare kernfeatures onderbrengt in <strong>Acorn Prettify<\/strong>, zodat dit beter aansluit op de richting van het platform en het groeiende Acorn package-ecosysteem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat zit er in Acorn Prettify?<\/h2>\n\n\n\n<p>Acorn Prettify bevat volgens de aankondiging de belangrijkste onderdelen uit Soil die Roots actief wil blijven onderhouden. Concreet gaat het om:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Cleaner WordPress markup<\/strong>: opschonen\/vereenvoudigen van standaard WordPress output waar dat zinvol is.<\/li>\n\n\n<li><strong>Nice search<\/strong>: verbeteringen rondom search, bedoeld om een netter en consistenter zoekgedrag te krijgen.<\/li>\n\n\n<li><strong>Relative URLs<\/strong>: ondersteuning voor relatieve URL\u2019s, maar <strong>nu standaard uitgeschakeld<\/strong>.<\/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\">Opmerking over relative URLs<\/h4>\n\n\n<p>In Soil werd relative URLs vaak als handige standaard gezien, maar in Prettify staat het volgens de aankondiging standaard uit. Dat is een signaal dat Roots dit feature wat voorzichtiger wil inzetten en liever expliciet laat aanzetten via configuratie.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Migreren: Soil eruit, Acorn Prettify erin<\/h2>\n\n\n\n<p>De migratie is in de basis gewoon een Composer-wissel. Eerst verwijder je Soil als dependency:<\/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>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<p>Vervolgens voeg je Acorn Prettify toe:<\/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>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<p>Gebruik je Sage, dan is er nog een extra opruimstap: de <code>add_theme_support<\/code>-instellingen die je eerder voor Soil had toegevoegd (typisch in <code>app\/setup.php<\/code>) kun je verwijderen. Roots verwijst in de aankondiging naar een voorbeeldwijziging in de Sage-repo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuratie: alles via <code>config\/prettify.php<\/code><\/h2>\n\n\n\n<p>Waar Soil vooral voelde als \u201cplugin aan\/uit\u201d, draait Prettify om configuratie. Features worden aangezet via een configbestand: <code>config\/prettify.php<\/code>. Wil je de defaults aanpassen, dan publiceer je eerst de config naar je project en ga je daarna finetunen.<\/p>\n\n\n\n<p>Config publiceren doe je met de Acorn CLI (de WordPress\/Acorn command line tooling):<\/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\">Let op bij upgrades<\/h4>\n\n\n<p>Zodra je configbestanden publiceert en zelf gaat aanpassen, ben je in de praktijk ook verantwoordelijk voor het bewust vergelijken van nieuwe defaults bij updates. Houd dus rekening met onderhoud, zeker als je Prettify als \u201cbaseline\u201d in meerdere projecten gebruikt.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wat betekent dit voor je Roots\/Sage workflow?<\/h2>\n\n\n\n<p>De interessantste verandering is niet eens het lijstje features, maar de positionering: Roots trekt dit soort basisverbeteringen richting het <strong>Acorn package-model<\/strong>. Dat maakt het logischer om WordPress-projecten op te zetten met Composer-dependencies die expliciet versioned zijn, \u00e9n met centrale configuratiebestanden die beter passen bij hoe veel teams al werken (config in repo, voorspelbare deploys, minder handmatig klikken in wp-admin).<\/p>\n\n\n\n<p>Als je al in Acorn zit, is Prettify vooral een nette opschoning van je \u201cdefaults\u201d. Als je nog niet met Acorn werkt, is dit opnieuw een signaal dat nieuwe Roots-initiatieven steeds meer in die richting bewegen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Samenvatting<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Roots heeft <strong>Acorn Prettify<\/strong> gelanceerd als opvolger van <strong>Soil<\/strong>.<\/li>\n\n\n<li>Prettify focust op de kernfeatures: cleaner markup, nice search en relative URLs (standaard uit).<\/li>\n\n\n<li>Migratie gaat via Composer: <code>composer remove roots\/soil<\/code> en <code>composer require roots\/acorn-prettify<\/code>.<\/li>\n\n\n<li>Configuratie loopt via <code>config\/prettify.php<\/code>; publiceer met <code>wp acorn vendor:publish --tag=prettify-config<\/code>.<\/li>\n\n\n<li>Sage-projecten kunnen Soil-gerelateerde <code>add_theme_support<\/code>-regels uit <code>app\/setup.php<\/code> verwijderen.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Referenties \/ Bronnen<\/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 files)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Werk je met Roots, Sage en Acorn? Dan is Acorn Prettify een interessante nieuwe baseline: een compacte set verbeteringen voor WordPress-markup, search en URL\u2019s, als opvolger van Soil.<\/p>\n","protected":false},"author":22,"featured_media":139,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[4,7,3,68,10],"class_list":["post-140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-ecosysteem","tag-acorn","tag-composer","tag-roots","tag-sage","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/140\/revisions\/161"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media\/139"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}