code: def render_svg(self, render_id, words, arcs):
          
          self.levels = self.get_levels(arcs)
          self.highest_level = len(self.levels)
          self.offset_y = self.distance / 2 * self.highest_level + self.arrow_stroke
          self.width = self.offset_x + len(words) * self.distance
          self.height = self.offset_y + 3 * self.word_spacing
          self.id = render_id
          words = [self.render_word(w["text"], w["tag"], i) for i, w in enumerate(words)]
          arcs = [
              self.render_arrow(a["label"], a["start"], a["end"], a["dir"], i)
              for i, a in enumerate(arcs)
          ]
          content = "".join(words) + "".join(arcs)
          return TPL_DEP_SVG.format(
              id=self.id,
              width=self.width,
              height=self.height,
              color=self.color,
              bg=self.bg,
              font=self.font,
              content=content,
              dir=self.direction,
              lang=self.lang,
          )
docs: Render SVG.
  
          render_id (int): Unique ID, typically index of document.
          words (list): Individual words and their tags.
          arcs (list): Individual arcs and their start, end, direction and label.
          RETURNS (unicode): Rendered SVG markup.