code: def render_fragments(template, issue_format, fragments, definitions, underlines, wrap):
      
  
      jinja_template = Template(template, trim_blocks=True)
  
      data = OrderedDict()
  
      for section_name, section_value in fragments.items():
  
          data[section_name] = OrderedDict()
  
          for category_name, category_value in section_value.items():
              # Suppose we start with an ordering like this:
              #
              # - Fix the thing (#7, #123, #2)
              # - Fix the other thing (#1)
  
              # First we sort the issues inside each line:
              #
              # - Fix the thing (#2, #7, #123)
              # - Fix the other thing (#1)
              entries = []
              for text, issues in category_value.items():
                  entries.append((text, sorted(issues, key=issue_key)))
  
              # Then we sort the lines:
              #
              # - Fix the other thing (#1)
              # - Fix the thing (#2, #7, #123)
              entries.sort(key=entry_key)
  
              # Then we put these nicely sorted entries back in an ordered dict
              # for the template, after formatting each issue number
              categories = OrderedDict()
              for text, issues in entries:
                  rendered = [render_issue(issue_format, i) for i in issues]
                  categories[text] = rendered
  
              data[section_name][category_name] = categories
  
      done = []
  
      res = jinja_template.render(
          sections=data, definitions=definitions, underlines=underlines
      )
  
      for line in res.split(u"\n"):
          if wrap:
              done.append(
                  textwrap.fill(
                      line,
                      width=79,
                      subsequent_indent=u"  ",
                      break_long_words=False,
                      break_on_hyphens=False,
                  )
              )
          else:
              done.append(line)
  
      return u"\n".join(done).rstrip() + u"\n"
docs: Render the fragments into a news file.