code: def make_example_gallery():
      """Make the example gallery."""
      path = "./getting-started/external_examples.rst"
  
      with StringIO() as new_fid:
          new_fid.write(
              """.. _external_examples:
  
  External Examples
  =================
  
  Here are a list of longer, more technical examples of what PyVista can do.
  
  .. caution::
  
      Please note that these examples link to external websites. If any of these
      links are broken, please raise an `issue
      <https://github.com/pyvista/pyvista/issues>`_.
  
  
  Do you have a technical processing workflow or visualization routine you would
  like to share? If so, please consider sharing your work here submitting a PR
  at `pyvista/pyvista <https://github.com/pyvista/pyvista/>`_ and we would be
  glad to add it.
  
  
  .. grid:: 3
     :gutter: 1
  
  """
          )
          # Reverse to put the latest items at the top
          for example in list(articles.values())[::-1]:
              new_fid.write(example.format())
  
          new_fid.write(
              """
  
  .. raw:: html
  
      <div class="sphx-glr-clear"></div>
  
  
  """
          )
          new_fid.seek(0)
          new_text = new_fid.read()
  
      # check if it's necessary to overwrite the table
      existing = ""
      if os.path.exists(path):
          with open(path) as existing_fid:
              existing = existing_fid.read()
  
      # write if different or does not exist
      if new_text != existing:
          with open(path, "w", encoding="utf-8") as fid:
              fid.write(new_text)
  
      return
  
imports: from io import StringIO
  import os
label_desc: Use image node_id 2 for calling a global function with example usage: make_example_gallery() without return types