public function LimitCharactersToClosestWord($limit = 20, $add = '...')
    {
        // Safely convert to plain text
        $value = $this->Plain();

        // Determine if value exceeds limit before limiting characters
        if (mb_strlen($value) <= $limit) {
            return $value;
        }

        // Limit to character limit
        $value = mb_substr($value, 0, $limit);

        // If value exceeds limit, strip punctuation off the end to the last space and apply ellipsis
        $value = preg_replace(
            '/[^\w_]+$/',
            '',
            mb_substr($value, 0, mb_strrpos($value, " "))
        ) . $add;
        return $value;
    }