After two weeks of work I have more or less completed the upgrade of this website from Drupal 7 (D7) to Drupal 8 (D8). Also part of the package is a new theme (the "Nexus" theme) because the old Drupal core theme "Garland" has not been ported over to D8. I'm not as happy with the new theme as I was with "Garland" (for instance, check out how ugly the "Add new comment" form looks like), but for the most part it's quite OK.
Some problems still exist, notably I am aware of the following things that I hope to fix in the near future:
- The biggest issue is that the "Filtered HTML" text format refuses to let
<a>elements pass through, even though I have explicitly added that HTML element to the list of allowed tags. The consequence is that some stories and other nodes do not properly show external links. I will either have to find a way how to fix this, or I will have to modify the nodes to use the "Full HTML" text format (as I have done with the story node that you are reading just now). UPDATE: The problem was that the "Filtered HTML" text format contained an entry for HTML comments, i.e. "<!-->". Removing this entry solved the problem. Unfortunately this solution introduces a different issue: The purpose of the "<!-->" entry was to allow the content author to add a manual teaser break "<!--break-->" to the node body. Without the entry Drupal 7 would silently ignore the manual teaser break. Unfortunately Drupal 8 does the same, i.e. it ignores the manual teaser break when the "Filtered HTML" text format is used. The only way that I have found how to re-enable the manual teaser break is to switch to the "Full HTML" text format - which means going through all stories written in the past and checking them for manual teaser breaks. UPDATE 2: I submitted a bug report on drupal.org that contains a patch that is now live on this site.
- Book review nodes (a custom content type I created on this site) do not yet work properly. Notably the rating is missing because the "fivestar" module has not been ported to D8. Since nobody is reading my book reviews anyway ☺ this is not a huge problem, though. UPDATE: After some research it appears that nobody has created a voting or rating module for D8 that has gotten out of alpha state. I have decided to solve the issue by simply adding a text field that let's me put in a rating such as "2/5", indicating "2 out of 5 stars".
- User nodes have an obsolete "flattr name" field that was created by the migration process. I still have to find out how to remove that field because I have abandoned Flattr. UPDATE: There seems to be no solution for this problem, except fiddling around with the database, so I'm letting this go.
- On the old D7 site, the workflow for creating content required to preview the node before it could be published. If I remember correctly this is something that I had custom-configured. Anyway, on the new D8 site this restriction no longer exists and I can directly save new content without previewing it.
- Fields of type "link" under some circumstances do not render a query string properly. Example 1: The link
http://www.isfdb.org/cgi-bin/title.cgi?23623is rendered incorrectly as
http://www.isfdb.org/cgi-bin/title.cgi?0=. Example 2: The link
http://www.isfdb.org/cgi-bin/title.cgi?xxxis rendered incorrectly as
http://www.isfdb.org/cgi-bin/title.cgi?xxx=. It appears that the "link" field type expects query strings to conform to the
variable=valuescheme, and if they don't it mangles them. This must be considered a bug! UPDATE: Actually it is two bugs - see this follow-up post.
- New stories such as this one can't be fitted with taxonomy terms. UPDATE: The reason for this was that on the "Manage Form Display" tab of all content types, the taxonomy fields were disabled.
So although there's still some work to be done, I have decided to pronounce the migration finished. "Good enough" is good enough.