The first thing you need to do to prepare your work for distribution is to convert it to an HTML or ePub file. This can be done in Open Office, Google Docs or Microsoft Word by saving a copy of the file as a webpage. The next thing you have to do is take the converted file and extend it for sBooks format by using our conversion tool. This tool is easy to use and will prepare your book for browsing, semantic searching, annotation and all the features available as an sBook. Through this tool, you can decide how the book will be organized, which tags can be searched for, and have the option to customize the format of your work. If you have a book in HTML format you’d like to prepare to be published click here.
sBooks is based on the HTML5 and CSS standards. The core of an sBook is just an HTML file (called the sourcedoc) which follows certain conventions. The sourcedoc can simply be served on the web (using a free embedded web application), accessed through custom reading applications, or converted to standard e-Book formats (for the Kindle or other e-readers). beingmeta provides automatic web-based tools for converting plain HTML documents into sourcedocs, which consist of both a single core HTML file and associated files with rich media, style information, etc.
The first step in publishing your content as an sBook is to convert it into HTML or into a non-DRM ePub (which contains HTML that we can extract, as well as images and other content). Many word processing programs have a Save as HTML or Save for Web option and third-party conversion tools exist for some other formats (such as Word or OpenOffice).
Once the book is in HTML, you can pass it to beingmeta's conversion tool which will clean up the HTML and add information to support browsing, search, and annotation. At this point, you can provide information that controls how the book is browsed, displayed, and searched. This includes:
Without any special information, sBooks uses the HTML heading tags (e.g. h1, h2, etc) to determine a book's structure. sBooks can also take advantage of HTML5 elements explicitly designed for complex documents including the section, detail and aside elements. sBooks also uses particular CSS classes (all starting with 'sbook') to provide additional information to improve reader's experience and comprehension in books which support it.
The automatic tools can also assign initial tags based on common or recuring terms, phrases, or names.
Depending on the quality of the original HTML, the sourcedoc initially produced by this process may not be especially attractive. You may want to invest some time in creating or editing the document's stylesheets to improve its appearance. Once you do this, it's usually a good idea to pass the improved document back through beingmeta's conversion tool.
| .sbook1head .sbook2head ..... .sbookNhead |
introduces a Nth level heading in the document which covers all of the content in the current section (when used with the HTML5 section element) or up to the next heading of level N or less. |
|---|---|
| .sbooknotoc | overrides any level information associated with this element |
| .sbookignore | sBooks ignores this element and its contents. Any structural implications are canceled and automatic functions (like tagging) are disabled. |
| .sbookdiscard | sBooks discards this element and its contents from the output file. |
| .sbookid | Give this element an (automatically assigned) unique ID for adding annotations or tags. Normally, only block level elements with actual textual content of their own are given unique IDs. |
| .sbookterminal | Give this element an (automatically assigned) unique ID but don't assign IDs to any of its content. |
| aside .sbookaside |
The HTML5 aside element (or the sbookaside CSS class) is extended text which is associated but not part of the narrative flow. Different reading clients will expose and display asides in different ways. Even if a client moves the element to elsehwere in the document, it's "logical position" (according to book structure) remains where it first appeared. The first heading in the element is taken as a heading for the entire section. |
| detail .sbookdetail |
The HTML5 detail element (or the sbookdetail CSS class) is text which provides detailed information connected with the narrative flow of the text. The content has an embedded summary (the HTML5 summary element or an element with the sbooksummary class. Different clients may render the detail and its summary in different ways. As with asides, the detailed content retains its "logical position" even when moved within the document for display purposes. |
| a.sbooknoteref | This link element refers to a short note elsewhere in the text (corresponding to a footnote or endnote) that is relevant to this point in the text. Different clients will make this note available in varied ways and may move the target content within the document. |
| a.sbookbibref | This link element refers to a bibliographical note occuring elswhere in the text. Different clients will make this note available in varied ways. |
| .sbooknote | The content of this element is a note attached to this point in the text. Clients will move this note out of the main flow, but create a reference which readers can easily follow (and return from). |
Like physical books, sBooks generally break out their content into individual pages. This is usually easier for people to read but can be a challenge when the reader goes between devices (with different display sizes) or changes font size (for readability).
Note that if the content of your book contains “manual formatting” made up of repeated newlines br elements, these tend to break when page dimensions or font sizes change. Automatic conversion will remove some of these but it is better to replace them beforehand with CSS classes or style attributes that adjust more gracefully.
If the source HTML already has page break constraints (using CSS properties like 'page-break-before'), most sBook readers will just do the right thing. If not, an author/publisher can either provide that information in CSS or use sBook's utility classes. Using the sBook utility classes may also improve the results of conversion into particular e-reader formats.
| forcebreakbefore | always place a page break before this element |
|---|---|
| forcebreakafter | always place a page break after this element |
| avoidbreakinside | avoid breaking this element across pages |
| avoidbreakbefore | avoid placing this element at the top of a page |
| avoidbreakafter | avoid placing this element at the bottom of a page. Note that all heading elements are automatically treated in this way. |
| fullpage | this element takes up a full page. This implies forcebreakbefore, forcebreakafter, and avoidbreakinside. On some platforms, the content of the element is scaled to fit onto a single display page. |
In order to help readers browse, search, and navigate the content of your book, elements or sections can be tagged using lightweight free-form structured vocabularies called knodules. Using a knodule, it is easy to define synonyms for tags or relate tags to one another in ways which can help users who are searching or browsing your book. It can also help them to tag their own notes or comments.
Tags can be added to an element by either adding an attribute to the element or by adding a new element in its content. Tags separated by semicolons can be assigned using any of these attributes:
Alternatively, tags separated by semicolons can be inserted into the body of the element in an element with the sbooktags class. Normally, this element is invisible, but the associated tags may appear when searching or browsing.
The tags themselves, separated by semicolons, use the plaintext microformat for knodules.