parameters: (id, shape, **attr)
return_statement: return output
docstring: Creates a new instance of an SVG marker to avoid cross-linking objects.
  
    id                     required         a new identifier (string/Unicode)
    shape                  required         the shape name from _marker_templates
    attribute=value list   keyword list     modify the SVG attributes of the new marker
docstring_summary: Creates a new instance of an SVG marker to avoid cross-linking objects.
docstring_tokens: Creates a new instance of an SVG marker to avoid cross - linking objects .
function: def make_marker(id, shape, **attr):
    """Creates a new instance of an SVG marker to avoid cross-linking objects.
  
    id                     required         a new identifier (string/Unicode)
    shape                  required         the shape name from _marker_templates
    attribute=value list   keyword list     modify the SVG attributes of the new marker
    """
    output = copy.deepcopy(_marker_templates[shape])
    for i in output.sub: i.attr.update(attr_preprocess(attr))
    output["id"] = id
    return output
function_tokens: def make_marker ( id , shape , * * attr ) : output = copy . deepcopy ( _marker_templates [ shape ] ) for i in output . sub : i . attr . update ( attr_preprocess ( attr ) ) output [ "id" ] = id return output