Ryuzine Machine Manual
webapp
Loading . . .
Copyright 2011,2012 K.M. Hansen & Ryu Maru - All Rights Reserved
Publishers:
Learn how to deliver digital magazine content to Desktop & Mobile readers!
Thank You
Remember this is "beta" software. Please report any bugs or problems you encounter.
This manual and any examples contained herein are provided "as is" and are subject to change without notice. The publisher makes no warranty of any kind with regard to this manual, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. The publisher shall not be liable for any errors or for incidental or consequential damages in connection with the furnishing, performance, or use of this manual or the examples herein.
Copyright 2011, 2012 K.M. Hansen & Ryu Maru. All Rights Reserved.
Reproduction and adaptation of this manual is prohibited without prior written permission, except as allowed under copyright laws. Automatic translation through online methods or devices is allowed. The programs that control this product are copyrighted.
Version 0.9.5 (Beta)
First public release April 2012
This manual was created in Ryuzine Magazine format with Ryuzine Machine.
BETA SOFTWARE WARNING
Please be aware as you use this software that it is still considered to be BETA SOFTWARE and therefore may function in unexpected ways. Obviously we try our best to make sure it is as stable as possible and try to address problems as quickly as possible when they come up, but there are still some bugs (webOS and Opera are currently the least stable).
In the event that you do experience any undocumented problems with this software, we would like to hear about it and will do our best to fix the problem in a future release. You can let us know about bugs by commenting in the forums at www.ryumaru.com.
Internet Explorer® is a registered trademark of Microsoft® Corporation. iOS®, iPhone®, iPod®, iPad®, and Safari® are registered trademarks of Apple Inc. Firefox® is a registered trademark of Mozilla Corporation. Opera™ is a trademark of Opera Software ASA. InDesign® is a registered trademark of Adobe Systems Inc. Scribus Copyright 2001-2011 Franz Schmid and rest of the members of the Scribus Team. Ryuzine™ is a trademark of Ryu Maru.
Ryuzine Machine Publisher's Manual
First Edition (October 2011)

This manual is intended for publisher's not Ryuzine readers. Please consult the "Help" information under the [?] button within the app for end user information.
Ryuzine is a web application designed to deliver a magazine reading experience to Internet users and provide an easy way for self-publishers to distribute digital magazine content to the web and mobile devices. It is a self-contained web site that does not rely on any frameworks, libraries, or server-side code. A single installation can be used to present multiple issues of a magazine, newsletter, or web comic and you don't have to worry about getting people to subscribe to news feeds - just get them to bookmark your site and whenever the visit the magazine URL they'll be getting the latest issue. Ryuzine is FREE for non-commercial use.
This manual assumes you already have some familiarity with HTML, CSS, and how to upload files to a web server. If you aren't too sure about web code, though, the editor will do most of the formatting for you. You can also write the text for your magazine in a word processor and copy and paste it into the Ryuzine Machine.
Many digital magazines today are sold as mobile applications for smartphones and tablets in "app stores," which also may require "approval" to even sell them. Another site needs to be maintained to deliver content to desktop users or unsupported mobile devices. Ryuzine, though, doesn't require "app stores" or third-party approval and provides your readers with content at no cost to them. Your readers don't need to download and install anything in the limited storage space on their mobile device. Ryuzine delivers the same content in an optimized format for desktops, laptops, netbooks, tablets, and smartphones while maintaining only a single version on your server. Interested? Keep reading!
Integrated advertising options for splash and mobile banner ad placement*
Optional hiding of controls for ultra-clean minimalist interface.
Animated Page Turn Effect (experimental 3D page turning available in some browsers)
Automatic format adjustment based on window size, not device or browser (as new devices become available your Ryuzine magazine will already work with them!)
Automatic User Interface alterations based on window size and orientation.
Integrated Lightbox gallery feature
Touch-enabled Interface (for use with the most popular webkit-based mobile browsers)
Keyboard and Mouse control for desktop users
Multiple Viewing Modes - including "App View" mode for some devices.
User adjustable font size
Graceful degradation for older systems or disabled features
Multiple In-app Bookmarks
Integrated support for the OVR player script
Utilizes cutting edge HTML5+CSS3 technologies
Cross-Browser and Cross-Platform compatibility (plus support for many legacy browsers)
Cloud-based and/or Downloadable delivery options
Support for third-party social networking widgets (includes a built-in email sharing widget)
Automatic conversion of a simple HTML page into WebApp with Ryuzine Machine
Easy User Interface Language Localization
Right or Left "Binding" options
Add-on themes to change the User Interface appearance or create and share your own themes!
Automatic theme swapping lets you deliver different UI appearance to different devices
Designed for use with modern browsers, both on the desktop (Safari, Chrome, Firefox, Internet Explorer 9+) and mobile devices (iPhone, iPad, and Android) [full Compatibility information ]
You don't need much to get started - just a plain text editor like "TextEdit" or "Notepad" and a supported web browser and the "Ryuzine Machine" web app. You can either compose your content right in the Ryuzine Machine and have it converted into a Ryuzine web app, or you can create your content in a third party program and import it for conversion. Ryuzine Machine even runs on the iPhone and iPad meaning you could develop, convert, and publish for iOS devices directly on iOS devices.
*Commercial use requires online purchase and registration of one commercial use license per title. Please read the License for details.
Download the Ryuzine Publishers Distribution Kit (PDK) and unzip it. Most of these are not files you will need to edit or understand, but the are necessary to use Ryuzine and/or Ryuzine Machine. You will need either a Development Web Server or some hosted space on a Web Server. While Ryuzine doesn't actually use any server-side code some web technologies it utilizes do not work properly on some platforms or in some browsers if they are not delivered from a web server.
This is just a fancy name for a web server running locally either on your desktop computer or on a computer somewhere on your network. The easiest cross-platform way to set it up is to download XAMPP and install it. You'll only need the "Apache" web server part for Ryuzine development.
Another option is to use the web server that may be built into your computer's operation system. Full details on how to install or set up the server is beyond the scope of this manual, but the following may help:
Computers running Windows use Internet Information Services (IIS) web server. It doesn't come with every version of windows.
Windows XP Home Edition:
Does not officially support installing IIS
Windows XP Professional:
Windows 7 Home (Premium, Basic, Starter)
http://technet.microsoft.com/en-us/library/cc731911.aspx
Windows 7 Professional, Enterprise, or Ultimate:
http://technet.microsoft.com/en-us/library/cc725762.aspx
(Windows Vista should be similar process to Windows 7)
Mac OSX is based on UNIX and has a built-in Apache Server. All you have to do is turn it on and drop your files in the correct folder.
Many Linux distributions already include the Apache web server and all you need to do is turn it on and drop your files in the appropriate folder. Here are the instructions for the popular Ubuntu distribution: https://help.ubuntu.com/8.04/serverguide/C/httpd.html
If you use a different one consult that distribution's documentation or user forums for details on how to set it up.
Odds are that if you have an Internet Service Provider you have some web hosting space that came with your account. Check with your ISP if you aren't sure, and if your provider doesn't allow the use of server-side technologies (like SQL, CGI, Perl, etc.) don't worry - Ryuzine doesn't use any of those technologies. You only need a basic web server. You can also do this if you have a web hosting account.
You don't really have to worry about the public seeing what you are working on or of anyone using the Ryuzine Machine to change files on your publicly accessible web server. The files are processed locally in your web browser and nobody but you can see what you are doing.
You will need some way to upload files to your live web server. Typically you would use an FTP client, but many ISPs and web hosts provide browser-based file management tools as well - some of which are "drag-and-drop" to upload files.
The image below should give you an idea how the folders should look on your Development Server or Live Web Site. Typically, though, the "ryuzinemachine.htm" file and "ryu_dev" folder would not be uploaded to a live web server unless you were also using the live web server for development purposes.

Ryuzine automatically adjusts to the screen size of the device on which it is viewed. That means you need to decide how people will see your images. There are really two different options:
Option 1 has the advantage of simplicity and (excepting non-tiled background images) you can just set a fallback image style like "width: 100%; height: auto;" for all images. If you use the smallest possible images your pages will look nice on phones but will start to "pixelate" at larger screen sizes, making the images look bad. If you use higher resolution images your pages will look good across most screen sizes but you'll be delivering unnecessarily large image files to mobile users with small screens.
Option 2 is a bit more work but is
preferable because you can tailor the images to each screen size and
even target devices with higher pixel density (such as Apple's
"Retina" display*) with images that will take advantage of
the higher quality screen. It isn't as many images as you may think,
however. Typically you can use the same images from a portrait mode
in another screen size's two-page spreads.
|
Image Scaling Factors |
||
|
Size (sub-folder name) |
Scaling Factor |
Target Layout(s) |
|
xlarge |
100% |
iPad Portrait / Large Format Spreads (1600px +) |
|
large |
83% |
Small Tablet Portrait / Desktop Spreads (1280 - 1600px) |
|
medium (see note) |
66% |
iPad Landscape / Desktop Spreads (1024 - 1280px) |
|
small |
62.5% |
Phone Landscape |
|
41% |
Phone Portrait |
|
|
Note: If the two-page spreads use two-column layouts the images will usually also work for single-column phone views without modification. The only time you really need to create separate "small" versions is if the image spans the live area, in which case the two-page spread version is a bit too wide for Phone Portrait. You could also opt to simply scale the images in the browser rather than create a new image (for example set the width to 100% for Phone view). |
||
The lightbox gallery images are scaled
based on either the height (for portrait orientation images) or width
(for landscape orientation images). The other dimension is set to
"auto" so the image will scale while maintaining the aspect
ratio. You can also set up Lightbox Gallery images as "Dynamic
Images" too so you can deliver the best quality depending on the
screen size. Dynamic Images will also need a style by ID in your
"thisissue.css" stylesheet specifying the height and
width.
|
Gallery Size |
Portrait Orientation Height |
Landscape Orientation Width |
|
xlarge |
800 px |
1024 px |
|
large |
640 px |
800 px |
|
medium |
640 px |
640 px |
|
small (landscape view) |
240 px |
320 px |
|
small (portrait view) |
320 px |
300 px |
* To optimize images for display on the iPhone 4 you typically use an image 2x larger than you would for the iPhone 3G and then use CSS to shrink it to the same dimensions as on the iPhone 3G. What this does is "compress" twice as many pixels into the same space so when the iPhone 4 blows up the image for it's high resolution display it expands back to its actual size. If you don't use optimized images it still blows up the image but it will look blurry or pixelated. If the image is being set as a background, however, you'll need to make sure the styles are not only within the "high resolution" media query but that you add -webkit-background-size: wpx hpx;

