This project is not covered by Drupal’s security advisory policy.

The Bones module allows you to rapidly build out the bare-bones structure of a site by importing a YAML file containing an outline of the menu structure and page titles you need to set up.

Bones was created to bypass the tedious process of manually adding nodes, expanding the Menu Settings fieldset, entering a menu title, choosing a parent item and weight and submitting for each page on a mostly "static" site. YAML provides a relatively lightweight way to construct a site outline, and using that outline Bones can build out a skeletal site structure in one step.

The philosophy of the Bones module is to solve one specific problem (speeding up node and menu building) with a minimum of setup and configuration, rather than trying to be a swiss army knife. For more complex and sophisticated types of automated site building and configuration, you may be interested in the excellent Patterns module.


In order to use Bones, a user must have three permissions: access administration pages, administer menu, and administer nodes.

Bones also requires the SPYC YAML parser, which is available separately. Download SPYC from and unzip it into the Bones module directory.


Bones provides a single form for importing data, which can be found under Administer > Site Building > Bones, (admin/build/bones).

Upon uploading the YAML file, the Bones module will create stub nodes and build menu items pointing to them.

If the Path module is enabled, you may provide path aliases for each item in your outline, or let Bones generate them for you. (If Bones finds that a path already exists in the system, it creates a menu link to the existing path rather than creating a stub node for it.)

A sample Bones import file might look like this:

-title: Products
  name: hiro
 -title: WidgetMaster 2008 Lite
 -title: WidgetMaster 2008 Pro
-title: News
  -title: WidgetMaster 2008 Wins Prestigious Award
   type: story
-title: About Us
  path: about
 -title: History
  body: Brief company history goes here
 -title: The Team
  -title: John P Hackworth, President
  -title: Randy Waterhouse, VP of Engineering
  -title: Eliza, Chief Financial Officer
-title: Contact Us
   path: contact
-title: Map & Directions

Each item in the outline must minimally provide a title, but as shown above you may also provide additional attributes.

If you want a node to be attributed to a specific user on your Drupal site, set the name attribute with their Drupal user name.
This may be the machine-friendly name of any content type currently available on your Drupal site.
By default, Bones will attempt to automatically build Path aliases for you, but you can override that by providing the path attribute. This is useful if you want to link to an existing node or path provided by another module, such as the site contact form in the example above.
You may also provide some stub content using the body attribute. Theoretically you should be able to import as much content as you like if it remains on one line, but this has not been tested.

In fact, Bones will attempt to add any attribute you provide to the nodes it creates, so in theory you should also be able to set other attributes such as publication date, status, front page promotion, et cetera, but this has not been tested.

I will not be continuing development on the Drupal 5 branch; all future improvements & features will go into the Drupal 6 version.

Project information