diff --git a/README.md b/README.md index 485bf5c..e7fd76b 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,8 @@ ddev frontend Static tests run easily in the container. ``` -ddev static # PHPStan and PHPCS. -ddev cypress # Currently hangs locally, working in Github Actions. +ddev test-static # PHPStan and PHPCS. +ddev test-cypress # Currently hangs locally, working in Github Actions. ``` Note that for Cypress E2E testing, the `ddev cypress` command works for us on diff --git a/_db_main.sql.gz b/_db_main.sql.gz index 23329c2..a55c586 100644 Binary files a/_db_main.sql.gz and b/_db_main.sql.gz differ diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index ee9cbd5..df7ba44 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -55,6 +55,7 @@ module: tome_base: 0 tome_static: 0 toolbar: 0 + twig_tweak: 0 update: 0 upgrade_status: 0 user: 0 diff --git a/config/sync/system.site.yml b/config/sync/system.site.yml index ded7575..4cd5793 100644 --- a/config/sync/system.site.yml +++ b/config/sync/system.site.yml @@ -8,7 +8,7 @@ slogan: 'Free as in …' page: 403: '' 404: '' - front: /node/6 + front: /node/14 admin_compact_mode: false weight_select_max: 100 default_langcode: en diff --git a/static-site/articles/index.html b/static-site/articles/index.html index 0107c96..4f3e265 100644 --- a/static-site/articles/index.html +++ b/static-site/articles/index.html @@ -2,11 +2,11 @@ - + - Redirecting to http://fs-web-static-site.ddev.site:8080/from-the-pen + Redirecting to http://fs-web-static-site.ddev.site:8080/ce/content - Redirecting to http://fs-web-static-site.ddev.site:8080/from-the-pen. + Redirecting to http://fs-web-static-site.ddev.site:8080/ce/content. \ No newline at end of file diff --git a/static-site/ce/about/index.html b/static-site/ce/about/index.html deleted file mode 100644 index ec75aa3..0000000 --- a/static-site/ce/about/index.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - About Free Sauce | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - -
- - - - -
-
-
-
-
-
- - - -

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

- -
-
- - - -

Free Sauce provides web consulting services via the engagement of specialists. We have some interest in cloud platforms, generative AI, process automation, and have considerable expertise Drupal CMS.

The owner lead consultant is Simon Hobbs. We're interested in working with other people who are specialists in their field, or who want to pursue interesting vertical.

Most of our work is government focussed, and you can invite us to opportuntunities via the BuyICT seller catalogue.

- -
- -
-
-
-
- -
-
- -
- -
- - -
- - - -
- - -
-
- - -
- - - - - - - diff --git a/static-site/ce/buyict-dmp2/index.html b/static-site/ce/buyict-dmp2/index.html deleted file mode 100644 index 89300b8..0000000 --- a/static-site/ce/buyict-dmp2/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - Redirecting to BuyICT Marketplace - - - diff --git a/static-site/ce/content/index.html b/static-site/ce/content/index.html new file mode 100644 index 0000000..d0064bf --- /dev/null +++ b/static-site/ce/content/index.html @@ -0,0 +1,460 @@ + + + + + + + + + + + + Content | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + + + +
+
+
+
+
+ + +
+ + + + + + + + +
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

A conversation with Drupal's @mglaman about all things PHPStan in Drupal core and contrib. More information and help with PHPStan can be found in #phpstan in Drupal Slack.

+ +
+
+
+ Video • 20 mins watch +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

I wanted a quick call-graph, for a drupal.org issue, to highlight where there was some expensive code blocking the page load. This plugin is very easy to set up. (The sound quality is poor, sorry about that!)

+ +
+
+
+ Video • 15 mins watch +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

A short demonstration of my local development setup for helping with Project Browser for the Starshot initiative.

+ +
+
+
+ Video • 8 mins watch +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

What will be the field_collection module for Drupal 10? I review a few current modules and the how they impact the database tables.

+ +
+
+
+ Video • 29 mins watch +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

Add your first Drupal gitlab-ci.yml thru the web UI

+ +
+
+
+ Blog • 9 mins read +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

Defaults matter, and usually I’m down with them, but one default has never sat well with me. 

+ +
+
+
+ Video • 9 mins watch +
+
+
+
+
+
+
+
+ +
+ + + +
+
+
+ +
+
+ +

This page just for reviewing the style of the site as we develop it.

+ +
+
+
+
+
+
+
+
+ + + + + + + + +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+ + +
+ + + +
+ + +
+
+ + +
+ + + + + + + diff --git a/static-site/ce/index.html b/static-site/ce/index.html index 7081b9e..6477beb 100644 --- a/static-site/ce/index.html +++ b/static-site/ce/index.html @@ -1,12 +1,227 @@ - - - - - - Redirecting to http://fs-web-static-site.ddev.site:8080/ce/about - - - Redirecting to http://fs-web-static-site.ddev.site:8080/ce/about. - - \ No newline at end of file + + + + + + + + + + + Free Sauce | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + + + +
+
+
+
+
+
+ + + +

Great digital outcomes can happen when one of our experts works with your team.

+ +
+
+ + + +

Free Sauce provides web consulting services by engaging specialists and embedding them with your team or vendor to help you to deliver a successful project. We are interested in open source, cloud platforms, generative AI, process automation, and have considerable expertise Drupal CMS.

The owner and lead consultant is Simon Hobbs. We're interested in working with other people who are specialists in their field, or who want to pursue interesting verticals.

Most of our work is government focussed, and you can invite us to opportunities via the BuyICT seller catalogue.

+ +
+ +
+
+
+
+ +
+
+ +
+ +
+ + +
+ + + +
+ + +
+
+ + +
+ + + + + + + diff --git a/static-site/ce/thank-you/index.html b/static-site/ce/thank-you/index.html index ee168ad..b4e5441 100644 --- a/static-site/ce/thank-you/index.html +++ b/static-site/ce/thank-you/index.html @@ -12,8 +12,8 @@ Thank you | frees.au/ce - - + + @@ -27,7 +27,7 @@
@@ -169,32 +165,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -203,9 +211,9 @@

Get in touch
- - - + + + diff --git a/static-site/ce/ummm/article-2/index.html b/static-site/ce/ummm/add-your-first-drupal-gitlab-ciyml-thru-web-ui/index.html similarity index 50% rename from static-site/ce/ummm/article-2/index.html rename to static-site/ce/ummm/add-your-first-drupal-gitlab-ciyml-thru-web-ui/index.html index 4b2f29a..f9c9b9b 100644 --- a/static-site/ce/ummm/article-2/index.html +++ b/static-site/ce/ummm/add-your-first-drupal-gitlab-ciyml-thru-web-ui/index.html @@ -2,18 +2,18 @@ - + - ARTICLE 2 | frees.au/ce + Add your first Drupal gitlab-ci.yml thru the web UI | frees.au/ce - - + + @@ -27,7 +27,7 @@
@@ -137,7 +133,7 @@

-

ASDASD

+

Add your first Drupal gitlab-ci.yml thru the web UI

@@ -165,32 +161,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -199,9 +207,9 @@

Get in touch
- - - + + + diff --git a/static-site/ce/ummm/article-1/index.html b/static-site/ce/ummm/article-1/index.html deleted file mode 100644 index eb17dd2..0000000 --- a/static-site/ce/ummm/article-1/index.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - - Article 1 | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - - - -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - diff --git a/static-site/ce/ummm/article-3/index.html b/static-site/ce/ummm/article-3/index.html deleted file mode 100644 index b980cdd..0000000 --- a/static-site/ce/ummm/article-3/index.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - ARTICLE 3 | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - - - -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - diff --git a/static-site/ce/ummm/article-4/index.html b/static-site/ce/ummm/article-4/index.html deleted file mode 100644 index 6c3beec..0000000 --- a/static-site/ce/ummm/article-4/index.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - ARTICLE 4 | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - - - -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - diff --git a/static-site/ce/ummm/article-6/index.html b/static-site/ce/ummm/article-6/index.html deleted file mode 100644 index 5aef2a8..0000000 --- a/static-site/ce/ummm/article-6/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - Redirecting to http://fs-web-static-site.ddev.site:8080/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit - - - Redirecting to http://fs-web-static-site.ddev.site:8080/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit. - - \ No newline at end of file diff --git a/static-site/ce/ummm/drupal-modules-provide-repeating-field-groups/index.html b/static-site/ce/ummm/drupal-modules-provide-repeating-field-groups/index.html new file mode 100644 index 0000000..05dd9ca --- /dev/null +++ b/static-site/ce/ummm/drupal-modules-provide-repeating-field-groups/index.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + Drupal modules that provide "repeating field groups" | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + +
+
+
+
+ +

What will be the field_collection module for Drupal 10? I review a few current modules and the how they impact the database tables.

+ +
+
+
+
Youtube
+
+ +
+ + + + + +
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+
+
+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
+
+
+
Get in touch
+ +
+
+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +
+
+
+
+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

+
+
+
+
+
+ + +
+ + + + + + + diff --git a/static-site/ce/ummm/local-starshot-dev-projectbrowser/index.html b/static-site/ce/ummm/local-starshot-dev-projectbrowser/index.html new file mode 100644 index 0000000..3712a03 --- /dev/null +++ b/static-site/ce/ummm/local-starshot-dev-projectbrowser/index.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + Local starshot dev - project_browser | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + +
+
+
+
+ +

A short demonstration of my local development setup for helping with Project Browser for the Starshot initiative.

+ +
+
+
+
Youtube
+
+ +
+ + + + + +
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+
+
+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
+
+
+
Get in touch
+ +
+
+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +
+
+
+
+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

+
+
+
+
+
+ + +
+ + + + + + + diff --git a/static-site/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit/index.html b/static-site/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit/index.html deleted file mode 100644 index a0651a6..0000000 --- a/static-site/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit/index.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - -
- - -
-
-
-
- -

orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel ex metus. Aliquam a urna volutpat, commodo elit ut, blandit lacus. Morbi blandit sollicitudin odio, viverra semper odio lacinia at. Curabitur pharetra pharetra sapien, suscipit tincidunt nunc malesuada sit amet. Etiam nec vulputate ipsum. Maecenas id gravida mi.

- -
-
- -

This is H2 - Heading

- - - sad sad - - - - -
-

this is paragraph abc

This is H3 - Heading

this is paragraph

This is h4 heading

- -
- -
-
-
-
- -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - diff --git a/static-site/ce/ummm/mastering-machine-names-inside-your-views/index.html b/static-site/ce/ummm/mastering-machine-names-inside-your-views/index.html deleted file mode 100644 index 8862397..0000000 --- a/static-site/ce/ummm/mastering-machine-names-inside-your-views/index.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - - - - Mastering machine names inside your views | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - -
- - -
-
-
-
- -

Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.

- -
-
- -

This site is under development and this article is not complete.

I have been creating some content for the new website and thinking about random tips that I have never found time to share.

