Convert SVG relative path data to absolute polyline points with JavaScript

This function return an array of the different absolute paths received as a string, converted to absolute points.

function pathToPoints( path ) {
  var paths = path.split( /z|Z/ ), points = new Array();
  for ( var i = 0; i < paths.length-1; i++ ) {
    path = paths[i].split( /l|L/ );
    path[0] = path[0].replace( /m|M/, '' );
    for ( var j in path ) {
      path[j] = path[j].split( ',' );
      for ( var k in path[j] ) {
        path[j][k] = parseFloat( path[j][k] );
        if ( j != 0 ) {
          path[j][k] += path[j-1][k];
        }
      }
    }
    for ( var j in path ) {
      path[j] = path[j].join( ',' );
    }
    points[i] = path.join( ' ' );
  }
  return points;
}

Function get_term_parents() for WordPress

function get_term_parents( $id, $taxonomy, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
  $chain = '';
  $parent = &get_term( $id, $taxonomy );
  if ( is_wp_error( $parent ) )
    return $parent;
  if ( $nicename )
    $name = $parent->slug;
  else
    $name = $parent->name;
  if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
    $visited[] = $parent->parent;
    $chain .= get_term_parents( $parent->parent, $taxonomy, $link, $separator, $nicename, $visited );
  }
  if ( $link )
    $chain .= '<a href="' . esc_url( get_term_link( intval( $parent->term_id ), $taxonomy ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'</a>' . $separator;
  else
    $chain .= $name.$separator;
  return $chain;
}

Booter depuis votre clef : création d’un live-USB sur Mac

  1. Téléchargez l’image de votre disque d’installation (qui devrait être un fichier .iso)
  2. Ouvrez votre Applications > Utilities > Terminal.
  3. Listez vos disques en exécutant diskutil list.

    Dans la liste obtenue, vous trouverez votre clef USB. Retenez le chemin vers celle-ci (/dev/disk1 pour notre exemple).

  4. Il faut maintenant éjecter votre clef avec la commande diskutil unmountDisk /dev/disk1. N’oubliez pas de remplacer /dev/disk1 par votre propre chemin s’il est différent.
  5. Enfin, exécutez la commande suivante dd if=~/Downloads/Image.iso of=/dev/disk1 bs=1m. N’oubliez pas de remplacer ~/Downloads/Image.iso par le chemin vers l’image de votre disque d’installation, et /dev/disk1 par le chemin vers votre clef USB s’il est différent.
  6. Patientez…
  7. Lorsque votre Terminal se manifeste à nouveau vous pouvez débrancher votre clef, et l’utiliser pour booter votre disque d’installation sur une machine !