code: def text_array_to_html(text_arr):
    
    if not text_arr.shape:
      # It is a scalar. No need to put it in a table, just apply markdown
      return plugin_util.markdown_to_safe_html(np.asscalar(text_arr))
    warning = ''
    if len(text_arr.shape) > 2:
      warning = plugin_util.markdown_to_safe_html(WARNING_TEMPLATE
                                                  % len(text_arr.shape))
      text_arr = reduce_to_2d(text_arr)
  
    html_arr = [plugin_util.markdown_to_safe_html(x)
                for x in text_arr.reshape(-1)]
    html_arr = np.array(html_arr).reshape(text_arr.shape)
  
    return warning + make_table(html_arr)
docs: Take a numpy.ndarray containing strings, and convert it into html.
  
    If the ndarray contains a single scalar string, that string is converted to
    html via our sanitized markdown parser. If it contains an array of strings,
    the strings are individually converted to html and then composed into a table
    using make_table. If the array contains dimensionality greater than 2,
    all but two of the dimensions are removed, and a warning message is prefixed
    to the table.
  
    Args:
      text_arr: A numpy.ndarray containing strings.
  
    Returns:
      The array converted to html.