When you create a view there are a few areas where I like to control generated "machine name" values that will lead to cleaner output in the long run.

I wouldn't do this after a site is built, it's too risky to overlook other things that depend on these machine names. I would only use these techniques when I initially create the view.

The view itself

It's common to find that your view wasn't named well, and you're unhappy with the name of the twig file to override.

The easiest way to fix this is to clone the view and customise the machine as you do it, then delete the old view. This is completely safe as views YAML is usually self-contained.

As said above, you usually do this when you are building the view and you realise you gave it a bad name. After a while there are other parts of your site which will be couple to this name, and easy to miss. If you clone a view and change the machine name you will break the following and plenty of other things:

  • Entity reference fields (when you configure the options list) can use a View.
  • Your layouts builder page, where you have embedded a Views block.
  • Your block layout, where you have added a Views block.
  • Twig templates reference the Views machine name
  • Custom code can programmatically load and render a view.
  • Probably a dozen more if you count your contrib module. 

Display names

Below we have a view with multiple displays and they have been neatly named. If you want to control the twig for this view, you can add a template views-view--VIEWNAME--DISPLAYNAME.html.twig. After a site has been built it's common to see templates like this:

[PICTURE]

views-view--mycontentview--page-1.html.twig
-views-view--mycontentview--page-2.html.twig
-views-view--mycontentview--page-3.html.twig

For another developer looking at this code, and trawling through dozens of templates, it's not immediately clear what these views are being used for. This is a DX issue for you and your colleagues. The effort to change this later may not be worth it.

Get into the habit of setting your display machine names as soon as you create them. You will appreciate the resulting systax for creating your twig templates.

[PICTURE]

views-view--mycontentview--all.html.twig
-views-view--mycontentview--articles.html.twig
-views-view--mycontentview--newest-articles.html.twig

Renaming fields

When adding fields, it's common to add the same field twice, you might render a field in different ways or hide one of the fields and use it in a field rewrite later.

The views UI does not allow you to rename the field's machine name. However there is a technique I've been using for a while that works very well. It will allow you to have well named twig tokens. It invokes hacking the views yaml and reimporting it.

Let's say we want to re-use a uid (User ID) field, hide it and, reuse it in a field rewrite in another field.

  1. Create your view, and add your fields.
  2. Create a second UID field.
  3. Add a "Global: custom text" field
  4. In the rewrite of this field, you will note that to express this field you will enter {{ uid_2 }} - How can we change this.
  5. Export your site config with Drush, open the new view yaml, and find and replace the instances of uid_2 with you_say_tomatoe
  6. Reimport your site config

Now in your view you can use {{ you_say_tomatoe }} in your rewriting.

Disclaimer #1: I've been told that I hack yaml too much. I like to explore the boundaries of Drupal's config system, it's a masterpiece. However, I'm also aware that I will get no love in the issue queue if I hose my site. That said, I have been using this technique with Views since Drupal 8 and it has never failed me.

Disclaimers #2: I only do fancy twig re-writing in administration views in the backend, especially when I'm using a vanilla uncustomised backend theme. It's a great smart way to make backend tables more user-friendly. On the frontend, you should bring this complexity into the theme layer and keep your views nice and sane.

[VIDEO]

 

-
-
Tags
-
- - - - -
- -
-
-
-
- -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - diff --git a/static-site/ce/ummm/setting-ddev-plugin-tyler36ddev-xhgui/index.html b/static-site/ce/ummm/setting-ddev-plugin-tyler36ddev-xhgui/index.html new file mode 100644 index 0000000..d8ac741 --- /dev/null +++ b/static-site/ce/ummm/setting-ddev-plugin-tyler36ddev-xhgui/index.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + Setting up the DDEV plugin, tyler36/ddev-xhgui | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + +
+
+
+
+ +

I wanted a quick call-graph, for a drupal.org issue, to highlight where there was some expensive code blocking the page load. This plugin is very easy to set up. (The sound quality is poor, sorry about that!)

+ +
+
+
+
Youtube
+
+ +
+ + + + + +
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+
+
+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
+
+
+
Get in touch
+ +
+
+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +
+
+
+
+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

+
+
+
+
+
+ + +
+ + + + + + + diff --git a/static-site/ce/ummm/artciel-5/index.html b/static-site/ce/ummm/ten-topics-matt-glaman/index.html similarity index 50% rename from static-site/ce/ummm/artciel-5/index.html rename to static-site/ce/ummm/ten-topics-matt-glaman/index.html index ff9fc9a..8ded343 100644 --- a/static-site/ce/ummm/artciel-5/index.html +++ b/static-site/ce/ummm/ten-topics-matt-glaman/index.html @@ -2,18 +2,18 @@ - + - ARTCIEL 5 | frees.au/ce + Ten topics with Matt Glaman | frees.au/ce - - + + @@ -27,7 +27,7 @@
@@ -137,18 +133,18 @@

-

SADASD

+

A conversation with Drupal's @mglaman about all things PHPStan in Drupal core and contrib. More information and help with PHPStan can be found in #phpstan in Drupal Slack.

-
Media video
+
Youtube
- +
@@ -177,32 +173,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -211,9 +219,9 @@

Get in touch
- - - + + + diff --git a/static-site/ce/ummm/time-configexport-field-pasture/index.html b/static-site/ce/ummm/time-configexport-field-pasture/index.html new file mode 100644 index 0000000..83fc4d0 --- /dev/null +++ b/static-site/ce/ummm/time-configexport-field-pasture/index.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + Time to config:export ‘field_’ to pasture | frees.au/ce + + + + + + + + +
+ + Skip to main content + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+
+ + +
+ + +
+
+
+
+ +

Defaults matter, and usually I’m down with them, but one default has never sat well with me. 

+ +
+
+
+
Youtube
+
+ +
+ + + + + +
+ + +
+ +
+
+
+
+ +
+ +
+ + +
+ + + +
+ +
+
+
+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
+
+
+
Get in touch
+ +
+
+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +
+
+
+
+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

+
+
+
+
+
+ + +
+ + + + + + + diff --git a/static-site/ce/ummm/typography-check/index.html b/static-site/ce/ummm/typography-check/index.html index 193bd25..d36b3cd 100644 --- a/static-site/ce/ummm/typography-check/index.html +++ b/static-site/ce/ummm/typography-check/index.html @@ -12,8 +12,8 @@ Typography check | frees.au/ce - - + + @@ -27,7 +27,7 @@
@@ -174,32 +170,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -208,9 +216,9 @@

Get in touch
- - - + + + diff --git a/static-site/from-the-pen/index.html b/static-site/from-the-pen/index.html index d4dc459..4f3e265 100644 --- a/static-site/from-the-pen/index.html +++ b/static-site/from-the-pen/index.html @@ -1,469 +1,12 @@ - - - - - - - - - - - From the Pen | frees.au/ce - - - - - - - - -
- - Skip to main content - - -
-
- - - - - - -
- - -
- - - - -
- -
-
- -
-
-
- - -
- - - - -
-
-
-
-
- - -
- - - - - - - - -
-
-
-
-
- -
- - - -
-
-
- -
-
- -

orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel ex metus. Aliquam a urna volutpat, commodo elit ut, blandit lacus. Morbi blandit sollicitudin odio, viverra semper odio lacinia at. Curabitur pharetra pharetra sapien, suscipit tincidunt nunc malesuada sit amet. Etiam nec vulputate ipsum. Maecenas id gravida mi.

- -
-
-
- Blog • 15 mins read -
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

SADASD

- -
-
-
- Video • 20 mins watch -
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

SADASD

- -
-
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

ASASD

- -
-
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

ASDASD

- -
-
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

aSDas

- -
-
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.

- -
-
-
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

This page just for reviewing the style of the site as we develop it.

- -
-
-
-
-
-
-
-
- - - - - - - - -
-
- -
- -
-
-
- -
-
- -
- -
- - -
- - - -
- -
-
-
-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

-
-
-
Get in touch
- -
-
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

-
-
-
-
-

Copyright Freesauce ABN XX XXXX XXXXX

-
-
-
-
-
- - -
- - - - - - - + + + + + + Redirecting to http://fs-web-static-site.ddev.site:8080/ce/content + + + Redirecting to http://fs-web-static-site.ddev.site:8080/ce/content. + + \ No newline at end of file diff --git a/static-site/index.html b/static-site/index.html index 70319a7..a44a4b9 100644 --- a/static-site/index.html +++ b/static-site/index.html @@ -2,19 +2,19 @@ - + - Future home page | frees.au/ce + Home redirect | frees.au/ce - - + + @@ -28,7 +28,7 @@
@@ -144,7 +140,7 @@

-

This is the future home page.

+

Used as the home page

@@ -170,32 +166,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -204,9 +212,9 @@

