# Bespin Startup Options

See the main Bespin embedding documentation for details on how to use these options.

## dontHookWindowResizeEvent

The embedded editor needs to be notified via a call to `dimensionsChanged()` whenever its position or size changes. By default, Bespin will hook the `window.onresize` event and call that function automatically, so you don't need to worry about it unless you're manipulating the DOM in a way that will cause the embedded Bespin component to move around. If you don't want `dimensionsChanged()` to be called whenever the window resizes, you can supply a value of `true` for this setting, and `window.onresize` will be left alone.

## initialContent

This option allows you to replace the startup content of an element with some custom content. For example:

    <textarea id="edit"></textarea>
    <script>
    require("bespin/embed").useBespin("edit", {
        initialContent: "Hello, World!"
    });
    </script>

This is an alternative to the simpler:

    <textarea id="edit">Hello, World!</textarea>
    <script>
    require("bespin/embed").useBespin("edit");
    </script>

For use when the initial content is computed in some way. This option is also available for use with data-bespinoptions, however there is little benefit over placing the content in the element for this case, so that option is preferred.

## settings

It's possible to insert any settings (as in those defined by the 'set' command where the command line is available) using the settings option. For example:

    <div class="bespin" data-bespinoptions='{"settings":{"tabsize":2}}'/>

Or using the manual API:

    <textarea id="edit"></textarea>
    <script>
    require("bespin/embed").useBespin("edit", {
        settings: { tabsize:2 }
    });
    </script>

Any of the standard settings are available.

This is equivalent to calling `bespin.set("tabsize", 2);` on page load.

## stealFocus

On startup it's sometimes useful to instruct the browser to begin with some specific component having the focus. For example:

    require("bespin/embed").useBespin("edit", {
        stealFocus: true
    });

This is equivalent to calling `bespin.setFocus(true);` on page load. `stealFocus` is also available when using the element upgrade option.

## lineNumber

It might be useful to start with the cursor set to a specific line on startup. You can do this with the `lineNumber` startup option. For example:

    <div class="bespin" data-bespinoptions='{ "lineNumber":1000 }'/>

This is equivalent to calling `bespin.setLineNumber(1000);` on page load. `lineNumber` is also available when using the element upgrade option.