User Tools

Site Tools


This is an old revision of the document!

Combining Several Twine Stories Into One

If you're working on a longer work, you may find it easier to segment it into separate stories in Twine. This page explains how to merge them into one published file.


After the usual setup, go to your project folder's top level in a terminal window. Then type:

npm install --save grunt-contrib-copy grunt-contrib-watch

You'll also need to download the story format you plan on using. Follow the appropriate link and save it from your browser to src/format.js:


Use this as a starting point:

module.exports = function(grunt) {
    copy: {
      fromTwine: {
        // These are the individual story files you want to combine.
        // This copies them to your src folder first, where entwine will then
        // do the work of creating a single story.
        src: [
          '/Users/Me/Documents/Twine/Stories/My Story Part 1.html',
          '/Users/Me/Documents/Twine/Stories/My Story Part 2.html'
        dest: 'src/'
    entwine: {
      default: {
        // You can change the name of the final story file by
        // changing my-story.html to something else. It should
        // always end in .html. You don't need to change the other
        // part of the line below; it will use all of the story files
        // that have been copied into your src folder by the copy task.
        files: {
          'dist/my-story.html': ['src/*.html']
        options: {
          // The location of the story format to use. You've already copied
          // it into place when you followed the instructions in Setup above.
          format: 'src/format.js',
          // The name you would like the final story to have. If it has apostrophes
          // in it, type \' instead, like so: 'I Didn\'t Eat The Plums'
          name: 'My Completed Story'
    watch: {
      twineEdits: {
        // This should match the files you have listed above,
        // under the fromTwine section. This watches for changes made
        // in Twine and copies them to your src folder.
        files: [
          '/Users/Me/Documents/Twine/Stories/My Story Part 1.html',
          '/Users/Me/Documents/Twine/Stories/My Story Part 2.html'
        tasks: 'copy:fromTwine'
      twineFiles: {
        // This doesn't need to be customized. As files are copied
        // from Twine to src, the final story will be rebuilt.
        files: 'src/*.html',
        tasks: 'entwine'
  grunt.registerTask('default', ['copy', 'entwine']);

As noted in the Gruntfile, you'll need to change this to create

entwine/combining_several_twine_stories_into_one.1463705025.txt.gz · Last modified: 2017/10/09 20:37 (external edit)