Get in touch
- - - + + + diff --git a/static-site/js-search/settings/index.html b/static-site/js-search/settings/index.html index 0608279..91afd77 100644 --- a/static-site/js-search/settings/index.html +++ b/static-site/js-search/settings/index.html @@ -1 +1 @@ -{"servers":{"lunr":{"indexes":{"article":{"fileList":["http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-2.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-7.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-10.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-19.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-27.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-28.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-29.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-37.json"],"fields":{"created":{"boost":1},"lead":{"boost":1,"special_type":"summary"},"rendered_item":{"boost":1},"title":{"boost":21,"special_type":"label"},"url":{"boost":1,"special_type":"url"}},"version":63}}}}} \ No newline at end of file +{"servers":{"lunr":{"indexes":{"article":{"fileList":["http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-2.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-7.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-10.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-27.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-28.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-29.json","http:\/\/fs-web-static-site.ddev.site:8080\/sites\/default\/files\/search-api-js\/lunr\/article\/index-37.json"],"fields":{"created":{"boost":1},"lead":{"boost":1,"special_type":"summary"},"rendered_item":{"boost":1},"title":{"boost":21,"special_type":"label"},"url":{"boost":1,"special_type":"url"}},"version":75}}}}} \ No newline at end of file diff --git a/static-site/media/oembed/2e97811d19a3eb3c9e2047ec11351d4f/index.html b/static-site/media/oembed/0e78113920b5d201fbf170af3688c236/index.html similarity index 61% rename from static-site/media/oembed/2e97811d19a3eb3c9e2047ec11351d4f/index.html rename to static-site/media/oembed/0e78113920b5d201fbf170af3688c236/index.html index f7f15c2..6bf05a8 100644 --- a/static-site/media/oembed/2e97811d19a3eb3c9e2047ec11351d4f/index.html +++ b/static-site/media/oembed/0e78113920b5d201fbf170af3688c236/index.html @@ -1,10 +1,10 @@ - + - + diff --git a/static-site/media/oembed/0eb01c3d2656de6f015d60ed7ed17cb1/index.html b/static-site/media/oembed/0eb01c3d2656de6f015d60ed7ed17cb1/index.html new file mode 100644 index 0000000..34c0bc9 --- /dev/null +++ b/static-site/media/oembed/0eb01c3d2656de6f015d60ed7ed17cb1/index.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static-site/media/oembed/33fc298d3c3c68441306aabae3e52ac4/index.html b/static-site/media/oembed/33fc298d3c3c68441306aabae3e52ac4/index.html new file mode 100644 index 0000000..edd3f2a --- /dev/null +++ b/static-site/media/oembed/33fc298d3c3c68441306aabae3e52ac4/index.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static-site/media/oembed/85067998507c1c9b96c9aa0e54b6298e/index.html b/static-site/media/oembed/85067998507c1c9b96c9aa0e54b6298e/index.html new file mode 100644 index 0000000..0788b44 --- /dev/null +++ b/static-site/media/oembed/85067998507c1c9b96c9aa0e54b6298e/index.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static-site/media/oembed/e874a381eede884e327e54c4f6bf9802/index.html b/static-site/media/oembed/e874a381eede884e327e54c4f6bf9802/index.html new file mode 100644 index 0000000..b1e3a9d --- /dev/null +++ b/static-site/media/oembed/e874a381eede884e327e54c4f6bf9802/index.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static-site/modules/contrib/search_api_lunr/js/build/api.index.js b/static-site/modules/contrib/search_api_lunr/js/build/api.index.js index 92c6524..33b01db 100644 --- a/static-site/modules/contrib/search_api_lunr/js/build/api.index.js +++ b/static-site/modules/contrib/search_api_lunr/js/build/api.index.js @@ -61,4 +61,4 @@ O.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.field * lunr.Builder * Copyright (C) 2019 Oliver Nightingale */ -O.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=O.tokenizer,this.pipeline=new O.Pipeline,this.searchPipeline=new O.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},O.Builder.prototype.ref=function(e){this._ref=e},O.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},O.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},O.Builder.prototype.k1=function(e){this._k1=e},O.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return O.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},O.QueryLexer.prototype.width=function(){return this.pos-this.start},O.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},O.QueryLexer.prototype.backup=function(){this.pos-=1},O.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=O.QueryLexer.EOS&&this.backup()},O.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(O.QueryLexer.TERM)),e.ignore(),e.more())return O.QueryLexer.lexText},O.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.EDIT_DISTANCE),O.QueryLexer.lexText},O.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.BOOST),O.QueryLexer.lexText},O.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(O.QueryLexer.TERM)},O.QueryLexer.termSeparator=O.tokenizer.separator,O.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==O.QueryLexer.EOS)return O.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return O.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if(t.match(O.QueryLexer.termSeparator))return O.QueryLexer.lexTerm}else e.escapeCharacter()}},O.QueryParser=function(e,t){this.lexer=new O.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},O.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=O.QueryParser.parseClause;e;)e=e(this);return this.query},O.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},O.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},O.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},O.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case O.QueryLexer.PRESENCE:return O.QueryParser.parsePresence;case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new O.QueryParseError(r,t.start,t.end)}},O.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=O.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=O.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new O.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new O.QueryParseError(r,t.start,t.end)}switch(n.type){case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new O.QueryParseError(r,n.start,n.end)}}},O.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new O.QueryParseError(n,t.start,t.end)}switch(i.type){case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}}},O.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new O.QueryParseError(n,r.start,r.end)}else e.nextClause()}},O.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}else e.nextClause()}},O.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}else e.nextClause()}},e.exports=O}()}));class o{constructor(e,t,r){this.id=e,this.fields=r,this.rawDocument=t}getId(){return this.id}getUrl(){return this.resolveSpecialFieldType("url",!0)}getLabel(){return this.resolveSpecialFieldType("label",!0)}getBoost(){return this.resolveSpecialFieldType("boost")}getSummary(e){let t=this.resolveSpecialFieldType("summary");return t&&t.length>250&&(t=t.substr(0,250)+"..."),t||null}resolveSpecialFieldType(e,t){let r=this.fields.find(t=>t.getSpecialType()===e);if(r)return this.rawDocument[r.getId()];if(t)throw new Error(`The index did not define a field with the type "${e}". Configure the fields in Search API and assign the Lunr data type for this field.`);return null}}class s{constructor(e){this.searchApiIndex=e,this.hydratedIndexPromise=null,this.cachedIndex=n.createInstance({name:`lunr-index-${this.searchApiIndex.getId()}`})}search(e,t){return this.hydrateIndex().then(r=>{const n=r.query((function(t){t.term(i.tokenizer(e),{boost:100,usePipeline:!0}),t.term(i.tokenizer(e),{boost:10,usePipeline:!1,wildcard:i.Query.wildcard.TRAILING}),t.term(i.tokenizer(e),{boost:1,editDistance:1})}));return void 0!==t?n.slice(0,t):n}).then(e=>e.map(e=>this.searchApiIndex.getDocument(e.ref)))}hydrateIndex(){return this.hydratedIndexPromise||(this.hydratedIndexPromise=new Promise((e,t)=>{this.searchApiIndex.resolveAllDocuments().then(t=>{this.cachedIndex.getItem("indexVersion").then(r=>{r>=this.searchApiIndex.getIndexVersion()?this.cachedIndex.getItem("index").then(t=>{e(i.Index.load(JSON.parse(t))),this._lastHydrateStrategy="cache"}):(this.cachedIndex.clear(),e(this.indexLunr(t)),this._lastHydrateStrategy="index")})})})),this.hydratedIndexPromise}indexLunr(e){let t=this.searchApiIndex,r=i((function(){this.ref("_id"),t.getFields().map(e=>{0!==e.getBoost()&&this.field(e.getId(),{boost:e.getBoost()})}),Object.keys(e).map(r=>{const n=t.getDocument(r).getBoost(),i=n?{boost:n}:{};this.add(e[r],i)})}));return this.cachedIndex.setItem("index",JSON.stringify(r.toJSON())),this.cachedIndex.setItem("indexVersion",this.searchApiIndex.getIndexVersion()),r}}class a{constructor(e,t){this.id=e,this.settings=t}getId(){return this.id}getBoost(){return this.settings.boost}getSpecialType(){return this.settings.special_type}}class u{constructor(e,t){this.id=e,this.settings=t,this.documentPromise=null,this.documentPromiseResolved=!1,this.lunrIndex=new s(this),this.fields=Object.keys(this.settings.fields).map(e=>new a(e,this.settings.fields[e]))}resolveAllDocuments(){return this.documentPromise||(this.documentPromise=Promise.all(this.getFileList().map(e=>fetch(`${e}?version=${this.getIndexVersion()}`).then(e=>e.json()))).then(e=>{let t={};return e.forEach(e=>{t=Object.assign(t,e)}),this.documentPromiseResolved=!0,this.documents=t,t})),this.documentPromise}getFileList(){return this.settings.fileList}getId(){return this.id}getDocumentRaw(e){if(!this.documentPromiseResolved)throw new Error("Documents have not been resolved yet.");if(!this.documents[e])throw new Error(`Index did not contain document with key "${e}".`);return this.documents[e]}getDocument(e){return new o(e,this.getDocumentRaw(e),this.fields)}getFields(){return this.fields}getIndexVersion(){return this.settings.version}getLunr(){return this.lunrIndex}search(e,t){return this.getLunr().search(e,t)}}class c{constructor(e,t){this.indexes={},this.id=e,Object.keys(t.indexes).forEach(e=>{this.indexes[e]=new u(e,t.indexes[e])})}getIndex(e){if(!this.indexes[e])throw new Error(`Server did not contain and index with ID "${e}".`);return this.indexes[e]}getId(){return this.id}}class l{constructor(e){this.servers={},Object.keys(e.servers).forEach(t=>{this.servers[t]=new c(t,e.servers[t])})}getServers(){return Object.keys(this.servers)}static createFromEndpoint(e){return fetch(`${e}js-search/settings`).then(e=>e.json()).then(e=>new l(e))}getServer(e){if(!this.servers[e])throw new Error(`Did not have configuration for server with ID "${e}".`);return this.servers[e]}getIndexFromElement(e){return this.getServer(e.dataset.server).getIndex(e.dataset.index)}}window.searchApiJs=new l(window.drupalSettings.search_api_lunr); \ No newline at end of file +O.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=O.tokenizer,this.pipeline=new O.Pipeline,this.searchPipeline=new O.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},O.Builder.prototype.ref=function(e){this._ref=e},O.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},O.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},O.Builder.prototype.k1=function(e){this._k1=e},O.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return O.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},O.QueryLexer.prototype.width=function(){return this.pos-this.start},O.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},O.QueryLexer.prototype.backup=function(){this.pos-=1},O.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=O.QueryLexer.EOS&&this.backup()},O.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(O.QueryLexer.TERM)),e.ignore(),e.more())return O.QueryLexer.lexText},O.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.EDIT_DISTANCE),O.QueryLexer.lexText},O.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.BOOST),O.QueryLexer.lexText},O.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(O.QueryLexer.TERM)},O.QueryLexer.termSeparator=O.tokenizer.separator,O.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==O.QueryLexer.EOS)return O.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return O.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if(t.match(O.QueryLexer.termSeparator))return O.QueryLexer.lexTerm}else e.escapeCharacter()}},O.QueryParser=function(e,t){this.lexer=new O.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},O.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=O.QueryParser.parseClause;e;)e=e(this);return this.query},O.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},O.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},O.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},O.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case O.QueryLexer.PRESENCE:return O.QueryParser.parsePresence;case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new O.QueryParseError(r,t.start,t.end)}},O.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=O.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=O.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new O.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new O.QueryParseError(r,t.start,t.end)}switch(n.type){case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new O.QueryParseError(r,n.start,n.end)}}},O.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new O.QueryParseError(n,t.start,t.end)}switch(i.type){case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}}},O.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new O.QueryParseError(n,r.start,r.end)}else e.nextClause()}},O.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}else e.nextClause()}},O.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new O.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new O.QueryParseError(n,i.start,i.end)}else e.nextClause()}},e.exports=O}()}));class o{constructor(e,t,r){this.id=e,this.fields=r,this.rawDocument=t}getId(){return this.id}getUrl(){return this.resolveSpecialFieldType("url",!0)}getLabel(){return this.resolveSpecialFieldType("label",!0)}getBoost(){return this.resolveSpecialFieldType("boost")}getSummary(e){let t=this.resolveSpecialFieldType("summary");return t&&t.length>250&&(t=t.substr(0,250)+"..."),t||null}resolveSpecialFieldType(e,t){let r=this.fields.find(t=>t.getSpecialType()===e);if(r)return this.rawDocument[r.getId()];if(t)throw new Error(`The index did not define a field with the type "${e}". Configure the fields in Search API and assign the Lunr data type for this field.`);return null}}class s{constructor(e){this.searchApiIndex=e,this.hydratedIndexPromise=null,this.cachedIndex=n.createInstance({name:`lunr-index-${this.searchApiIndex.getId()}`})}search(e,t){return this.hydrateIndex().then(r=>{const n=r.query((function(t){t.term(i.tokenizer(e),{boost:100,usePipeline:!0}),t.term(i.tokenizer(e),{boost:10,usePipeline:!1,wildcard:i.Query.wildcard.TRAILING}),t.term(i.tokenizer(e),{boost:1,editDistance:1})}));return void 0!==t?n.slice(0,t):n}).then(e=>e.map(e=>this.searchApiIndex.getDocument(e.ref)))}hydrateIndex(){return this.hydratedIndexPromise||(this.hydratedIndexPromise=new Promise((e,t)=>{this.searchApiIndex.resolveAllDocuments().then(t=>{this.cachedIndex.getItem("indexVersion").then(r=>{r>=this.searchApiIndex.getIndexVersion()?this.cachedIndex.getItem("index").then(t=>{e(i.Index.load(JSON.parse(t))),this._lastHydrateStrategy="cache"}):(this.cachedIndex.clear(),e(this.indexLunr(t)),this._lastHydrateStrategy="index")})})})),this.hydratedIndexPromise}indexLunr(e){let t=this.searchApiIndex,r=i((function(){this.ref("_id"),t.getFields().map(e=>{0!==e.getBoost()&&this.field(e.getId(),{boost:e.getBoost()})}),Object.keys(e).map(r=>{const n=t.getDocument(r).getBoost(),i=n?{boost:n}:{};this.add(e[r],i)})}));return this.cachedIndex.setItem("index",JSON.stringify(r.toJSON())),this.cachedIndex.setItem("indexVersion",this.searchApiIndex.getIndexVersion()),r}}class a{constructor(e,t){this.id=e,this.settings=t}getId(){return this.id}getBoost(){return this.settings.boost}getSpecialType(){return this.settings.special_type}}class u{constructor(e,t){this.id=e,this.settings=t,this.documentPromise=null,this.documentPromiseResolved=!1,this.lunrIndex=new s(this),this.fields=Object.keys(this.settings.fields).map(e=>new a(e,this.settings.fields[e]))}resolveAllDocuments(){return this.documentPromise||(this.documentPromise=Promise.all(this.getFileList().map(e=>fetch(`${e}?version=${this.getIndexVersion()}`).then(e=>e.json()))).then(e=>{let t={};return e.forEach(e=>{t=Object.assign(t,e)}),this.documentPromiseResolved=!0,this.documents=t,t})),this.documentPromise}getFileList(){return this.settings.fileList}getId(){return this.id}getDocumentRaw(e){if(!this.documentPromiseResolved)throw new Error("Documents have not been resolved yet.");if(!this.documents[e])throw new Error(`Index did not contain document with key "${e}".`);return this.documents[e]}getDocument(e){return new o(e,this.getDocumentRaw(e),this.fields)}getFields(){return this.fields}getIndexVersion(){return this.settings.version}getLunr(){return this.lunrIndex}search(e,t){return this.getLunr().search(e,t)}}class c{constructor(e,t){this.indexes={},this.id=e,Object.keys(t.indexes).forEach(e=>{this.indexes[e]=new u(e,t.indexes[e])})}getIndex(e){if(!this.indexes[e])throw new Error(`Server did not contain and index with ID "${e}".`);return this.indexes[e]}getId(){return this.id}}class l{constructor(e){this.servers={},Object.keys(e.servers).forEach(t=>{this.servers[t]=new c(t,e.servers[t])})}getServers(){return Object.keys(this.servers)}static createFromEndpoint(e){return fetch(`${e}js-search/settings`).then(e=>e.json()).then(e=>new l(e))}getServer(e){if(!this.servers[e])throw new Error(`Did not have configuration for server with ID "${e}".`);return this.servers[e]}getIndexFromElement(e){return this.getServer(e.dataset.server).getIndex(e.dataset.index)}}window.searchApiJs=new l(window.drupalSettings.search_api_lunr); diff --git a/static-site/node/6/index.html b/static-site/node/14/index.html similarity index 100% rename from static-site/node/6/index.html rename to static-site/node/14/index.html diff --git a/static-site/node/index.html b/static-site/node/index.html index 681801c..91453b0 100644 --- a/static-site/node/index.html +++ b/static-site/node/index.html @@ -13,8 +13,8 @@ | frees.au/ce - - + + @@ -64,16 +64,12 @@

