code: function createTextPathNode(attrs, vel) {
          attrs || (attrs = {});
          var textPathElement = V('textPath');
          var d = attrs.d;
          if (d && attrs['xlink:href'] === undefined) {
              // If `opt.attrs` is a plain string, consider it to be directly the
              // SVG path data for the text to go along (this is a shortcut).
              // Otherwise if it is an object and contains the `d` property, then this is our path.
              // Wrap the text in the SVG <textPath> element that points
              // to a path defined by `opt.attrs` inside the `<defs>` element.
              var linkedPath = V('path').attr('d', d).appendTo(vel.defs());
              textPathElement.attr('xlink:href', '#' + linkedPath.id);
          }
          if (V.isObject(attrs)) {
              // Set attributes on the `<textPath>`. The most important one
              // is the `xlink:href` that points to our newly created `<path/>` element in `<defs/>`.
              // Note that we also allow the following construct:
              // `t.text('my text', { textPath: { 'xlink:href': '#my-other-path' } })`.
              // In other words, one can completely skip the auto-creation of the path
              // and use any other arbitrary path that is in the document.
              textPathElement.attr(attrs);
          }
          return textPathElement.node;
      }
docs: Text() helpers