Improve reusability of PageSmartLinkField and PageSmartLinkWidget