Version 1.5.0: Rename Slugs

Update 1.5.0.1: Version 1.5.0.1 from 16.10.2021 fixes the broken image handling in the visual editor.

Version 1.5.0 ships with three major changes, and two of them are breaking. So it is very important that you read this carefully before you update your system. The major changes are:

  • You can rename the slug of each page now. This is great, but it also has a big impact on your website. So be sure that you understand the risks of changing a slug.
  • The logic how urls are generated has changed. This is not relevant if you created your content with the Typemill editor, but it is very relevant, if you created those files with another software or manually.
  • The logic for the cache has changed. If you use the typemill editor, then all updates of your content are visible immediately now. If you do not use the typemill editor and add your content manually, then make sure that you read the details about this change below.
Picture of a windmill
Photo by Kai Dahms on Unsplash

Rename Slugs

You can now change the name of the slug as a first option in the meta-tab. The slug is the part of the url that represents the current page. The slug is generated from the name of the file or folder. So if you rename the slug, then you also change the name of the file or folder. The renaming requires a page reload, so if you made other changes in the meta-tab and if you did not store them yet, then they will be lost.

Be aware that you change the url of the page if you rename the slug. If your side is indexed in google or another search engine, then the index will be wrong until the search engine updates its index accordingly. To help search engines to update their index, you should create a 301 redirect from the old slug to the new slug in the .htaccess-file of your Typemill installation. For published pages that are indexed, you should only rename the slug if it is really urgently needed.

Change of URL generation

As of version 1.5.0 The logic how urls are generated will change in two ways:

  • There will be no stop-words anymore, so a file-name like "what a man" will generate the slug "what-a-man" ad not the slug "what-man" anymore.
  • Language specific characters might produce a different result. If you have a filename like "über mich" and if you set the language-attribute for your fronten page to german ("de"), then the slug will be "ueber-mich" instead of "uber-mich".

The changes are NOT relevant for existing pages, if you used the typemill editor interface to create the pages. In that case there are no stop-words and no laguage-specific characters in your file-names. Only pages that you generate in future will use the new logic.

The changes ARE relevant, if you created your content-files manually or with other software and just added them to Typemill. In this case chances are high, that there are stop-words or language specific characters in your filenames. If this is the case, then you have two options:

  • You can activated the old logic in the system settings of Typemill (developer settings). We do not recommend this solution. You can also rename the files manually so the url keeps the same.
  • You can copy and paste the sitemap of your old website, then update Typemill and generate a fresh sitemap (just publish a page or delete the old sitemap). The compare both sitemaps and create 301-redirects where needed.

New logic for cache

Typemill started without an editor interface and it was always possible to use typemill without that interface. To detect changes of the content, Typemill recreated the cached content structure, the cached navigation, and the cached sitemap every 10 minutes. The downside of the former logic was, that changes in the frontend navigation where visible only after these 10 minutes.

As of version 1.5.0 we completely changed this behavior. The cache will be recreated every time you change the status of a page (publish, unpublish, reorder, delete), so you will see all changes immediately in the frontend. The recreation of the cache after 10 minutes has been skipped. But you can (and should) activate this automatic recreation in the settings again, if you do not use the editor interface of Typemill to manage your content. Otherwise the changes will not be detected and never be visible in the frontend.

Overview of other features and changes

You have read some heavy news so far, so now it's time to relax and enjoy because version 1.5.0 of Typemill has some cool changes and new features:

  • Upload SVG: In the system settings of Typemill, you can now activate the upload and usage of SVG images. The images are integrated with the img-tag. This means that animations are not possible. Be sure that you understand the risks of SVG files: They are code-files, so never upload svg-files from untrusted sources. Only use established svg-image-providers or create the svg-files on your own.
  • Password recovery: Finally it is there! You can activate and configure a password recovery in the system settings now. In most cases you won't need it, because the password-manager of your browser will do the job. But if you have several authors or a user registration, then a password recovery function is simply what users expect. Be aware that password recovery functions always have some security risks (e.g. someone gets access to your mails).
  • Integrated captcha: We finally decided to integrate a captcha feature into the core of typemill, because the old solution for a login-blocker and an optional google recaptcha-feature for plugins is not the best solution from a security and privacy perspective. The captcha will show up whenever you made a wrong input somewhere. You can also configure it for your plugin and use it directly without wrong initial input. The downside of the integrated captcha-solution is the size: It adds about 500kb to the core.
  • Security Middleware: With the captcha field and the password recovery we also refactored and centralized the security measures for inputs into a new middleware. We will update related plugins as soon as possible.
  • Security Log: You can activate a security logfile in the system settings now. It will track wrong inputs and similar errors, that might be suspicious. You can download the file with ftp from the cache folder.
  • Reordered system settings: We reordered the system settings a bit. I hope it makes more sense to you now.
  • Refactored controller logic: The pretty old and complicated code for the caching system was very error prone and hard to maintain. So we finally refactored and renamed the controllers and refactored the logic for the caching mechanism, that is very easy to handle now. The frontend website controller and several backend controlles use the caching mechanism now in an individual way, and you can change each step easily in future.
  • Switch image quality: You can now switch the image quality from "live" (resized) to "original" in the image upload fields of the tab. A similar feature was introduced to the images in the editor with version 1.4.8.
  • Fixed pages in hidden folders: Not sure where this bug came from but you could not access pages in hidden folders anymore. Now you can again.
  • Fixed file upload: There was a little typo with the file upload logic for excel formats, now you should be able to upload them again.
  • Fixed typo in navigation: There was a duplicate span tag in the backend navigation, now its fixed.