code: def cleanParagraph(self):
          
  
          runs = self.block.content
  
          if not runs:
              self.block = None
              return
  
          if not self.clean_paragraphs:
              return
  
          joinedRuns = []
          hasContent = False
  
          for run in runs:
  
              if run.content[0]:
                  hasContent = True
              else:
                  continue
  
              # For whitespace-only groups, remove any property stuff,
              # to avoid extra markup in output
              if not run.content[0].strip():
                  run.properties = {}
  
              # Join runs only if their properties match
              if joinedRuns and (run.properties == joinedRuns[-1].properties):
                  joinedRuns[-1].content[0] += run.content[0]
              else:
                  joinedRuns.append(run)
  
          if hasContent:
              # Strip beginning of paragraph
              joinedRuns[0].content[0] = joinedRuns[0].content[0].lstrip()
              # And then strip the end
              joinedRuns[-1].content[0] = joinedRuns[-1].content[0].rstrip()
              self.block.content = joinedRuns
          else:
              self.block = None
docs: Compress text runs, remove whitespace at start and end,
          skip empty blocks, etc