Main navigation

- -

- + @@ -128,7 +124,7 @@

-
+
@@ -142,30 +138,30 @@

- +
- - + +
-

orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel ex metus. Aliquam a urna volutpat, commodo elit ut, blandit lacus. Morbi blandit sollicitudin odio, viverra semper odio lacinia at. Curabitur pharetra pharetra sapien, suscipit tincidunt nunc malesuada sit amet. Etiam nec vulputate ipsum. Maecenas id gravida mi.

+

A conversation with Drupal's @mglaman about all things PHPStan in Drupal core and contrib. More information and help with PHPStan can be found in #phpstan in Drupal Slack.

- Blog • 15 mins read + Video • 20 mins watch
@@ -174,7 +170,7 @@

- +
@@ -184,20 +180,20 @@

-

SADASD

+

I wanted a quick call-graph, for a drupal.org issue, to highlight where there was some expensive code blocking the page load. This plugin is very easy to set up. (The sound quality is poor, sorry about that!)

- Video • 20 mins watch + Video • 15 mins watch
@@ -206,57 +202,31 @@

- +
- - + +
-

SADASD

+

A short demonstration of my local development setup for helping with Project Browser for the Starshot initiative.

+
+ Video • 8 mins watch
-
-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

ASASD

- -
-
@@ -264,28 +234,31 @@

- +
- - + +
-

ASDASD

+

What will be the field_collection module for Drupal 10? I review a few current modules and the how they impact the database tables.

+
+ Video • 29 mins watch +
@@ -293,7 +266,7 @@

- +
@@ -303,18 +276,21 @@

-

aSDas

+

Add your first Drupal gitlab-ci.yml thru the web UI

+
+ Blog • 9 mins read +
@@ -322,28 +298,31 @@

- +
- - + +
-

Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.

+

Defaults matter, and usually I’m down with them, but one default has never sat well with me. 

+
+ Video • 9 mins watch +
@@ -351,7 +330,7 @@

