Skip to content

Isomer V2 Migration Guide

Li Yicheng edited this page Aug 8, 2019 · 3 revisions

Sorry if this guide doesn't go into too much detail or misses out some parts - it was written in the last 3 hours of my time here as an intern. Please expand this guide yourself as needed!

- Yicheng

To migrate a site to V2, make the following changes:

Navigation bar config

Refer to: https://isomer-isomergovsg-v2.netlify.com/configuration/navbar/config/

Under data/navigation.yml, place all the links under an object called links. Merge all the leftnav page links under the same collection into a collection key. Delete the resource room page links and replace it with resource_room: true. For any stuff where you still need to specify custom sublinks, rename sub-links to sublinks. Delete any external: true keys, and make sure their URL begins with https:// or http://. Make sure internal site links are relative (does not start with https:// or http://).

Copy the logo URL from homepage.yml and paste it in logo key.

Footer config

Refer to: https://isomer-isomergovsg-v2.netlify.com/configuration/footer/config/

If social media keys are present, place them all under the social_media key. Copy show_reach from homepage.yml. navlinks can remain blank if the footer navigation will be the same as that of the navbar.

Sitewide config

Refer to: https://isomer-isomergovsg-v2.netlify.com/configuration/sitewide-config/

Copy favicon from homepage.yml to _config.yml. Copy google_analytics (and other stuff moved from homepage.yml such as shareicon) as well.

Paste this chunk of config at the end, and delete/copy any old duplicated keys:

##################################################################################################################
# Everything below this line is Isomer-specific configuration. There should not be a need to edit these settings #
##################################################################################################################
permalink: none
baseurl: ""
exclude: [travis-script.js, .travis.yml, README.md, package.json, package-lock.json, node_modules, vendor/bundle/, vendor/cache/, vendor/gems/, vendor/ruby/, Gemfile, Gemfile.lock]
include: [_redirects]
defaults:
  - scope:
      path: ""
    values:
      layout: "page"
# Custom CSS file path
custom_css_path: "/misc/custom.css"
custom_print_css_path: "/assets/css/print.css"
paginate: 12
remote_theme: isomerpages/isomerpages-template@next-gen
safe: false
plugins:
  - jekyll-feed
  - jekyll-assets
  - jekyll-paginate
  - jekyll-sitemap
description: test test

Home page config

Refer to: https://isomer-isomergovsg-v2.netlify.com/configuration/home/basic-config/ and the individual component pages

Copy the remaining uncopied configuration keys from homepage.yml to the front matter of index.md, configuring the home page accordingly.

After this stage, homepage.yml should have been completely copied away to other places. Delete homepage.yml.

Contact us config

Refer to: https://isomer-isomergovsg-v2.netlify.com/configuration/contact/config/

Copy the configuration from contact-us.yml and paste it into the front matter of the contact us page, making the required syntax changes.

Delete contact-us.yml.

Deletion of unneeded keys in front matter and renaming of keys

breadcrumb, layout: leftnav-page-content, layout:post, layout: simple-page, and collection_name are no longer needed. In VSCode, do a directory regex search and replace with e.g. query breadcrumb:.*\n and replace with a blank string. Repeat for the other keys.

second_nav_title has been renamed to third_nav_title. Do a search and replace in VSCode

Travis Script reconfiguration

Isomer Checker V1 is not compatible with V2. Checker V2 is not compatible with V1. At the time of writing, Checker V2 is on the next-gen branch, but is not published to npm. Remember to upgrade to/install checker V2 and change travis-script.js.

Netlify KeyCDN purging and Slack notification setup

Follow these instructions if not yet set

Cleanups

Do a local build and preview. Run the checker locally to see if there is anything missed out. Delete all YAML files under data that is no longer needed.