Inside the "ryu_dev" folder you will see a couple of configuration scripts:
You should never need to open the "editor.config.js" file. However, the "machine.config.js" file has some options you may want to change:
In the "js" folder you will find several scripts. These need to be loaded in the <head> section of your web page (you can see them in the sample "index.html" file). The only file you'll need to edit is the "ryuzine.config.js" file. This file is no longer optional!
The configuration file settings you will see include the following options:
mystyles = "thisissue" // Your custom stylesheet name for this issue.
The file name for your custom stylesheet, which is used by the "Views" button. The default is actually "blank" (no styles).
binding = "left" // Book Binding (Spine on Left or Right)
If you need to do so you can change this value to "right" (lowercase) and the page animations will act as if they are bound on the right-hand side instead of the left. This option was primarily included for the presentation of manga-style comic books, but is suitable for right-to-left reading languages as well (you'll need to adjust the text alignment in your stylesheet). The app will automatically select the correct "Ryuzine_leftbound" or "Ryuzine_rightbound" stylesheet regardless of which one is coded into the head of the HTML page.
fillpad = 0; // Fill iPad in App View (hidden controls)
This option lets you have slightly longer pages that completely fill the available height in both portrait and landscape view when the WebApp has been bookmarked to the home screen on an iPad (in which case no browser toolbars are visible) and you are using a theme that hides the WebApp controls. This option allows you to maximize the available space and present an extremely clean view uncluttered by interface elements. However, for other devices and themes which do not hide the controls be aware that part of the top and bottom of each page will be obscured (though this is usually not a problem since the top and bottom are typically the "header" and "footer" of the page which are generally margin space anyway). You will probably also want to change the stylesheet in your Ryuzine file from "ryuzine_leftbound.css" or "ryuzine_rightbound.css" to "ryuzine_leftbound_fill.css" or "ryuzine_rightbound_fill.css" respectively to avoid a momentary view of the no-fill stylesheet being visible to your readers.
zoomable = 0; // User Scale-able: 1= Yes | 0 = no
maxzoom = 5.0; // Maximum Zoom Amount
This is an option for touch-enabled devices regarding the ability of users to scale the content by double-tapping to zoom in and out on an element or to use the "pinch" and "spread" gestures to zoom in and out. This is the default behavior for such devices, but is not always desirable. The differences in the two behaviors is:
If you enable user-selectable zooming for your Ryuzine magazine the meta tag will automatically be rewritten to make it work properly, you do not need to edit the HTML file. The "maxzoom" variable allows you to ajust the maximum allowed user-selectable zoom factor (5.0 is the default). Note: Enabling zooming can significantly slow down the responsiveness of the web app on some devices!
localization = 0; // 0 = no localization | 1 = localization
language = "en" // BSD language code
country = "US" // HTML country code
Unless you need to localize the user interface to another language you should leave it set to zero. The language and country codes are only used if localization is enabled. See Localization page for details on localization settings and on adding custom localizations.
pageshadow = 1 // Toggle Page Shadows
swapThemes = 0 // Swap Themes Based on Device
deskTheme = "" // Desktop theme
iOSTheme = "" // iOS Devices theme
andTheme="" // Android devices theme
tabTheme="" // Android tablet theme
wOSTheme="" // webOS device theme
bbtTheme="" // BlackBerry Tablet theme
wp7Theme="" // Windows Phone 7.5 theme
The page shadows are intended to give a more realistic 3D look without relying on the poorly supported CSS3 3D transforms. However if you are targeting older or lower-end systems with your Ryuzine magazine these shadows can still cause a performance hit to the page animations. Change the "pageshadow" variable to "0" (zero) to turn off the page shadow effect.
Themes are completely optional. If you don't either set one in the configuration file or code one into your HTML page the User Interface will use the default (plain) style. Ryuzine can automatically detect the type of device viewing the magazine and deliver different themes. If swapping is enabled and a device theme is left empty it will use the default theme if one is set in the HTML, otherwise it falls back to the plain un-themed style. If you set swapThemes = 1 but forgot to put the <link> tag for themes in the <head> of your HTML it will automatically add it but it adds it at the end of the <head> content, so any UI elements you changed in your "thisissue.css" file may be over-ridden by those in the theme. It is always better to put the <link> for themes in the HTML yourself, right after the UI one but before your issue-specific stylesheet. Some themes do not render properly in webOS, test before publishing.
There are significant differences in browser rendering and the User Interface between Android versions up to 2.3.x ("Gingerbread") and 3.x ("Honeycomb") and after. So much so you will probably want to deliver different themes to pre and post Honeycomb platforms. The "andTheme" is for any Android device running 2.3.x or earlier and the "tabTheme" is for any devices running 3.x and later.
Note: Theme switching will only target properly if the browser is not spoofing the User Agent String.
If you don't have a splashad set as well the "swapThemes" option will add a short (2 second) delay to the splash screen in order to apply the theme without giving readers a glimpse of the unthemed interface. If this is too long or short (more complex themes take longer to apply) simply set a duration with the "splashad" option in the configuration file.
AndApp = 1; // 0 = no | 1 = yes : Android "App View" (hides URL bar)
iOS devices have an option to bookmark websites to the home screen and, if they are coded to do so, run them like native mobile apps without the browser toolbars at the top and bottom of the screen. Android devices can also bookmark sites to the home screen, but does not honor the mobile app setting so the bookmarked page will open in the browser normally. One of the annoying things on Android, though, is that the URL address bar appears and disappears as you scroll up and down causing a page "resize" event. Ryuzine is coded to prevent this unwanted behavior and you can choose whether you would like your content to be displayed in "browser view" (set AndApp to zero) or if you would like to have it look more like a native application. If set to "1" (one) the URL bar will move out of view and your content will fill the entire window. The only way to get the URL bar back is to navigate away from the Ryuzine so carefully consider whether your users will want this feature. When set to zero the URL bar will be continuously displayed (this is similar to how it works on iOS devices in browser view). This feature does not work on some versions of Android, so do not rely on it.
APP ICON
When someone bookmarks your magazine in their web browser, or bookmarks it to their Home Screen on an iOS or Android device it will use the App Icon. Ryuzine uses one of three PNG image files for App Icons depending on the device (technically it could use just one and have it scaled, but this method prevents sending unnecessarily high-resolution icons to devices that can't use them). If you look in the "images" folder you will find the icon images. You can, of course, replace these generic App Icons with your own designs.
ADVERTISING OPTIONS
The inclusion of revenue generating advertising in Ryuzine requires a "commercial license" so please consult the License information. In addition to placing ads within the pages you can also have banner ads and splash ads in your magazine.
bannerad = null; // null = no ads | 0 = persistent | any other value
// determines how often the ad appears
Banner ads appear in a box that drops in from the top and shows a clickable ad image overlay. If you don't have any ads just leave this as "null" and you'll never see the ad box. If you set it at zero the ad will be "persistent" (it will show until the reader closes it). Any other value is the interval in seconds you'd like the ad to show and also the amount of time in between showings. For example, if you set it to "60" then the ad would show for the first time one minute after the magazine had loaded, and would display for half a minute before retracting out of view. A minute later it would reappear for another 60 seconds. If your banners are using a rotator script that will operate independently from the display interval of the ad box.
splashad = 0; // 0 = no splash ad | value = number of seconds to display
When the Web App first loads it displays a "Splash Screen" while it is organizing everything in the background where you can't see it. Normally this screen disappears automatically as soon as the magazine is set up, but you can choose to delay it in order to display an advertisement on that screen.
boxad = 0; // 0 = no ad | value = number of seconds to display | non-number value = peristent ad
Another common ad method is to automatically show an ad overlay on the site when you first load the page. These types of ads are almost always in a lightbox, so Ryuzine offers a similar way to do this. Setting to zero disables it. Setting a numerical value gives the number of seconds to display the ad before it automatically closes. Setting it to anything in quotes (any non-numerical value) will set the ad to persistent - meaning it will display until the reader manually closes it.
IMPORTANT!
In order for readers to click on your ads while using Android or iOS (or any other touch-enabled device that understands ontouchstart, ontouchend, or ontouchmove) you need to include a special command in your link. If you do not include this command your ads will still be visibile but cannot be clicked on most phones and tablets! In some cases this may be the desireable state - for example ads placed in the body of a page probably should remain non-clickable or a user attempting to turn or scroll a page may accidentally click through on an ad. For Splash Ads, Box Ads, and the drop-in Banner Ads you most likely will want users to be able to follow those links. In order to do that just add the following code to your <a> link tag:
ontouchstart="RYU.restoreDefault(this);"
So your links would look something like this:
<a href="http://www.ryumaru.com/" ontouchstart="RYU.restoreDefault(this);">
<img src="images/ads/bannerad.jpg" alt="Visit Ryu Maru!" height="60" width="480" />
</a>
Default Bookmarks
var bmarkData = [[],[]];
bmarkData[0][0] = escape("Ryuzine User Forums");
bmarkData[0][1] = "http://www.ryumaru.com/forum/";
bmarkData[1][0] = escape("Ryu Maru Website");
bmarkData[1][1] = "http://www.ryumaru.com";
The new in-app Bookmark Manager Panel initially only has whatever default bookmarks you define here and you can have more than two if you like. To add additional Default Bookmarks add another comma and closed square brackets for var bmarkData. For example to add a third default bookmark it would read:
var bmarkData = [[],[],[]];
And then add to the end of the array like so:
bmarkData[2][0] = escape("My Custom Bookmark");
bmarkData[2][1] = "http://www.mysite.com"
Note that these bookmarks cannot be deleted by end users.
Creating your Ryuzine is really easy! You create a simple HTML page and tag each part of your magazine with a specific id or class. When you load this simple page into the Ryuzine Machine it converts it into mobile web application for you.
Because most smartphones and tablets (excepting Windows devices) use "WebKit" browsers the Ryuzine Machine utility was designed to work with WebKit browsers like Apple's Safari and Google's Chrome. That said it also works reasonably well in Opera 11.50+ and with minor errors in Firefox 4+. You can also run the utility in the browser ON an iOS or Android device*!
You can start with the empty page and start adding element tags, text, images, etc.
The Editor has
two modes - WYSIWYG (What You See Is What You Get) and "HTML
Code View" and can also be popped up to "full screen"
view where the editor will fill the browser window.
Split View Code Editing
Creating the source file from scratch can be a bit tedious and makes it more likely you may make a mistake or forget an element. The "Load Template" option will give you a running start!
Once loaded in the Editor window you can fill in additional content and use the editor tools
These are the IDs and Styles for which the Ryuzine Machine is looking. The "id" ones are for unique page items and the "class" ones are for multiple items. If you use a class instead of an ID for any of the unique items the Ryuzine Machine app will simply use the first one it finds and ignore the rest.
id="splash_title" - This is the title as it will appear on the Splash Screen that displays when the app starts. If you don't include it the script will use whatever text it finds between the <TITLE> tags in the <HEAD> of the page (that is the text that displays in the web browser's title bar). If you chose to set a "splash_title" it can be different from the title that displays in the browser's title bar. This title is also used in the footer of the pages next to the page numbers.
id="welcome_sign" - This is any formatted text or images you'd like to appear on the "table top" to the left of the closed magazine when viewing the front cover in landscape "two-page spread" view. This text will not be visible to legacy browsers, phones, or tablets in portrait orientation.
id="exit_sign" - This is any formatted text or images you'd like to appear on the "table top" to the right of the closed magazine when viewing the back cover in landscape "two-page spread" view. This text will not be visible to legacy browsers, phones, or tablets in portrait orientation.
id="social_widget" - You can include any social networking share widget code in a container tagged with this ID. If you omit such a container Ryuzine will automatically build a simple widget for sharing the URL via email.
id="copy_right" - Place your copyright notice in a container with this ID. It will be used on the Splash Page.
class="section_head" - use this for all page titles. If you omit it the script will automatically create a section head and Table of Contents entry that says "Page" and the page number.
class="page_box" - this is the class for each container that represents a page in your magazine. Since Ryuzine is supposed to be like leafing through a paper magazine you should have an even number of pages since sheets of paper have two sides. If you do not have an even number of pages, however, the script will automatically add a blank page and a section header.
class="dyn_img" - This is the preferred method for dynamically swapping out images for the various screen sizes. You also need to declare a unique ID for each of these. Then in your "thisissue.css" stylesheet you would target each one by name and adjust the size and background. Normally any image you place inside will be hidden, but you should place the lowest-resolution version inside, which will be available to browsers with CSS disabled and provide image data to accessibility browsers. The format looks like this:
<div id="p1-1" class="dyn_img">
<img src="images/gallery/small/sample.jpg" height="240" width="320" alt="Sample" />
</div>
The ID can be anything you want so long as it is unique. In this case I chose to use a naming convention of page number + image number (so this is the first image on page one). Then in my "thisissue.css" stylesheet I set it like this for each media query in which I want to swap it out:
#p1-1 {
height: 480px;
width: 320px;
background: url('../images/gallery/medium/sample.jpg') no-repeat;
}#p1-1 img { /* If this is the only image that's being swapped out */
visibility: hidden;
}
If you are swapping out all the images you can just automatically hide all the images in the dyn_img containers (declare it before any of the IDs in your stylesheet):
.dyn_img img { visibility: hidden; }
It is recommended you use "visibility: hidden" rather than "display: none" so the page flow is unaffected. Also, if any of the images have image maps the will still work with the image = hidden but will not with diplay = none.
class="light_boxed" - if you have images you want to be turned into Lightbox Gallery features you each on in a container with this class. You should also include a second class of "port" or "land" to indicate the preferred orientation of the content as either "portrait" or "landscape" (if you omit the secondary class it will assume "land" is intended). Example:
<div class="light_boxed land">
<img src="images/mypic.jpg" />
<p class="caption">My Picture</p>
</div>
If you use straight <img> links the images will simply be resized at different screen sizes. You'll have to decide if you want to deliver a high quality images or low quality ones as the default, keeping in mind low resolution images will look pixelated and blurry when scaled up for desktop and high-res images scaled down for phone screens force them to load unnecessarily large images! Ideally you want to deliver the right image to each user, in which case you should use CSS dynamic images (see dyn_img section for details).
class="new_link" and class="lightbox_link t-x" - these two classes are used in conjunction within your page boxes wherever you want to create a link that will open the Lightbox content. Example:
<div class="new_link">
<a href="#mypic" class="lightbox_link t-0">
<img src="thumbnail0.jpg" alt="My Pic" /></a>
</div>
The "#mypic" is a simple in-page anchor and is only used by the simple page if the Ryuzine script doesn't run. This link is not preserved. The "lightbox_link" tells the script that this is a special kind of link that will open a Lightbox Gallery item, and the "t-0" tells it that the "target" is gallery item "zero" (which is the first item tagged with "light_boxed"). It is up to you to tell the script which link points to which gallery item since it is entirely possible the links may not be in the same order as the items they launch. It also assumes you are using a thumbnail image, though it is not actually required.
Ryuzine is ONLY interested in the content tagged with the aforementioned IDs and classes. Anything else you include will be ignored! If you want to provide an alternative or accessible version you can post this file to your site and direct those users to the simple page.
* The WYSIWYG text editor is not compatible with Mobile Safari on iOS devices and is therefore disabled. You can still manually code pages in the text entry box or load preformatted files for editing. The text fields can only be scrolled using two fingers (this is iOS default behavior). Also the source preview pane is not scrollable in split-editing view. On small screen devices you can zoom in and out to make working easier.
Another option is to load a preformatted HTML file into the editor. This can be code you saved from the HTML editor mode of Ryuzine Machine, code you wrote in a text editor, or code from a third party application. IMPORTANT! this feature requires that you MUST have uploaded this source file to a Web Server. It doesn't have to be on the same server running Ryuzine Machine but that works the best or you may receive "cross-domain" errors in your web browser.
Click "Load File" and type the full or relative path to the source HTML file. Ideally you have uploaded it to your Dev Server and it is at the same level as the "ryuzinemachine.htm" file.
Press the "Load File" button and if it was all set up correctly you'll see it load into the Editor window.
InDesign: Export to Dreamweaver
If you are more familiar with using Adobe InDesign for page layout you can also use that as a starting point, and it is quite useful for building scaled and optimized images for the varous Ryuzine display sizes. You really only need to create the iPad portrait version and scale it down to the other sizes. Set your Units to "points" which for all practical purposes are equal to "pixels." Here are the document and margin settings for each:
iPad Portrait / Large Format Spreads
Height: 902 points*
Width: 768 points
Margin Top: 44 points
Margin Bottom: 44 points
Margin Left: 72 points
Margin Right: 72 points
Small Tablet Portrait / Desktop Spreads
Height: 750 points*
Width: 640 points
Margin Top: 44 points
Margin Bottom: 44 points
Margin Left: 58px;
Margin Right: 58px;
iPad Landscape
Height: 655 points*
Width: 512 points
Margin Top: 44 points
Margin Bottom : 44 points
Outside Margin: 50 points
Inside Margin: 25 points
The iPad Portrait page layout is also used for Large Format (1600px +) spreads, the only difference being that the inside margins are reduced by half, but 16-20 pixels of that (depending on browser) are used up by the vertical scrollbar. The Small Tablet Portrait is also used for the Desktop spreads (1280px - 1600px). The iPad Landscape spread is also used for smaller screen desktops. The content (live area) of the iPad Landscape pages will also work for Phone views.
I would suggest you create the Portrait layout first. Then save a copy and change your document settings and margins to the Landscape layout. When scaling the content down to the other layouts the width is more important than the height (in Ryuzine format each page can scroll to contain longer content). The Small Tablet layout is 83% of the iPad Portrait. The iPad Landscape is 66% the size of the iPad Portrait.
Remember that you are outputting to web, not print. Any images you have used in your layout should be at 72 dpi. If the images are print resolution the "Export to Dreamweaver" image export options will create badly pixelated images. If that happens you should open the image(s) in question in Photoshop (or GIMP) and change the resolution to 72 dpi while maintaining the same pixel dimensions as the original image.
* These heights assume you will have a persistently showing Tab bar with controls at the bottom of the screen and will not be in "App View" mode on iOS devices. If you are using a theme that hides the controls you can increase height by 44 pixels. If you are using the "fillpad=1" option in your configuration file the heights are as follows:
iPad Portrait = 1004 points/pixels
iPad Landscape = 748 points/pixels
Small Tablet Portrait / Desktop = 832 points/pixels
Scribus: Export (requires OpenOffice or NeoOffice and an image editor like GIMP)
You can also do your initial page layout in Scribus using the same document settings as noted for InDesign. However, Scribus has no native method to export to HTML so it's a bit more complicated. You need to Export>PDF and change the image resolution setting to "72 dpi" in the dialog, then open the PDF in OpenOffice (with the PDF plugin) or NeoOffice (on Mac) and Export it as HTML or XHTML. Tell it to export the images for a "high resolution" monitor. Unfortunately it will treat the pictures as background images composited onto a background equal to the size of the page. If you want to then crop them out of that background use GIMP, Photoshop, or Fireworks to do so.
The "Options" button opens a dialog with some configurable settings for the Ryuzine output file. Changing these settings is optional, but if you want to enable some of the advanced features and use add-ons you need to use this panel. Options are:
Note that the configuration file can override some of these. Also, localization will not work without a configuration file because it needs to know what the language and country codes are. If you use in-page issue-specific styles they will ALWAYS be applied, even in alternative viewing modes. For this reason it is recommended that before distribution you move those styles into an external stylesheet.
Regardless of how you've chosen to get content into the Editor the process of converting it into a Ryuzine file is the same: Press the "WebAppify!" button on the top right. You can do this multiple times while working on your magazine and it will just update the converted file, so you do not need to make everything perfect and then convert. You can convert and check your progress at any time.
Once you've converted the code the Editor will slide to the left and reveal the "Processed" file window.
Ryuzine Machine is built on Javascript technologies which unfortunately does not have any native way to save files directly. Instead you'll need to select, copy, and paste the code from the Ryuzine Machine code windows into a plain text editor (like TextEdit, Notepad, etc.) and save it with an .htm extension.
This is a pretty important part of making your magazine rock! So it's also important to understand how it works. It is divided up into "media query" sections corresponding to different screen widths, screen heights, and screen density. The structure is as follows:
Fallback Styles - this is the default look for your content and will be used by any (old) browsers that do not understand CSS Media Queries. These styles will also be applied to the Media Query sections which are used to over-ride and customize them.
Large Format Screens (1600+ pixels) - with HD monitors becoming more commonplace and the ability to use many HDTVs as computer monitors this media query section is used for the largest two-page spread version (equal to two iPad portrait screens side-by-side). This is also a great viewing mode for "full screen" browsers on large format screens. Corresponds to the "xlarge" image folder.
iPad Landscape / Desktop Screens (1024 - 1600 pixels) - this will work for the majority of computer and high-end tablet users. It delivers a two-page spread 1024 pixels wide (two 512 pixel wide pages). Corresponds to the "medium" image folder.
iPad "Retina" Landscape (2048 pixels) - the third iPad has a high resolution display which you can accommodate with higher resolution images. Use images 2x larger than you do for the regular iPad and then add "-webkit-background-size: wpx hpx;" where the width and height in pixels are set to the same size as the low resolution images.
Desktop Screens (1280 - 1600 pixels + 795 pixels high) - this style overlaps with the previous one, but is ONLY applied if there is enough height to show the 1280 pixel wide spread (two 640 pixel wide pages). If there isn't enough height then the previous style is used. Corresponds to the "large" image folder.
Low Resolution Screens (768 - 1023 pixels) - targets primarily old 800 pixel width monitors and some small screen devices (like low-end Android tablets. The key to this style is that it uses 100% height (whatever it may be) and therefore you must switch any absolutely positioned elements to relative positioning. Corresponds to the "xlarge" image folder.
iPad / Android Portrait (768 - 1023 pixels + 946 pixels high) - Specifically designed for the iPad screen in portrait mode it also works on a range of Android devices by simply centering the page vertically (many Android tablets have 16:9 ratio screens that create extra space). All of the the "Low Resolution" styles are also applied to this because they overlap, so make sure to override any you want to display differently on tablet devices. Corresponds to the "xlarge" image folder.
iPad "Retina" Portrait (1563 pixels) - the third iPad has a high resolution display which you can accommodate with higher resolution images. Use images 2x larger than you do for the regular iPad and then add "-webkit-background-size: wpx hpx;" where the width and height in pixels are set to the same size as the low resolution images.
Android Landscape (640 - 768 pixels) - Low-end Android tablets and Android phones with wider zoom modes set for the browser will use this style. Again, it uses 100% height so make sure any absolutely positioned elements are switched to relative positioning. Corresponds to the "large" image folder.
Android Portrait (640 - 768 pixels + 750 pixels high) - Low-end Android tablets in certain zoom modes will use this. It presents the exact same layout as each page of the Desktop (1280 pixel wide) spread. Remember, though, that since this overlaps with Android Landscape you need to overrride anything you want to display differently. Like the iPad portrait mode the page will center vertically if the height is greater than the page requires. Corresponds to the "large" image folder.
iPhone Landscape (480 - 640 pixels) - This layout uses the same images as the iPad landscape 2-column pages. If you have an iPad landscape mode image wider than a single column you'll need to create a scaled-down version to fit within 380 pixels width (this mode uses 50 pixel margin buttons). Corresponds to the "small" and/or "medium" image folders.
iPhone4 / Android XPDI Landscape (480 - 640 pixels) - Same as the previous layout, only with images targeting the high density "Retina" display of the iPhone 4 or an XPDI screen on an Android device. Corresponds to the "small" and/or "medium" image folders.
iPhone Portrait (<480 pixels) - Here there is only a single column, but it is roughly the same width as a single column of a two-column display in iPad Landscape view, therefore you can reuse all those images. Any images larger than that will need to be scaled down to fit within 310 pixels wide (there are 5 pixel margins left and right). Corresponds to the "small" and/or "medium" image folders.
iPhone4 / Android XPDI Portrait (<480 pixels) - Same as previous layout, only with images targeting the high density "Retina" display of the iPhone 4 or XPDI screen on an Android device. Corresponds to the "small" and/or "medium" image folders.
As you can see it's not as many layouts as it initially appears to be! Start with the fallback layout and do as much as you can there because those styles will be used by older browsers and will also "cascade" down to all the other views. You can save yourself a lot of time if you create a really solid fallback layout and subsequently only override/scale things for each view that need to be altered.
The iPad Portrait styles are the same as used for each page of the Large Format spreads. This is also used for the Low Resolution layout with the exception of any hard-coded height. So this one layout takes care of three views.
The Android Portrait styles are the same as used for each page of the Dekstop 1280 spreads, as well as the Android Landscape with the variable height. So one more layout takes care of three more views.
The iPad Landscape can supply the bulk of the images for the all the phone views, so the majority of five more views are taken care of with another layout.
If you find this a little confusing take a look at the Sample Magazine files to see how it works.
This should take care of any device a reader uses to look at your Ryuzine magazine.
While you are working on a file it is nice to know how it will look in various mobile devices. The Ryuzine Machine has a "Device Simulator" built into it that give you a very general idea of how it will display without requiring you to contanstly save and upload a file, run an emulator, or own the actual device.
The "App View" option shows you what your Ryuzine looks like in application view mode. This is available on iOS devices when a reader bookmarks your magazine to their Home Screen. There is a similar option available for some Android devices, but most will see your site in "Browser View."
The "Browser View" is how your Ryuzine will look in the device's web browser. This option adds bars to the screen representing the space consumed by browser controls, navigation bars, toolbars, and tab bars.
The "Screen Only" option removes the simulated device bezel and can help you better fit larger simulations in the Simulator window.
Note: If you are running Ryuzine Machine on a tablet or smartphone you will only be able to reposition the simulated device by dragging the bezel or dark gray background. Any touches in the "screen" area will be interpreted as interactions with the simulation itself.
To add a custom device profile press the [+] button and the "Add Custom Device" dialog will pop up. Give the device a name (this will appear in the drop-down list). Select whether the device is a Phone or a Tablet (you can also use "Tablet" for netbooks, laptops, and desktop simulations). Select the simulated operating system (presently your options are iOS, Android 2.x, or Android 3.x). When you click in the subsequent boxes it will use the Profile and OS settings to preload some suggested values. You can override these with your own if you wish. Do not leave any of them blank, enter a zero. Press the "Submit" button and the Device Name will become available at the end of the drop-down list. Select it to view the simulation in your custom device.
Note: The beta version of Ryuzine Machine cannot save custom device profiles and has no built-in method of deleting unwanted profiles from the list. To remove custom profiles created via the "Add Device" dialog you need to delete your web browser cookies for your development server URL.
If you have already processed your simple document into a Ryuzine file (or if you created one from scratch) you can do additional customizations to it beyond the scope of the Ryuzine Machine.
Splash Screen
Because it may
take some browsers (particularly on mobile devices) longer to load
and arrange the content a "splash screen" is employed to
prevent end users seeing the program literally build the magazine and
app interface. This screen automatically clears after the page
initialization is complete and, of course, is completely configurable
via HTML and CSS. If you would prefer not to use a splash screen
simply set the #splash {} style in thisissue.css to "display:
none" and it won't be seen.
ADDING PAGE CONTENT MANUALLY
You can open the "index.html" file in whatever editor you prefer. The WebApp was actually written in a simple text editor, but you can also open it in a WYSIWYG editor such as Dreamweaver (in which case you will see it in "Continuous" page view). You'll need to drop your content into the "column" containers and change the text in the "header" and "footer" containers. If you need more pages you can take any page (other than the first and last, which are the front and back covers) and copy it from the start of the "folio" container to the end and rename/renumber it accordingly. If you need fewer pages you can delete any "folio" containers (other than the first or last) and then rename/renumber the remaining ones accordingly.
Special Note to Dreamweaver Users: if you are using DW CS4 or earlier it will render the Ryuzine as if it is using the "continuous" view stylesheet (it isn't actually, that's just how the web rendering engine in DW will show it). In DW CS5+ it will show the pages "stacked" in exactly the same way they would be seen in a regular web browser. In order to edit the content on the pages in Design View you will need to use the Layers palette to turn off visibility on pages "on top" of the one you want to edit. Just remember to set the visibility back before running the page in an actual web browser.
Once you have put your magazine together either upload it it to your web site with all the folders and/or compress it into an archive if you want people to download it for offline viewing. If the archive is small enough you could even distribute it via email.
ADDING ADVERTISING
Including revenue generating advertisements in your Ryuzine requires a "Commercial License." Please consult the license documentation to determine if your ads qualify as "commercial" use.
Advertising in Pages
Many websites generate revenue from advertising using an ad service. These ad services usually require placing a javascript in the page where you want the advertisement to appear. In general this shouldn't be a problem, though if you are using CSS3 multi-column display the pages may not appear as you intended. For example a left-floated ad in column one may only leave a sliver of space for words to its right, and in the alternate "continuous" view a skyscraper ad may spill out of the bottom of the page and interfere with text and images on the next page! Additionally, because the "column-span" style is so poorly supported you could say it cannot be used there is no way to make a banner or rectangle ad span multiple columns within the flow of the text box. The only solutions to this are to put such ads in their own div container OUTSIDE of the multi-column box or to not use multi-column styling on pages that will need ads to span the page. If you simply tried to place them in the page text with, say, a width of 100% they would only span the width of an individual column, not the entire page.
Banner Ads
There is a configuration setting that will overlay a banner ad box at regular intervals. You simply place your banner ads (or rotating banner script) in the ad box and set the interval in the config file. Half-Banners (234x60) and smaller work best, but if you do put a Full Banner (486x60) in it the styles will scale it to Half-Banner width in phone view so it fits on the screen.
The banner ads display at the top of the app (to avoid interference with the control buttons at the bottom). However in Phone View they will overlay the top navigation buttons (however users can still use swipe gestures to turn the pages). It is perhaps the most potentially annoying advertising option available. Options available are:
null = don't display the ad or you don't have any banner ads
0 = "persistent" ad that stays in view until the user closes it.
any numerical value = interval in seconds for the ad to display and hide.
For example, setting the value to "60" would mean no ads display for the first minute the app is open, then the ad would move into view for a minute before automatically retracting for another minute. A user can clear the ad before the minute is up, but that just resets the timer and in another minute the ad box will reappear. With this option there is no way for a user to permanently close the ad box. This option makes more sense if you are using rotating banners so that every time the box reappears there is a different banner displayed in it. Keep in mind if the interval for this constantly returning box is too short it will become extremely annoying to end users!
Splash Ad
Another configuration setting lets you use the content in your first lightbox as an advertisement that automatically launches when the app loads. Setting the value to zero disables this feature. Setting it to some other number will be the number of seconds to display the ad before it automatically closes (users can also manually close it sooner). Setting it to something other than a number will cause the ad to display UNTIL the reader manually closes it.
CUSTOMIZATION
You can easily customize the User Interface in a couple of different ways. The easiest is to create a custom theme or edit an existing one. Themes allow you to completely alter the appearance of the Ryuzine webapp, but also allow you to change how some elements work. New as of version 0.9.5 are the ability to change the CSS animation methods for the Control Bar (normally at the bottom of the screen); the appearance, position, direction, and movement of the "Bubble Guide" help information; and how the integrated Lightbox Gallery items animate (it's still set to "zoom" in/out by default, but now you can change it in the lightbox.css file). The text "color schemes" are also easily changed from the "Sepia," or "High Contrast" to anything you'd like, but better still you can create additional color schemes and trigger them with simple links right in your magazine. Lastly, you can use the "Localization" add-on script to alter the text that appears on the buttons and panels. Further customization is possible, but beyond the scope of this manual.
SOCIAL NETWORKING SUPPORT
Ryuzine supports adding whatever "Share This" functionality you prefer to use. It was designed with the 32 pixel "Add This" widget in mind (the button sizes are more suitable for a touch-enabled device), but you can use whatever one you like. Just put it inside a container with the id="social_widget" and it should work (see note below if it doesn't).
The icons or link will appear in a small pop-up "balloon" when you press the "Share This" button on the second controlset.
If you do not use a sharing widget simply omit the "social_widget" container. Ryuzine will build a simple e-mail sharing widget on the fly that allows your readers to enter the email addresses of their friends and share the URL of your Ryuzine via their email client (such as Apple Mail, Thunderbird, or Outlook).
Note: Many social widgets write into the document, which is what Ryuzine's "reWrite" function does. This can render some social networking widgets improperly or make them non-functional! For some browsers you may be able to work around this problem by placing any external script calls in the <head> of the page rather than in the <body>, but the only certain way to make sure it works is to use your third-party widget in a pre-processed version of your Ryuzine.
ENABLE/DISABLE DEFAULT ACTION (iOS Devices)
Typically an iPhone, iPod Touch, or iPad will trigger both touch events and then mouse events 300 milliseconds later. To improve responsiveness and prevent unwanted double-triggering of events the Ryuzine Web App is coded for native touch events by disabling the mouse events. This is known as "preventing defaults" since triggering the mouse events is the default behavior (and makes sites which are not touch-enabled usable on a touch device).
The standard method of preventing defaults with "event.preventDefault()" disables the mouse triggering globally - so it doesn't work anywhere on the page. There is no corresponding "event.restoreDefault()" function! However, there are occasions when you may need to restore the default behavior on a specific object. Ryuzine uses an alternative method to accomplish this:
preventDefault(obj) and restoreDefault(obj)
Note that you do NOT put the "event." in front of it and you must reference the DOM object in the parenthesis. It is generally good practice to only temporarily restore default actions when needed and return to preventing them or the app may not behave as expected. A good example of this is the previously mentioned Social Networking Widget. Such third-party widgets often include their own event handlers and assume mouse events will be available. To make the "Add This" widget work on iPhone and iPad the DIV containing the widget is coded to restore default actions when a "touchstart" event is detected on the widget container. When the widget container is closed, though, it restores the default prevention.

If your current issue is always named "index.htm" (or "index.html" or "default.htm" depending on what file your web server considers the root document of a folder), when a reader bookmarks your site this will be the document served up to them each time they visit. If you always save your current issue with this name then readers who bookmarked your site will always get the latest issue when they visit.
Unlike an RSS Feed it doesn't push the new issue to your readers, they'd have to manually check the bookmarked URL in their browser - however you can ALSO use an RSS feed to inform your readers when a new issue is available if you like. To let your readers know if you have set up your Ryuzine magazines this way use the "FeedMark" icon with a link set to the rotating issue URL for your magazines and instruct your readers to simply drag the icon to their bookmarks bar or desktop. Drag and Drop, no fancy coding required! For mobile devices it alerts the reader to bookmark the page since the drag and drop functionality is blocked in iOS and Android. (Hint: Try it for yourself with the icon shown here, works in most desktop browsers)
You can have multiple issues of your Ryuzine magazine running from a single Ryuzine installation on your server! Simply rename your old issues to an archive file name. You will also have a different "thisissue.css" file for each issue, so you'll need to rename that as well and change the link in the header of the corresponding html file. If you use different configuration settings for different issues you can also copy the "ryuzine_config.js" file and rename it to correspond with the specific issue and, again, change the link to the file in the header of the html document.
So, for example, when your second issue is ready for upload you can go to your existing (first issue) "index.htm" file and change its name to "issue1.htm" and find these links in the header:
<link rel="stylesheet" type="text/css" href="css/thisissue.css" id="this_issue" />
<script type="text/javascript" src="js/ryuzine_config.js"></script>
and change them to something like this:
<link rel="stylesheet" type="text/css" href="issue1.css" />
<script type="text/javascript" src="js/issue1_config.js"></script>
Then change the names of the "thisissue.css" and "ryuzine.config.js" files as well. Upload your second issue as "index.htm" with it's own configuration script and "thisissue.css" file. If you repeat this process each time you release a new issue your readers can also have access to back issues archived in the same place and you do not need to maintain multiple installations of the Ryuzine software on your web server.
Image note: Unless you are using your live web server as a Development Server as well you do not need to upload the "ryu_dev" folder or the "ryuzinemachine.htm" file.
This section covers technical details about how some of the advanced features of Ryuzine work.
ANIMATED PAGE TURN EFFECT
For desktop users they can either click in the margin of a page (there is an arrow and on mouse over the entire margin highlights as a button) or press the left/right arrow keys to flip pages back and forth. Older browsers, or those which do not support CSS3 Transforms, will see pages simply "pop" open or closed. Modern browsers that support CSS3 Transforms and transitions will see a page-turn effect with a shadow.
The default page turn animation uses 2D effects. At the beginning of development only some versions of Safari supported true 3D effects so a decision was made to use 2D instead. However, in addition to Safari, 3D capability is now present in Google Chrome, Mozilla Firefox as well as the forthcoming Internet Explorer 10. So version 0.9.5 will detect if your browser is 3D capable and, if so, show a "3D" switch in the "Options" panel. What it does is add a subtle perspective to the turning pages and ensures the browser uses hardware accelerated graphics processing. This option is not enabled by default because CSS 3D effects are still a bit dodgy.
On touch devices, such as those running iOS and Android, pages can also be turned with a "swipe" to the left or right. This is accomplished with single-point touch events, so it will work even on devices that do not actually support gestures!
KEYBOARD CONTROLS: The Ryuzine web app has several keyboard controls available. Here is the list of currently implemented keyboard controls (if the browser itself uses any of them that one will not work in the web app):
Please note that, even though Ryuzine can use keyboard controls the WebApp itself is NOT yet coded for accessibility because the app cannot yet be completely controlled with keyboard input.
AUTOMATIC FORMAT & UI ADJUSTMENTS
Small screen devices show navigation buttons across the top and remove the margins in portrait mode. In landscape mode the top buttons are removed and the margin buttons reinstated. Tablet devices see a single page view in portrait mode and, if they are at least 1024 pixels wide in landscape, a 2-page "facing pages spread" view. Desktop systems with wider screens get larger two-page views.
User Interface elements change based on screen size. Phones get "iPhone" style controls, while tablets and desktops get "iPad" style controls.
LIGHTBOX FEATURE & IMAGE OPTIMIZATION
For detail images and multi-media content there is an integrated lightbox feature. On modern browsers this also uses a CSS3 Transform animation for a richer experience. Additionally it features automatic content-swapping for image optimization based on screen size. This means that mobile devices only get images optimized for their small screens without the overhead of loading an unnecessarily large image file. For systems with larger screens the mobile images act as low-res placeholders until an optimized (larger/higher res) image is loaded automatically. Since the lightbox images are not immediately displayed there will usually be sufficient time for the image swap-outs to occur behind the scenes so that, when a user clicks on a lightbox link, they will only ever see the optimized image as it will have loaded in the background.
While the entire thumbnail image in a page could be coded as a button to open the larger version in the lightbox, doing so can be problematic for touch interface devices where a user may intend to scroll page content and accidentally "press" the thumbnail coded as a button. To avoid this the lightbox thumbnails have their own style with a small icon placed over the image that is the actual button. This icon space has to be text and/or an image (I encountered what I think is a bug in Google's Chrome browser where if I used a pure CSS solution with a clickable DIV container instead of text or an image the container would become non-clickable when positioned or floated in the same area as the image regardless of the z-index of either object).
MULTIPLE VIEW MODES
The Ryuzine Web App was designed with modern browsers on higher end mobile and desktop systems in mind. However, if a user experiences issues with performance they can switch to a simpler "view" of the content. The View preference is retained in a cookie file so on subsequent visits it will automatically resume in the last selected viewing mode. "Continuous" view shows all the pages of the magazine as a vertically scrolling continuous column of styled pages. "HTML Only" is a plain view of just unstyled text and images against a white background. The User Interface controls, though, remain present at the bottom of the screen in all view modes and users can easily switch back and forth between them. If they have navigated to specific page with the Table of Contents panel it will "remember" that and automatically move to the correct section. Font size setting are also retained between views.
USER DEFINED FONT SIZE
Let's face it, some devices have really small screens and the text is too small to read. Click the "Fonts" button and you'll have the option to bump the font size up and down to suit your personal tastes. The font setting is applied to ALL pages and view modes so you only need to set it once per session (future versions may use data storage or a cookie to retain this preference for future sessions, but it has not yet been implemented).
TEXT COLOR SCHEMES
New in 0.9.5 is the addition of another button to the "Font" panel. Pressing it will open a sub-panel with three additional options titled "Normal," "Sepia," and "Black." Each of those will change the text/background to brown/light brown or high-contrast white text on black. "Normal" restores the colors. If you have a keyboard you can also CTRL+Click the color buttons and it will over-ride any background images as well.
CLOUD-BASED or DOWNLOADABLE CONTENT
As a Web App the intent is that users do not need to download and install an "app" at all, and content providers do not have to submit or get approval from an "App Store" or "Market" site to deliver the magazine to readers. If a reader bookmarks the Web App in their browser they will always be seeing the latest edition whenever they visit their bookmark (assuming the content provider always places the latest issue at that same address and moves older ones to an archive location). On iOS devices the bookmark can be placed on the home screen and will launch as if it is a native app (without the browser address and bookmark bars). On Android devices the first touch on the Web App in the browser should hide the address bar for a more "native" app experience.
That does not mean, however, that the magazine can only exist in the cloud or be delivered live over the internet. All the scripts and images used can be bundled into a downloadable archive for offline use (assuming the device supports viewing offline web pages). If you are using a third party sharing/social widget you'll probably want to remove the code since the URL would be local to the reader's computer and not actually share-able.
A "hybrid" version is also possible where users can download the Ryuzine Web App but it pulls remote content into the layouts. I'm not sure why you'd want to do that unless you incorporated some kind of subscriber verification scheme that required it, but it is possible to do.
The magazine content is all presented in a single page so after the initial download time (and it generally isn't a long wait since web content downloads progressively anyway) accessing any part of the magazine is nearly instantaneous.
PLAYS WELL WITH OTHERS
Since the content is all one page and the stylesheets use media queries for various screen sizes (but are not linked to any specific devices) the Ryuzine Web App is extremely adaptable to a wide variety of devices and operating systems. For the best experience users need to view the magazine with a "webkit-based browser" that supports CSS3 2D Transforms and Transitions. A quick list of devices that are compatible with the Ryuzine Web App include:
The Ryuzine web app code (not "Ryuzine Machine" itself, but basic output from it) validates as HTML5 and also passes accessibility validation for both WCAG v1 AAA and US Section 508 compliance.
However, the Ryuzine code was tested with empty pages and NO actual magazine content since that is completely under the control of the author/publisher and will vary greatly from one publication to the next. If validation is important to you and your Ryuzine is not validating make sure you are checking it as "HTML5" and not "XHTML5" or an earlier standard. Look in the body content of the magazine written with the WYSIWYG editor (or coded by hand). If necessary you can edit either the source code or the output code, and you may want to run it through an application like "Tidy" to clean it up.
Please note that the Ryuzine CSS will likely never validate because it relies on too many proprietary styles for modern and mobile browsers.
The inclusion of third-party widgets (for example to share over social networks) will most likely break validation. The built-in e-mail sharing widget, however, is valid code.
Problem:No momentum touch scrolling in pages.
Platform(s): iOS and Android
Cause: The web app was not coded with momentum scrolling (Note: that if zooming is enabled momentum scrolling DOES work for dragging the zoomed content around while in "Pan & Zoom" mode).
Solution: None. A future release may offer it.
Problem: There are display errors during 2D page turn animations.
Platform(s): Google Chrome 12 on both Mac and Windows
Cause: Unknown, appears to be a browser bug.
Solution: Wait for an update to the browser. This behavior was not seen in Chrome 10 or 11 and is not present in Chrome Canary 14.
Problem: There are display errors during 3D page turn animations.
Platform(s): Google Chrome <20 and Firefox 4+ on all Platforms,
Cause: 3D effects are still experimental and presently only work as intended in Safari
Solution: Wait for an update to the browser.
Problem: Default "Share" Widget can't find E-Mail program to send message.
Platform(s): All
Cause: Most likely an E-Mail Client (such as Apple Mail, Microsoft Outlook, Eudora, or Thunderbird) has not been configured on the system. If you use a "Web Mail" service like Yahoo, HotMail, GMail, etc., this feature will not work.
Solution: Most ISPs offer some kind of E-mail service which is compatible with E-Mail Client programs. You need to set one of these up to use the default "Share" Widget.
Problem: Occasionally the word "undefined" appears on top of my magazine.
Platform(s): All
Cause: You have enabled banner ads in your configuration file, but there is no banner ad.
Solution: Set the bannerad variable in the configuration file to zero.
Problem: When scrolling text areas in Ryuzine Machine the middle tab's layering pops forward and back as you scroll.
Platform(s): Safari 5.0.x
Cause: This is a bug in this version of the browser. It is normally seen when any Flash content is in the page, but it also can occur with IFRAME content.
Solution: There is no fix for this aside from either using Safari 4.x or Safari 5.1.x or another browser entirely.
Problem: Page fails to load due to galleryData error.
Platform(s): All
Cause: One of your gallery items is not an image. The javascript image swap outs only work if ALL your gallery items are images.
Solution: Remove the non-image gallery item(s) or switch to the CSS Dyanamic Image swap-out method instead.
Problem: In landscape mode with zooming enabled and zoomed in the page turn action turns to the wrong page.
Platform(s): iOS
Cause: The web app is misinterpreting the width of the screen as portrait because it is zoomed in.
Solution: Zoom back out and page turning will work properly in landscape mode.
Problem: In alternative View modes text spills out of pages if I resize the browser.
Platform(s): All
Cause: The height of the main body of the page is being set by javascript and does not update that height on resize.
Solution: Resize, reload web app, switch back into alternative viewing mode.
Problem: Button and panel backgrounds with gradients display offset or garbled.
Platform(s): webOS 3.0.4
Cause: A bug in the webOS Browser regarding CSS3 gradients.
Solution: In your configuratin file set either no theme or a theme without CSS3 gradients for the webOS platform.
Problem: Cannot swipe to turn pages or touch-scroll when "Zoom & Pan" is enabled in Options (even if zoom mode is not turned on!)
Platform(s): webOS
Cause: The webOS browser is intercepting the touch gestures rather than applying them to the page elements.
Solution: Turn "Zoom & Pan" off in the Options Panel (it is normally turned off in webOS by default)
Problem: Ryuzine Machine HTML Editor collapses so you can't see what you are typing.
Platform(s):BlackBerry Playbook
Cause: The editor textarea is sized dynamically and the keyboard forces it to collapse by shrinking the window height.
Solution: Try using the WYSIWYG editor with side panels turned off.
The following are the minimum system requirements for the full magazine effects. The Ryuzine WebApp is intended for high-end mobile devices and modern desktop computers. Devices which do not meet these requirements can still use Ryuzine but should change the "View" setting to "Continuous" or "Plain" which require less overhead.
| Version | Grade | Adjust | Anim. | Themes |
| Internet Explorer (Windows) | ||||
| <= 6 | F | N | L | N |
| 7* | C | Y | L | Y |
| 8* | C | Y | L | Y |
| 9 | C | Y | L | Y |
| Mobile Internet Explorer (Windows Phone 7.5) | ||||
| 9 | C | Y | L | Y |
| Firefox (Windows, Mac, Linux) | ||||
| 1.5-3.5 | D | N | L | N |
| 3.6 | C | N | L | Y |
| 4+ | B | Y | Y | Y |
| Firefox Mobile "Fennec" (Android 2.3.x+) | ||||
| 4 | B | Y | Y | Y |
| Safari (Windows, Mac) | ||||
| 4.05 | A | Y | Y | Y |
| 5.x | A | Y | Y | Y |
| Mobile Safari (iOS 3.2+) | ||||
| 4 | A | Y | Y | Y |
| 5 | A | Y | Y | Y |
| Chrome (Windows, Mac, Linux) | ||||
| 10+ | B | Y | Y | Y |
| Chrome Mobile (Android 2.3.x+) | ||||
| ? | B | Y | Y | Y |
| webOS Browser (webOS 3.0.4+) | ||||
| 234.76 | B+ | Y | Y | Y |
| BlackBerry Browser (BlackBerry Tablet OS 1.0.7+) | ||||
| 7.1.0.7 | A | Y | Y | Y |
| Opera (Windows, Mac, Linux) | ||||
| 10.x | D | N | L | N |
| 11.x | B | Y | Y | Y |
| Opera Mobile (Android 2.3.x+) | ||||
| 10.x | B | Y | Y | N |
|
Legend: A = Fully Works Y = Yes |
||||
| Version | Grade | WYSIWYG | Editing | Simulator |
| Internet Explorer (Windows) | ||||
| 9 | C | Y | Y | Y1 |
| Firefox (Windows, Mac, Linux) | ||||
| 1.5-3.5 | C | Y | Y | Y1,2 |
| 3.6 | B | Y | Y | Y2 |
| 4+ | B | Y | Y | Y2 |
| Firefox Mobile "Fennec" (Android 2.3.x+) | ||||
| 4 | B | Y | Y | Y2 |
| Safari (Windows, Mac) | ||||
| 4.05 | B | Y | Y | Y3 |
| 5.x | A | Y | Y | Y |
| Mobile Safari (iOS 3.2+) | ||||
| 4 | B | N | Y | Y3 |
| 5 | A | N | Y | Y |
| Chrome (Windows, Mac, Linux) | ||||
| 10+ | A | Y | Y | Y |
| Chrome Mobile (Android 2.3.x+) | ||||
| ? | B | Y | Y4 | Y |
| webOS Browser (webOS 3.0.4+) | ||||
| 234.76 | B | N | Y | Y5 |
| BlackBerry Browser (BlackBerry Tablet OS 1.0.7+) | ||||
| 7.1.0.7 | A | Y | Y | Y |
| Opera (Windows, Mac, Linux) | ||||
| 10.x | F | Y | Y | N |
| 11.x | A | Y | Y | Y |
| Opera Mobile (Android 2.3.x+) | ||||
| 10.x | F | Y | Y | N |
|
Legend: A = Fully Works Y = Yes 1 Simulated device displays incorrectly |
||||
*Note: Support in Internet Explorer 7 & 8 requires Robert Nyman's free "getElementsByClassName" script. You will need to download and place the "legacy_ie" folder in your addons directory and link to it in the <head> of your HTML page to enable functionality for Internet Explorer 8. The latest version of the getElementsByClassName script is available from the original author at:
http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/
"OVR" automatically creates touch-enabled "Object VR" animations from a series of image files with no plugins or Flash required. You only need to place the first frame image in the page inside a container tagged with the class "vr" and the script does the rest. The animations can then be "rotated" either by mousing across them in a desktop browser or with a slider control on touchscreen devices.
The OVR animations can technically be placed anywhere in the Ryuzine, but (because the OVRs also have their own touch-enabled controller) they can conflict with Ryuzine's own touch support on mobile devices. To avoid touch conflicts you should ONLY place the OVR animations in the Lightbox gallery.
To enable OVR in Ryuzine Machine simply include an image tagged as an OVR and it will automatically include the necessary script and stylesheet links (and you need to make sure the "ovr" folder is in your "addons" directory). If you are manually editing a Ryuzine file you need to place the OVR scripts in the <head> of the HTML page:
<link rel="stylesheet" type="text/css" src="addons/ovr/ovr.css" / >
<script type="text/javascript" src="addons/ovr/ovr.swap.js" ></script>
<script type="text/javascript" src="addons/ovr/ovr.config.js" ></script>
<script type="text/javascript" src="addons/ovr/ovr.js" ></script>
The OVR images are ignored by the still-image Lightbox settings, so if you are using image optimization swap-outs on your OVR content as well it has to be handled differently. Instead of giving the still image "id" to each one, name them in the order they appear in the code as "vrPic0, vrPic1, vrPic2, etc."
Image Optimizations
In the ovr.swap.js file there are data options for TWO optimized images - one for mobile devices with small screens and one for desktop systems. Other than that it works exactly like the still image optimizations for the Lightbox gallery:
var ovrCount = 1; // Number of OVR Viewers (set to 0 to disable swap-outs) //
var ovrData = [];
if (ovrCount>0) {
for (var j=0; j<ovrCount; j++) {
ovrData[j] = [];}
ovrData[0][0] = "images/manual/small/box-vr_00.jpg"; // mobile
ovrData[0][1] = "images/manual/medium/box-vr_00.jpg"; // desktop
}
You should also be aware that, unlike still images, the OVR images will not scale correctly as the browser is resized. The page needs to be refreshed to fix the OVR display after resizing the browser. For that reason it is strongly recommended that you have one size for all mobile devices and another for all desktop sizes (this assumes nobody is going to be resizing their browser between phone screen and desktop screen sizes).
For full details on how to create OVR content and implement the script consult the OVR documentation.
Enabling Localization
It is really easy to localize the user interface to another language! First make sure you enable localization in the configuration file:
var localize = 1;
Set "localize" to 1 (one) in order to enable localization, set it to 0 (zero) to disable it. Just below that are the language and country code settings:
var language = "en";
var country = "US";
The first variable is a standard two character lowercase BSD language code. The second variable is a standard two character uppercase HTML country code. Currently the valid language codes are:
|
Valid Language Codes |
Valid Country Codes |
|
en = english |
US = United States |
|
de = german |
DE = Germany |
|
es = spanish |
ES = Spain |
|
ja = japanese |
JP = Japan |
|
zh = chinese |
CN = China |
|
|
TW = Taiwan |
|
fr = french |
FR = France |
Note: CN and TW are used as stand-in references for Han Simplified (HANS) and Han Traditional (HANT).
There is a "localization.js" file in the "js" folder which MUST be loaded after the configuration file. If you need to add a language edit the "localization.js" file by adding another case for it. Or do it the lazy way and simply replace the "default" case variables with your language and leave the language and country codes empty.
Disabling Localization
If localization is disabled you do not need to include the "localization.js" script and the WebApp will use whatever language is hard coded into the HTML file. You may wish to do this if the javascript is scrambling the characters of your desired language because the text will usually display correctly if it is coded directly into the HTML page. If it is still displaying character incorrectly you may want to check/set the character encoding used in the HTML page and what encoding your browser is using. The encoding in the WebApp HTML is set to UTF-8 (Unicode) by default which should be sufficient for most languages.
User Help Information
Version 0.9.5 introduces "Bubble Guide" Help documentation. A small "bubble" animates around the screen pointing to items and activating them while displaying a short snippet of text about the feature being highlighted. The text inside the bubble can be localized as well with each "card" of information defined in the localization script.
Apologies if the included translations are inaccurate. I know very little or none of the non-english languages and used Google Translate to translate them.
IMPORTANT!
The localization settings ONLY apply to the user interface buttons and panel headers. Enabling localization will NOT translate the content of your magazine into another language. You need to compose or translate the content yourself .
Ryuzine uses a simple CSS file to theme the visual elements of the User Interface. You can radically change the look and feel of your magazine and provide customized versions targeting different devices - all from the very same Ryuzine file!
Where are the theme files?
Ryuzine does not ship with any themes preinstalled. You can either download and install one of the available themes at www.ryumaru.com or you can edit one of the files to create your own custom theme for your own use or to share with others. Just download, unzip, and drop it into the "theme" folder (and remember to upload it to your live site too).

Do I have to include a theme file?
No. The theme file is completely optional. It's just provided as an easy way to put all the UI visual settings in one convenient place and make it easy for users to share those settings with other publishers. However, without the theme file you will only see a very plain interface so it is recommended you at least use the included default theme file.
What goes into a theme file?
If you look at an existing theme file you'll probably notice that none of the styles have things like margins, height, width, font information, etc., it only has the following styles (for panels, toolbars, and buttons, not pages):
background = can be a solid color, gradient color, or image
border = can also set top, bottom, left, right; thickness and color
border-radius = rounded corners, can be limited to top, bottom, left, right
color = the color of any text inside the container
opacity = whether something is transparent, semi-transparent, or opaque
text-shadow = shadows cast by text (not supported by all browsers)
box-shadow = shadows cast by containers (not supported by all browsers)
CSS3 animations = these are applied to the panels and toggled with the panel_IN and panel_OUT styles for each panel.
There are also proprietary forms of most of these but what they all have in common is that they just set the color, transparency, edge, and lighting of the User Interface elements. The theme file is always named "theme.css" and put inside a folder with the name of the theme. Any images or fonts specific to your theme should also be bundled with it in that theme folder.
So where do I adjust the size or position of UI elements?
You can do that in a theme file since it loads after the default UI file anything you set in your theme will override the defaults.
Where do I change things like page size, fonts, margins, etc.?
That's the purpose of the "thisissue.css" file (or whatever you wish to name it). As the last of the stylesheets that is loaded it will "over-ride" any element settings that came before it. Every element you'd want to style is also tagged with a unique ID (for example "back0" and "margin-left5") that allows you to even style a specific button or box on a specific page.
Couldn't I just put all my "theme" color settings in my "thisissue.css" file?
YES! The theme file is optional, you don't have to include it at all. But even if you include a theme file and there is some specific part of it you want to change you could over-ride it in your "thisissue.css" file instead of editing the theme stylesheet, especially if it's just one or two small things you want to change. But it's up to you which file you use to determine your themes.
Can I still use themes if I am not using a configuration file?
YES! In the <head> tag just directly point the stylesheet element with the id="ui_theme" to your theme. You won't have the advantage of dynamic theme swapping, but if you only intended to use one theme for all users this is an option.
If I forget to put the themes stylesheet link in my HTML file can I still swap themes?
Yes. If theme swapping is enabled but there is no theme stylesheet element Ryuzine will automatically create one so the theme swapping will work. However, this auto-generated element is loaded AFTER all other stylesheets and could (depending on the theme) potentially over-ride some of your issue-specific styling.
Note: The more complicated the CSS for a theme is the more it may slow down the responsiveness of the web app as the browser "reflows" the page content. Try to keep complex styles to a minimum.
"Ryuzine Machine" has the ability to "skin" the Simulator devices. It ships with several skinned devices already installed including iPhone 3gs, iPhone 4s, iPad, HTC Droid, Samsung GalaxyTab 7, 7.7, and 10.1, Samsung Focus S, and BlackBerry Playbook.
If the device you want to add has a Skin simply drop its folder into the "Skins" sub-folder under "ryu_dev" to make it accessible to Ryuzine Machine.
There are two ways to add new devices to Ryuzine Machine. The first (and easiest) is to use the [+] button on the Simulator workspace to open the "Add Custom Device" dialog. There you enter the parameters of the new device, including any "skin" file it may have. Add-on Skins should have the correct device parameter written in the comments at the top of the CSS file. You can also add devices that do not have skin files and the Simulator will simply work as it did in previous versions by providing a generic device bezel. Devices added this way are ONLY available to the specific browser in which they were added, and only persist in that browser so long as the cookie file is not deleted.
The second way to add a device is in the "machine.config.js" file by editing the "devices" and "deviceList" array. Devices added this way are available across all browsers and platforms and persist even if cookie files are deleted.
Creating custom device skins is pretty easy if you have some skills with image editing. You will need a decent, undistorted image of the front of the device. Using a program like GIMP, Fireworks, or Photoshop crop the image down to just the device. Preferably you should set it against a transparent background and export as a PNG file, but this is not absolutely necessary (it just looks better). You will need two images, one in vertical orientation and one rotate 90 degrees to landscape orientation.
Scaling the image is the trickiest bit. You have to find out what the screen size of the device is, keeping in mind mobile devices use "device independent pixels" (or "dips") rather than the actual pixel dimensions of the screen. For example, an iPhone 4 has a 640x960 screen, but the rendering dimensions are the same as the iPhone 3gs (320x480). If you have the actual device you can load a media query test page to see what actual pixel dimensions Ryuzine will "see" and then add the height of any navbars, toolbars, or statusbars. If you do not have the device you may still be able to find the pixel density information in an Online Device Database or from the device manufacturer.
The easiest way to scale the device properly is to create a box with the correct dimensions at 72 dpi and overlay it on the device image in a new layer. Then scale the device image layer until the screen area on it matches the box on the layer above it. Trim away any extra space and save the image @ 72 dpi.
The last step is the skin CSS file. You can pull one from an existing skin to see how it works. Make sure to include the OS, Width, and Height (of the simulated screen) in the comments at the top of the file if you plan to share the skin with other people, so they'll know what settings to use in either the "Add Custome Device" dialog or when adding it to the "machine.config.js" file.
If you want to use a custom background image or color you can, but it is optional:
.simbox {
background: #808080 url('carbonfiber.jpg');
}
Change the following parameters to match your custom device:
.device_tablet_(port|land) for tablet devices or .device_phone_(port|land) for phone devices.
height: This is the height of the SKIN image, no screen height.
width: This is the width of the SKIN image, not screen width.
margin-top: negative (minus) of half the height of the skin image
margin-left: negative (minus) of half the width of the skin image
background: transparent url('(your_skin_image.png)') 0 0 no-repeat;
Under each is a sub-set with "#screen" which is the size and position of the simulated screen:
left: how far to push the screen box from the left and toward the right to align the left edge of the simulated screen with the left edge of the screen space on the device skin image
top: how far to push the screen box down to align the top of the simulated screen with the top of hte screen area on the skin image
width: the simulated screen width
height: the simulated screen height
Lastly, since the simulation can be displayed without the skin you need to make sure it will center properly in the Simulator box:
margin-top: negative (minus) half the height of the SCREEN
margin-left: negative (minus) half the width of the SCREEN
Then all you need to do is put all the images and the "skin.css" stylesheet in a folder, place it in your "ryu_dev" > "skins" folder, and use one of the two methods to add the device to the drop-down list. You can also zip the folder and share it with other Ryuzine Machine users.
If you aren't very familiar with creating custom classes or just want convenient shorthand methods there is a file called "simplestyles.css" in the CSS folder. You can include this file in the header of your Ryuzine magazine by adding this code:
<link rel="stylesheet" type="text/css" href="css/simplestyles.css" />
Then you can use any of the following classes on your page elements:
| Aligning Block Elements | Aligning Text Elements |
| .left | .-left |
| .right | .-right |
| .center | .-center |
| .clear* | .-justify |
| *After you align objects you should include an empty element with class="clear" applied to it to reset the flow of the page. If you don't then objects that follow may not be aligned as you expect and longer/taller objects can "spill out" of the bottom of a page. | |
| Font Sizes | |
| Sample | .xx-small |
| Sample | .x-small |
| Sample | .small |
| Sample | .medium |
| Sample | .large |
| Sample | .x-large |
| Sample | .xx-large |
In page layout there are a lot of standard names for various font weights, not all of which are used in CSS. These styles try to equate the standard names to the best corresponding web style with preset fallbacks for older browsers.
| Font Weights | ||||
| Tags/Classes | ||||
| sample | .ultra-light | .extra-light | ||
| sample | .light | .thin | ||
| sample | .book | .lighter | ||
| sample | .regular | .normal | ||
| sample | .medium | |||
| sample | .semibold | .demibold | ||
| sample | <strong>* | .bold | ||
| sample | .heavy | .black | .bolder | |
| sample | .ultra-black | .extra-black | .fat | .poster |
| * Equates the <strong> HTML tag to CSS .bold (font-weight: bold | font-weight:700). | ||||
| Font Styles | ||||
| Sample | <em>* | .italic | ||
| Sample | .oblique | |||
| Sample | .normal | |||
| Sample | <s>* | <strike>* | .del | .strike |
| Sample | <u>* | .underline | ||
| Sample | .overline | |||
| Sample | <pre>* | <code> | .code | |
| Samplesup | <sup> | .sup | Note: superscript | |
| Samplesub | <sub> | .sub | Note: subscript | |
| * These are HTML tags that are equated to CSS styles. You should use CSS for these, but if you have imported code from another program that is still using the tags the appearance will be standardized between CSS and HTML. | ||||
Simple Colors
|
Background Colors |
Text Colors |
|
.bg-black |
.black |
|
.bg-red |
.red |
|
.bg-orange |
.orange |
|
.bg-yellow |
.yellow |
|
.bg-green |
.green |
|
.bg-blue |
.blue |
|
.bg-gray |
.gray |
|
.bg-white |
.white |
There are many more colors which can be referred to by names, but you will have to create custom styles for those in your "thisissue.css" file. For all other colors you should refer to them by their hexidecimal or rgb values.
RYUZINEâ„¢ DIGITAL MAGAZINE WEB APPLICATION
Software License and Distribution Agreement for "Ryuzine" Digital Magazine Web Application and "Ryuzine Machine" Authoring Application.
BY INSTALLING OR USING THE SOFTWARE PROGRAM, YOU CONSENT ON BEHALF OF YOURSELF AND ANY ENTITY YOU REPRESENT TO BE BOUND BY, AND BECOME A PARTY TO, THIS AGREEMENT AS THE "LICENSEE." IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, YOU MUST NOT INSTALL OR USE THE SOFTWARE, AND YOU DO NOT BECOME A LICENSEE UNDER THIS AGREEMENT.
DEFINITIONS
"AUTHOR" refers collectively to Kristiana M. Hansen, duly appointed representatives, KMH Creative (www.kmhcreative.com), and Ryu Maru (www.ryumaru.com).
"DISTRIBUTORS" refers to KMH Creative (www.kmhcreative.com), Ryu Maru (www.ryumaru.com) and any other affiliates who may be added over time.
"PROPRIETARY RIGHTS" means any patent, copyright, trademark, service mark, trade secret, or other intellectual property or property right held by the Author.
"PUBLISHER" means an individual or entity who downloads the software to create or package Content in a digital format and accepts the terms of the license herein. "CONTENT" is defined as any digital text, images, scripts, audio, video or other materials which may be bundled into the Content Viewer and distributed to readers.
A "TITLE" is defined as any Content published on a periodic basis, even if infrequently, under the same Banner, Name, Heading, or Masthead. Examples of a Title would be a magazine, comic book series, newsletter, annual report, or a program booklet for a repeating event.
"AUTHORING TOOLS" refers to the "Ryuzine Machine" Software Product and components which can be used to create digital magazines.
"CONTENT VIEWER" refers to the "Ryuzine" Software Product used by the PUBLISHER to distribute digital content to readers.
"SOFTWARE PRODUCT" identified as "Ryuzine," which product includes computer software in the form of HTML, CSS, and collected Javascript code and may include associated media, images, printed materials, and "online" or electronic documentation. Use of some third party materials included in the software may be subject to other terms and conditions typically found in a separate license agreement, a read me file located with such materials or in the third party software notices and/or additional terms and conditions found at http://www.ryumaru.com.
"EFFECTIVE DATE" means the date the Software Product was downloaded and the terms of this Agreement were accepted by the Publisher, except for a Commercial License as stipulated hereunder.
GRANT OF LICENSE
Subject to the terms of this agreement, Author grants to Publisher a non-exclusive, non-transferable (except as permitted by this agreement) license under all applicable Proprietary Rights during the Term as follows:
AUTHORING TOOLS LICENSE. Publisher may use the Authoring Tools solely for the purpose of developing a Ryuzine magazine to be displayed using the Content Viewer. Publisher may not distribute the Authoring Tools to any third party. Publisher may sub-contract development to a third party using the Authoring Tools on the Publisher's behalf, provided that:
CONTENT VIEWER LICENSE. Publisher may distribute the Content Viewer to Publisher's End Users (including but not limited to "Readers" and "Subscribers") and use any available methods to grant to Publisher's End Users the license to access online or download for offline use the Content Viewer for their personal use via an End User License Agreement (EULA), Terms of Service (TOS), or Terms of Use (TOU). Such license shall ensure that the Content Viewer is distributed to Publisher's End Users under an enforceable license agreement in favor of the Publisher, the Publisher's suppliers and distributors, and shall contain the following minimum license terms:
OBLIGATIONS AND RESTRICTIONS
Non-Commercial Use. Author grants a free, no-cost license to use the Authoring Tools and distribute Content with the Content Viewer to Publisher if Publisher meets the following conditions:
End Users are not being charged to access or download the Content Viewer
Publisher is not receiving revenue or compensation of monetary value for any of the Content presented with the Content Viewer via sponsorship, advertising, or other revenue generating means presented with or within the Content Viewer.
Content Viewer is not embedded in another document or application supported by advertising, requiring payment for access, or otherwise generating revenue.
Non-Profit corporate status does not determine whether use is non-commercial.
Commercial Use. Any use of the Software Product to create or present content which generates revenue, income, or compensation of monetary value of any kind by any means is considered "Commercial Use" under the terms of this Agreement. Commercial Use requires the purchase of a Commercial License as defined within the terms of this Agreement.
Terms of Use. Except with the Author's prior written consent or as otherwise expressly permitted in this Agreement, Licensee may NOT:
Use of Publisher's Name. The Software Product Author, duly appointed representative, or Distributor may, at its sole discretion, list Publisher's name on the KMH Creative (www.kmhcreative.com) or Ryu Maru (www.ryumaru.com) web site as a licensee of the Software Product for the purposes of marketing and promotion of the Software Product.
Installation. This Software Product does not require a typical software installation. It works in conjunction with an existing installation of a compatible web browser and web server software. Some pages and scripts utilized by the software program may be copied and retained in your web browser's cache file or stored (temporarily) in the memory of your computer. This Agreement applies to a single Publisher's Title. Multiple issues of a single Title can use a single installation of the Software Product.
Upgrades. If the Software Product is labeled or otherwise identified as an "upgrade", you must be properly licensed to use a product identified as being eligible for the upgrade in order to use the software product. A Software Product labeled or otherwise identified as an upgrade replaces and/or supplements the product that formed the basis for your eligibility for such upgrade. You may use the resulting upgraded product only in accordance with the terms of this Agreement. If the Software Product is an upgrade of a component of a package of software programs that you licensed as a single product, the Software Product may be used and transferred only as part of that single product package and may not be separated for use on more than one computer or web host.
Governing Law. If you acquired or use this Software Product in the United States, this Agreement is governed by the laws of the State of Minnesota. If this Software Product was acquired or accessed outside of the United States, the end user agrees that the Federal Laws of the United States of America and of the State of Minnesota shall be applied. Questions or other contact should be directed to this email address: info@ryumaru.com.
COMMERCIAL LICENSE
Any use of the Software Product to create content which generates revenue or income by any means is considered "Commercial Use" and requires the purchase of a non-refundable, non-transferable, per-title Commercial License from Author hereafter referred to as the "LICENSE FEE." Each Publisher's Title which generates such revenue shall require purchase of a separate Commercial License. The Effective Date of a Commercial License begins when all required information has been provided and payment has cleared. A confirmation e-mail/receipt will be sent to the Licensee indicating the exact Effective Date the Commercial License was put in force. Regarding the Commercial License the Author shall:
Upon completion of the License Fee transaction and provision of all required information the Commercial License shall authorize the Publisher to:
TERMINATION OF LICENSE
Without prejudice to any of the Author's other rights, the Author (or duly appointed representatives) may terminate this Agreement if you fail to comply with the terms and conditions of the License. Author reserves the right to terminate this Agreement over any content or use deemed inappropriate or illegal, or offensive, or potentially or actually harmful in any respect, or negatively affects the Author, Distributor, or Software Product. In such event, you must destroy all copies of the Software Product and all of its component parts in your possession and agree to cease any and all access of the hosted application and related web sites.
PRIVACY PROVISION
No personal information is collected nor transmitted by the Software Product. Any cookie files, cache files, or data storage are written to your computer and are not normally accessed by any application other than your web browser or by any HTML page other than those associated with this Software Product. No guarantee is made that such data cannot be intercepted, accessed, or transmitted by third party application, computer virus, worm, or other unauthorized access to your computer. The Author and Distributor(s) of this software product do not collect nor transmit any personal or identifying information via this Software Product. If you choose to provide information voluntarily it will not be shared with any third parties without your express, written permission to do so. if you access the Software Product online certain data about your usage may be logged and tracked by either the Distributor or the web host owning/operating the server on which the Software Product is accessed. This information is usually limited to your IP address but may log more detailed session data. The Author will not share any data collected by the Author with any third parties. Individual Distributor(s), or web host(s) may have their own terms of service or privacy provisions.
WORKS CREATED OR DISTRIBUTED WITH SOFTWARE PRODUCT
The Authoring Tools were designed for Publishers to produce digital Content in the Ryuzine format and distribute it to the Publisher's End Users with the Content Viewer portion of the Software Product. No claims are made by the Author, Distributor(s), web host(s), or other authorized representative(s) against the intellectual property rights of any artistic work licensee(s) might create or utilize this Software Product to create, distribute, or display. The Author, Distributor(s), web host(s), or other authorized representative(s) will not be held liable for any losses or litigation resulting from artistic works created, used, included, contained, distributed in whole or in part, with this Software Product. Publishers using this Software Product are responsible for securing the intellectual property rights, licenses, or other authorization for the Content used by the Authoring Tools or in the Content Viewer.
GENERAL PROVISIONS
If any part of this agreement is found void and unenforceable, it will not affect the validity of the balance of this agreement, which shall remain valid and enforceable according to its terms. This agreement shall not prejudice the statutory rights of any party dealing as a consumer. This agreement may only be modified by a writing signed by the Author. Updates may be licensed to Publisher by Author with additional or different terms. This is the entire agreement between Author and Publisher relating to the Software Product and it supersedes any prior representations, discussions, undertakings, communications or advertising relating to the Software Product.
PROPRIETARY RIGHTS
Author claims the "Ryuzine" name and Ryuzine Logo as Trademarks and claims exclusive worldwide Copyright on the code and designs used by the Software Product. Copyrighted and Trademarked material may not be used outside of the terms of this Agreement without express written permission. There are usage guidelines for the Ryuzine name and logo specified at www.ryumaru.com.
NO WARRANTY
The Software Product, is being delivered to Publisher AS IS and with ALL FAULTS. AUTHOR AND AUTHORIZED DISTRIBUTORS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS PUBLISHER MAY OBTAIN BY USING THE SOFTWARE. EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION OR TERM THAT CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO PUBLISHER IN PUBLISHER'S JURISDICTION, AUTHOR AND AUTHORIZED DISTRIBUTORS MAKE NO WARRANTIES CONDITIONS, REPRESENTATIONS, OR TERMS (EXPRESS OR IMPLIED WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER INCLUDING WITHOUT LIMITATION NONINFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. PUBLISHERMAY HAVE STATUTORY WARRANTY RIGHTS UNDER LAW IN PUBLISHER'S JURISIDCTION THAT MAY NOT BE DISCLAIMED BY AUTHOR.
The foregoing exclusions and limitations will apply to the maximum extent permitted by applicable law, even if any remedy fails its essential purpose. The provisions of the Warranty and Liability sections of this Agreement shall survive the termination of this Agreement, however caused, but this shall not imply or create any continued right for Publisher to use the Software Product after termination of this agreement.
LIMITATION OF LIABILITY.
IN NO EVENT WILL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO PUBLISHER FOR ANY DAMAGES, CLAIMS OR COSTS WHATSOEVER ARISING FROM THIS AGREEMENT AND/OR PUBLISHER'S USE OF THE Software Product, INCLUDING WITHOUT LIMITATION ANY CONSEQUENTIAL, INDIRECT, INCIDENTAL DAMAGES, OR ANY LOST PROFITS OR LOST SAVINGS, EVEN IF THE AUTHOR, AUTHOR'S REPRESENTATIVE, OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, COSTS, OR CLAIMS. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN PUBLISHER'S JURISDICTION. IN ANY EVENT, AUTHOR'S AGGREGATE LIABILITY AND THAT OF AUTHOR'S DISTRIBUTORS OR DULY APPOINTED REPRESENTATIVES UNDER OR IN CONNECTION WITH THIS AGREEMENT SHALL BE LIMITED TO FIFTY U.S. DOLLARS ($50.00).
Nothing contained in this Agreement limits Author's liability to Publisher in the event of death or personal injury resulting from Author's negligence or for the tort of deceit (fraud). Author is acting on behalf of Author's Suppliers, Distributors, and duly appointed representatives for the purpose of disclaiming, excluding and/or limiting obligations, warranties and liability as provided in this agreement, but in no other respects and for no other purpose.
There are additional resources available online to help you create Ryuzine publications.
User Forums: http://www.ryumaru.com/forum
Themes: Get Themes
Templates: Sample Magazine
Skins: Get Skins
http://www.kmhcreative.com/downloads/MQ.htm
http://www.kmhcreative.com/downloads/CSS2SVG.htm
(Webkit and Firefox 4+)
https://github.com/atornblad/addTouch (source code)
http://attrakt.se/blog/2010/12/using-addtouch-to-emulate-webkit-touch/ (how-to use)
Add "?_addTouch=webkit" to the end of the "ryuzinemachine.htm" URL. Load/build your magazine in the editor. "WebAppify!" it and then in the processed file box add the following in between the <head> tag:
<script type="text/javascript" src="js/addTouch.js"></script>
<link rel="stylesheet" type="text/css" href="css/addTouch.css">
Click "Update Simulation" and now the device simulator will show representations of multi-touch events. Note, however, pinch/spread zooming is not supported - just taps and swipes. Also note that this was not included by default because there are problems with actually using it to navigate the simulation.
Normal
Sepia
Black
Font -
◑
Font +
Disabling features can improve performance.
Older browsers cannot display some options.
Close Panel
X
X
1. Tabs 2. Editor controls 3. WebAppify
4. Editor Toolbar 5. Elements 6. Editor Window
7. My Styles panel 8. Editor Status Bar
X
Code Edit with Preview
X
1. Press [#] for Unique Elements
2. Double-click "My Styles" to dock/undock panel
X
Press [Load Template] and enter options you want.
Then press [Submit]
X
1. Disabled Editor Tools
2. Ryuzine Elements 3. WYSIWYG Editor
4. Styles from thisissue.css
X
Press [Load File], enter path to file, press blue [Load File] button
X
1. Source File 2. Load Ryuzine File 3. Ryuzine File
4. Custom Styles 5. Go to Simulator option 6. Update Simulation
X
1. Device List 2. New Device 3. Rotate Device
4. App/Browser View 5. Device/Screen View 6. Simulation
X
(Option) Screen Only removes device bezel
X
Add Custom Device Dialog
Press Here to Open Controls
+/-