- +
@@ -407,32 +386,44 @@

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -441,9 +432,9 @@
Get in touch
- - - + + + diff --git a/static-site/rss.xml b/static-site/rss.xml index 956d16f..c08600f 100644 --- a/static-site/rss.xml +++ b/static-site/rss.xml @@ -7,180 +7,196 @@ en - Lorem ipsum dolor sit amet, consectetur adipiscing elit - http://fs-web-static-site.ddev.site:8080/ce/ummm/lorem-ipsum-dolor-sit-amet-consectetur-adipiscing-elit + Ten topics with Matt Glaman + http://fs-web-static-site.ddev.site:8080/ce/ummm/ten-topics-matt-glaman - Lorem ipsum dolor sit amet, consectetur adipiscing elit + Ten topics with Matt Glaman - <p>orem ipsum dolor sit amet, consectetur adipiscing elit. Fusce vel ex metus. Aliquam a urna volutpat, commodo elit ut, blandit lacus. Morbi blandit sollicitudin odio, viverra semper odio lacinia at. Curabitur pharetra pharetra sapien, suscipit tincidunt nunc malesuada sit amet. Etiam nec vulputate ipsum. Maecenas id gravida mi.</p> + <p>A conversation with Drupal's @mglaman about all things PHPStan in Drupal core and contrib. More information and help with PHPStan can be found in #phpstan in Drupal Slack.</p> <span>admin</span> - <time datetime="2024-11-11T13:22:19+11:00" title="Monday, November 11, 2024 - 13:22">Mon, 11/11/2024 - 13:22</time> - - - <h2>This is H2 - Heading</h2><div class="align-center"> - - - <img loading="lazy" src="http://fs-web-static-site.ddev.site:8080/sites/default/files/styles/medium/public/media-images/2024-11/img_3853.JPG?itok=VeKsYQgZ" width="338" height="600" alt="sad sad"> - - + <time datetime="2024-11-11T13:22:09+11:00" title="Monday, November 11, 2024 - 13:22">Mon, 11/11/2024 - 13:22</time> - -</div> -<p>this is paragraph abc</p><h3>This is H3 - Heading</h3><p>this is paragraph</p><h4>This is h4 heading</h4> <div> - <div>Type</div> + <div>Duration</div> </div> - Blog + 20 mins <div> - <div>Duration</div> + <div>Youtube</div> </div> - 15 mins + <div> + + + <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//youtu.be/zsRF3Lb6L38&amp;max_width=0&amp;max_height=0&amp;hash=vLE-tTJ9FlPQ9lT9ZPOQgyiBUZ-NjMq--VydvvGCxh4" width="200" height="113" class="media-oembed-content" loading="lazy" title="Talking PHPStan with Matt Glaman"></iframe> + + +</div> + - Mon, 11 Nov 2024 02:22:19 +0000 + Mon, 11 Nov 2024 02:22:09 +0000 admin - 13 at http://fs-web-static-site.ddev.site:8080 + 12 at http://fs-web-static-site.ddev.site:8080 - ARTCIEL 5 - http://fs-web-static-site.ddev.site:8080/ce/ummm/artciel-5 + Setting up the DDEV plugin, tyler36/ddev-xhgui + http://fs-web-static-site.ddev.site:8080/ce/ummm/setting-ddev-plugin-tyler36ddev-xhgui - ARTCIEL 5 + Setting up the DDEV plugin, tyler36/ddev-xhgui - <p>SADASD</p> + <p><span style="-webkit-text-stroke-width:0px;background-color:rgb(255, 255, 255);color:rgb(13, 13, 13);display:inline !important;float:none;font-family:Roboto, Noto, sans-serif;font-size:15px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:pre-wrap;widows:2;word-spacing:0px;">I wanted a quick call-graph, for a drupal.org issue, to highlight where there was some expensive code blocking the page load. This plugin is very easy to set up. (The sound quality is poor, sorry about that!)</span></p> <span>admin</span> - <time datetime="2024-11-11T13:22:09+11:00" title="Monday, November 11, 2024 - 13:22">Mon, 11/11/2024 - 13:22</time> + <time datetime="2024-06-03T13:22:19+10:00" title="Monday, June 3, 2024 - 13:22">Mon, 06/03/2024 - 13:22</time> <div> - <div>Type</div> + <div>Duration</div> </div> - Video + 15 mins <div> - <div>Media video</div> + <div>Youtube</div> </div> <div> - <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//www.youtube.com/watch%3Fv%3DJAhdeizXpaQ&amp;max_width=0&amp;max_height=0&amp;hash=MfvhOxFJe5o7JCY9ojf3C5JOltwnnqPgmvA1q5ol0R8" width="200" height="113" class="media-oembed-content" loading="lazy" title="Hoàng Thuỳ Linh - Để Mị Nói Cho Mà Nghe (Let Mi tell) | Official Music Video"></iframe> + <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//www.youtube.com/watch%3Fv%3DKnrhfwbop2w&amp;max_width=0&amp;max_height=0&amp;hash=_IA9RSq6xPX-Zp_BoLnbvvZKmeVDr8mqII9YbD0zGcE" width="200" height="113" class="media-oembed-content" loading="lazy" title="Setting up the DDEV plugin, tyler36/ddev-xhgui"></iframe> </div> - <div> - <div>Duration</div> - </div> - - 20 mins - Mon, 11 Nov 2024 02:22:09 +0000 + Mon, 03 Jun 2024 03:22:19 +0000 admin - 12 at http://fs-web-static-site.ddev.site:8080 + 13 at http://fs-web-static-site.ddev.site:8080 - ARTICLE 4 - http://fs-web-static-site.ddev.site:8080/ce/ummm/article-4 + Local starshot dev - project_browser + http://fs-web-static-site.ddev.site:8080/ce/ummm/local-starshot-dev-projectbrowser - ARTICLE 4 + Local starshot dev - project_browser - <p>SADASD</p> + <p>A short demonstration of my local development setup for helping with Project Browser for the Starshot initiative.</p> <span>admin</span> - <time datetime="2024-11-11T13:21:59+11:00" title="Monday, November 11, 2024 - 13:21">Mon, 11/11/2024 - 13:21</time> + <time datetime="2024-05-22T13:21:59+10:00" title="Wednesday, May 22, 2024 - 13:21">Wed, 05/22/2024 - 13:21</time> + + <div> + <div>Duration</div> + </div> + + 8 mins + <div> + <div>Youtube</div> + </div> + + <div> + + + <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//www.youtube.com/watch%3Fv%3DMlbjSiDEzP4&amp;max_width=0&amp;max_height=0&amp;hash=bC4q-7aH4mim8c3TI36j0s_n6Zn2zQGShbR1Msh7UHo" width="200" height="113" class="media-oembed-content" loading="lazy" title="Local starshot dev - project_browser"></iframe> + + +</div> - Mon, 11 Nov 2024 02:21:59 +0000 + Wed, 22 May 2024 03:21:59 +0000 admin 11 at http://fs-web-static-site.ddev.site:8080 - ARTICLE 3 - http://fs-web-static-site.ddev.site:8080/ce/ummm/article-3 + Drupal modules that provide "repeating field groups" + http://fs-web-static-site.ddev.site:8080/ce/ummm/drupal-modules-provide-repeating-field-groups - ARTICLE 3 + Drupal modules that provide "repeating field groups" - <p>ASASD</p> + <p>What will be the field_collection module for Drupal 10? I review a few current modules and the how they impact the database tables.</p> <span>admin</span> - <time datetime="2024-11-11T13:21:48+11:00" title="Monday, November 11, 2024 - 13:21">Mon, 11/11/2024 - 13:21</time> + <time datetime="2024-04-16T13:21:48+10:00" title="Tuesday, April 16, 2024 - 13:21">Tue, 04/16/2024 - 13:21</time> - - Mon, 11 Nov 2024 02:21:48 +0000 - admin - 10 at http://fs-web-static-site.ddev.site:8080 - - - ARTICLE 2 - http://fs-web-static-site.ddev.site:8080/ce/ummm/article-2 - - ARTICLE 2 + <div> + <div>Duration</div> + </div> + + 29 mins + <div> + <div>Youtube</div> + </div> + + <div> - <p>ASDASD</p> - <span>admin</span> + <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//www.youtube.com/watch%3Fv%3DZorUUuC8oxc&amp;max_width=0&amp;max_height=0&amp;hash=wtzAWCRqhBPxQMmPjwNC6GeusQB8uNd8qTk58pSes-k" width="200" height="113" class="media-oembed-content" loading="lazy" title="Drupal modules that provide &quot;repeating field groups&quot;"></iframe> + - <time datetime="2024-11-11T13:21:36+11:00" title="Monday, November 11, 2024 - 13:21">Mon, 11/11/2024 - 13:21</time> +</div> - Mon, 11 Nov 2024 02:21:36 +0000 + Tue, 16 Apr 2024 03:21:48 +0000 admin - 9 at http://fs-web-static-site.ddev.site:8080 + 10 at http://fs-web-static-site.ddev.site:8080 - Article 1 - http://fs-web-static-site.ddev.site:8080/ce/ummm/article-1 + Add your first Drupal gitlab-ci.yml thru the web UI + http://fs-web-static-site.ddev.site:8080/ce/ummm/add-your-first-drupal-gitlab-ciyml-thru-web-ui - Article 1 + Add your first Drupal gitlab-ci.yml thru the web UI - <p>aSDas</p> + <p>Add your first Drupal gitlab-ci.yml thru the web UI</p> <span>admin</span> - <time datetime="2024-11-11T13:21:19+11:00" title="Monday, November 11, 2024 - 13:21">Mon, 11/11/2024 - 13:21</time> + <time datetime="2024-04-11T13:21:36+10:00" title="Thursday, April 11, 2024 - 13:21">Thu, 04/11/2024 - 13:21</time> - - <p>saS</p> + <div> + <div>Duration</div> + </div> + + 9 mins - Mon, 11 Nov 2024 02:21:19 +0000 + Thu, 11 Apr 2024 03:21:36 +0000 admin - 8 at http://fs-web-static-site.ddev.site:8080 + 9 at http://fs-web-static-site.ddev.site:8080 - Mastering machine names inside your views - http://fs-web-static-site.ddev.site:8080/ce/ummm/mastering-machine-names-inside-your-views + Time to config:export ‘field_’ to pasture + http://fs-web-static-site.ddev.site:8080/ce/ummm/time-configexport-field-pasture - Mastering machine names inside your views + Time to config:export ‘field_’ to pasture - <p>Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.</p> + <p>Defaults matter, and usually I’m down with them, but one default has never sat well with me.&nbsp;</p> <span>admin</span> - <time datetime="2024-02-29T22:08:21+11:00" title="Thursday, February 29, 2024 - 22:08">Thu, 02/29/2024 - 22:08</time> + <time datetime="2024-03-29T13:21:19+11:00" title="Friday, March 29, 2024 - 13:21">Fri, 03/29/2024 - 13:21</time> - - <p><strong>This site is under development and this article is not complete.</strong></p><p>I have been creating some content for the new website and thinking about random tips that I have never found time to share.</p><p>When you create a view there are a few areas where I like to control generated "machine name" values that will lead to cleaner output in the long run.</p><p>I wouldn't do this after a site is built, it's too risky to overlook other things that depend on these machine names. I would only use these techniques when I initially create the view.</p><h2>The view itself</h2><p>It's common to find that your view wasn't named well, and you're unhappy with the name of the twig file to override.</p><p>The easiest way to fix this is to clone the view and customise the machine as you do it, then delete the old view. This is completely safe as views YAML is usually self-contained.</p><p>As said above, you usually do this when you are building the view and you realise you gave it a bad name. After a while there are other parts of your site which will be couple to this name, and easy to miss. If you clone a view and change the machine name you <strong>will</strong> break the following and plenty of other things:</p><ul><li>Entity reference fields (when you configure the options list) can use a View.</li><li>Your layouts builder page, where you have embedded a Views block.</li><li>Your block layout, where you have added a Views block.</li><li>Twig templates reference the Views machine name</li><li>Custom code can programmatically load and render a view.</li><li>Probably a dozen more if you count your contrib module.&nbsp;</li></ul><h2>Display names</h2><p>Below we have a view with multiple displays and they have been neatly named. If you want to control the twig for this view, you can add a template views-view--VIEWNAME--DISPLAYNAME.html.twig. After a site has been built it's common to see templates like this:</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--page-1.html.twig -views-view--mycontentview--page-2.html.twig -views-view--mycontentview--page-3.html.twig</code></pre><p>For another developer looking at this code, and trawling through dozens of templates, it's not immediately clear what these views are being used for. This is a DX issue for you and your colleagues. The effort to change this later may not be worth it.</p><p>Get into the habit of setting your display machine names as soon as you create them. You will appreciate the resulting systax for creating your twig templates.</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--all.html.twig -views-view--mycontentview--articles.html.twig -views-view--mycontentview--newest-articles.html.twig</code></pre><h2>Renaming fields</h2><p>When adding fields, it's common to add the same field twice, you might render a field in different ways or hide one of the fields and use it in a field rewrite later.</p><p>The views UI does not allow you to rename the field's machine name. However there is a technique I've been using for a while that works very well. It will allow you to have well named twig tokens. It invokes hacking the views yaml and reimporting it.</p><p>Let's say we want to re-use a <strong>uid</strong> (User ID) field, hide it and, reuse it in a field rewrite in another field.</p><ol><li>Create your view, and add your fields.</li><li>Create a second UID field.</li><li>Add a "Global: custom text" field</li><li>In the rewrite of this field, you will note that to express this field you will enter {{ uid_2 }} - How can we change this.</li><li>Export your site config with Drush, open the new view yaml, and find and replace the instances of <strong>uid_2</strong> with <strong>you_say_tomatoe</strong></li><li>Reimport your site config</li></ol><p>Now in your view you can use {{ you_say_tomatoe }} in your rewriting.</p><p><strong>Disclaimer #1</strong>: I've been told that I hack yaml too much. I like to explore the boundaries of Drupal's config system, it's a masterpiece. However, I'm also aware that I will get no love in the issue queue if I hose my site. That said, I have been using this technique with Views since Drupal 8 and it has never failed me.</p><p><strong>Disclaimers #2</strong>: I only do fancy twig re-writing in administration views in the backend, especially when I'm using a vanilla uncustomised backend theme. It's a great smart way to make backend tables more user-friendly. On the frontend, you should bring this complexity into the theme layer and keep your views nice and sane.</p><p>[VIDEO]</p><p>&nbsp;</p> <div> - <div>Tags</div> + <div>Duration</div> </div> - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/2" hreflang="en">Site Building</a></div> - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/1" hreflang="en">Testing</a></div> + 9 mins + <div> + <div>Youtube</div> + </div> + + <div> + + + <iframe src="http://fs-web-static-site.ddev.site:8080/media/oembed?url=https%3A//www.youtube.com/watch%3Fv%3D2495KafRZAg&amp;max_width=0&amp;max_height=0&amp;hash=YdnPTryylck3td06cIf9LKAx5IEtH3CcWw3uCM_agps" width="200" height="113" class="media-oembed-content" loading="lazy" title="Time to config:export ‘field_’ to pasture"></iframe> + + +</div> + - Thu, 29 Feb 2024 11:08:21 +0000 + Fri, 29 Mar 2024 02:21:19 +0000 admin - 5 at http://fs-web-static-site.ddev.site:8080 + 8 at http://fs-web-static-site.ddev.site:8080 Typography check diff --git a/static-site/sites/default/files/css/css_3V_90Bd6SSMqIjaHYIMccDTvz_cOaf2NgV_s3BrTzEQ.css b/static-site/sites/default/files/css/css_41yAtGjLdejmTSDE6t9cZsEf3jZEUHTOaX9bK1ApUuw.css similarity index 100% rename from static-site/sites/default/files/css/css_3V_90Bd6SSMqIjaHYIMccDTvz_cOaf2NgV_s3BrTzEQ.css rename to static-site/sites/default/files/css/css_41yAtGjLdejmTSDE6t9cZsEf3jZEUHTOaX9bK1ApUuw.css diff --git a/static-site/sites/default/files/css/css_22oQO-dee2YfBIyIMZZ83zQpbGvubf2vysH7ZHlqrXk.css b/static-site/sites/default/files/css/css_WVeLnEkRr7XpdLkjencL4_ug8k3o7MatwWBqNaI3S0o.css similarity index 100% rename from static-site/sites/default/files/css/css_22oQO-dee2YfBIyIMZZ83zQpbGvubf2vysH7ZHlqrXk.css rename to static-site/sites/default/files/css/css_WVeLnEkRr7XpdLkjencL4_ug8k3o7MatwWBqNaI3S0o.css diff --git a/static-site/sites/default/files/css/css_voSQk3TQhcuqfa-WuMxXo637d_kYgpaBY1HS0tdYCmQ.css b/static-site/sites/default/files/css/css_XLgTiWl4HOWpsPI9w51kW0wbFgZ2OcgUUq_oMHjXZCI.css similarity index 100% rename from static-site/sites/default/files/css/css_voSQk3TQhcuqfa-WuMxXo637d_kYgpaBY1HS0tdYCmQ.css rename to static-site/sites/default/files/css/css_XLgTiWl4HOWpsPI9w51kW0wbFgZ2OcgUUq_oMHjXZCI.css diff --git a/static-site/sites/default/files/css/css_gRrmql6SypWVRz32xUpOy7RxzROoxezHfiR4XYNQ00M.css b/static-site/sites/default/files/css/css_gRrmql6SypWVRz32xUpOy7RxzROoxezHfiR4XYNQ00M.css deleted file mode 100644 index 2878972..0000000 --- a/static-site/sites/default/files/css/css_gRrmql6SypWVRz32xUpOy7RxzROoxezHfiR4XYNQ00M.css +++ /dev/null @@ -1,19 +0,0 @@ -/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ -.text-align-left{text-align:left;}.text-align-right{text-align:right;}.text-align-center{text-align:center;}.text-align-justify{text-align:justify;}.align-left{float:left;}.align-right{float:right;}.align-center{display:block;margin-right:auto;margin-left:auto;} -.fieldgroup{padding:0;border-width:0;} -.container-inline div,.container-inline label{display:inline-block;}.container-inline .details-wrapper{display:block;}.container-inline .hidden{display:none;} -.clearfix::after{display:table;clear:both;content:"";} -.js details:not([open]) .details-wrapper{display:none;} -.hidden{display:none;}.visually-hidden{position:absolute !important;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;word-wrap:normal;}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{position:static !important;overflow:visible;clip:auto;width:auto;height:auto;}.invisible{visibility:hidden;} -.item-list__comma-list,.item-list__comma-list li{display:inline;}.item-list__comma-list{margin:0;padding:0;}.item-list__comma-list li::after{content:", ";}.item-list__comma-list li:last-child::after{content:"";} -.js .js-hide{display:none;}.js-show{display:none;}.js .js-show{display:block;}@media (scripting:enabled){.js-hide.js-hide{display:none;}.js-show{display:block;}} -.nowrap{white-space:nowrap;} -.position-container{position:relative;} -.reset-appearance{margin:0;padding:0;border:0 none;background:transparent;line-height:inherit;-webkit-appearance:none;appearance:none;} -.resize-none{resize:none;}.resize-vertical{min-height:2em;resize:vertical;}.resize-horizontal{max-width:100%;resize:horizontal;}.resize-both{max-width:100%;min-height:2em;resize:both;} -.system-status-counter__status-icon{display:inline-block;width:25px;height:25px;vertical-align:middle;}.system-status-counter__status-icon::before{display:block;width:100%;height:100%;content:"";background-repeat:no-repeat;background-position:center 2px;background-size:16px;}.system-status-counter__status-icon--error::before{background-image:url(/core/misc/icons/e32700/error.svg);}.system-status-counter__status-icon--warning::before{background-image:url(/core/misc/icons/e29700/warning.svg);}.system-status-counter__status-icon--checked::before{background-image:url(/core/misc/icons/73b355/check.svg);} -.system-status-report-counters__item{width:100%;margin-bottom:0.5em;padding:0.5em 0;text-align:center;white-space:nowrap;background-color:rgba(0,0,0,0.063);}@media screen and (min-width:60em){.system-status-report-counters{display:flex;flex-wrap:wrap;justify-content:space-between;}.system-status-report-counters__item--half-width{width:49%;}.system-status-report-counters__item--third-width{width:33%;}} -.system-status-general-info__item{margin-top:1em;padding:0 1em 1em;border:1px solid #ccc;}.system-status-general-info__item-title{border-bottom:1px solid #ccc;} -.tablesort{display:inline-block;width:16px;height:16px;background-size:100%;}.tablesort--asc{background-image:url(/core/misc/icons/787878/twistie-down.svg);}.tablesort--desc{background-image:url(/core/misc/icons/787878/twistie-up.svg);} -.caption{display:table;}.caption > *{display:block;max-width:100%;}.caption > figcaption{display:table-caption;max-width:none;caption-side:bottom;}.caption > figcaption[contenteditable="true"]:empty::before{content:attr(data-placeholder);font-style:italic;} -.caption .media .field,.caption .media .field *{float:none;margin:unset;} diff --git a/static-site/sites/default/files/css/css_C4k94I5R7Ev_xc392D3UtsEPdJ4StyoWVCYfewntAmM.css b/static-site/sites/default/files/css/css_jeQn0M8YL8jxtQk906SlOFIWbOFxKHUEwDXPT34q720.css similarity index 50% rename from static-site/sites/default/files/css/css_C4k94I5R7Ev_xc392D3UtsEPdJ4StyoWVCYfewntAmM.css rename to static-site/sites/default/files/css/css_jeQn0M8YL8jxtQk906SlOFIWbOFxKHUEwDXPT34q720.css index be83219..7170d15 100644 --- a/static-site/sites/default/files/css/css_C4k94I5R7Ev_xc392D3UtsEPdJ4StyoWVCYfewntAmM.css +++ b/static-site/sites/default/files/css/css_jeQn0M8YL8jxtQk906SlOFIWbOFxKHUEwDXPT34q720.css @@ -1,2 +1,2 @@ /* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ -*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans,Sans-Serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Cutive Mono,Sans-Serif;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}h1{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:46px;line-height:46px}h2{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:34px;line-height:41px}h3{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:28px;line-height:39px}h4{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:24px;line-height:37px}h5{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:22px;line-height:33px}@media (min-width:768px){h1{font-size:56px;line-height:54px}h2{font-size:38px;line-height:41px}h3{font-size:30px;line-height:39px}h4{font-size:24px;line-height:37px}h5{font-size:22px;line-height:33px}}@media (min-width:1440px){h1{font-size:90px;line-height:73px}h2{font-size:60px;line-height:70px}h3{font-size:46px;line-height:73px}h4{font-size:36px;line-height:35px}h5{font-size:22px;line-height:33px}}@media (min-width:1920px){h1{font-size:100px;line-height:102px}h2{font-size:60px;line-height:70px}h3{font-size:46px;line-height:73px}h4{font-size:36px;line-height:35px}h5{font-size:22px;line-height:33px}}*+p{margin-top:16px}@media (min-width:1440px){*+p{margin-top:30px}}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px;padding-right:40px;padding-left:40px}}@media (min-width:1440px){.container{max-width:1440px;padding-right:112px;padding-left:112px}}@media (min-width:1920px){.container{max-width:1920px;padding-right:250px;padding-left:250px}}.visible{visibility:visible}.collapse{visibility:collapse}.absolute{position:absolute}.relative{position:relative}.bottom-\[16px\]{bottom:16px}.left-0{left:0}.right-\[37px\]{right:37px}.top-0{top:0}.isolate{isolation:isolate}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.-mr-36{margin-right:-9rem}.mb-\[15px\]{margin-bottom:15px}.mb-\[16px\]{margin-bottom:16px}.mb-\[30px\]{margin-bottom:30px}.mb-\[55px\]{margin-bottom:55px}.mb-\[60px\]{margin-bottom:60px}.mt-0{margin-top:0}.mt-\[16px\]{margin-top:16px}.mt-\[30px\]{margin-top:30px}.mt-\[80px\]{margin-top:80px}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[400px\]{min-height:400px}.min-h-\[inherit\]{min-height:inherit}.w-full{width:100%}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-6{row-gap:1.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-fs-red-tint{--tw-border-opacity:1;border-color:rgb(177 31 36 / var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-fs-red-tint{--tw-bg-opacity:1;background-color:rgb(177 31 36 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.px-\[21px\]{padding-left:21px;padding-right:21px}.px-\[25px\]{padding-left:25px;padding-right:25px}.py-\[16px\]{padding-top:16px;padding-bottom:16px}.py-\[25px\]{padding-top:25px;padding-bottom:25px}.py-\[47px\]{padding-top:47px;padding-bottom:47px}.py-\[80px\]{padding-top:80px;padding-bottom:80px}.py-\[9px\]{padding-top:9px;padding-bottom:9px}.pb-\[30px\]{padding-bottom:30px}.pb-\[5px\]{padding-bottom:5px}.pl-\[15px\]{padding-left:15px}.pt-\[16px\]{padding-top:16px}.pt-\[30px\]{padding-top:30px}.pt-\[80px\]{padding-top:80px}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:Cutive Mono,Sans-Serif}.font-sans{font-family:Open Sans,Sans-Serif}.text-\[14px\]{font-size:14px}.text-\[20px\]{font-size:20px}.text-\[24px\]{font-size:24px}.text-\[30px\]{font-size:30px}.text-\[46px\]{font-size:46px}.text-base{font-size:1rem;line-height:1.5rem}.font-bold{font-weight:700}.italic{font-style:italic}.leading-\[22px\]{line-height:22px}.leading-\[27px\]{line-height:27px}.leading-\[33px\]{line-height:33px}.leading-\[39px\]{line-height:39px}.leading-\[48px\]{line-height:48px}.leading-\[54px\]{line-height:54px}.text-fs-red-tint{--tw-text-opacity:1;color:rgb(177 31 36 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.container-content{margin-left:auto;margin-right:auto}@media (min-width:768px){.container-content{padding-left:90px;padding-right:90px}}@media (min-width:1440px){.container-content{padding-left:208px;padding-right:208px}}@media (min-width:1920px){.container-content{padding-left:258px;padding-right:258px}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.hover\:text-fs-red-tint:hover{--tw-text-opacity:1;color:rgb(177 31 36 / var(--tw-text-opacity))}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width:768px){.md\:mt-\[69px\]{margin-top:69px}.md\:min-h-\[500px\]{min-height:500px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:px-\[90px\]{padding-left:90px;padding-right:90px}.md\:py-\[50px\]{padding-top:50px;padding-bottom:50px}.md\:pb-\[35px\]{padding-bottom:35px}.md\:text-\[56px\]{font-size:56px}.md\:leading-\[54px\]{line-height:54px}}@media (min-width:1440px){.lg\:static{position:static}.lg\:-mr-36{margin-right:-9rem}.lg\:mb-0{margin-bottom:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-auto{height:auto}.lg\:min-h-\[600px\]{min-height:600px}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:bg-transparent{background-color:transparent}.lg\:p-\[25px\]{padding:25px}.lg\:px-0{padding-left:0;padding-right:0}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-\[140px\]{padding-top:140px;padding-bottom:140px}.lg\:py-\[62px\]{padding-top:62px;padding-bottom:62px}.lg\:pb-\[45px\]{padding-bottom:45px}.lg\:pr-\[10\%\]{padding-right:10%}.lg\:text-\[22px\]{font-size:22px}.lg\:text-\[36px\]{font-size:36px}.lg\:leading-\[45px\]{line-height:45px}}@media (min-width:1920px){.xl\:min-h-\[700px\]{min-height:700px}.xl\:py-\[50px\]{padding-top:50px;padding-bottom:50px}.xl\:pt-\[25px\]{padding-top:25px}.xl\:text-\[24px\]{font-size:24px}} +*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x:;--tw-pan-y:;--tw-pinch-zoom:;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position:;--tw-gradient-via-position:;--tw-gradient-to-position:;--tw-ordinal:;--tw-slashed-zero:;--tw-numeric-figure:;--tw-numeric-spacing:;--tw-numeric-fraction:;--tw-ring-inset:;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur:;--tw-brightness:;--tw-contrast:;--tw-grayscale:;--tw-hue-rotate:;--tw-invert:;--tw-saturate:;--tw-sepia:;--tw-drop-shadow:;--tw-backdrop-blur:;--tw-backdrop-brightness:;--tw-backdrop-contrast:;--tw-backdrop-grayscale:;--tw-backdrop-hue-rotate:;--tw-backdrop-invert:;--tw-backdrop-opacity:;--tw-backdrop-saturate:;--tw-backdrop-sepia:;--tw-contain-size:;--tw-contain-layout:;--tw-contain-paint:;--tw-contain-style:}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans,Sans-Serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Cutive Mono,Sans-Serif;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}h1{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:46px;line-height:46px}h2{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:34px;line-height:41px}h3{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:28px;line-height:39px}h4{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:24px;line-height:37px}h5{margin-top:30px;font-family:Cutive Mono,Sans-Serif;font-size:22px;line-height:33px}@media (min-width:768px){h1{font-size:56px;line-height:54px}h2{font-size:38px;line-height:41px}h3{font-size:30px;line-height:39px}h4{font-size:24px;line-height:37px}h5{font-size:22px;line-height:33px}}@media (min-width:1440px){h1{font-size:90px;line-height:73px}h2{font-size:60px;line-height:70px}h3{font-size:46px;line-height:73px}h4{font-size:36px;line-height:35px}h5{font-size:22px;line-height:33px}}@media (min-width:1920px){h1{font-size:100px;line-height:102px}h2{font-size:60px;line-height:70px}h3{font-size:46px;line-height:73px}h4{font-size:36px;line-height:35px}h5{font-size:22px;line-height:33px}}*+p{margin-top:16px}@media (min-width:1440px){*+p{margin-top:30px}}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px;padding-right:40px;padding-left:40px}}@media (min-width:1440px){.container{max-width:1440px;padding-right:112px;padding-left:112px}}@media (min-width:1920px){.container{max-width:1920px;padding-right:250px;padding-left:250px}}.collapse{visibility:collapse}.absolute{position:absolute}.relative{position:relative}.bottom-\[16px\]{bottom:16px}.left-0{left:0}.right-\[37px\]{right:37px}.top-0{top:0}.isolate{isolation:isolate}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.-mr-36{margin-right:-9rem}.mb-\[15px\]{margin-bottom:15px}.mb-\[16px\]{margin-bottom:16px}.mb-\[30px\]{margin-bottom:30px}.mb-\[55px\]{margin-bottom:55px}.mb-\[60px\]{margin-bottom:60px}.mt-0{margin-top:0}.mt-\[16px\]{margin-top:16px}.mt-\[30px\]{margin-top:30px}.mt-\[80px\]{margin-top:80px}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[400px\]{min-height:400px}.min-h-\[inherit\]{min-height:inherit}.w-full{width:100%}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-6{row-gap:1.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-fs-red-tint{--tw-border-opacity:1;border-color:rgb(177 31 36 / var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-fs-red-tint{--tw-bg-opacity:1;background-color:rgb(177 31 36 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.px-\[21px\]{padding-left:21px;padding-right:21px}.px-\[25px\]{padding-left:25px;padding-right:25px}.py-\[16px\]{padding-top:16px;padding-bottom:16px}.py-\[25px\]{padding-top:25px;padding-bottom:25px}.py-\[47px\]{padding-top:47px;padding-bottom:47px}.py-\[80px\]{padding-top:80px;padding-bottom:80px}.py-\[9px\]{padding-top:9px;padding-bottom:9px}.pb-\[30px\]{padding-bottom:30px}.pb-\[5px\]{padding-bottom:5px}.pl-\[15px\]{padding-left:15px}.pt-\[16px\]{padding-top:16px}.pt-\[30px\]{padding-top:30px}.pt-\[80px\]{padding-top:80px}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:Cutive Mono,Sans-Serif}.font-sans{font-family:Open Sans,Sans-Serif}.text-\[14px\]{font-size:14px}.text-\[20px\]{font-size:20px}.text-\[24px\]{font-size:24px}.text-\[30px\]{font-size:30px}.text-\[46px\]{font-size:46px}.text-base{font-size:1rem;line-height:1.5rem}.font-bold{font-weight:700}.italic{font-style:italic}.leading-\[22px\]{line-height:22px}.leading-\[27px\]{line-height:27px}.leading-\[33px\]{line-height:33px}.leading-\[39px\]{line-height:39px}.leading-\[48px\]{line-height:48px}.leading-\[54px\]{line-height:54px}.text-fs-red-tint{--tw-text-opacity:1;color:rgb(177 31 36 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.container-content{margin-left:auto;margin-right:auto}@media (min-width:768px){.container-content{padding-left:90px;padding-right:90px}}@media (min-width:1440px){.container-content{padding-left:208px;padding-right:208px}}@media (min-width:1920px){.container-content{padding-left:258px;padding-right:258px}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.hover\:text-fs-red-tint:hover{--tw-text-opacity:1;color:rgb(177 31 36 / var(--tw-text-opacity))}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width:768px){.md\:mt-\[69px\]{margin-top:69px}.md\:min-h-\[500px\]{min-height:500px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:px-\[90px\]{padding-left:90px;padding-right:90px}.md\:py-\[50px\]{padding-top:50px;padding-bottom:50px}.md\:pb-\[35px\]{padding-bottom:35px}.md\:text-\[56px\]{font-size:56px}.md\:leading-\[54px\]{line-height:54px}}@media (min-width:1440px){.lg\:static{position:static}.lg\:-mr-36{margin-right:-9rem}.lg\:mb-0{margin-bottom:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-auto{height:auto}.lg\:min-h-\[600px\]{min-height:600px}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:bg-transparent{background-color:transparent}.lg\:p-\[25px\]{padding:25px}.lg\:px-0{padding-left:0;padding-right:0}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-\[140px\]{padding-top:140px;padding-bottom:140px}.lg\:py-\[62px\]{padding-top:62px;padding-bottom:62px}.lg\:pb-\[45px\]{padding-bottom:45px}.lg\:pr-\[10\%\]{padding-right:10%}.lg\:text-\[22px\]{font-size:22px}.lg\:text-\[36px\]{font-size:36px}.lg\:leading-\[45px\]{line-height:45px}}@media (min-width:1920px){.xl\:min-h-\[700px\]{min-height:700px}.xl\:py-\[50px\]{padding-top:50px;padding-bottom:50px}.xl\:pt-\[25px\]{padding-top:25px}.xl\:text-\[24px\]{font-size:24px}} diff --git a/static-site/sites/default/files/css/css_m2LeJsLRO0sYko3ptfelbnI0d8NnaMPx7YXp94VYCzM.css b/static-site/sites/default/files/css/css_kyLPApsS_G2UJJxQxKV9i_6cQ_EM2nvXC7FhRHzUOzw.css similarity index 100% rename from static-site/sites/default/files/css/css_m2LeJsLRO0sYko3ptfelbnI0d8NnaMPx7YXp94VYCzM.css rename to static-site/sites/default/files/css/css_kyLPApsS_G2UJJxQxKV9i_6cQ_EM2nvXC7FhRHzUOzw.css diff --git a/static-site/sites/default/files/js/js_KkV_BxSyNAHZ2DQy6pfxfgGHz72FaElYdMmAa0bDNiY.js b/static-site/sites/default/files/js/js_uyP5OpU91AqS7iLZStS2FiLU7y3RWY52qDee1xghcUY.js similarity index 100% rename from static-site/sites/default/files/js/js_KkV_BxSyNAHZ2DQy6pfxfgGHz72FaElYdMmAa0bDNiY.js rename to static-site/sites/default/files/js/js_uyP5OpU91AqS7iLZStS2FiLU7y3RWY52qDee1xghcUY.js diff --git a/static-site/sites/default/files/styles/medium/public/media-images/2024-11/img_3853.JPG b/static-site/sites/default/files/styles/medium/public/media-images/2024-11/img_3853.JPG deleted file mode 100644 index a92f66d..0000000 Binary files a/static-site/sites/default/files/styles/medium/public/media-images/2024-11/img_3853.JPG and /dev/null differ diff --git a/static-site/taxonomy/term/1/feed/index.html b/static-site/taxonomy/term/1/feed/index.html index deff7c4..21d4e3f 100644 --- a/static-site/taxonomy/term/1/feed/index.html +++ b/static-site/taxonomy/term/1/feed/index.html @@ -7,35 +7,6 @@ en - Mastering machine names inside your views - http://fs-web-static-site.ddev.site:8080/ce/ummm/mastering-machine-names-inside-your-views - - Mastering machine names inside your views - - <p>Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.</p> - - <span>admin</span> - - <time datetime="2024-02-29T22:08:21+11:00" title="Thursday, February 29, 2024 - 22:08">Thu, 02/29/2024 - 22:08</time> - - - <p><strong>This site is under development and this article is not complete.</strong></p><p>I have been creating some content for the new website and thinking about random tips that I have never found time to share.</p><p>When you create a view there are a few areas where I like to control generated "machine name" values that will lead to cleaner output in the long run.</p><p>I wouldn't do this after a site is built, it's too risky to overlook other things that depend on these machine names. I would only use these techniques when I initially create the view.</p><h2>The view itself</h2><p>It's common to find that your view wasn't named well, and you're unhappy with the name of the twig file to override.</p><p>The easiest way to fix this is to clone the view and customise the machine as you do it, then delete the old view. This is completely safe as views YAML is usually self-contained.</p><p>As said above, you usually do this when you are building the view and you realise you gave it a bad name. After a while there are other parts of your site which will be couple to this name, and easy to miss. If you clone a view and change the machine name you <strong>will</strong> break the following and plenty of other things:</p><ul><li>Entity reference fields (when you configure the options list) can use a View.</li><li>Your layouts builder page, where you have embedded a Views block.</li><li>Your block layout, where you have added a Views block.</li><li>Twig templates reference the Views machine name</li><li>Custom code can programmatically load and render a view.</li><li>Probably a dozen more if you count your contrib module.&nbsp;</li></ul><h2>Display names</h2><p>Below we have a view with multiple displays and they have been neatly named. If you want to control the twig for this view, you can add a template views-view--VIEWNAME--DISPLAYNAME.html.twig. After a site has been built it's common to see templates like this:</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--page-1.html.twig -views-view--mycontentview--page-2.html.twig -views-view--mycontentview--page-3.html.twig</code></pre><p>For another developer looking at this code, and trawling through dozens of templates, it's not immediately clear what these views are being used for. This is a DX issue for you and your colleagues. The effort to change this later may not be worth it.</p><p>Get into the habit of setting your display machine names as soon as you create them. You will appreciate the resulting systax for creating your twig templates.</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--all.html.twig -views-view--mycontentview--articles.html.twig -views-view--mycontentview--newest-articles.html.twig</code></pre><h2>Renaming fields</h2><p>When adding fields, it's common to add the same field twice, you might render a field in different ways or hide one of the fields and use it in a field rewrite later.</p><p>The views UI does not allow you to rename the field's machine name. However there is a technique I've been using for a while that works very well. It will allow you to have well named twig tokens. It invokes hacking the views yaml and reimporting it.</p><p>Let's say we want to re-use a <strong>uid</strong> (User ID) field, hide it and, reuse it in a field rewrite in another field.</p><ol><li>Create your view, and add your fields.</li><li>Create a second UID field.</li><li>Add a "Global: custom text" field</li><li>In the rewrite of this field, you will note that to express this field you will enter {{ uid_2 }} - How can we change this.</li><li>Export your site config with Drush, open the new view yaml, and find and replace the instances of <strong>uid_2</strong> with <strong>you_say_tomatoe</strong></li><li>Reimport your site config</li></ol><p>Now in your view you can use {{ you_say_tomatoe }} in your rewriting.</p><p><strong>Disclaimer #1</strong>: I've been told that I hack yaml too much. I like to explore the boundaries of Drupal's config system, it's a masterpiece. However, I'm also aware that I will get no love in the issue queue if I hose my site. That said, I have been using this technique with Views since Drupal 8 and it has never failed me.</p><p><strong>Disclaimers #2</strong>: I only do fancy twig re-writing in administration views in the backend, especially when I'm using a vanilla uncustomised backend theme. It's a great smart way to make backend tables more user-friendly. On the frontend, you should bring this complexity into the theme layer and keep your views nice and sane.</p><p>[VIDEO]</p><p>&nbsp;</p> - <div> - <div>Tags</div> - </div> - - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/2" hreflang="en">Site Building</a></div> - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/1" hreflang="en">Testing</a></div> - - Thu, 29 Feb 2024 11:08:21 +0000 - admin - 5 at http://fs-web-static-site.ddev.site:8080 - - Typography check http://fs-web-static-site.ddev.site:8080/ce/ummm/typography-check diff --git a/static-site/taxonomy/term/1/index.html b/static-site/taxonomy/term/1/index.html index fdf361c..e19f23a 100644 --- a/static-site/taxonomy/term/1/index.html +++ b/static-site/taxonomy/term/1/index.html @@ -13,8 +13,8 @@ Testing | frees.au/ce - - + + @@ -64,16 +64,12 @@

