docs: protected CmsMacroResolver getMacroResolver(CmsObject cms, String resourcename) {
  
          CmsMacroResolver result = CmsMacroResolver.newInstance().setCmsObject(cms);
          if (isFolder() && (!CmsResource.isFolder(resourcename))) {
              // ensure folder ends with "/" so
              resourcename = resourcename.concat("/");
          }
          // add special mappings for macros in default properties
          result.addMacro(MACRO_RESOURCE_ROOT_PATH, cms.getRequestContext().addSiteRoot(resourcename));
          result.addMacro(MACRO_RESOURCE_SITE_PATH, resourcename);
          result.addMacro(MACRO_RESOURCE_FOLDER_PATH, CmsResource.getFolderPath(resourcename));
          result.addMacro(MACRO_RESOURCE_FOLDER_PATH_TOUCH, CmsResource.getFolderPath(resourcename));
          result.addMacro(MACRO_RESOURCE_PARENT_PATH, CmsResource.getParentFolder(resourcename));
          result.addMacro(MACRO_RESOURCE_NAME, CmsResource.getName(resourcename));
  
          return result;
      }