refactor the Freemarker integration to identify the site pages and page modules by their externalKey