Main navigation

- -
- + @@ -128,7 +124,7 @@

Testing

-
+
@@ -150,36 +146,7 @@

Testing

- -
- - - -
-
-
- -
-
- -

Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.

- -
-
-
-
-
-
-
-
-
- +
@@ -235,32 +202,44 @@

Testing

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -269,9 +248,9 @@
Get in touch
- - - + + + diff --git a/static-site/taxonomy/term/2/feed/index.html b/static-site/taxonomy/term/2/feed/index.html index db1dcb7..5b2d3ea 100644 --- a/static-site/taxonomy/term/2/feed/index.html +++ b/static-site/taxonomy/term/2/feed/index.html @@ -6,35 +6,6 @@ en - - Mastering machine names inside your views - http://fs-web-static-site.ddev.site:8080/ce/ummm/mastering-machine-names-inside-your-views - - Mastering machine names inside your views - - <p>Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.</p> - - <span>admin</span> - - <time datetime="2024-02-29T22:08:21+11:00" title="Thursday, February 29, 2024 - 22:08">Thu, 02/29/2024 - 22:08</time> - - - <p><strong>This site is under development and this article is not complete.</strong></p><p>I have been creating some content for the new website and thinking about random tips that I have never found time to share.</p><p>When you create a view there are a few areas where I like to control generated "machine name" values that will lead to cleaner output in the long run.</p><p>I wouldn't do this after a site is built, it's too risky to overlook other things that depend on these machine names. I would only use these techniques when I initially create the view.</p><h2>The view itself</h2><p>It's common to find that your view wasn't named well, and you're unhappy with the name of the twig file to override.</p><p>The easiest way to fix this is to clone the view and customise the machine as you do it, then delete the old view. This is completely safe as views YAML is usually self-contained.</p><p>As said above, you usually do this when you are building the view and you realise you gave it a bad name. After a while there are other parts of your site which will be couple to this name, and easy to miss. If you clone a view and change the machine name you <strong>will</strong> break the following and plenty of other things:</p><ul><li>Entity reference fields (when you configure the options list) can use a View.</li><li>Your layouts builder page, where you have embedded a Views block.</li><li>Your block layout, where you have added a Views block.</li><li>Twig templates reference the Views machine name</li><li>Custom code can programmatically load and render a view.</li><li>Probably a dozen more if you count your contrib module.&nbsp;</li></ul><h2>Display names</h2><p>Below we have a view with multiple displays and they have been neatly named. If you want to control the twig for this view, you can add a template views-view--VIEWNAME--DISPLAYNAME.html.twig. After a site has been built it's common to see templates like this:</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--page-1.html.twig -views-view--mycontentview--page-2.html.twig -views-view--mycontentview--page-3.html.twig</code></pre><p>For another developer looking at this code, and trawling through dozens of templates, it's not immediately clear what these views are being used for. This is a DX issue for you and your colleagues. The effort to change this later may not be worth it.</p><p>Get into the habit of setting your display machine names as soon as you create them. You will appreciate the resulting systax for creating your twig templates.</p><p>[PICTURE]</p><pre><code class="language-plaintext">views-view--mycontentview--all.html.twig -views-view--mycontentview--articles.html.twig -views-view--mycontentview--newest-articles.html.twig</code></pre><h2>Renaming fields</h2><p>When adding fields, it's common to add the same field twice, you might render a field in different ways or hide one of the fields and use it in a field rewrite later.</p><p>The views UI does not allow you to rename the field's machine name. However there is a technique I've been using for a while that works very well. It will allow you to have well named twig tokens. It invokes hacking the views yaml and reimporting it.</p><p>Let's say we want to re-use a <strong>uid</strong> (User ID) field, hide it and, reuse it in a field rewrite in another field.</p><ol><li>Create your view, and add your fields.</li><li>Create a second UID field.</li><li>Add a "Global: custom text" field</li><li>In the rewrite of this field, you will note that to express this field you will enter {{ uid_2 }} - How can we change this.</li><li>Export your site config with Drush, open the new view yaml, and find and replace the instances of <strong>uid_2</strong> with <strong>you_say_tomatoe</strong></li><li>Reimport your site config</li></ol><p>Now in your view you can use {{ you_say_tomatoe }} in your rewriting.</p><p><strong>Disclaimer #1</strong>: I've been told that I hack yaml too much. I like to explore the boundaries of Drupal's config system, it's a masterpiece. However, I'm also aware that I will get no love in the issue queue if I hose my site. That said, I have been using this technique with Views since Drupal 8 and it has never failed me.</p><p><strong>Disclaimers #2</strong>: I only do fancy twig re-writing in administration views in the backend, especially when I'm using a vanilla uncustomised backend theme. It's a great smart way to make backend tables more user-friendly. On the frontend, you should bring this complexity into the theme layer and keep your views nice and sane.</p><p>[VIDEO]</p><p>&nbsp;</p> - <div> - <div>Tags</div> - </div> - - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/2" hreflang="en">Site Building</a></div> - <div class="field-multiple"><a href="http://fs-web-static-site.ddev.site:8080/taxonomy/term/1" hreflang="en">Testing</a></div> - - Thu, 29 Feb 2024 11:08:21 +0000 - admin - 5 at http://fs-web-static-site.ddev.site:8080 - - + diff --git a/static-site/taxonomy/term/2/index.html b/static-site/taxonomy/term/2/index.html index 0c0bce3..a5b4b31 100644 --- a/static-site/taxonomy/term/2/index.html +++ b/static-site/taxonomy/term/2/index.html @@ -13,8 +13,8 @@ Site Building | frees.au/ce - - + + @@ -64,16 +64,12 @@

Main navigation

- -
- + @@ -128,7 +124,7 @@

Site Building

-
+
@@ -145,40 +141,6 @@

Site Building

-
-
-
-
-
- -
- - - -
-
-
- -
-
- -

Drupal views providers an advanced UI, but sometimes the auto-generated machine names within your views are not ideal. There are ways to improve this.

- -
-
-
-
-
-
-
-
- @@ -206,32 +168,44 @@

Site Building

-

Freesauce acknowledges the Traditional Custodians of the land on which we work and live and we pay our respects to their Elders, past and present.

+
+ +

frees.au/ce acknowledges the Wurundjeri people of the Kulin Nation, and pay respects to their Elders past, present and emerging.

+ +
-

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+ +

We have purpose driven agency, free as in source, which is a heavy handed metaphor.

+
-

Copyright Freesauce ABN XX XXXX XXXXX

+

Copyright 2024. Free Sauce Pty Ltd ABN 29 652 906 093

@@ -240,9 +214,9 @@
Get in touch
- - - + + +