WO2008127474A1 - Publishing, importing, and formatting web page modules - Google Patents

Publishing, importing, and formatting web page modules Download PDF

Info

Publication number
WO2008127474A1
WO2008127474A1 PCT/US2007/088249 US2007088249W WO2008127474A1 WO 2008127474 A1 WO2008127474 A1 WO 2008127474A1 US 2007088249 W US2007088249 W US 2007088249W WO 2008127474 A1 WO2008127474 A1 WO 2008127474A1
Authority
WO
WIPO (PCT)
Prior art keywords
web page
user
module
modules
source code
Prior art date
Application number
PCT/US2007/088249
Other languages
French (fr)
Inventor
Edward Frederick
Aaron Batalion
Timothy O'shaughnessy
Original Assignee
Edward Frederick
Aaron Batalion
Timothy O'shaughnessy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Edward Frederick, Aaron Batalion, Timothy O'shaughnessy filed Critical Edward Frederick
Publication of WO2008127474A1 publication Critical patent/WO2008127474A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Definitions

  • This disclosure relates to publishing, importing, and formatting web page modules.
  • Web pages are documents that generally are composed in a markup language (e.g., hypertext markup language (HTML), extensible HTML (XHTML), extensible markup language (XML)), are accessible over the World Wide Web (WWW), and may be rendered in a web browser.
  • markup language e.g., hypertext markup language (HTML), extensible HTML (XHTML), extensible markup language (XML)
  • HTML hypertext markup language
  • XHTML extensible HTML
  • XML extensible markup language
  • WWW World Wide Web
  • a request to access a web page is received from a user, and, in response, a manifest is identified that is associated with the requested web page, that identifies a template that defines a structural layout for the requested web page, that specifies multiple discrete modules to be included in the requested web page, and that specifies locations for the multiple discrete modules within the defined structural layout for the requested web page.
  • the identified manifest is accessed, and, based on the accessed manifest, a markup language framework (e.g., an edge side includes framework) is generated for the requested web page.
  • the markup language framework for the requested web page specifies the structural layout for the requested web page and includes references to the modules to be included in the requested web page that enable the modules to be accessed and included within source code for the requested web page.
  • Source code for the requested web page is assembled. Assembling the source code for the requested web page includes parsing the markup language framework for the requested web page and identifying the references to the modules to be included in the requested web page and fetching the referenced modules and replacing the references to the modules with the fetched modules, hi addition, assembling the source code for the requested web page includes including a script within the source code for the requested web page that facilitates selection and importation of modules from the assembled source code for the requested web page into source code of other web pages. The assembled source code for the requested web page then is served to the user, and rendering, to the user, of the assembled source code for the requested web page in a display mode is enabled.
  • the rendered web page includes a selectable indicator that enables the user to request that the rendered web page transition to a portable module mode.
  • the rendered web page is transitioned from the display mode to the portable module mode. Transitioning the rendered web page from the display mode to the portable module mode includes invoking the script that facilitates selection and importation of modules from the assembled source code for the requested web page into source code for other web pages, causing a veneer that visually identifies individual modules that are available for importation into other web pages to overlay the rendered web page, and enabling the user to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages.
  • Implementations may include one or more of the following features. For example, after transitioning the rendered web page from the display mode to the portable module mode, a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages may be received, hi response, a network address for the selected module may be identified and provided to the user such that the user can embed the network address for the selected module in source code for a different web page, and the module can be accessed when a browser renders the source code for the different web page, hi an alternative implementation, in response to receiving the selection by the user, an encrypted representation of a network address for the selected module may be provided to the user such that the user can embed the encrypted representation of the network address in source code for a different web page.
  • the encrypted representation of the network address and a request to access a module may be received from a browser that is attempting to render the source code for the different web page, and, in response to receiving the encrypted representation of the network address and the request to access a module, it may be determined that the encrypted representation of the network address corresponds to the network address for the selected module, and the selected module may be accessed by the browser attempting to render the source code for the different web page.
  • source code for the selected module in response to receiving the selection by the user, may be identified and provided to the user such that the user can embed the source code for the selected module in source code for a different web page.
  • a personal collection of modules may be maintained on behalf of a user. After transitioning the rendered web page from the display mode to the portable module mode, a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages may be received, and, in response, a representation of a network address for the selected module may be saved in the personal collection of modules maintained on behalf of the user.
  • the user may be provided access to a different web page, for which the source code includes a different script that facilitates editing the source code for the different web page.
  • the user may be able to edit the source code for the different web page only when the different script that facilitates editing the different web page is invoked.
  • the source code for the different web page may be rendered and a data object model for the different web page may be created. A request from the user to edit the different web page may be received, and, in response, the different script that facilitates editing the source code for the different web page may be invoked.
  • a request from the user to reformat a particular module included in the different web page also may be received, and, in response, the data object model for the different web page may be modified in accordance with the request to reformat the particular module, and the rendered different web page may be updated to reflect the modified data object model for the different web page.
  • a request from the user to save the different web page including the reformatted module also may be received, and, in response, the source code for the different web page may be modified to reflect the modified data object model for the different web page and the modified source code for the different web page may be saved.
  • the different script that facilitates editing the different web page may be invoked and the user may be provided with access to one or more modules from the personal collection of modules maintained on behalf of the user, including a module the user selected for importation from another page.
  • a request may be received from the user to import the selected module into the different web page, and, in response, the data object model for the different web page may be modified to include a representation of the selected module, and the rendered different web page may be updated to reflect importation of the selected module into the different web page.
  • a request may be received from the user to save the different web page including the selected module, and, in response, the representation of the network address for the selected module may be identified, the source code for the different web page may be modified to reflect the modified data object model for the different web page including embedding the representation of the network address for the selected module in the source code for the different web page, and the modified source code for the different web page may be saved.
  • a request may be received from a browser associated another user to access the different web page.
  • the browser associated with the other user may be provided the modified source code for the different web page including the embedded representation of the network address for the selected module.
  • a request to access the network address for the selected module may be received from the browser associated with the other user while the browser associated with the other user is attempting to render the source code for the different web page.
  • the selected module may be provided to the browser associated with the other user for rendering within the different web page.
  • a request may be received from the user to reformat the selected module (e.g., resize and/or reformat text) in the different web page.
  • the data object model for the different web page may be modified in accordance with the request to format the particular module, and the rendered different web page may be updated to reflect the modified data object model for the different web page, hi some cases, the updated rendered web page may include a pixel perfect representation of the reformatted particular module.
  • a module may include pre-defined content and subscribe to contextual content, hi such implementations, fetching the module and replacing the reference to the particular module with the fetched particular module may include fetching the particular module including the pre-defined content, determining appropriate contextual content to include in the particular module, fetching the determined appropriate contextual content to include in the particular module, assembling the fetched contextual content in the fetched particular module, and replacing the reference to the particular module with the assembled particular module including the fetched pre-defined content and the fetched contextual content.
  • a web site may include multiple sections, each of which includes multiple web pages and is associated with one or more contexts.
  • the requested web page may be part of such a web site, hi such cases, appropriate contextual content to include in the particular module may be determined by determining that the requested web page is located within the particular section of the web site, determining a context for the requested web page based on determining that the requested web page is located within the particular section of the website, and determining appropriate contextual content to include in the particular module based on the determined context for the requested web page.
  • a user profile that stores one or more attributes for the user may be maintained for the user, hi such implementation, determining appropriate contextual content to include in a module may include accessing the user profile maintained for the user, identifying one or more attributes for the user from the accessed user profile, and determining appropriate contextual content to include in the particular module based on the identified attributes for the user.
  • a network address for the selected module that enables access to both the pre-defined content for the module and appropriate contextual content for the module may be identified and provided the user such that the user can embed the network address for the selected module in source code for a different web page and the module including the pre-defined content and the determined appropriate contextual content can be accessed when a browser renders the source code for the different web page.
  • an encrypted representation of a network address for the selected module may be provided to the user such that the user can embed the encrypted representation of the network address in source code for a different web page.
  • the encrypted representation of the network address and a request to access a module may be received from a browser that is attempting to render the source code for the different web page, and, in response, it may be determined that the encrypted representation of the network address corresponds to the network address for the selected module, and the selected module, including both predefined content for the module and appropriate content for the module, may be made accessible to the browser attempting to render the source code for the different web page.
  • the manifest associated with the requested web page may specify relative locations for the multiple discrete modules within web page screen real estate for the requested web page. Furthermore, in some implementations, all of the modules may available for importation from the assembled source code for the requested web page into source code for other web pages, while, in other implementations, some, but not all, of the modules may be available for importation from the assembled source code for the requested web page into source code for other web pages. Additionally or alternatively, the user may be able to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages only when the rendered web page is in the portable module mode.
  • a request to access a web page that includes multiple discrete modules is received from a user, hi response, the web page is displayed in a display mode, during which at least one of the modules is locked and unavailable for importation into other web pages.
  • a control enables the user to request that the web page be transitioned from display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation during display mode are unlocked and available for importation.
  • the web page is transitioned to portable module mode, modules that are available for importation into other web pages are visually distinguished, and user selection of one or more of the visually distinguished modules for importation into other web pages is enabled.
  • Implementations may include one or more of the following features. For example, during display mode, all of the modules may be locked and unavailable for importation into other web pages. Additionally or alternatively, during display mode boundaries separating the modules may be transparent or otherwise not identifiable.
  • a computer program embodied on a computer-readable medium includes instructions that, when executed, cause a computer to receive a request from a user to access a web page that includes multiple discrete modules and that is part of a web site.
  • the computer program also includes instructions that, when executed by a computer, cause a computer to display the requested web page to the user in a display mode, during which at least one of the modules are locked and unavailable for importation into other web pages, hi addition, the computer program also includes instructions that, when executed, cause a computer to enable user selection of a control that enables the user to request that the displayed web page be transitioned from display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages.
  • a system includes a memory and a processor configured to receive a request from a user to access a web page that includes multiple discrete modules and that is part of a web site that includes multiple web pages, and, in response, display the requested web page to the user in a display mode, during which at least one of the modules are locked and unavailable for importation into other web pages.
  • the processor also is configured to enable user selection of a control that enables the user to request that the displayed web page be transitioned from the display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages.
  • the processor is further configured to, in response to user selection of the control, transition the displayed web page from display mode to portable module mode, visually distinguish modules that are available for importation from the displayed web page into other web pages, and enable user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages.
  • the various aspects, implementations, and features may be implemented using, for example, one or more of a method, an apparatus, a system, an apparatus, system, tool, or processing device for performing a method, a program or other set of instructions, an apparatus that includes a program or a set of instructions, and a computer program embodied in a tangible computer readable medium.
  • the tangible computer readable medium may include, for example, instructions, software, images, and other data.
  • FIG. 1 is a screenshot of an example of a web page that includes multiple modules.
  • FIG. 2 is a screenshot that illustrates an example of a veneer that is superimposed over a displayed web page to identify modules within the displayed web page that are available for importing to other web pages.
  • FIG. 3 is a screenshot of a web page that illustrates an example of a change to the web page upon selection of a module for importation into another web page.
  • FIG. 4 is an example of a portion of source code corresponding to the selected module of FIG. 3.
  • FIG. 5 is a screenshot of a web page that illustrates an example of a pop-up window informing a user that a selected module from the web page has been saved for later importation into another web page.
  • FIG. 6 is a screenshot of a web page that illustrates an example of a pop-up window that provides a resource to a user that enables the user to import a selected module from the web page into a different web page hosted by a different web page hosting service.
  • FIGS. 7-9 are screenshots of web pages that illustrate examples of changes to the web pages upon selection of modules for importation into other web pages.
  • FIGS. 1Oa-IOd, 1 Ia-I Ie, 12a, 12b, 13a-13d, 14a, 14b, 15a, and 15b are screenshots of examples of web pages in edit mode.
  • FIG. 16 is a screenshot of an example of a web page in edit mode that enables a user to revert back to previous versions of the web page.
  • FIGS. 17a- 17c are screenshots of an example of a web page in edit mode that enables a user to search for modules to include in the web page.
  • FIG. 18 is a block diagram of an example of a collection of different templates for web pages that may be used by a web site to generate and publish web pages for a user of the web site.
  • FIG. 19 is a hierarchical tree diagram that illustrates an example of a structure for a web site and an example of a manifest for a particular web page within the web site.
  • FIG. 20 is a block diagram of an individual module that may be incorporated into different web pages.
  • FIG. 21 is block diagram that provides an illustration of an example of how a framework for a web page can be created from a manifest for the web page by slotting individual modules into appropriate locations within a web page template as specified by the manifest.
  • FIG. 22 is a block diagram that provides an illustration of an example of how final source code for a web page can be constructed from a framework for the web page.
  • FIG. 23 is a flowchart of an example of a process for publishing a web page that includes multiple modules of web content and for enabling a user to select and import one or more of the modules into one or more other web pages.
  • a web page may be composed of multiple discrete modules that may be selected (e.g., "clipped") by a viewing user and added by that viewing user to another web page.
  • the viewing user may request access to the web page that is composed of multiple discrete modules and, in response, the requested web page, including the multiple modules, may be rendered for the viewing user in a display mode. While the rendered web page is in display mode, the modules included in the web page may be displayed in such a fashion that the viewing user may not be able to perceive that the web page includes multiple modules. Furthermore, while the rendered web page is in display mode, the modules included in the web page may be locked such that the modules are not available to be "clipped" by the viewing user and added by the viewing user to another web page.
  • the rendered web page may include a selected control (e.g., an icon) that enables the user to request that the rendered web page be transitioned from the display mode into a portable module mode during which one or more of the modules included in the web page are unlocked and made available to be "clipped" by the viewing user and added by the viewing user to another web page.
  • a selected control e.g., an icon
  • web page modules may be stored in a library or other collection or data store and made available to users for importation into one or more other web pages.
  • Such modules may be static or dynamic and they may include various types or kinds of web content.
  • Modules may be added to or removed from a web page, and modules in a web page may be edited and/or formatted. For instance, as modules are added to a web page, they may be edited and/or formatted using a formatting toolbar that overlays the module.
  • "pixel perfect" editing and/or formatting of the imported module and the web page may be enabled such that, while the module is being edited and/or formatted, the module appears exactly as it will (or at least substantially the same as it will) when the web page is saved and later rendered. The ability to achieve pixel perfect editing and/or formatting may reduce or eliminate the need to "preview" the web page while editing and/or formatting the web page.
  • source code defining the web page may not exist prior to the user requesting access to the web page. Rather, a manifest for the web page that defines the general layout and/or structure of the web page may exist prior to the user requesting access to the web page.
  • a publishing tool e.g., a host server system and/or software executing on a host server system
  • the source code for the identified modules, or references to the source code for the actual modules are incorporated into the actual source code that defines the web page and the source code that defines the web page is served to the user for rendering in the user's web browser.
  • references to the source code for the actual modules e.g., uniform resource locators (URLs)
  • URLs uniform resource locators
  • a user may be able to identify the one or more different modules included in a web page when the web page is rendered.
  • the one or more different modules may be combined in a seamless fashion such that a user (at least initially) may not be able to perceive that the rendered web page actually is composed of multiple modules.
  • one or more of the modules in a web page rendered for a user may be selectable such that the user can select and import one of the modules from the web page into a different web page.
  • FIG. 1 is a screenshot of a rendered web page 100 that includes multiple modules such as, for example, modules 102, 104, 106, 108, and 109.
  • Web page 100 may include additional modules that are not called out explicitly or otherwise identified in FIG. 1. For the purposes of illustration, dark outlining has been used to distinguish modules 102, 104, 106, 108, and 109 from the remainder of the web page 100. However, absent the dark outlining used to distinguish modules 102, 104, 106, 108, and 109 for the purposes of FIG. 1, a viewer of the web page 100 may not be able to perceive that the web page 100 includes multiple individual modules.
  • Web page 100 also includes a module clip button 110 that, when selected, enables a user to select and clip one or more modules, such as, for example, modules 102, 104, 106, 108, and 109 from web page 100 for importation into another web page.
  • Selection of the module clip button 110 triggers the invocation of a script (e.g., a JavaScript) that generates an overlay or veneer that is superimposed over the web page 100 and that visually distinguishes modules of web page 100 that are available to be clipped and imported into another web page from modules and components of web page 100 that are not be available to be clipped and imported into another web page.
  • a script e.g., a JavaScript
  • FIG. 2 is a screenshot of web page 100 after selection of module clip button 110.
  • selection of module clip button 110 triggered launch of a script that generated a veneer that has been superimposed over web page 100 and that applies a discernible shading to modules 102, 104, 106, and 108 to depict that these modules are available to be clipped and imported into another web page.
  • Modules that are available to be clipped and imported into another web page may be selected in order to initiate the clipping and importing process.
  • Various different mechanisms may exist for selecting a module.
  • a module may be selected by performing a "mouseover" of the module, by double-clicking the module using a mouse or similar pointing device, or through one or more keystrokes.
  • the selection and "clipping" of modules from web page 100 also maybe implemented via the script that was initiated when the user selected the module clip button 110.
  • module 102 has been selected by a user.
  • the script responsible for enabling the selection and clipping of modules from web page 100 causes a "Clip It” button 102(a) and a "Syndicate” button 102(b) to be presented to the user.
  • selection of the "Clip It” button 102(a) triggers a script that enables a user to clip and save a selected module, in this case module 102, to a "Clipboard” for later importation into another web page.
  • the source code for the selected module, or a unique token or iframe may be saved to a "Clipboard" for the user.
  • selection of the "Syndicate" button 102(b) triggers a script that enables a user to syndicate (e.g., export to a web page hosted by a different web page hosting service) a selected module, in this case module 102, to a web page by providing the user with a unique token or iframe that may be embedded within the source code of the importing page and that will cause the module to be rendered when the web page is rendered, hi alternative implementations, the actual source code for the module may be embedded within the importing web page.
  • a script that enables a user to syndicate (e.g., export to a web page hosted by a different web page hosting service) a selected module, in this case module 102, to a web page by providing the user with a unique token or iframe that may be embedded within the source code of the importing page and that will cause the module to be rendered when the web page is rendered, hi alternative implementations, the actual source code for the module may be embedded within the importing web page.
  • FIG. 4 presents an example of a portion 400 of the source code for rendered web page 100 that corresponds to module 102.
  • the source code portion 400 includes a module clipping element 402 as well as elements 404 that specify content to be displayed when module 102 is rendered, hi addition, the portion 400 references tokens associated with module 102 that may facilitate the syndication of module 102 to other web pages and/or that may facilitate the importation of module 102 into other web pages.
  • selection of the "Clip It” button 102(a) triggers a script that enables a user to clip and save a selected module, in this case module 102, to a "Clipboard” for subsequent importation into another web page. As illustrated in FIG.
  • selection of the "Clip It” button 102(a) causes the script to display a pop-up window 110 indicating that the module has been saved to a "Clipboard” for later importation into another web page
  • selection of the "Clip It” button 102(a) also causes the script to add a token (e.g., object or address identifier) associated with module 102 to a collection of tokens (e.g., the "Clipboard") that are associated with the user, thereby enabling the user to subsequently import module 102 into one or more other web pages.
  • a token e.g., object or address identifier
  • the one or more scripts that enable selection and clipping of modules from web page 100 may be implemented using a variety of different scripting languages/paradigms or applications that enable dynamic web page interaction, such as, for example, JavaScript and/or asynchronous JavaScript and extensible markup language (AJAX).
  • JavaScript and/or asynchronous JavaScript and extensible markup language (AJAX).
  • AJAX asynchronous JavaScript and extensible markup language
  • selection of the "Syndicate" button 102(b) invokes a script that enables a user to syndicate a module, in this case, module 102 from web page 100, to a different web page hosted by a different web page hosting service.
  • selection of the "Syndicate” button 102(b) causes the script to display a pop-up window 112 that includes a ⁇ script> tag that references a JavaScript and a token associated with module 102 that can be added to the source code of the web page to which module 102 is to be syndicated.
  • Adding the ⁇ script> tag to the destination web page enables importation of the module into the web page because, when the destination web page is rendered, the JavaScript makes a request to a server where the token resides, and the token may be converted into a URL that enables the module to be rendered.
  • multiple modules included in rendered web page 100 may be selected for importation into one or more other web pages.
  • FIG. 7 illustrates that module 104 may be selected for importation into one or more web pages
  • FIG. 8 illustrates that module 109 may be selected for importation into one or more web pages
  • FIG. 9 illustrates that module 108 maybe selected for importation into one or more web pages.
  • FIG. 10a is a screen shot of a blank web page 1000 that may be edited by a user.
  • the markup language source code generated and sent to the client computer on which web page 1000 was rendered is presented in Appendix B.
  • a script is invoked that enables the user to edit web page 1000 (and ultimately the markup language source code for the web page 1000) in a "what you see is what you get" (WYSIWYG) fashion.
  • the script may comprehend the changes being made to the web page's data object model (DOM) and the web page 1000 displayed to the user may be updated accordingly.
  • DOM data object model
  • the web page 1000 is in edit mode (e.g., the script that enables the user to edit the web page currently is invoked).
  • edit mode e.g., the script that enables the user to edit the web page currently is invoked.
  • a user may edit the web page 1000 by, for example, importing one or more modules into the web page 1000 from one or more other web pages.
  • the script causes a clipboard 1002 and a web page canvas 1004 that provides an illustration of what the web page may look like when rendered to be displayed.
  • the user may select "Save" button 1005 which causes the script to save the changes the user has made to the web page's DOM as source code stored on the web server that hosts the web page 1000, thereby enabling subsequent presentation and/or publication of the web page to one or more other users.
  • "Save" button 1005 causes the script to save the changes the user has made to the web page's DOM as source code stored on the web server that hosts the web page 1000, thereby enabling subsequent presentation and/or publication of the web page to one or more other users.
  • the web page's DOM may exist in a first state. Thereafter, as the user edits the blank web page 1000 by, for example, incorporating modules into the blank web page, changes are made to the web page's DOM to reflect the user's edits to the web page 1000.
  • the web page's DOM exists in a second state that is different than the first state and the changes that occurred to transition the DOM from the first state to the second state are interpreted and the source code for the web page is modified accordingly.
  • clipboard 1002 may be expanded to view, among other features, different modules that have been added to the clipboard 1002 and that may be imported into the web page 1000.
  • clipboard 1002 may include various different modules 1006, 1008, 1010, 1012, and 1014 that have been selected and saved by a user from other web pages, hi some implementations, each individual user may have his/her own unique clipboard.
  • the modules stored in one or more users' clipboards may overlap with the modules stored in one or more other users' clipboards.
  • the modules included in a user's clipboard may have been added to the user's clipboard by adding tokens associated with the modules to the user's clipboard or by otherwise associating tokens associated with the modules with the user.
  • one or more of the modules available from the user's clipboard may differ slightly from the state in which the modules existed in their source pages. For example, subsequent to the user saving a module to the user's clipboard, a different user may modify a module associated with a token stored in the user's clipboard such that when the module associated with the token in the clipboard is made available to the user through the user's clipboard, it reflects the modifications that the other user made to the module.
  • the user originally may have selected a first version of the module for inclusion in the user's clipboard, but, when the user accesses the user's clipboard, a second version of the module may be made available to the user.
  • modifications made to a module after the user has saved the module to the user's clipboard may not be reflected in the version of the module saved in the user's clipboard.
  • the script that enables the user to edit the web page 1000 enables the user to add modules from the clipboard 1002 to the web page 1000 by "dragging and dropping" modules included in the clipboard 1002, such as modules 1006, 1008, 1010, 1012, and 1014, onto the web page 1000 by adding one or more of the modules to the web page canvas 1004.
  • a module in the clipboard 1002 may be selected by, for example, performing a "mouseover" of the module, by using a mouse or similar pointing device to double click the module, or through one or more different keystrokes, and added to the web page canvas 1004.
  • a token associated with the module is added to the source code for the web page 1000.
  • size, location, and other formatting information for the module may be included within (or otherwise referenced by) the token.
  • the token associated with the module (and including any size, location, or other formatting information) may be passed to a publishing tool that coverts the token into a URL for the module, thereby enabling the module to be rendered.
  • FIGS. 1 Ia-I Ie graphically illustrate an example of a process by which one or more modules from the clipboard 1002 may be added to the web page canvas 1004 for ultimate inclusion in the web page 1000.
  • selection of module 1006 causes a script to display a "Place Module” button 1006(a).
  • selection of the "Place Module” button 1006(a) results in the script modifying the web page's DOM such that an instance 1006' of module 1006 is added to the web page canvas 1004.
  • a user may move the instance 1006' of module 1006 to another location within the web page canvas 1004 and/or the user may resize the instance 1006' of module 1006.
  • the instance 1006' of module 1006 may be resized by clicking and dragging resize tab 1116.
  • FIG. lie is a screenshot of the web page 1000 in which the instance 1006' of module 1006 has been moved and resized relative to the position and size of the instance 1006' of module 1006 illustrated in FIG. 1 Ib.
  • the illustration of the web page 1000 presented in the web page canvas 1004 during edit mode may represent a "pixel perfect" illustration of the web page 1000. That is to say, in some implementations, the illustration of the web page 1000 presented in the web page canvas 1004 during edit mode may be exactly the same as (or at least substantially the same as) the web page 1000 will appear when the web page 1000 subsequently is rendered.
  • FIG. 1 Id is a screenshot of the web page 1000 after selection of the "Save" button 1005.
  • the web page 1000 may be displayed without the clipboard 1002 such that the web page 1000 appears substantially the same as, or exactly the same as, the web page canvas 1004 appeared prior to selection of the "Save” button 1005.
  • Source code for the rendered web page 1000 illustrated in FIG. 1Od after the instance 1006' of module 1006 has been added and saved to the source code for the web page 1000 is presented in Appendix C.
  • the web page 1000 when the web page 1000 has been saved and is not in edit mode, the web page 1000 includes an "Edit page" button 1118. Selection of the "Edit page” button 1118 invokes the script that enables the user to edit the web page 1000 again and returns the web page 1000 to edit mode.
  • the user that authored the web page may be allowed to edit the web page 1000.
  • a rostered list of authorized users e.g., specified by the user and/or a system administrator
  • FIG. 1 Ie is a screenshot of the web page 1000 after selection of the "Edit page" button 1118 of FIG. 1 Id has returned the web page 1000 to edit mode and an instance 1010' of module 1010 has been added to the web page canvas 1004.
  • the script that enables the user to edit the web page may enable modules in addition to the modules saved in the user's clipboard 1002 to be added to the web page canvas 1004. For example, as illustrated in FIG.
  • the clipboard 1002 includes an "Image” button 1018 that, when selected, causes the script to enable a user to add an image module to the web page canvas 1004, a "Text” button 1020 that, when selected, causes the script to enables the user to add a text module to the web page canvas 1004, an "RSS” button 1022 that, when selected, enables the user to add an RSS feed to the web page canvas 1004, and a "Video” button 1024 that, when selected, enables a user to add a video module to the web page canvas 1004.
  • FIGS. 12a and 12b graphically illustrate an example of a process through which an image may be added to the web page canvas 1004 after selection of the "Image" button 1018 of FIG. 10b.
  • selection of the "Image" button 1020 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display an image upload interface 1200 that enables a user to specify the location of an image to be added to the web page canvas 1004.
  • the script that enables the user to edit the web page 1000 fetches the image that resides at the specified location and adds the fetched image to the web page canvas 1004.
  • FIG. 12b illustrates the web page 1000 after the image upload interface 1200 of FIG. 12a has been used to add an image 1202 to the web page canvas 1004.
  • FIGS. 13a-13d graphically illustrate an example of a process through which a text module may be added to the web page canvas 1004 after selection of the "Text" button 1020 of FIG. 10b.
  • selection of the "Text" button 1020 of FIG. 10b causes the script that enables the user to edit the web page 1000 to add a text module 1300 to the web page canvas 1004.
  • selection of the "Text" button 1020 of FIG. 10b causes the script that enables the user to edit the web page to display a formatting toolbar 1302 that overlays the text module 1300 and that enables the user to format text entered in the text module 1300.
  • the formatting toolbar 1302 may not obscure the text module 1300.
  • the formatting toolbar 1302 may enable "pixel perfect,” or substantially “pixel perfect,” formatting of the text module 1300.
  • a formatting toolbar such as, for example, formatting toolbar 1302, maybe invoked to overlay different types of modules added to the web page canvas 1004. As a result, different types of modules added to the web page canvas
  • 1004 may be formatted using a formatting toolbar similar to the formatting toolbar illustrated in FIG. 13a.
  • FIG. 13b illustrates the web page 1000 after text has been added to the text module 1300
  • FIG. 13c illustrates the web page 1000 after the formatting toolbar 1302 has been used to format (e.g., bold and underline) the text added to the text module 1300
  • FIG. 13d is a screenshot of the web page 1000 after the "Save" button
  • the text module 1300 in the saved web page 1000 appears substantially the same as the text module 1300 appeared in the web page canvas 1004 of FIG. 13c during edit mode.
  • FIGS. 14a and 14b graphically illustrate an example of a process through which an RSS feed may be added to the web page canvas 1004 after selection of the "RSS" button 1022 of FIG. 10b.
  • selection of the "RSS" button 1022 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display an RSS feed subscription interface 1400 that enables the user to specify a URL for an RSS feed to be added to the web page canvas 1004.
  • the script that enables the user to edit the web page 1000 adds the RSS feed available from the URL specified by the user to the web page canvas 1004.
  • FIG. 14b illustrates the web page 1000 after the RSS subscription interface 1400 of FIG. 14a has been used to add an RSS feed 1402 to the web page canvas 1004.
  • FIGS. 15a and 15b graphically illustrate an example of a process through which a video maybe added to the web page canvas 1004 after selection of the "Video" button 1024 of FIG. 10b.
  • selection of the "Video" button 1024 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display a video upload interface 1500 that enables a user to specify a URL for a video to be added to the web page canvas 1004.
  • the script that enables the user to edit the web page 1000 adds the video at the URL specified by the user to the web page canvas 1004.
  • FIG. 15b illustrates the web page 1000 after the video upload interface 1500 of FIG. 15a has been used to add a video 1504 to the web page canvas 1004, the changes made to the web page's DOM have been saved as source code, and the edit mode exited.
  • a web page may be edited by one or more users other than the original author of the web page.
  • the original author of the web page may identify one or more other users as users that are allowed to edit the web page.
  • all users may be allowed to edit the web page, hi such implementations, the web page may function as a community page, and the users allowed to edit the web page may collaborate to edit and improve the page.
  • the users that are allowed to edit the web page may remove modules from the web page and/or they may add modules to the web page.
  • users that are allowed to edit the web page may rearrange and/or reformat modules included within the web page, hi this manner, a web page that may be edited by one or more other users other than the original author of the web page may function as an extension to a wiki that simply allows users to add text and/or other content within a pre-defined structure in that users may rearrange the layout of the web page and users may reformat modules in the web page in addition to editing and/or improving the content of the web page.
  • copies of previous instances of the web page maybe saved, thereby enabling a user to track the evolution of the web page and to revert back to a previous version of the web page with little effort.
  • FIG. 16 is a screenshot of a web page 1600 in edit mode that enables a user to revisit and/or revert back to previous versions of the web page 1600.
  • a script causes a clipboard 1600 and a web page canvas 1604 to be displayed to the user.
  • the clipboard 1602 includes previous version buttons 1600(a), 1600(b), 1600(c), and 1600(d) corresponding to previous versions of the web page 1600.
  • buttons 1600(a), 1600(b), 1600(c), and 1600(d) enable a user to revisit and/or revert back to the previous version of the web page that corresponds to the selected button, hi addition, the previous version buttons 1600(a), 1600(b), 1600(c), and 1600(d) relay information regarding when the previous versions of the web page 1600 were updated as well as who updated the previous versions of the web page.
  • individual modules may be associated with various different tags that, for example, provide indications of one or more topics related to the individual modules and/or that identify the users that created the individual modules.
  • any text included within modules may be searchable. As a result, users may be able to search for and identify modules based on one or more topics related to the modules, the authors of the modules, and/or text included in the modules.
  • FIG. 17a is a screenshot of a web page 1700.
  • the web page 1700 is in edit mode and a script has caused a clipboard 1702 and a web page canvas 1704 to be displayed.
  • the clipboard 1702 includes a module search interface 1706 that enables a user to search for modules based on tags associated with the modules and/or text included in the modules.
  • a user has entered the search term "diet" into the module search interface 1706.
  • "Search" button 1706(a) Upon selection of "Search" button 1706(a), a script is invoked that searches known modules, or a subset of known modules, to identify modules that are associated with a diet tag and/or for modules that include text including the word diet.
  • the clipboard 1702 when the search is complete, the clipboard 1702 maybe populated with one or more modules 1708, 1710, and 1712 that were identified based on the search (e.g., modules that are associated with a diet tag and/or modules that include the word diet). These modules 1708, 1710, and 1712 then may be added to the web page canvas 1704 using, for example, techniques described above.
  • FIG. 18 is a block diagram of an example of a collection 1800 of different templates for web pages that may be used by a web site to generate and publish web pages for a user of the web site.
  • the collection 1800 of different templates includes a first template 1802, a second template 1804, and a third template 1806.
  • the first template 1802 includes three slots for holding content.
  • the second template 1804 also includes three slots for holding content, but the slots of the second template 1804 are arranged differently than the slots of the first template 1804.
  • the third template 1806 includes two slots for holding content 1806.
  • implementations may include less than or more than three different templates and implementations may include templates that are arranged and/or structured differently than the first, second, and third templates 1802, 1804, and 1806 illustrated in FIG. 18.
  • a publishing tool may determine a template to use to publish the requested web page. For example, in some implementations, the publishing tool may access a manifest for the requested web page that specifies a template to use to publish the requested web page. After determining the appropriate template for the requested web page, the publishing tool then may determine the content that should be slotted in each slot of the template for the requested web page. For example, the manifest for the requested web page also may specify different modules that are to be slotted within each slot of the template for the web page. Therefore, the publishing tool may fetch the various different modules specified by the manifest and slot the fetched modules into the appropriate slots of the template. Thereafter, the source code for the web page may be served to the requesting user.
  • the modules may subscribe to different content, parameters, and/or attributes, hi such implementations, before the fetched modules are slotted into the appropriate slots in the template for the requested web page, the modules may be configured according to the various different content, parameters, and/or attributes to which they describe.
  • the content, parameters, and/or attributes to which a module subscribes may be contextual based upon the location of the requested web page within the web site and/or the content, parameters, and/or attributes to which a module subscribes may be personalized based upon the requesting user.
  • a general advertisement module may be fetched for inclusion in the web page, but, prior to slotting the module into the appropriate slot in the template, the module may be configured as an advertisement for a particular brand of male running shoes based on the requested web page's location within the "Healthy Living" section of the web site and the fact that the user requesting the web page is a male.
  • the same general advertisement module may be fetched, but, prior to slotting the module into the appropriate slot in the template, the module may be configured as an advertisement for a particular brand of female running shoes.
  • Various different attributes of a requesting user may be used to personalize a module for the user in addition to the user's sex. For example, a requesting user's age, residence, income level, hobbies, interests, dietary preferences, medical conditions, etc. may be used to personalize a module for the requesting user.
  • Such attributes for a user may be stored for the user in a user profile maintained by the web site.
  • a user may be required to log in to the web site before the user may access any of the web site's web pages, hi such implementations, the web site may be able to identify attributes for the user based on the user's log-in and the user's profile.
  • FIG. 19 is a hierarchical tree diagram 1900 that illustrates an example of a structure for a web site (e.g., a healthcare web site) and an example of a manifest for a particular web page within the web site.
  • each node of the tree diagram corresponds to an individual web page of the overall web site.
  • the root node of the web site is "Home Page" 1901.
  • Stemming from the home page 1901 for the web site are a "Conditions & Treatments" section main page 1902, an "Insurance” section main page 1904, a "Healthy Living” section main page 1906, and a "Doctors & Hospitals" section main page 1908.
  • Each of the different section main pages 1902, 1904, 1906, and 1908 serves as a root node for its own sub-tree diagram that defines the structure of that particular section of the web site.
  • each individual web page may be associated with a manifest that defines a structure for the web page.
  • web page 1910 is associated with a manifest 1912 that defines a structure for web page 1910. Therefore, if a user requests access to web page 1910, a publishing tool may access the manifest 1912 associated with the web page 1910 to determine the structure of the web page that is to be served to the requesting user.
  • the manifest 1912 specifies that template_l (e.g., template 1802 in FIG. 18) is to be used to build web page 1910 for the requesting user.
  • the manifest 1912 specifies that a banner module is to be slotted into slot 1 of template l, an article module including article "123" is to be slotted into slot 2 of template_l, and that a tip_of_the_day module, a search module, and a poll module are to be slotted into slot 3 of template_l. Therefore, the publishing tool will fetch the banner module, the article module and article "123," the tip of the day module, the search module, and the poll module, slot them into the appropriate slots of template_l and then serve the web page to the requesting user.
  • the individual modules used to construct the web page may be discrete web applications that are uniquely addressable (e.g., each module may have its own URL).
  • the modules may be fetched based on their unique addresses.
  • actual source code for the modules may not be embedded within the source code for the web page served to a requesting user. Rather, references to each of the unique addresses for the modules to be included within the web page may be embedded within the source code for the web page served to the user instead.
  • the modules may be configured based on the context of the requesting web page and/or known attributes of the requesting user.
  • the banner module may be common to all of the web pages within the web site so that the entire web site has a common look and feel, but when the banner module is included within web page 1910, it may be configured to identify that the web page is located within the "Doctors and Hospitals" section of the web site.
  • the article module, the tip_of_the_day module, the search module, and the poll module also may be included in many different web pages throughout the web site, but when they are included in web page 1910 and served to a requesting user, they may be configured based on the web page's 1910 location within the "Doctors and Hospitals" section of the web site and/or attributes of the user. For example, if it is known that the requesting user suffers from diabetes, the tip_of_the_day module may be configured to provide the user with a useful tip regarding living with diabetes, the search module may be configured to enable the user to search for diabetes specialists in the user's area, and the poll module may be configured to query the user about diabetes-related issues.
  • the different content, parameters, and/or attributes to which a module subscribes may be built into the module when it is slotted into a template for a particular web page being constructed for a requesting user by appending the appropriate content, parameters, and/or attributes for the context of the particular web page and the profile of the requesting user as a query string to the URL for the module.
  • the structure of the tree diagram 1900 is merely an example of a structure of a web site. Implementations may utilize many different structures (on smaller and much larger scales) similar to the hierarchical structure illustrated in FIG. 19. Additionally or alternatively, implementations may utilize structures that are not hierarchical in nature and/or implementations may utilize dynamic structures that change over time and that may change in response to user interaction with the webs site.
  • FIG. 20 is a block diagram of an individual module 2000 that may be incorporated into different web pages.
  • the module 2000 may be incorporated into different web pages that a publishing tool builds in response to requests by users to access the different web pages, hi addition, after the module 2000 has been included in a web page served to a requesting user, the module may be imported by the requesting user into one or more different web pages (e.g., one or more of the user's own web pages and/or one or more community web pages).
  • the individual module includes both pre-defined content 2000(a) and contextual content 2000(b).
  • the pre-defined content 2000(a) represents content that may be included every time the module is instantiated in a web page served to a user.
  • the pre-defined content may include different styles, titles, headings, etc. that are included every time the module is instantiated in a web page so that the module has a uniform look and feel every time it is instantiated in a web page, hi contrast
  • the contextual content 2000(b) of the module subscribes to various different content, parameters, and attributes that are determined based on the location 2002 of the web page within which the module is being instantiated and/or the user 2004 that is requesting access to the web page within which the module is being instantiated.
  • the contextual content 2000(b) of the module may vary depending on the location of the web page within which the module is being instantiated and/or the user 2004 that is requesting access to the web page within which the module is being instantiated.
  • the module 2000 may be a discrete web application that has its own unique URL (or other network address) and contextual content may be included within the module by appending a query string that specifies the appropriate contextual content, parameters, and attributes to the URL for the module.
  • some modules may not include or otherwise subscribe to contextual content.
  • FIG. 21 is block diagram that provides an illustration of an example of how a framework 2102 for a web page can be created from a manifest 2104 for the web page by slotting individual modules into appropriate locations within a web page template as specified by the manifest 2104.
  • a collection of templates 2106 provides a first template 2106(a), a second template 2106(b), and a third template 2106(c), each of which is available to be specified by the manifest 2104 as the template to be used for the framework 2102 for the web page.
  • a collection of modules 2108 provides a first module 2108(a), a second module 2108(b), a third module 2108(c), a fourth module 2108(d), a fifth module 2108(e), a sixth module 2108(f), a seventh module 2108(g), an eighth module 2108(h), a ninth module 2108(i), and a tenth 2108(j), each of which is available to be specified by the manifest 2104 to be slotted within an appropriate location within the template specified by the manifest 2104.
  • the manifest 2104 specifies that template 2106(b) is the template to be used for the framework for the web page and that modules 2108(a), 2108(g), and 2108(i) are to be slotted in specified locations within the template 2106(b). Therefore, when a user requests access to the web page, a publishing tool accesses the manifest 2104 and determines that template 2106(b) is to be used to construct the web page. In addition, the publishing tool determines from the manifest 2104 that module 2108(a), module 2108(g), and module 2108(i) are to be slotted in specified positions within the template 2106(b).
  • the publishing tool generates a framework 2102 for the web page that defines the structure of the web page based on the template 2106(b) identified by the manifest 2104 and that references the modules 2108(a), 2108(g), and 2108(i) that the manifest 2104 specifies are to be included within the structure defined by the template 2102(b).
  • the framework 2102 then can be used to construct the source code for the web page to be served to the requesting user.
  • the framework 2102 may be parsed and the references to the modules 2108(a), 2108(g), and 2108(i) to be included in the web page may be identified. Thereafter, the identified modules 2108(a), 2108(g), and 2108(i) may be fetched and stitched together and the completed web page may be served to the requesting user.
  • the framework 2102 may be composed according to the edge side includes (ESI) framework.
  • the framework 2102 may be sent to a cache server (e.g., an Oracle or Akami cache server) that parses the framework 2102 to identify ESI fragments that identify the modules 2108(a), 2108(g), and 2108(i) (and other objects) that are to be included in the web page to be served to the requesting user.
  • a cache server e.g., an Oracle or Akami cache server
  • the framework 2102 includes an esi: include statement that specifies a URL for a module that is to be slotted in "slot 1" of template 2102(b).
  • contextual content may be included in the module by appending an appropriate query string to the URL for the module specified in the esi: include statement.
  • the cache server determines which, if any, of the modules (and other objects) that are to be included in the web page are cached locally and which, if any, of the modules (and other objects) that are to be included in the web page need to be fetched. For each module (or other object) that needs to be fetched, the cache server fetches the module (or other object). For example, for each module (or other object) that needs to be fetched, the cache server may issue an HTTP request.
  • the cache server stitches the source code for the web page together according to the framework 2102 and the final source code for the web page 2102 is served to the requesting user.
  • the pre-defined content for a module to be included in a web page may be cached locally, but some (or all) of the contextual content for the module may not be cached locally. In such cases, the cache server may only need to fetch the contextual content for the module and not the predefined content for the module. In other cases, some (or all) of the contextual content for the module may be cached locally, but the predefined content for the module may not be cached locally. In such cases, the cache server may only need to fetch the predefined content for the module.
  • the entire module may be cached locally for all uses of the module. Moreover, if all of the modules in a particular web page do not include or otherwise subscribe to contextual content, the entire web page may be cached locally.
  • FIG. 22 is a block diagram that provides an illustration of an example of how final source code for a web page 2200 can be constructed from a framework 2202 for the web page.
  • a framework 2202 for a web page is passed to a cache server 2204.
  • the framework 2202 for the web page may define the structural layout for the web page and reference one or more modules that are to be included at various locations within the defined structural layout for the web page.
  • the cache sever 2204 receives the framework 2204 and identifies the modules that are to be included within the web page. The cache server then determines if any of the modules and/or any of the contextual content or data to which the modules subscribe are cached locally.
  • the cache server If any of the modules and/or any of the contextual content or data to which the modules subscribe are cached locally, the cache server embeds the locally cached modules and/or contextual content or data within the final source code for the web page 2200. Otherwise, the cache server fetches the modules and/or contextual content or data to which the module subscribe and embeds the fetched modules and/or contextual content or data to which the modules subscribe into the final source code for the web page 2200. When all of the modules specified by the framework 2202 have been included within the appropriate locations within the final source code for the web page 2200, the final source code for the web page 2200 is served to the requesting user.
  • the cache server may be able to access the pre-defined content for a particular module, but the cache server may not be able to successfully fetch the contextual content or data to which the particular module subscribes.
  • the pre-defined content for the module may be cached locally (or otherwise available), while the contextual content or data to which the module subscribes is not cached locally and has been removed from its host system and/or the contextual content or data to which the particular module subscribes is not cached locally and the cache server cannot access the host system on which the contextual content or data is stored due to, for example, a system failure.
  • only the module and its pre-defined content may be assembled within the final source code for the web page 2200.
  • the generic poll module may be instantiated in the final source code for the web page instead of the cancer poll module, hi alternative implementations, when the contextual content or data to which a module subscribes is unavailable, the module may be supplied with different contextual data or content when assembled within the final source code for the web page.
  • the final source code for the web page 2200 includes a script (or a reference to a script) (e.g., JavaScript or AJAX application) that enables the requesting user to select and import individual modules from the final web page 2200 into other web pages, hi some cases, all of the modules included in the final web page 2200 may be available for importation into other web pages, while in other cases only certain modules may be available for importation into other web pages. Modules may have attributes or other metadata that define whether they are available to be imported into other web pages.
  • a script e.g., JavaScript or AJAX application
  • FIG. 23 is a flowchart 2300 of an example of a process for publishing a web page that includes multiple modules of web content and for enabling a user to select and import one or more of the modules into one or more other web pages.
  • the process begins when a request to access a web page is received from a user (2302). For example, the user may enter a URL for the requested web page directly with an address field of the user's web browser or the user may follow a link to the requested web page from another web page.
  • a manifest for the requested web page is accessed (2304).
  • the manifest for the web page generally identifies a template that is to be used to define the structural layout of the requested web page.
  • the manifest also generally specifies multiple discrete modules that are to be included in the requested web page, hi addition, the manifest also generally specifies where the modules are to be located within the requested web page.
  • a markup language framework for the requested web page is generated (2306).
  • a markup language framework may be generated that uses markup language to define the structural layout for the requested web page and that includes references to the modules that are to be included within the requested web page at appropriate locations within the markup language framework based on the accessed manifest.
  • the markup language framework may be generated as an ESI framework and the references to the modules that are to be included within the requested web page may be ESI fragments that identify the modules to be included in the requested web page.
  • one or more of the modules may be configured to include both pre-defined content as well as contextual content.
  • the ESI fragment that identifies the module may reference a URL for the pre-defined component of the module and append an appropriate query string to the URL for the pre-defined component of the module in order to identify the appropriate contextual content that is to be included in the module when the module is instantiated in the requested web page.
  • the references to the modules to be included in the requested web page are identified from within the framework for the requested web page (2308).
  • the framework may be passed to a cache server that identifies the ESI fragments.
  • the cache server fetches the referenced modules and content and assembles the source code for the requested web page (2310).
  • the cache server may determine whether the modules and content referenced by the ESI fragments are cached locally. If not, the cache server fetches the modules and content that are not cached locally and assembles the source code for the requested web page. For example, the cache server may issue HTTP requests to fetch the modules and content that are not cached locally.
  • one or more scripts that facilitate the selection of one or more of the modules from the requested web page into other web pages may be included (or otherwise referenced) within the source code for the requested web page, hi addition to embedding the modules and other content specified by the manifest in the source code for the requested web page, encrypted representations of the URLs for the modules and other content (e.g., tokens for the modules and other content) may be included in the source code for the requested web page. These encrypted representations of the URLs for the modules and other content may facilitate the later importation of the modules and other content into other web pages.
  • the encrypted representations of the URLs also may include encrypted versions of the query strings appended to the URLs to specify contextual aspects of the modules, hi other implementations, the encrypted representations of the URLs also may include encrypted representations of the URLs for the pre-defined components of the modules.
  • the assembled source code for the requested web page is served to the user (2314).
  • the requested web page then may be rendered by the requesting user's browser.
  • the inclusion of the script(s) that facilitate the selection of one or more of the modules from the requested web page into other web pages enables the user to import one or more of the modules from the assembled source code for the requested web page into source code for the other web pages.
  • a button or similar control may be displayed to the user when the requested web page is rendered that enables the user to indicate a desire to select modules from the requested web page for importation into other web pages, and, in response to the user selecting this button or similar control, the script(s) that facilitates the selection of one or more of the modules from the requested web page into other web pages may be invoked.
  • the modules in the requested web page that are available for importation into other web pages may be visually distinguished from modules in the requested web page that are not available for importation into other web pages.
  • the script may cause a veneer or other overlay to be superimposed over the web page to identify which modules are available for importation into other web pages.
  • all of the modules in the requested web page may be available for importation into other web pages.
  • only some of the modules may be available for importation into other web pages.
  • the script After being invoked, the script also may enable the user to select, for importation into another web page, one or more of the modules that are identified as being available for importation. As described above, the script may enable the user to save a selected module for later importation into a web page maintained by the same web page hosting service as the web page hosting service that hosts the requested web page and/or the script may enable the user to import a selected module into a web page maintained by a different web page hosting service than the web page hosting service that hosts the requested web page.
  • the request to save the selected module for later importation into other web pages is received and the selected module is saved in a personal collection of modules maintained on behalf of the user (2316).
  • the personal collection of modules maintained on behalf of the user may be referred to as the user's "Clipboard.”
  • actual source code for the selected module may be saved in the user's clipboard.
  • a URL for the module (perhaps including an appropriate query string specifying contextual content included in the module) may be saved to the user's "Clipboard” and/or an encrypted representation of the URL for the module (e.g., a token) may be saved to the user's "Clipboard.”
  • the different web may include one or more scripts that enable the user (and potentially other users as well) to edit the different web page, hi some implementations, a button or other control may be displayed when the different web page is rendered that enables the user to request that the different web page enter an edit mode, hi such implementations, a request to edit the web page may be received from the user (2320) in response to the user selecting the button or other control, and the script(s) that enables the user to edit the different web page may be invoked.
  • the script(s) that enables the user to edit the different web page provides the user with access to one or more of the modules that the user has saved in the user's personal collection of modules (e.g., the user's "Clipboard.”), including the selected module from the requested web page.
  • the script may cause visual representations of modules that the user has saved in the user's "Clipboard” to be displayed to the user.
  • a request to import the selected module into the different web page may be received from the user (2324).
  • the user may drag a visual representation of the selected module from the user's clipboard and drop the visual representation of the selected module onto the different web page.
  • the selected module may be imported into the different web page (2326).
  • the script(s) that enables the user to edit the different web page may comprehend changes that would occur to the different web page's DOM if the selected module were imported into the different web page, and, consequently, the script may modify the different web page's DOM, and thus the rendered display of the web page, to reflect the importation of the selected module into the different web page.
  • the script(s) that enables the user to edit the different web page may save the modifications made to the different web page's DOM as changes to the source code for the different web page and the changes to the source code for the different web page may be sent to the web page hosting service that hosts the different web page.
  • the script may save the modifications made to the different web page's DOM as changes to the web page's source code and the changes to the web page's source code may be sent to the web page hosting service that hosts the different web page in response to receiving an explicit instruction from the user to save the changes made to the different web page. Thereafter, when other users request access to the different web page, they will be served source code that enables the selected module to be rendered within the different web page.
  • the request to syndicate a selected module is received (2328), and an encrypted representation of the URL for the selected module (perhaps including an encrypted representation of an appropriate query string appended to the URL for specifying contextual content for the module) is provided to the user in response (2330).
  • an encrypted representation of the URL for the selected module may have been included in the source code for the requested web page, and the encrypted representation of the URL may be provided to the user by accessing the encrypted representation of the URL from the source code for the requested web page.
  • the user may embed the encrypted representation of the URL for the selected module in the source code for a different web page (2332), and, when other users request access to the different web page, the encrypted representation of the URL for the selected module that is embedded within the source code for the different web page will enable the selected module to be rendered within the different web page.
  • the actual source code for the selected module may be provided to the user and/or the actual URL for the selected module may be provided to the user.
  • individual modules may be assigned unique network addresses.
  • at least a portion of the code (e.g., markup) that defines each individual module may be stored at the network address corresponding to each module.
  • the code stored at the network address corresponding to the particular module may be accessed and copied to the web page.
  • a pointer to the network address corresponding to the particular web page may be created and added to the web page.
  • the number of times the network address corresponding to a particular module is accessed and/or the number of times that pointers to the network address corresponding to the particular module are created may be tracked and used to determine the popularity of the particular module. Modules determined to be popular may be recommended to users for importation into one or more web pages.
  • a user may create a template for a page that specifies various different locations for different types of modules to be included in the page. Thereafter, the user may instruct the system to populate each specified location with the most popular (or simply a popular) module for the type of module to be included in each location. For example, the user may create a template for a page devoted to breast cancer that specifies the location for a breast cancer video, a breast cancer article, and a breast cancer charity advertisement. After the user is finished creating the template, the most popular breast cancer video, the most popular breast cancer article, and the most popular breast cancer charity advertisement may be determined and populated in the specified locations of the web page.
  • the user's positioning of modules on web pages may be tracked. Tracking the user's positioning of modules may enable the user's web page layout preferences to be discerned which, in turn, may enable a web portal to construct and/or render pages in accordance with the user's layout preferences as the user navigates the web portal. For example, a user generally may line the perimeter of web pages with the same collection of modules (e.g., advertisements, headlines, favorite links, etc.), while including different articles of interest in the center of the web pages. As a result, it may be inferred that the user views the center of a web page as an important/prominent location on the web page.
  • modules e.g., advertisements, headlines, favorite links, etc.
  • the web portal may construct and/or render web pages in accordance with the determined preferences for the user such that the primary piece of content on the page is displayed in the center of the page. Additionally or alternatively, the web portal may construct and/or render web pages such that an advertisement is displayed in the center of the page, thereby increasing the likelihood that the user actually will view the advertisement.
  • user profiles that identify certain preferences, traits, and/or characteristics of different users may be maintained. Such profiles may be based on information explicitly provided by the users and/or such profiles may be based on information gleaned from the user's behavior (e.g., the types of modules that the user selects to import into user-created web pages and/or the user's Internet browsing activity). For example, a user that frequently imports modules associated with sports and/or that frequently visits sports-related web sites may be determined to be interested in sports and his/her profile may be updated accordingly. As a particular user creates web pages, different modules may be recommended to the user based on the user's profile. For example, if the user has a user profile that indicates that the user is interested in sports, modules that are popular with other users that have profiles reflecting an interest in sports may be recommended to the user.
  • a process embodying the described techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output
  • the techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • advantageous results may be achieved if the disclosed techniques are performed in a different order and/or if components in the disclosed systems are combined in a different manner and/or replaced or supplemented by other components.
  • the source code examples provided in Appendices A, B, and C are merely examples. Other source code also may be capable of implementing disclosed functionality. Furthermore, the examples of the source code provided in Appendices A, B, and C represent examples of source code received and rendered by a local browser.
  • the hosted source code for the web pages may differ from the examples of the source code received and rendered by the local browser.
  • the hosted source code, or a portion thereof may be passed to a hosted rendering framework before the source code is transmitted to the local browser.
  • the rendering framework may process the hosted source and then transfer a translated, modified, or otherwise different version of the source code to the local browser.
  • ⁇ lixa href /drugs-treatments/">Medicine chest ⁇ /ax/li>
  • ⁇ lixa href /symptom-checker/">symptom checker ⁇ /ax/li>
  • ⁇ p style margin-l eft: 8px; ">Enter the URL of an RSS or Atom feed. If you don 't know the URL, try a URL from the website and we' ll search.
  • ⁇ p>PageBuilder is a tool that allows you to build a page by creating your own modules or placing modules Revolution Health has already created on your page.
  • the HealthPages home can be accessed from the home page, from a dropdown menu by hovering over the home button in the site header, or, most prominently, by clicking the HealthPages button when viewing most topic pages on the site.
  • Modules you can created include writing your own text, uploading a photo, grabbing a video from YouTube, or subscribing to an RSS feed, YOU can search or browse and clip modules Revolution has already created.
  • ⁇ lixa href /drugs-treatme ⁇ ts/">Medi cine Chest ⁇ /a> ⁇ /li>
  • ⁇ lixa href /symptom-checker/">symptom checker ⁇ /ax/li>

Abstract

A request to access a web page that includes multiple discrete modules is received from a user. In response, the web page is displayed in a display mode, during which at least one of the modules is locked and unavailable for importation into other web pages. A control enables the user to request that the web page be transitioned from display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation during display mode are unlocked and available for importation. In response to user selection of the control, the web page is transitioned to portable module mode, modules that are available for importation into other web pages are visually distinguished, and user selection of one or more of the visually distinguished modules for importation into other web pages is enabled.

Description

Publishing, Importing, and Formatting Web Page Modules
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims priority from U.S. Provisional Patent Application Serial No. 60/912,417, filed on April 17, 2007 and entitled "Web Page Modules," which is incorporated herein by reference in its entirety.
TECHNICAL FIELD
This disclosure relates to publishing, importing, and formatting web page modules.
BACKGROUND
Web pages are documents that generally are composed in a markup language (e.g., hypertext markup language (HTML), extensible HTML (XHTML), extensible markup language (XML)), are accessible over the World Wide Web (WWW), and may be rendered in a web browser.
SUMMARY
In one aspect, a request to access a web page is received from a user, and, in response, a manifest is identified that is associated with the requested web page, that identifies a template that defines a structural layout for the requested web page, that specifies multiple discrete modules to be included in the requested web page, and that specifies locations for the multiple discrete modules within the defined structural layout for the requested web page. The identified manifest is accessed, and, based on the accessed manifest, a markup language framework (e.g., an edge side includes framework) is generated for the requested web page. The markup language framework for the requested web page specifies the structural layout for the requested web page and includes references to the modules to be included in the requested web page that enable the modules to be accessed and included within source code for the requested web page. Source code for the requested web page is assembled. Assembling the source code for the requested web page includes parsing the markup language framework for the requested web page and identifying the references to the modules to be included in the requested web page and fetching the referenced modules and replacing the references to the modules with the fetched modules, hi addition, assembling the source code for the requested web page includes including a script within the source code for the requested web page that facilitates selection and importation of modules from the assembled source code for the requested web page into source code of other web pages. The assembled source code for the requested web page then is served to the user, and rendering, to the user, of the assembled source code for the requested web page in a display mode is enabled. The rendered web page includes a selectable indicator that enables the user to request that the rendered web page transition to a portable module mode. In response to user selection of the indicator, the rendered web page is transitioned from the display mode to the portable module mode. Transitioning the rendered web page from the display mode to the portable module mode includes invoking the script that facilitates selection and importation of modules from the assembled source code for the requested web page into source code for other web pages, causing a veneer that visually identifies individual modules that are available for importation into other web pages to overlay the rendered web page, and enabling the user to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages.
Implementations may include one or more of the following features. For example, after transitioning the rendered web page from the display mode to the portable module mode, a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages may be received, hi response, a network address for the selected module may be identified and provided to the user such that the user can embed the network address for the selected module in source code for a different web page, and the module can be accessed when a browser renders the source code for the different web page, hi an alternative implementation, in response to receiving the selection by the user, an encrypted representation of a network address for the selected module may be provided to the user such that the user can embed the encrypted representation of the network address in source code for a different web page. The encrypted representation of the network address and a request to access a module may be received from a browser that is attempting to render the source code for the different web page, and, in response to receiving the encrypted representation of the network address and the request to access a module, it may be determined that the encrypted representation of the network address corresponds to the network address for the selected module, and the selected module may be accessed by the browser attempting to render the source code for the different web page. In yet another alternative implementation, in response to receiving the selection by the user, source code for the selected module may be identified and provided to the user such that the user can embed the source code for the selected module in source code for a different web page.
In some implementations, a personal collection of modules may be maintained on behalf of a user. After transitioning the rendered web page from the display mode to the portable module mode, a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages may be received, and, in response, a representation of a network address for the selected module may be saved in the personal collection of modules maintained on behalf of the user.
Additionally or alternatively, the user may be provided access to a different web page, for which the source code includes a different script that facilitates editing the source code for the different web page. In such implementations, the user may be able to edit the source code for the different web page only when the different script that facilitates editing the different web page is invoked. In addition, the source code for the different web page may be rendered and a data object model for the different web page may be created. A request from the user to edit the different web page may be received, and, in response, the different script that facilitates editing the source code for the different web page may be invoked. A request from the user to reformat a particular module included in the different web page also may be received, and, in response, the data object model for the different web page may be modified in accordance with the request to reformat the particular module, and the rendered different web page may be updated to reflect the modified data object model for the different web page. A request from the user to save the different web page including the reformatted module also may be received, and, in response, the source code for the different web page may be modified to reflect the modified data object model for the different web page and the modified source code for the different web page may be saved.
In some implementations, in response to receiving the request from the user to edit the different web page, the different script that facilitates editing the different web page may be invoked and the user may be provided with access to one or more modules from the personal collection of modules maintained on behalf of the user, including a module the user selected for importation from another page. A request may be received from the user to import the selected module into the different web page, and, in response, the data object model for the different web page may be modified to include a representation of the selected module, and the rendered different web page may be updated to reflect importation of the selected module into the different web page. Thereafter, a request may be received from the user to save the different web page including the selected module, and, in response, the representation of the network address for the selected module may be identified, the source code for the different web page may be modified to reflect the modified data object model for the different web page including embedding the representation of the network address for the selected module in the source code for the different web page, and the modified source code for the different web page may be saved.
After saving the modified source code for the different web page, a request may be received from a browser associated another user to access the different web page. In response, the browser associated with the other user may be provided the modified source code for the different web page including the embedded representation of the network address for the selected module. Thereafter, a request to access the network address for the selected module may be received from the browser associated with the other user while the browser associated with the other user is attempting to render the source code for the different web page. In response, the selected module may be provided to the browser associated with the other user for rendering within the different web page.
In some implementations, after the data object model for the different web page is modified to include a representation of the selected module and the rendered different web page has been updated to reflect importation of the selected module into the different web page, a request may be received from the user to reformat the selected module (e.g., resize and/or reformat text) in the different web page. In response, the data object model for the different web page may be modified in accordance with the request to format the particular module, and the rendered different web page may be updated to reflect the modified data object model for the different web page, hi some cases, the updated rendered web page may include a pixel perfect representation of the reformatted particular module.
In some implementations, a module may include pre-defined content and subscribe to contextual content, hi such implementations, fetching the module and replacing the reference to the particular module with the fetched particular module may include fetching the particular module including the pre-defined content, determining appropriate contextual content to include in the particular module, fetching the determined appropriate contextual content to include in the particular module, assembling the fetched contextual content in the fetched particular module, and replacing the reference to the particular module with the assembled particular module including the fetched pre-defined content and the fetched contextual content.
A web site may include multiple sections, each of which includes multiple web pages and is associated with one or more contexts. The requested web page may be part of such a web site, hi such cases, appropriate contextual content to include in the particular module may be determined by determining that the requested web page is located within the particular section of the web site, determining a context for the requested web page based on determining that the requested web page is located within the particular section of the website, and determining appropriate contextual content to include in the particular module based on the determined context for the requested web page. hi some implementations, a user profile that stores one or more attributes for the user may be maintained for the user, hi such implementation, determining appropriate contextual content to include in a module may include accessing the user profile maintained for the user, identifying one or more attributes for the user from the accessed user profile, and determining appropriate contextual content to include in the particular module based on the identified attributes for the user. After the rendered web page has been transitioned from the display mode to the portable module mode, a selection, by the user, of a particular one of the individual modules identified as available for importation into source code for other web pages may be received. Thereafter, a network address for the selected module that enables access to both the pre-defined content for the module and appropriate contextual content for the module may be identified and provided the user such that the user can embed the network address for the selected module in source code for a different web page and the module including the pre-defined content and the determined appropriate contextual content can be accessed when a browser renders the source code for the different web page. In alternative implementations, in response to receiving the user's selection, an encrypted representation of a network address for the selected module may be provided to the user such that the user can embed the encrypted representation of the network address in source code for a different web page. The encrypted representation of the network address and a request to access a module may be received from a browser that is attempting to render the source code for the different web page, and, in response, it may be determined that the encrypted representation of the network address corresponds to the network address for the selected module, and the selected module, including both predefined content for the module and appropriate content for the module, may be made accessible to the browser attempting to render the source code for the different web page.
In some implementations, the manifest associated with the requested web page may specify relative locations for the multiple discrete modules within web page screen real estate for the requested web page. Furthermore, in some implementations, all of the modules may available for importation from the assembled source code for the requested web page into source code for other web pages, while, in other implementations, some, but not all, of the modules may be available for importation from the assembled source code for the requested web page into source code for other web pages. Additionally or alternatively, the user may be able to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages only when the rendered web page is in the portable module mode.
In another aspect, a request to access a web page that includes multiple discrete modules is received from a user, hi response, the web page is displayed in a display mode, during which at least one of the modules is locked and unavailable for importation into other web pages. A control enables the user to request that the web page be transitioned from display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation during display mode are unlocked and available for importation. In response to user selection of the control, the web page is transitioned to portable module mode, modules that are available for importation into other web pages are visually distinguished, and user selection of one or more of the visually distinguished modules for importation into other web pages is enabled.
Implementations may include one or more of the following features. For example, during display mode, all of the modules may be locked and unavailable for importation into other web pages. Additionally or alternatively, during display mode boundaries separating the modules may be transparent or otherwise not identifiable.
In yet another aspect, a computer program embodied on a computer-readable medium includes instructions that, when executed, cause a computer to receive a request from a user to access a web page that includes multiple discrete modules and that is part of a web site. The computer program also includes instructions that, when executed by a computer, cause a computer to display the requested web page to the user in a display mode, during which at least one of the modules are locked and unavailable for importation into other web pages, hi addition, the computer program also includes instructions that, when executed, cause a computer to enable user selection of a control that enables the user to request that the displayed web page be transitioned from display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages. The computer program further includes instructions that, when executed, cause a computer to, in response to user selection of the control, transition the displayed web page from display mode to portable module mode, visually distinguish modules that are available for importation from the displayed web page into other web pages, and enable user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages. In still another aspect, a system includes a memory and a processor configured to receive a request from a user to access a web page that includes multiple discrete modules and that is part of a web site that includes multiple web pages, and, in response, display the requested web page to the user in a display mode, during which at least one of the modules are locked and unavailable for importation into other web pages. The processor also is configured to enable user selection of a control that enables the user to request that the displayed web page be transitioned from the display mode to a portable module mode, during which one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages. In addition, the processor is further configured to, in response to user selection of the control, transition the displayed web page from display mode to portable module mode, visually distinguish modules that are available for importation from the displayed web page into other web pages, and enable user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages.
The various aspects, implementations, and features may be implemented using, for example, one or more of a method, an apparatus, a system, an apparatus, system, tool, or processing device for performing a method, a program or other set of instructions, an apparatus that includes a program or a set of instructions, and a computer program embodied in a tangible computer readable medium. The tangible computer readable medium may include, for example, instructions, software, images, and other data.
DESCRIPTION OF DRAWINGS
FIG. 1 is a screenshot of an example of a web page that includes multiple modules.
FIG. 2 is a screenshot that illustrates an example of a veneer that is superimposed over a displayed web page to identify modules within the displayed web page that are available for importing to other web pages.
FIG. 3 is a screenshot of a web page that illustrates an example of a change to the web page upon selection of a module for importation into another web page. FIG. 4 is an example of a portion of source code corresponding to the selected module of FIG. 3.
FIG. 5 is a screenshot of a web page that illustrates an example of a pop-up window informing a user that a selected module from the web page has been saved for later importation into another web page.
FIG. 6 is a screenshot of a web page that illustrates an example of a pop-up window that provides a resource to a user that enables the user to import a selected module from the web page into a different web page hosted by a different web page hosting service.
FIGS. 7-9 are screenshots of web pages that illustrate examples of changes to the web pages upon selection of modules for importation into other web pages.
FIGS. 1Oa-IOd, 1 Ia-I Ie, 12a, 12b, 13a-13d, 14a, 14b, 15a, and 15b are screenshots of examples of web pages in edit mode.
FIG. 16 is a screenshot of an example of a web page in edit mode that enables a user to revert back to previous versions of the web page.
FIGS. 17a- 17c are screenshots of an example of a web page in edit mode that enables a user to search for modules to include in the web page.
FIG. 18 is a block diagram of an example of a collection of different templates for web pages that may be used by a web site to generate and publish web pages for a user of the web site.
FIG. 19 is a hierarchical tree diagram that illustrates an example of a structure for a web site and an example of a manifest for a particular web page within the web site.
FIG. 20 is a block diagram of an individual module that may be incorporated into different web pages.
FIG. 21 is block diagram that provides an illustration of an example of how a framework for a web page can be created from a manifest for the web page by slotting individual modules into appropriate locations within a web page template as specified by the manifest.
FIG. 22 is a block diagram that provides an illustration of an example of how final source code for a web page can be constructed from a framework for the web page. FIG. 23 is a flowchart of an example of a process for publishing a web page that includes multiple modules of web content and for enabling a user to select and import one or more of the modules into one or more other web pages.
DETAILED DESCRIPTION
A web page may be composed of multiple discrete modules that may be selected (e.g., "clipped") by a viewing user and added by that viewing user to another web page. The viewing user may request access to the web page that is composed of multiple discrete modules and, in response, the requested web page, including the multiple modules, may be rendered for the viewing user in a display mode. While the rendered web page is in display mode, the modules included in the web page may be displayed in such a fashion that the viewing user may not be able to perceive that the web page includes multiple modules. Furthermore, while the rendered web page is in display mode, the modules included in the web page may be locked such that the modules are not available to be "clipped" by the viewing user and added by the viewing user to another web page.
However, the rendered web page may include a selected control (e.g., an icon) that enables the user to request that the rendered web page be transitioned from the display mode into a portable module mode during which one or more of the modules included in the web page are unlocked and made available to be "clipped" by the viewing user and added by the viewing user to another web page.
Additionally or alternatively, web page modules may be stored in a library or other collection or data store and made available to users for importation into one or more other web pages. Such modules may be static or dynamic and they may include various types or kinds of web content.
Modules may be added to or removed from a web page, and modules in a web page may be edited and/or formatted. For instance, as modules are added to a web page, they may be edited and/or formatted using a formatting toolbar that overlays the module. In some implementations, "pixel perfect" editing and/or formatting of the imported module and the web page may be enabled such that, while the module is being edited and/or formatted, the module appears exactly as it will (or at least substantially the same as it will) when the web page is saved and later rendered. The ability to achieve pixel perfect editing and/or formatting may reduce or eliminate the need to "preview" the web page while editing and/or formatting the web page.
In some implementations, when a user requests access to a web page, source code defining the web page may not exist prior to the user requesting access to the web page. Rather, a manifest for the web page that defines the general layout and/or structure of the web page may exist prior to the user requesting access to the web page. In response to the user requesting access to the web page, a publishing tool (e.g., a host server system and/or software executing on a host server system) may access the manifest and identify appropriate modules to include in the web page based, at least in part, on the manifest. Thereafter, the source code for the identified modules, or references to the source code for the actual modules (e.g., uniform resource locators (URLs)), are incorporated into the actual source code that defines the web page and the source code that defines the web page is served to the user for rendering in the user's web browser.
In some implementations, a user may be able to identify the one or more different modules included in a web page when the web page is rendered. Alternatively, in other implementations, the one or more different modules may be combined in a seamless fashion such that a user (at least initially) may not be able to perceive that the rendered web page actually is composed of multiple modules. hi some implementations, one or more of the modules in a web page rendered for a user may be selectable such that the user can select and import one of the modules from the web page into a different web page. FIG. 1 is a screenshot of a rendered web page 100 that includes multiple modules such as, for example, modules 102, 104, 106, 108, and 109. (The markup language source code generated and sent to the client computer on which web page 100 was rendered is presented in Appendix A.) Web page 100 may include additional modules that are not called out explicitly or otherwise identified in FIG. 1. For the purposes of illustration, dark outlining has been used to distinguish modules 102, 104, 106, 108, and 109 from the remainder of the web page 100. However, absent the dark outlining used to distinguish modules 102, 104, 106, 108, and 109 for the purposes of FIG. 1, a viewer of the web page 100 may not be able to perceive that the web page 100 includes multiple individual modules. Web page 100 also includes a module clip button 110 that, when selected, enables a user to select and clip one or more modules, such as, for example, modules 102, 104, 106, 108, and 109 from web page 100 for importation into another web page. Selection of the module clip button 110 triggers the invocation of a script (e.g., a JavaScript) that generates an overlay or veneer that is superimposed over the web page 100 and that visually distinguishes modules of web page 100 that are available to be clipped and imported into another web page from modules and components of web page 100 that are not be available to be clipped and imported into another web page.
For example, FIG. 2 is a screenshot of web page 100 after selection of module clip button 110. As illustrated in FIG. 2, selection of module clip button 110 triggered launch of a script that generated a veneer that has been superimposed over web page 100 and that applies a discernible shading to modules 102, 104, 106, and 108 to depict that these modules are available to be clipped and imported into another web page.
Modules that are available to be clipped and imported into another web page may be selected in order to initiate the clipping and importing process. Various different mechanisms may exist for selecting a module. For example, a module may be selected by performing a "mouseover" of the module, by double-clicking the module using a mouse or similar pointing device, or through one or more keystrokes. As described more fully below, the selection and "clipping" of modules from web page 100 also maybe implemented via the script that was initiated when the user selected the module clip button 110.
As illustrated in FIG. 3, module 102 has been selected by a user. Upon selection of module 102, the script responsible for enabling the selection and clipping of modules from web page 100 causes a "Clip It" button 102(a) and a "Syndicate" button 102(b) to be presented to the user. Li some implementations, selection of the "Clip It" button 102(a) triggers a script that enables a user to clip and save a selected module, in this case module 102, to a "Clipboard" for later importation into another web page. For example, the source code for the selected module, or a unique token or iframe, may be saved to a "Clipboard" for the user. Similarly, in some implementations, selection of the "Syndicate" button 102(b) triggers a script that enables a user to syndicate (e.g., export to a web page hosted by a different web page hosting service) a selected module, in this case module 102, to a web page by providing the user with a unique token or iframe that may be embedded within the source code of the importing page and that will cause the module to be rendered when the web page is rendered, hi alternative implementations, the actual source code for the module may be embedded within the importing web page.
FIG. 4 presents an example of a portion 400 of the source code for rendered web page 100 that corresponds to module 102. As illustrated in FIG. 4, the source code portion 400 includes a module clipping element 402 as well as elements 404 that specify content to be displayed when module 102 is rendered, hi addition, the portion 400 references tokens associated with module 102 that may facilitate the syndication of module 102 to other web pages and/or that may facilitate the importation of module 102 into other web pages.
As discussed above in connection with FIG. 3, in some implementations, selection of the "Clip It" button 102(a) triggers a script that enables a user to clip and save a selected module, in this case module 102, to a "Clipboard" for subsequent importation into another web page. As illustrated in FIG. 5, selection of the "Clip It" button 102(a) causes the script to display a pop-up window 110 indicating that the module has been saved to a "Clipboard" for later importation into another web page, hi addition, selection of the "Clip It" button 102(a) also causes the script to add a token (e.g., object or address identifier) associated with module 102 to a collection of tokens (e.g., the "Clipboard") that are associated with the user, thereby enabling the user to subsequently import module 102 into one or more other web pages. The one or more scripts that enable selection and clipping of modules from web page 100 may be implemented using a variety of different scripting languages/paradigms or applications that enable dynamic web page interaction, such as, for example, JavaScript and/or asynchronous JavaScript and extensible markup language (AJAX).
As discussed above in connection with FIG. 3, in some implementations, selection of the "Syndicate" button 102(b) invokes a script that enables a user to syndicate a module, in this case, module 102 from web page 100, to a different web page hosted by a different web page hosting service. As illustrated in FIG. 6, selection of the "Syndicate" button 102(b) causes the script to display a pop-up window 112 that includes a <script> tag that references a JavaScript and a token associated with module 102 that can be added to the source code of the web page to which module 102 is to be syndicated. Adding the <script> tag to the destination web page enables importation of the module into the web page because, when the destination web page is rendered, the JavaScript makes a request to a server where the token resides, and the token may be converted into a URL that enables the module to be rendered.
As illustrated in FIGS. 7-9, multiple modules included in rendered web page 100 may be selected for importation into one or more other web pages. For example, FIG. 7 illustrates that module 104 may be selected for importation into one or more web pages; FIG. 8 illustrates that module 109 may be selected for importation into one or more web pages; and FIG. 9 illustrates that module 108 maybe selected for importation into one or more web pages.
FIG. 10a is a screen shot of a blank web page 1000 that may be edited by a user. (The markup language source code generated and sent to the client computer on which web page 1000 was rendered is presented in Appendix B.) In order to enable the user to edit the blank web page 1000, a script is invoked that enables the user to edit web page 1000 (and ultimately the markup language source code for the web page 1000) in a "what you see is what you get" (WYSIWYG) fashion. For example, as the user incorporates modules into the blank web page 1000 and edits or otherwise formats the web page 1000, the script may comprehend the changes being made to the web page's data object model (DOM) and the web page 1000 displayed to the user may be updated accordingly. Eventually, changes made to the web page's DOM are interpreted and saved as changes to the web page's source code.
As illustrated in FIG. 10a, the web page 1000 is in edit mode (e.g., the script that enables the user to edit the web page currently is invoked). As a result, a user may edit the web page 1000 by, for example, importing one or more modules into the web page 1000 from one or more other web pages. While the web page is in edit mode, the script causes a clipboard 1002 and a web page canvas 1004 that provides an illustration of what the web page may look like when rendered to be displayed. When a user finishes editing the web page 1000, the user may select "Save" button 1005 which causes the script to save the changes the user has made to the web page's DOM as source code stored on the web server that hosts the web page 1000, thereby enabling subsequent presentation and/or publication of the web page to one or more other users. For example, when the blank web page 1000 initially is displayed to the user, the web page's DOM may exist in a first state. Thereafter, as the user edits the blank web page 1000 by, for example, incorporating modules into the blank web page, changes are made to the web page's DOM to reflect the user's edits to the web page 1000. Thus, when the user ultimately saves the changes that the user made to the web page 1000, the web page's DOM exists in a second state that is different than the first state and the changes that occurred to transition the DOM from the first state to the second state are interpreted and the source code for the web page is modified accordingly.
As illustrated in FIG. 10b, clipboard 1002 may be expanded to view, among other features, different modules that have been added to the clipboard 1002 and that may be imported into the web page 1000. For example, referring to FIGS. lOb-lOd, clipboard 1002 may include various different modules 1006, 1008, 1010, 1012, and 1014 that have been selected and saved by a user from other web pages, hi some implementations, each individual user may have his/her own unique clipboard. Of course, in such cases, it is possible that the modules stored in one or more users' clipboards may overlap with the modules stored in one or more other users' clipboards.
As discussed above, the modules included in a user's clipboard may have been added to the user's clipboard by adding tokens associated with the modules to the user's clipboard or by otherwise associating tokens associated with the modules with the user. As such, in some implementations, one or more of the modules available from the user's clipboard may differ slightly from the state in which the modules existed in their source pages. For example, subsequent to the user saving a module to the user's clipboard, a different user may modify a module associated with a token stored in the user's clipboard such that when the module associated with the token in the clipboard is made available to the user through the user's clipboard, it reflects the modifications that the other user made to the module. That is to say, the user originally may have selected a first version of the module for inclusion in the user's clipboard, but, when the user accesses the user's clipboard, a second version of the module may be made available to the user. Alternatively, in other implementations, modifications made to a module after the user has saved the module to the user's clipboard may not be reflected in the version of the module saved in the user's clipboard.
The script that enables the user to edit the web page 1000 enables the user to add modules from the clipboard 1002 to the web page 1000 by "dragging and dropping" modules included in the clipboard 1002, such as modules 1006, 1008, 1010, 1012, and 1014, onto the web page 1000 by adding one or more of the modules to the web page canvas 1004. hi alternative implementations, a module in the clipboard 1002 may be selected by, for example, performing a "mouseover" of the module, by using a mouse or similar pointing device to double click the module, or through one or more different keystrokes, and added to the web page canvas 1004.
In some implementations, when the changes made to the web page's DOM by adding a module to the web page canvas 1004 are saved as source code, a token associated with the module is added to the source code for the web page 1000. hi addition to referencing the module itself, size, location, and other formatting information for the module may be included within (or otherwise referenced by) the token. Thereafter, when the web page 1000 is rendered, the token associated with the module (and including any size, location, or other formatting information) may be passed to a publishing tool that coverts the token into a URL for the module, thereby enabling the module to be rendered.
FIGS. 1 Ia-I Ie graphically illustrate an example of a process by which one or more modules from the clipboard 1002 may be added to the web page canvas 1004 for ultimate inclusion in the web page 1000.
As illustrated in FIG. 11a, selection of module 1006 causes a script to display a "Place Module" button 1006(a). As illustrated in FIG. 1 Ib, selection of the "Place Module" button 1006(a) results in the script modifying the web page's DOM such that an instance 1006' of module 1006 is added to the web page canvas 1004. After the instance 1006' of module 1006 has been added to the web page canvas 1004, a user may move the instance 1006' of module 1006 to another location within the web page canvas 1004 and/or the user may resize the instance 1006' of module 1006. For example, the instance 1006' of module 1006 may be resized by clicking and dragging resize tab 1116. FIG. lie is a screenshot of the web page 1000 in which the instance 1006' of module 1006 has been moved and resized relative to the position and size of the instance 1006' of module 1006 illustrated in FIG. 1 Ib.
As discussed above, a user may select the "Save" button 1005 to exit the edit mode and save the changes made to the web page's DOM as source code for subsequent presentation and/or publication to one or more other users. In some implementations, the illustration of the web page 1000 presented in the web page canvas 1004 during edit mode may represent a "pixel perfect" illustration of the web page 1000. That is to say, in some implementations, the illustration of the web page 1000 presented in the web page canvas 1004 during edit mode may be exactly the same as (or at least substantially the same as) the web page 1000 will appear when the web page 1000 subsequently is rendered.
FIG. 1 Id is a screenshot of the web page 1000 after selection of the "Save" button 1005. As illustrated in FIG. 1 Id, when the web page 1000 is not in edit mode, the web page 1000 may be displayed without the clipboard 1002 such that the web page 1000 appears substantially the same as, or exactly the same as, the web page canvas 1004 appeared prior to selection of the "Save" button 1005. (Source code for the rendered web page 1000 illustrated in FIG. 1Od after the instance 1006' of module 1006 has been added and saved to the source code for the web page 1000 is presented in Appendix C.)
As illustrated in FIG. 1 Id, when the web page 1000 has been saved and is not in edit mode, the web page 1000 includes an "Edit page" button 1118. Selection of the "Edit page" button 1118 invokes the script that enables the user to edit the web page 1000 again and returns the web page 1000 to edit mode. In some implementations, only the user that authored the web page may be allowed to edit the web page 1000. Alternatively, only a rostered list of authorized users (e.g., specified by the user and/or a system administrator) may be allowed to edit the web page 1000 or all users may be allowed to edit the web page 1000.
When the web page 1000 is in edit mode, multiple modules may be added to the web page canvas 1004 from the clipboard 1002. FIG. 1 Ie is a screenshot of the web page 1000 after selection of the "Edit page" button 1118 of FIG. 1 Id has returned the web page 1000 to edit mode and an instance 1010' of module 1010 has been added to the web page canvas 1004. Referring again to FIG. 10b, the script that enables the user to edit the web page may enable modules in addition to the modules saved in the user's clipboard 1002 to be added to the web page canvas 1004. For example, as illustrated in FIG. 10b, the clipboard 1002 includes an "Image" button 1018 that, when selected, causes the script to enable a user to add an image module to the web page canvas 1004, a "Text" button 1020 that, when selected, causes the script to enables the user to add a text module to the web page canvas 1004, an "RSS" button 1022 that, when selected, enables the user to add an RSS feed to the web page canvas 1004, and a "Video" button 1024 that, when selected, enables a user to add a video module to the web page canvas 1004.
FIGS. 12a and 12b graphically illustrate an example of a process through which an image may be added to the web page canvas 1004 after selection of the "Image" button 1018 of FIG. 10b. As illustrated in FIG. 12a, selection of the "Image" button 1020 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display an image upload interface 1200 that enables a user to specify the location of an image to be added to the web page canvas 1004. After a user specifies a location of an image to be added and selects upload button 1201, the script that enables the user to edit the web page 1000 fetches the image that resides at the specified location and adds the fetched image to the web page canvas 1004. FIG. 12b illustrates the web page 1000 after the image upload interface 1200 of FIG. 12a has been used to add an image 1202 to the web page canvas 1004.
FIGS. 13a-13d graphically illustrate an example of a process through which a text module may be added to the web page canvas 1004 after selection of the "Text" button 1020 of FIG. 10b. As illustrated in FIG. 13a, selection of the "Text" button 1020 of FIG. 10b causes the script that enables the user to edit the web page 1000 to add a text module 1300 to the web page canvas 1004. hi addition, selection of the "Text" button 1020 of FIG. 10b causes the script that enables the user to edit the web page to display a formatting toolbar 1302 that overlays the text module 1300 and that enables the user to format text entered in the text module 1300. Because the formatting toolbar 1302 overlays the text module 1300, the formatting toolbar 1302 may not obscure the text module 1300. hi addition, the formatting toolbar 1302 may enable "pixel perfect," or substantially "pixel perfect," formatting of the text module 1300. In some implementations, a formatting toolbar, such as, for example, formatting toolbar 1302, maybe invoked to overlay different types of modules added to the web page canvas 1004. As a result, different types of modules added to the web page canvas
1004 may be formatted using a formatting toolbar similar to the formatting toolbar illustrated in FIG. 13a.
FIG. 13b illustrates the web page 1000 after text has been added to the text module 1300 and FIG. 13c illustrates the web page 1000 after the formatting toolbar 1302 has been used to format (e.g., bold and underline) the text added to the text module 1300. In addition, FIG. 13d is a screenshot of the web page 1000 after the "Save" button
1005 of FIG. 13c has been selected, the changes made to the web page's DOM have been saved as source code, and the edit mode has been exited. As illustrated in FIG. 13 d, the text module 1300 in the saved web page 1000 appears substantially the same as the text module 1300 appeared in the web page canvas 1004 of FIG. 13c during edit mode.
FIGS. 14a and 14b graphically illustrate an example of a process through which an RSS feed may be added to the web page canvas 1004 after selection of the "RSS" button 1022 of FIG. 10b. As illustrated in FIG. 14a, selection of the "RSS" button 1022 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display an RSS feed subscription interface 1400 that enables the user to specify a URL for an RSS feed to be added to the web page canvas 1004. After a user specifies a URL for the RSS feed to be added and selects subscribe button 1402, the script that enables the user to edit the web page 1000 adds the RSS feed available from the URL specified by the user to the web page canvas 1004. FIG. 14b illustrates the web page 1000 after the RSS subscription interface 1400 of FIG. 14a has been used to add an RSS feed 1402 to the web page canvas 1004.
FIGS. 15a and 15b graphically illustrate an example of a process through which a video maybe added to the web page canvas 1004 after selection of the "Video" button 1024 of FIG. 10b. As illustrated in FIG. 15a, selection of the "Video" button 1024 of FIG. 10b causes the script that enables the user to edit the web page 1000 to display a video upload interface 1500 that enables a user to specify a URL for a video to be added to the web page canvas 1004. After a user specifies a URL for the video to be added and selects upload button 1502, the script that enables the user to edit the web page 1000 adds the video at the URL specified by the user to the web page canvas 1004. FIG. 15b illustrates the web page 1000 after the video upload interface 1500 of FIG. 15a has been used to add a video 1504 to the web page canvas 1004, the changes made to the web page's DOM have been saved as source code, and the edit mode exited.
In some implementations, a web page may be edited by one or more users other than the original author of the web page. For example, the original author of the web page may identify one or more other users as users that are allowed to edit the web page. Alternatively, all users may be allowed to edit the web page, hi such implementations, the web page may function as a community page, and the users allowed to edit the web page may collaborate to edit and improve the page. For example, the users that are allowed to edit the web page may remove modules from the web page and/or they may add modules to the web page. Additionally or alternatively, users that are allowed to edit the web page may rearrange and/or reformat modules included within the web page, hi this manner, a web page that may be edited by one or more other users other than the original author of the web page may function as an extension to a wiki that simply allows users to add text and/or other content within a pre-defined structure in that users may rearrange the layout of the web page and users may reformat modules in the web page in addition to editing and/or improving the content of the web page. hi some implementations, as a web page that includes one or more modules is modified, copies of previous instances of the web page maybe saved, thereby enabling a user to track the evolution of the web page and to revert back to a previous version of the web page with little effort. FIG. 16 is a screenshot of a web page 1600 in edit mode that enables a user to revisit and/or revert back to previous versions of the web page 1600. As illustrated in FIG. 16, a script causes a clipboard 1600 and a web page canvas 1604 to be displayed to the user. The clipboard 1602 includes previous version buttons 1600(a), 1600(b), 1600(c), and 1600(d) corresponding to previous versions of the web page 1600. Selection of one of the previous version buttons 1600(a), 1600(b), 1600(c), and 1600(d) enables a user to revisit and/or revert back to the previous version of the web page that corresponds to the selected button, hi addition, the previous version buttons 1600(a), 1600(b), 1600(c), and 1600(d) relay information regarding when the previous versions of the web page 1600 were updated as well as who updated the previous versions of the web page.
In some implementations, individual modules may be associated with various different tags that, for example, provide indications of one or more topics related to the individual modules and/or that identify the users that created the individual modules. In addition, in some implementations, any text included within modules may be searchable. As a result, users may be able to search for and identify modules based on one or more topics related to the modules, the authors of the modules, and/or text included in the modules.
FIG. 17a is a screenshot of a web page 1700. As illustrated in FIG. 17a, the web page 1700 is in edit mode and a script has caused a clipboard 1702 and a web page canvas 1704 to be displayed. Among other features, the clipboard 1702 includes a module search interface 1706 that enables a user to search for modules based on tags associated with the modules and/or text included in the modules. As illustrated in FIG. 17a, a user has entered the search term "diet" into the module search interface 1706. Upon selection of "Search" button 1706(a), a script is invoked that searches known modules, or a subset of known modules, to identify modules that are associated with a diet tag and/or for modules that include text including the word diet. As illustrated in FIGS. 17b and 17c, when the search is complete, the clipboard 1702 maybe populated with one or more modules 1708, 1710, and 1712 that were identified based on the search (e.g., modules that are associated with a diet tag and/or modules that include the word diet). These modules 1708, 1710, and 1712 then may be added to the web page canvas 1704 using, for example, techniques described above.
FIG. 18 is a block diagram of an example of a collection 1800 of different templates for web pages that may be used by a web site to generate and publish web pages for a user of the web site. As illustrated in FIG. 18, the collection 1800 of different templates includes a first template 1802, a second template 1804, and a third template 1806. The first template 1802 includes three slots for holding content. Like the first template 1802, the second template 1804 also includes three slots for holding content, but the slots of the second template 1804 are arranged differently than the slots of the first template 1804. The third template 1806 includes two slots for holding content 1806. Of course, implementations may include less than or more than three different templates and implementations may include templates that are arranged and/or structured differently than the first, second, and third templates 1802, 1804, and 1806 illustrated in FIG. 18.
When the web site receives a request from a user to access a web page, a publishing tool may determine a template to use to publish the requested web page. For example, in some implementations, the publishing tool may access a manifest for the requested web page that specifies a template to use to publish the requested web page. After determining the appropriate template for the requested web page, the publishing tool then may determine the content that should be slotted in each slot of the template for the requested web page. For example, the manifest for the requested web page also may specify different modules that are to be slotted within each slot of the template for the web page. Therefore, the publishing tool may fetch the various different modules specified by the manifest and slot the fetched modules into the appropriate slots of the template. Thereafter, the source code for the web page may be served to the requesting user.
In some implementations, the modules may subscribe to different content, parameters, and/or attributes, hi such implementations, before the fetched modules are slotted into the appropriate slots in the template for the requested web page, the modules may be configured according to the various different content, parameters, and/or attributes to which they describe. The content, parameters, and/or attributes to which a module subscribes may be contextual based upon the location of the requested web page within the web site and/or the content, parameters, and/or attributes to which a module subscribes may be personalized based upon the requesting user.
For example, if a male user requests access to a web page within a "Healthy Living" section of a web site and an advertisement module is to be included in one of the slots for the requested web page, a general advertisement module may be fetched for inclusion in the web page, but, prior to slotting the module into the appropriate slot in the template, the module may be configured as an advertisement for a particular brand of male running shoes based on the requested web page's location within the "Healthy Living" section of the web site and the fact that the user requesting the web page is a male. In contrast, if a female user requests access to the same web page within the "Healthy Living" section of the web site, the same general advertisement module may be fetched, but, prior to slotting the module into the appropriate slot in the template, the module may be configured as an advertisement for a particular brand of female running shoes.
Various different attributes of a requesting user may be used to personalize a module for the user in addition to the user's sex. For example, a requesting user's age, residence, income level, hobbies, interests, dietary preferences, medical conditions, etc. may be used to personalize a module for the requesting user. Such attributes for a user may be stored for the user in a user profile maintained by the web site. In some implementations, a user may be required to log in to the web site before the user may access any of the web site's web pages, hi such implementations, the web site may be able to identify attributes for the user based on the user's log-in and the user's profile.
FIG. 19 is a hierarchical tree diagram 1900 that illustrates an example of a structure for a web site (e.g., a healthcare web site) and an example of a manifest for a particular web page within the web site. In some implementations, each node of the tree diagram corresponds to an individual web page of the overall web site. As illustrated in FIG. 19, the root node of the web site is "Home Page" 1901. Stemming from the home page 1901 for the web site are a "Conditions & Treatments" section main page 1902, an "Insurance" section main page 1904, a "Healthy Living" section main page 1906, and a "Doctors & Hospitals" section main page 1908. Each of the different section main pages 1902, 1904, 1906, and 1908 serves as a root node for its own sub-tree diagram that defines the structure of that particular section of the web site.
In addition, each individual web page may be associated with a manifest that defines a structure for the web page. For example, as illustrated in FIG. 19, web page 1910 is associated with a manifest 1912 that defines a structure for web page 1910. Therefore, if a user requests access to web page 1910, a publishing tool may access the manifest 1912 associated with the web page 1910 to determine the structure of the web page that is to be served to the requesting user. As illustrated in FIG. 19, the manifest 1912 specifies that template_l (e.g., template 1802 in FIG. 18) is to be used to build web page 1910 for the requesting user. In addition, the manifest 1912 specifies that a banner module is to be slotted into slot 1 of template l, an article module including article "123" is to be slotted into slot 2 of template_l, and that a tip_of_the_day module, a search module, and a poll module are to be slotted into slot 3 of template_l. Therefore, the publishing tool will fetch the banner module, the article module and article "123," the tip of the day module, the search module, and the poll module, slot them into the appropriate slots of template_l and then serve the web page to the requesting user. hi some implementations, the individual modules used to construct the web page may be discrete web applications that are uniquely addressable (e.g., each module may have its own URL). Therefore, the modules may be fetched based on their unique addresses. Furthermore, in some implementations, actual source code for the modules may not be embedded within the source code for the web page served to a requesting user. Rather, references to each of the unique addresses for the modules to be included within the web page may be embedded within the source code for the web page served to the user instead.
As discussed above, in some implementations, the modules may be configured based on the context of the requesting web page and/or known attributes of the requesting user. For example, the banner module may be common to all of the web pages within the web site so that the entire web site has a common look and feel, but when the banner module is included within web page 1910, it may be configured to identify that the web page is located within the "Doctors and Hospitals" section of the web site. Similarly, the article module, the tip_of_the_day module, the search module, and the poll module also may be included in many different web pages throughout the web site, but when they are included in web page 1910 and served to a requesting user, they may be configured based on the web page's 1910 location within the "Doctors and Hospitals" section of the web site and/or attributes of the user. For example, if it is known that the requesting user suffers from diabetes, the tip_of_the_day module may be configured to provide the user with a useful tip regarding living with diabetes, the search module may be configured to enable the user to search for diabetes specialists in the user's area, and the poll module may be configured to query the user about diabetes-related issues. In some implementations, the different content, parameters, and/or attributes to which a module subscribes may be built into the module when it is slotted into a template for a particular web page being constructed for a requesting user by appending the appropriate content, parameters, and/or attributes for the context of the particular web page and the profile of the requesting user as a query string to the URL for the module.
The structure of the tree diagram 1900 is merely an example of a structure of a web site. Implementations may utilize many different structures (on smaller and much larger scales) similar to the hierarchical structure illustrated in FIG. 19. Additionally or alternatively, implementations may utilize structures that are not hierarchical in nature and/or implementations may utilize dynamic structures that change over time and that may change in response to user interaction with the webs site.
FIG. 20 is a block diagram of an individual module 2000 that may be incorporated into different web pages. As discussed above, the module 2000 may be incorporated into different web pages that a publishing tool builds in response to requests by users to access the different web pages, hi addition, after the module 2000 has been included in a web page served to a requesting user, the module may be imported by the requesting user into one or more different web pages (e.g., one or more of the user's own web pages and/or one or more community web pages).
As illustrated in FIG. 20, the individual module includes both pre-defined content 2000(a) and contextual content 2000(b). The pre-defined content 2000(a) represents content that may be included every time the module is instantiated in a web page served to a user. For example, the pre-defined content may include different styles, titles, headings, etc. that are included every time the module is instantiated in a web page so that the module has a uniform look and feel every time it is instantiated in a web page, hi contrast, the contextual content 2000(b) of the module subscribes to various different content, parameters, and attributes that are determined based on the location 2002 of the web page within which the module is being instantiated and/or the user 2004 that is requesting access to the web page within which the module is being instantiated. Thus, the contextual content 2000(b) of the module may vary depending on the location of the web page within which the module is being instantiated and/or the user 2004 that is requesting access to the web page within which the module is being instantiated. In some implementations, the module 2000 may be a discrete web application that has its own unique URL (or other network address) and contextual content may be included within the module by appending a query string that specifies the appropriate contextual content, parameters, and attributes to the URL for the module. Of course, some modules may not include or otherwise subscribe to contextual content.
FIG. 21 is block diagram that provides an illustration of an example of how a framework 2102 for a web page can be created from a manifest 2104 for the web page by slotting individual modules into appropriate locations within a web page template as specified by the manifest 2104. A collection of templates 2106 provides a first template 2106(a), a second template 2106(b), and a third template 2106(c), each of which is available to be specified by the manifest 2104 as the template to be used for the framework 2102 for the web page. In addition, a collection of modules 2108 provides a first module 2108(a), a second module 2108(b), a third module 2108(c), a fourth module 2108(d), a fifth module 2108(e), a sixth module 2108(f), a seventh module 2108(g), an eighth module 2108(h), a ninth module 2108(i), and a tenth 2108(j), each of which is available to be specified by the manifest 2104 to be slotted within an appropriate location within the template specified by the manifest 2104.
As illustrated in FIG. 21, the manifest 2104 specifies that template 2106(b) is the template to be used for the framework for the web page and that modules 2108(a), 2108(g), and 2108(i) are to be slotted in specified locations within the template 2106(b). Therefore, when a user requests access to the web page, a publishing tool accesses the manifest 2104 and determines that template 2106(b) is to be used to construct the web page. In addition, the publishing tool determines from the manifest 2104 that module 2108(a), module 2108(g), and module 2108(i) are to be slotted in specified positions within the template 2106(b). Therefore, the publishing tool generates a framework 2102 for the web page that defines the structure of the web page based on the template 2106(b) identified by the manifest 2104 and that references the modules 2108(a), 2108(g), and 2108(i) that the manifest 2104 specifies are to be included within the structure defined by the template 2102(b). The framework 2102 then can be used to construct the source code for the web page to be served to the requesting user. For example, the framework 2102 may be parsed and the references to the modules 2108(a), 2108(g), and 2108(i) to be included in the web page may be identified. Thereafter, the identified modules 2108(a), 2108(g), and 2108(i) may be fetched and stitched together and the completed web page may be served to the requesting user.
In some implementations, the framework 2102 may be composed according to the edge side includes (ESI) framework. In such implementations, the framework 2102 may be sent to a cache server (e.g., an Oracle or Akami cache server) that parses the framework 2102 to identify ESI fragments that identify the modules 2108(a), 2108(g), and 2108(i) (and other objects) that are to be included in the web page to be served to the requesting user. For example, as illustrated in FIG. 21, the framework 2102 includes an esi: include statement that specifies a URL for a module that is to be slotted in "slot 1" of template 2102(b). In the event that the module is to include both pre-defined content and contextual content, contextual content may be included in the module by appending an appropriate query string to the URL for the module specified in the esi: include statement.
In response to identifying the esi fragments in the framework 2102 for the web page, the cache server determines which, if any, of the modules (and other objects) that are to be included in the web page are cached locally and which, if any, of the modules (and other objects) that are to be included in the web page need to be fetched. For each module (or other object) that needs to be fetched, the cache server fetches the module (or other object). For example, for each module (or other object) that needs to be fetched, the cache server may issue an HTTP request. After the cache server has fetched all of the needed modules (and other objects), the cache server stitches the source code for the web page together according to the framework 2102 and the final source code for the web page 2102 is served to the requesting user. In some cases, the pre-defined content for a module to be included in a web page may be cached locally, but some (or all) of the contextual content for the module may not be cached locally. In such cases, the cache server may only need to fetch the contextual content for the module and not the predefined content for the module. In other cases, some (or all) of the contextual content for the module may be cached locally, but the predefined content for the module may not be cached locally. In such cases, the cache server may only need to fetch the predefined content for the module. Furthermore, in the case where a module does not include or otherwise subscribe to contextual content, the entire module may be cached locally for all uses of the module. Moreover, if all of the modules in a particular web page do not include or otherwise subscribe to contextual content, the entire web page may be cached locally.
FIG. 22 is a block diagram that provides an illustration of an example of how final source code for a web page 2200 can be constructed from a framework 2202 for the web page. As illustrated in FIG. 22, a framework 2202 for a web page is passed to a cache server 2204. The framework 2202 for the web page may define the structural layout for the web page and reference one or more modules that are to be included at various locations within the defined structural layout for the web page. The cache sever 2204 receives the framework 2204 and identifies the modules that are to be included within the web page. The cache server then determines if any of the modules and/or any of the contextual content or data to which the modules subscribe are cached locally. If any of the modules and/or any of the contextual content or data to which the modules subscribe are cached locally, the cache server embeds the locally cached modules and/or contextual content or data within the final source code for the web page 2200. Otherwise, the cache server fetches the modules and/or contextual content or data to which the module subscribe and embeds the fetched modules and/or contextual content or data to which the modules subscribe into the final source code for the web page 2200. When all of the modules specified by the framework 2202 have been included within the appropriate locations within the final source code for the web page 2200, the final source code for the web page 2200 is served to the requesting user.
In some cases, the cache server may be able to access the pre-defined content for a particular module, but the cache server may not be able to successfully fetch the contextual content or data to which the particular module subscribes. For example, the pre-defined content for the module may be cached locally (or otherwise available), while the contextual content or data to which the module subscribes is not cached locally and has been removed from its host system and/or the contextual content or data to which the particular module subscribes is not cached locally and the cache server cannot access the host system on which the contextual content or data is stored due to, for example, a system failure. In such cases, only the module and its pre-defined content may be assembled within the final source code for the web page 2200. For instance, if the context for a generic poll module dictates that the generic poll module is to subscribe to cancer-related content such that the module instantiated in the final source code for the web page is configured as a cancer poll module, but the cancer-related content is unavailable, the generic poll module may be instantiated in the final source code for the web page instead of the cancer poll module, hi alternative implementations, when the contextual content or data to which a module subscribes is unavailable, the module may be supplied with different contextual data or content when assembled within the final source code for the web page.
In some implementations, the final source code for the web page 2200 includes a script (or a reference to a script) (e.g., JavaScript or AJAX application) that enables the requesting user to select and import individual modules from the final web page 2200 into other web pages, hi some cases, all of the modules included in the final web page 2200 may be available for importation into other web pages, while in other cases only certain modules may be available for importation into other web pages. Modules may have attributes or other metadata that define whether they are available to be imported into other web pages.
FIG. 23 is a flowchart 2300 of an example of a process for publishing a web page that includes multiple modules of web content and for enabling a user to select and import one or more of the modules into one or more other web pages.
The process begins when a request to access a web page is received from a user (2302). For example, the user may enter a URL for the requested web page directly with an address field of the user's web browser or the user may follow a link to the requested web page from another web page.
In response to receiving the request to access the web page from the user, a manifest for the requested web page is accessed (2304). As described above, the manifest for the web page generally identifies a template that is to be used to define the structural layout of the requested web page. The manifest also generally specifies multiple discrete modules that are to be included in the requested web page, hi addition, the manifest also generally specifies where the modules are to be located within the requested web page. Based on the accessed manifest for the requested web page, a markup language framework for the requested web page is generated (2306). For example, a markup language framework may be generated that uses markup language to define the structural layout for the requested web page and that includes references to the modules that are to be included within the requested web page at appropriate locations within the markup language framework based on the accessed manifest. In some implementations, the markup language framework may be generated as an ESI framework and the references to the modules that are to be included within the requested web page may be ESI fragments that identify the modules to be included in the requested web page. In addition, one or more of the modules may be configured to include both pre-defined content as well as contextual content. In the case of such a module, the ESI fragment that identifies the module may reference a URL for the pre-defined component of the module and append an appropriate query string to the URL for the pre-defined component of the module in order to identify the appropriate contextual content that is to be included in the module when the module is instantiated in the requested web page. For example, if a poll module is to be instantiated in the requested web page and the URL for the poll module is http://www.rhg.com/modules/polls, and the poll module is supposed to subscribe to contextual content based on the requested web page being located in a particular section of a web site (e.g., a "Healthy Living" section) and based on attributes of the requesting user (e.g., "Eddie"), the ESI fragment for the poll module may append a query string to the URL for the poll module as follows: http://www.rhg.com/modules/polls?context=healthy_living&username=eddie. Thereafter, when the poll module is fetched, it will be fetched with the appropriate contextual content baked into it.
After the markup language framework for the requested web page has been generated, the references to the modules to be included in the requested web page are identified from within the framework for the requested web page (2308). For example, in the case where the framework is an ESI framework, the framework may be passed to a cache server that identifies the ESI fragments.
Then, the cache server fetches the referenced modules and content and assembles the source code for the requested web page (2310). In particular, the cache server may determine whether the modules and content referenced by the ESI fragments are cached locally. If not, the cache server fetches the modules and content that are not cached locally and assembles the source code for the requested web page. For example, the cache server may issue HTTP requests to fetch the modules and content that are not cached locally.
As part of the process of assembling the source code for the requested web page, one or more scripts that facilitate the selection of one or more of the modules from the requested web page into other web pages may be included (or otherwise referenced) within the source code for the requested web page, hi addition to embedding the modules and other content specified by the manifest in the source code for the requested web page, encrypted representations of the URLs for the modules and other content (e.g., tokens for the modules and other content) may be included in the source code for the requested web page. These encrypted representations of the URLs for the modules and other content may facilitate the later importation of the modules and other content into other web pages. In some implementations, the encrypted representations of the URLs also may include encrypted versions of the query strings appended to the URLs to specify contextual aspects of the modules, hi other implementations, the encrypted representations of the URLs also may include encrypted representations of the URLs for the pre-defined components of the modules.
After the source code for the requested web page has been assembled, the assembled source code for the requested web page is served to the user (2314). The requested web page then may be rendered by the requesting user's browser.
The inclusion of the script(s) that facilitate the selection of one or more of the modules from the requested web page into other web pages enables the user to import one or more of the modules from the assembled source code for the requested web page into source code for the other web pages. For example, a button or similar control may be displayed to the user when the requested web page is rendered that enables the user to indicate a desire to select modules from the requested web page for importation into other web pages, and, in response to the user selecting this button or similar control, the script(s) that facilitates the selection of one or more of the modules from the requested web page into other web pages may be invoked. When the script is invoked, the modules in the requested web page that are available for importation into other web pages may be visually distinguished from modules in the requested web page that are not available for importation into other web pages. For example, the script may cause a veneer or other overlay to be superimposed over the web page to identify which modules are available for importation into other web pages. In some implementations, all of the modules in the requested web page may be available for importation into other web pages. In other implementations, only some of the modules may be available for importation into other web pages.
After being invoked, the script also may enable the user to select, for importation into another web page, one or more of the modules that are identified as being available for importation. As described above, the script may enable the user to save a selected module for later importation into a web page maintained by the same web page hosting service as the web page hosting service that hosts the requested web page and/or the script may enable the user to import a selected module into a web page maintained by a different web page hosting service than the web page hosting service that hosts the requested web page.
If the user requests to save a selected module for later importation into other web pages maintained by the same web page hosting service as the web page hosting service that hosts the requested web page, the request to save the selected module for later importation into other web pages is received and the selected module is saved in a personal collection of modules maintained on behalf of the user (2316). For reference, the personal collection of modules maintained on behalf of the user may be referred to as the user's "Clipboard." In some implementations, actual source code for the selected module may be saved in the user's clipboard. Additionally or alternatively, a URL for the module (perhaps including an appropriate query string specifying contextual content included in the module) may be saved to the user's "Clipboard" and/or an encrypted representation of the URL for the module (e.g., a token) may be saved to the user's "Clipboard."
Thereafter, the user may be provided with access to a different web page (2318). The different web may include one or more scripts that enable the user (and potentially other users as well) to edit the different web page, hi some implementations, a button or other control may be displayed when the different web page is rendered that enables the user to request that the different web page enter an edit mode, hi such implementations, a request to edit the web page may be received from the user (2320) in response to the user selecting the button or other control, and the script(s) that enables the user to edit the different web page may be invoked.
Among other features, the script(s) that enables the user to edit the different web page provides the user with access to one or more of the modules that the user has saved in the user's personal collection of modules (e.g., the user's "Clipboard."), including the selected module from the requested web page. For example, in some implementations, the script may cause visual representations of modules that the user has saved in the user's "Clipboard" to be displayed to the user.
A request to import the selected module into the different web page may be received from the user (2324). For example, the user may drag a visual representation of the selected module from the user's clipboard and drop the visual representation of the selected module onto the different web page. In response to receiving the request to import the selected module into the different web page, the selected module may be imported into the different web page (2326). For example, in some implementations, the script(s) that enables the user to edit the different web page may comprehend changes that would occur to the different web page's DOM if the selected module were imported into the different web page, and, consequently, the script may modify the different web page's DOM, and thus the rendered display of the web page, to reflect the importation of the selected module into the different web page. In such implementations, the script(s) that enables the user to edit the different web page may save the modifications made to the different web page's DOM as changes to the source code for the different web page and the changes to the source code for the different web page may be sent to the web page hosting service that hosts the different web page. For example, the script may save the modifications made to the different web page's DOM as changes to the web page's source code and the changes to the web page's source code may be sent to the web page hosting service that hosts the different web page in response to receiving an explicit instruction from the user to save the changes made to the different web page. Thereafter, when other users request access to the different web page, they will be served source code that enables the selected module to be rendered within the different web page.
If the user requests to syndicate a selected module to a web page hosted by a different web page hosting service than the web page hosting service that hosts the requested web page instead of saving the selected module for later importation into other web pages maintained by the same web page hosting service as the web page hosting service that hosts the requested web page, the request to syndicate a selected module is received (2328), and an encrypted representation of the URL for the selected module (perhaps including an encrypted representation of an appropriate query string appended to the URL for specifying contextual content for the module) is provided to the user in response (2330). For example, the encrypted representation of the URL for the selected module may have been included in the source code for the requested web page, and the encrypted representation of the URL may be provided to the user by accessing the encrypted representation of the URL from the source code for the requested web page. Thereafter, the user may embed the encrypted representation of the URL for the selected module in the source code for a different web page (2332), and, when other users request access to the different web page, the encrypted representation of the URL for the selected module that is embedded within the source code for the different web page will enable the selected module to be rendered within the different web page. In some alternative implementations, instead of providing an encrypted representation of the URL for the selected module to the user, the actual source code for the selected module may be provided to the user and/or the actual URL for the selected module may be provided to the user.
In some implementations, individual modules may be assigned unique network addresses. In such implementations, at least a portion of the code (e.g., markup) that defines each individual module may be stored at the network address corresponding to each module. When a user indicates a desire to import a particular module to a web page, the code stored at the network address corresponding to the particular module may be accessed and copied to the web page. Additionally or alternatively, a pointer to the network address corresponding to the particular web page may be created and added to the web page. The number of times the network address corresponding to a particular module is accessed and/or the number of times that pointers to the network address corresponding to the particular module are created may be tracked and used to determine the popularity of the particular module. Modules determined to be popular may be recommended to users for importation into one or more web pages.
In some implementations, a user may create a template for a page that specifies various different locations for different types of modules to be included in the page. Thereafter, the user may instruct the system to populate each specified location with the most popular (or simply a popular) module for the type of module to be included in each location. For example, the user may create a template for a page devoted to breast cancer that specifies the location for a breast cancer video, a breast cancer article, and a breast cancer charity advertisement. After the user is finished creating the template, the most popular breast cancer video, the most popular breast cancer article, and the most popular breast cancer charity advertisement may be determined and populated in the specified locations of the web page.
In some implementations, as a user creates web pages, the user's positioning of modules on web pages may be tracked. Tracking the user's positioning of modules may enable the user's web page layout preferences to be discerned which, in turn, may enable a web portal to construct and/or render pages in accordance with the user's layout preferences as the user navigates the web portal. For example, a user generally may line the perimeter of web pages with the same collection of modules (e.g., advertisements, headlines, favorite links, etc.), while including different articles of interest in the center of the web pages. As a result, it may be inferred that the user views the center of a web page as an important/prominent location on the web page. Therefore, as the user navigates a web portal, the web portal may construct and/or render web pages in accordance with the determined preferences for the user such that the primary piece of content on the page is displayed in the center of the page. Additionally or alternatively, the web portal may construct and/or render web pages such that an advertisement is displayed in the center of the page, thereby increasing the likelihood that the user actually will view the advertisement.
In some implementations, user profiles that identify certain preferences, traits, and/or characteristics of different users may be maintained. Such profiles may be based on information explicitly provided by the users and/or such profiles may be based on information gleaned from the user's behavior (e.g., the types of modules that the user selects to import into user-created web pages and/or the user's Internet browsing activity). For example, a user that frequently imports modules associated with sports and/or that frequently visits sports-related web sites may be determined to be interested in sports and his/her profile may be updated accordingly. As a particular user creates web pages, different modules may be recommended to the user based on the user's profile. For example, if the user has a user profile that indicates that the user is interested in sports, modules that are popular with other users that have profiles reflecting an interest in sports may be recommended to the user.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. The described systems, methods, and techniques are not limited to any particular hardware or software configuration. Rather, they may be implemented in digital electronic circuitry, computer hardware, firmware, software, or in combinations thereof. Apparatuses embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor.
A process embodying the described techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output, hi addition, the techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Furthermore, advantageous results may be achieved if the disclosed techniques are performed in a different order and/or if components in the disclosed systems are combined in a different manner and/or replaced or supplemented by other components.
Throughout this disclosure, various references are made to scripts that, for example, facilitate the selection, importation, and formatting of modules. It will be appreciated that any number of scripts, working alone or in concert, may be utilized to accomplish the disclosed selection, importation, and formatting functionality.
The source code examples provided in Appendices A, B, and C are merely examples. Other source code also may be capable of implementing disclosed functionality. Furthermore, the examples of the source code provided in Appendices A, B, and C represent examples of source code received and rendered by a local browser. The hosted source code for the web pages may differ from the examples of the source code received and rendered by the local browser. For example, the hosted source code, or a portion thereof, may be passed to a hosted rendering framework before the source code is transmitted to the local browser. The rendering framework may process the hosted source and then transfer a translated, modified, or otherwise different version of the source code to the local browser.
APPENDIX A
Figure imgf000040_0001
sessionTimeout.timeoutwarnlnterval = 28,"</script>
<link href="/stylesheets/54019/healthy_living.css" media="all" rel="stylesheet" type="text/css"/>
<link href="/stylesheets/54019/print.css" media="priπt" rel="stylesheet" type="text/css"/>
Figure imgf000040_0002
f i ed . j s"x/scri pt>
Figure imgf000040_0003
<script type="text/javascript">//<! [CDATA[ addτrackEventC"event4") ; if( s.getQueryParam('msc') && ! cookies. read C'msc") ){ cookies. write ( "msc", s.getQueryparam C'msc1) , (new Date() .getτirae() + 365*24*60*60*1000*3) ) ; s.evar9 = s.getQuery.ParamC'msc1) ; else{ s.eVar9 = Cookies. read ("msc") ; s.eVarlO = "; if (s.getQueryParam('se')== "reg"){ yar tempvar=s.getvalθnce("reg", 's_se_reg') i f (tempvar) addTrackEventC'eventl") ;
39
© 2Q06 Evolution Health Group LLC } if (Cooki es . readC'RTOKEN") != null){ var tempvar=s .getval Once (Cooki es. read ("RTOKEN") , 's_se_sig ") if(tempvar) addTrackEvent("event9") ;
//] ]></script>
<! — [if It IE 7.]> <div class='ie ie6 '> <! [endif] — > <! — [if IE 7]> <div class='ie ie7'> <! [endif ]--> <scri pt type="text/javascript ">//<! [CDATA[ var d = browsercSSpetectionQ ; if( d. browser != "i e" ){ document. write( "<div class=' " + d. browser + " " + d.os + " >" ) ; } //]]></script>
<div id="contai ner" class="healthy_living"> <div id="header" >
<div class="box">
<div class="">
<a href="/" id="header_logo" title="Revolution Health"xspan el ass="nodi spl ay">Revol uti on Heal th</spanx/a>
<a href="#" class="additional_logo" title="Additional Logo"xspan cl ass="no_di spl ay"></spanx/a>
<form id="submit_query_formheader" action="/search/results" method="get" cl ass="i nput_search">
<f i el dset>
<input id="src" name="src" type="hidden" value="global_header" />
<l egend>What would you li ke to f i nd?</l egend>
<div id="input_contai ner_header" class="search_me">
<script type="text/javascri pt"> ' ,
Figure imgf000041_0001
onkeydown="chooseNextLink(event, ' header' ) ; " />
<button type="submit" type="submit" style="fi lter:none" id="submit_queryheader" titl e="Search" class="button btn_search "><span>Search</sρanx/button> </di v>
<div i d="search_box_auto_completeheader" class="word_wheel di splay_none">
<a class="close_l ink" href="#" one! ick="hidewordwheel (' header ' , 380) ; return false ; ">hide [x]</a>
40
© 2006 Revolution Health Group LLC <ul id="wheel_listheader"xli class="Word">&nbsp;</lix/ul> <div class="revolution_suggests" id="suggest_modheader"x/div>
</div>
</fieldset> </form>
<div class="q_module bvr-q-module block mini_dashboard " id=utoken-9eb0ed422a95cfed">
<div id="nrinidash">
<div class="salutation">
<spanχdiv cl ass="hi ">Hi ,&nbsp;</divxdiv class="screenname"xa href="/my-profile/view/andyfoy" class="user" id="screenname" titl e="andyfoy">Andy Foy</ax/divxdiv class="fade"x/divx/span>
<diγ class="]iπks"xa href="/account/main">Account<:/a> | <a h ref ="/regi strati on/1 ogi n/si gnout">Si gπ out</ax/di v> </div>
<a href="/my- revolution/" title="My Revolution" cl ass='"my_revol uti on"xspan>My Revo! uti oπ</spanx/a>
</di v>
</di v>
</di v>
</di v>
<div id="main_navigation">
<div class="box_conteπt">
<ul class="bvr-menu">
<li class='home first'xbxa href="/">Home</ax/bx/li> .
<1 i cl ass= ' condi ti ons_treatments ' >
<bxa href="/conditions/'Vconditions &amp; treatments</ax/b> <div class="ddowπ">
<u1>
<lixa href="/drugs-treatments/">Medicine Chest</ax/li> <lixa href="/sytτiptom-checker/">Symptom checker</ax/li> <li class='featured_link'xa h ref ="/tool ki t/">Tool ki t</a></] i > <1 i ><a href="/coπdifions/digestive/acid-reflux/">Acid reflux</ax/li> <lixa href="/conditions/brairι-πerves/alzheimers/">AlzheimerIs</ax/li>
<lixa href="/conditions/asthma-anergies/">Asthma &ainp; allergies</ax/li> <lixa href="/conditioπs/mental -behavioral -heal th/autism/">Autism</ax/li> <1 i xa href ="/coπdi ti oπs/bones- joi nts-muscl es/back-pai n/">Back pai n</ax/l i > <lixa href="/conditions/bones-joiπts-ιiiiJscles/">Boπes, joints &amp; muscles</ax/li> <lixa href="/conditions/caπcer/">Cancer</a></li> <lixa href="/coπditions/mental -behavioral -heal th/depressioπ/">Depression</ax/li> <lixa href="/conditions/diabetes/">Diabetes</ax/li> <lixa href="/conditions/digestive/">Digestive</ax/li> <lixa href="/condi tions/heart/">Heart</ax/l i> <1 ixa href="/conditions/skin/">Skin</ax/li> <lixa href="-/conditioπs/">View all
41
© 2006 Revolution Health Group LLC conditions A - Z</a></Iϊ> </ul>
</di v> </li>
<li class='healthy_living'>
<bxa href="/healthy-living/">Healthy living</ax/b>
<div class="ddown">
<ul>
<lixa href="/newsletters/newsletter/signup">Healthy living newsletters</ax/lixli class='featured_link'><a href="/live-better/">Healthy living programs</ax/lixlixa h ref ="/heal thy-1 i vi ng/f i tness/">Fi tness</ax/l i xl i xa h ref =Vheal thy-1 iving/food-nutrition">Food &amp; nutrition</ax/lixlixa h r ef ="/heal thy-1 i vi ng/mens-heal th ">Men ' s heal th</ax/l i ><1 i xa h ref ="/heal thy-1 i vi ng/mom-cent ral /">Mom central </ax/l i ><1 i xa href="/heal thy-1 iving/natural -heal th">Natural hea1th</ax/lix1ixa h ref ="/heal thy-1 i vi ng/parenti ng/">Parenti ng</ax/l ixl i xa h ref="/heal thy-1 i vi ng/pregnancy/">Pregnancy</ax/l ixl i xa h ref ="/heal thy-1 i vi ng/rel ati onshi ps/">Rel ati onshi ps</ax/l i ><1 i xa h ref ="/heal thy-1 i vi nq/wei ght-tπanagemeπt/">Wei ght loss &amp ; management</ax/l ixl i xa href ="/πeal thy-1 i vi ng/womens-heal th/">women ' s health</ax/lixlixa h ref ="/heal thy-1 iving/">View all healthy living topi cs</ax/l i > </ul>
</div> </li>
<1 i cl ass= ' doctors_hospi tal s_more ' >
<b> <a href="/care-providers/">Doctors &amp; hospitals</ax/b> <div class="ddown">
<ul>
<lixa href="/care-providers">Find a doctor</ax/lixlixa href="/care-provi ders?search_f or=denti st">Find a denti st</ax/l ixl i class='featured_link'xa href="/care-providers?search_for=hospital ">Find a
42
© 2006 Revolution Health Group LLC hospital </a></li><1ixa href="/care-providers/for-providers">For providers</ax/lix/ul>
</div> </li>
<1 i cl ass= ' connect_wi th_others ' >
<bxa href="/community/">Community</ax/b> </li>
<lϊ class= 'membership^
<bxa href="/premium-services/">Premiuin services</ax/b> </li>
<li class='insurance'>
<bxa href="/i nsurance/">lnsurance</ax/b> <div class="ddown">
<ul>
<lixa href="/insuraπce/shop/app]y-for-insuraπce">compare health insuraπce</ax/li> <lixa href="/insurance/information/">Learn about health i πsu rance</ax/l ix/ul >
</div> </li>
<li class="store last">
<bxa href="/store">store</ax/b> </1i>
</ul> </di v> </div> </div>
,<div "id="page_header"> <div clas5="box"> <hl>Fitness</hl> <cite id="fabric-nav-tabs">
<a href="/fabric/search?q=Fitness"ximg class="health-page-small " src="/images/modules/healthpage-small .png"/>Health Pages</ax/ci te>
<ul id="page_controls">
<lixa href="#print" onclick="window.printθ ; return false;" class="print" title="Print">&πbsp;<span class="no_display">Print</span></ax/li>
<li class="save_and_share_icon"xdiv class="bvr-menu"> <ul id="saye_share">
<li c1ass="menu">
<bxa sty! e="di splay: none" href="?save_and_share">save &amp; Share</ax/b> <ul>
<li>
<spaπ class='bvr-hover-bubble'>
<a class="send" href="" onclick="new Aj ax. Request C ' , {asynchronous:true, eval scripts: true}) ; return false; ">Send to a frieπd</a>
<span class='no_di splay bubble send_box'>
<form accept_charset="utf-8" action="/global/page_controls/send_url_from_box" method="post" name="send_box_form" onsubmit="new
Aj ax. Request (Vglobal/page_controls/seπd_url_from_bαx' 7 {asynchronous: true, eval Scripts: true, parameters:Form.serialize(this)}); return false;"> <fieldset> <dl class="form_inline">
<dtxl abel >To : </l abel ></dt>
43
© 2006 Revolution Health Group LLC <ddxinput class="characters_35" id=" recipients" name=" recipients" ,
Figure imgf000045_0001
<a href ="http : //di qg . com/submi t?phase=2&amp ; u rl =http%3A%2F%2Fnext-dev . revol uti onheal th . com%2Fheal thy-1 iving%2Ffitness%2F&amp;title=Fi tness" class="digg" target="_blank">Digg this</a>
</li> <li>
Figure imgf000045_0002
<lixa href="#adjust-text-larger" id="text_larger" title="Adjust text
44
© 2006 Revolution Health Group LLC larger">&πbsp;<span class="no_display">Adjιist text larger</spanx/ax/li>
<lixa href="#" oncl i ck=" Fab ricPageclippi nqMode. toggl e C ) ; ; return false;" id="fabn'c-scissor-clip-button" class="clip" tit le="Clip >&nbsp;<span cl ass=" πo_di spl ay">cl i p</spanx/ax/l i>
</ul> </div> </div>
<div id="main-content"> <div class="treatment">
<div class="wrapper2" id="rhg-main-coπtent-i nner-wrapper-wrapper"> <div class="wrapper">
<div id="error_bar"x/div>
<div class="template_3c_ncm bg_treatment"> <div class="article_nav">
<di v cl ass="col umn_l ef t_t reatment"> <div id="nav_slot">
<div class="q_module bvr-q-module block nav_Jinks topics" i d="token-687491c53b55f a8f ">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f ab ri c-modul e-cl i pppi ng-tool s"> <div class="modul e_cl ippi ng_tool_matte"x/div>
<a href="/fabri c/cli ps/syπdi cate?tokeπ=Qget8LsYlgzTUBTLNSkl EJSvdP0m6pθRRaBnwvje3k2T%2Fx Dθθ2G3jXB0VD7Se3tWZi bKYVX3DypwNwFE%2BaA5g2YXKIuyio%2B%2BblcbMhfPMTyW7oSlu5K6tpnFVjzt hsp%2FzhbMπQoZj2f0K8oTwlm9G48vl2zSEit.iQpCZrgi HviM%2Fr3E4TTqhZM0317G%2Fa%2F6ixkHy97x 7eEKh5m6YmDIeHPBDXye3HrmpDMa3EPWLM%2Byk3x0Ua35Q7FDH%2BGUIKi rTVTExj9rBxTJI%2Biz%2B8eq 6IeSScEf qPtVupYf gdelX%2FEl c6s2uMUaKmzY6%2BOGxi UaH%2Fow91 JxLekGy4XIWsP5e4di f CoMVF69xk OL%2BKlO%2BIghXgQ9Xvki 5PEfGT3 j4HxJ%3A687491c53b55f aδf " cl ass="syndi cater" target="_sel f"x/a>
<a href=n/fabri c/cli ps/cl ip?token=Qget8LsYl gzTUBTLNSkl EJSvdP0m6pORRaBnwvje3kzT%2FxDOOZG
5m6YmDIeHPBDXye3HrmpDMa3EPWLM%2BykJxOUa35Q7FDH%2BGUIld rTVTExj9rBxT-lI%2Bi z%2B8eq61e8S cEfqPtVupYfgdelX%2FEl c6s2uMUaKmzY6%2BOGxiUaH%2Fow9l DxLekGy4XIWsP5e4difCoMVF69xkOL%2B KlO%2BiqhXgQ9xvki 5PEfGT3j4HX3%3A687491c53b55fa8f" cl ass="cl i pper" target="_self"x/a>
</div>
<h3>Fitness topics</h3> <ul>
<li xa href="/healthy-living/fitness/getting-started/">Getting start ed</ax/l i>
<li xa href="/healthy-living/fitness/exercise-health/">Exerci se &amp; your heal th</ ax/1 i >
<li xa href="/healthy-living/fitness/get-stronger/">Get stronger</a></li> <li xa href="/healthy-l iving/fitness/get-moving/">Get moving</ax/li> <li xa href="/healthy-living/fitness/gear-equipraent/">Gear &amp; equi pment</a></li>
<Η xa href="/healthy-living/fitness/fuel -up/">Fuel up_</ax/l i>
<li xa href="/healthy-living/fitness/prevent-treat-n njuri es/">Prevent
&amp; treat injuri es</ax/li>
<li xa href="/healτhy-liviπg/fitness/fit-fami ly/">Fit f ami ly</ ax/1 i> </ul>
45
© 2006 Revolution Health Group LLC </div>
<div class="q_modul e bvr-q-modul e block nav_links si de_nav" id=1'token-4eed71ed0e77a8d811>
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s "> <div class="module_clippi ng_tool_matte"x/div>
<a href="/fabric/clips/syndicate?token=Qget8LsYlgzTUBTLNSkl EJSvdPOmβpORRaBnwvjeJkzτ%2Fx DOOZG3jXB0VD75e3tWZibKYVX3DypwNwFE%2BaA5g2YXKluyio%2B%2BblcbMhfPMTyW7oSlu5K6tpnFVjZt hsp%2FzhbMnQozj2fOK8oTvvlm9G48vi22SEit3QpCZrgiHVlM%2Fr3E4TTqhZM0317G%2Fa%2F6ixkHy97x 7eEKh5m6YmDIeHPBDXye3HrmpDMa3EPWLM%2BykJxOUa35Q7FDH%2BGUIKirTVTExj9rBxT3I%2Biz%2B8eq 61e8scEfqPtvupYfgdelX%2FElc6s2uMUaκmzY6%2B0GxiuaH%2Fow91JXLekGy4xiwsP5eysvewsvgoGpff zlFqeyGMotqZfA5cBDtUoAYHClrZaW%3A4eed71ed0e77a8d8" class="syndicater" target="_self"></a>
<a href="/fabric/clips/clip?tokeπ=Qget8LsYlgzTUBTLNSklEJSvdPθm6pORRaBnwvje3kzT%2FxDOOZG
5m6YmDleHPBDXye3HrmpDMa3EPWLM%2Byk3xOUa35Q7FDH%2BGUIKi rTVTExj9rBxTJl%2Biz%2B8eq61e8S cEfqPtvupYfgdelX%2FElc6s2uMUaKmzY6%2BOGxiUaH^2Fow9l]χLekGy4xiWsP5eysVewSVgoGpffzlFqe yGMotqZfA5cBDtUoAYHClrZaW%3A4eed71ed0e77a8d8" class="clipper" target="_self"x/a>
</div>
<div class="1inks_related">
<h3>Related centers</h3>
<ul>
<li ><a href="/hea1thy-living/weight-management/">Weight management</ax/1i> <li ><a href="/healthy-1iving/mens-health/">Men' s health</a></li> <li ><a href="/healthy-living/womens-health/">Women's health</ax/Η> <li ><a href="/healthy-Ηving/parenting/">Parenting</ax/"l i> <li ><a href="/healthy-living/food-nutriti oπ/">Fooα &amp; nutrition</ax/~li> </ul>
</div>
</div>
<div c1ass="q_module bvr-q-modul e block commuπi tymodul e verticallinks" i d="token-e014cl8d73el5bla">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <di v cl ass="modul e_cl i ppi ng_tool_matte"x/di v>
<a href="/fabric/clips/syndicate?token=Qget8LsYlgzTUBTLNSklE3SvdP0m6pORRaBnwvje3kypSRBA OWKlPJoeObDH0Gq%2BF0Roryli812oQgcθmQAyZ%2BF6VMhCAc0veuhq08u3eY%2FgXNwyIZ75cqπ%2BLwhC
nβoexcZRfu7eQdMhMzLQyYrSjcXCg
46
© 2006 Revolution Health Group LLC 3sθtcpTN5CX%2Fkl%2F43]2Xπ5%2BzaSyy8zshθHizGlMwF9whs2c3aGxBTs4RBX%2BlP2ZeqP5SPa8qsfjκ om5T2lPQWozf7%2Bpi lzd35EsRDIrg%3AeO14cl8d73el5bla" cl ass="syndi cater" target="_sel f "></a>
Figure imgf000048_0001
</div>
<h3>Commuπi ty</h3> <p>Join discussions, share stories, and find people like you:</p>
<ul>
<lixa href="/community-overview/fitness">Fitness commuπity</ax/li> </ul>
</div>
</di v>
<div id="banner_slot">
<div class="q_module bvr-q-module block ad size728x90" i d="token-aac7f b8e8951df f f ">
Figure imgf000048_0002
</div>
</div>
47
© 2006 Revolution Health Group LLC <div id="body_slot">
<div class="q_module bvr-q-module block promo single_image_teaser" i d="token-b5cb4bbObcbc423c">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s "> <div class="module_clipping_tool_matte"x/div>
<a href="/fabric/clips/clip?token=Qget8LsYlgzTUBTLNSklE3SvdP0m6pORRaBnwvjeJkxYNgsJwl80X DEp6DWDH7VURG6JFAPNJKhHTblRsqMN%2F5hw0kHc2HHqPcQCAFzgyWNb4VWfx2auEwlis6ZnowKpqDPW9xP OvBl5mGUcWpv3UldgAccWL02B%2Fu5aJ4d4bgzg9gmul0TVplWχPVuH54a42QWtyMp8GpK0NDwqffZZe8gAb g3D%2B2GuυdllwyeCWwESjEdmo4lzl4c266uKJjegj09z6YGxlUt7KzqiF3vG53i%2FJTM4uk6Pg%2FGXMS9 eJVWuLUZhNhoNYmxDLJwiZYLHFpwvoTlkZ%2BoxCkhM0AHm947xr8Afrzuτ7QVAkGrcT4LbfHqgU7jE31u1x 5wcmCq5%3Ab5cb4bb0bcbc423c" class="clipper" target="_self"x/a>
</div>
<a href="/l ive-better/view-pl an/Get +i n+shape" ximg s rc="//content-dev . revol uti onheal th . com/conteπti mages/i mage .2007-02-12.2596383018/1 a rge" alt=""/></a>
</div>
<div class="q_module bvr-q-modul e block at_a_glance notabs" i d=Mto!cen-3e479f7b3f4daf 31">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <div class="module_clippi ng_tool_ιnatte"></div>
<a
2Fy%2FmefewhRAθH5ra8aGG3QuaKgF%2Bapc4zHrAwn9xOewviSPigN6gmC9uEIaa3vyC8hlu6blFBUAyt6oW p%2BzahXy%2FPPwcLxsMjhwrE436baκ5kDf5z5LhvzpnuwtYZ4x5rmVhr2θMMBM%2Fj5p7BzjfQo8hnBt4pR T3j4jfAN%2FIkl%2FmGGbGz26apzfmHm%2FSkUEtCnvxlYsfiskBj%2FlvrKbohSis%2FEXqXDBitl 3UE06τ EpBpHWWxdaRBwsYll LQ2XGZMwijk4l6TwnBs67a3D4%2BYS4hzqg3pUsXiHdBBdw62caPiwRExlQ3ceKSMM SaXmAmBGTi tiWNZql61gcZOB5TxIms3BFnu0a76LK9Wj4VhXB0K%2Fr:ryid3jwD4g%3A3e479f7b3f4daf 3 1" class="clipper" target="_self "></a>
</di v>
<div id="at_a_glance_geπeri c_container_2007_02_14_7421623498" class="slot">
<h2x/h2>
<div class="popular_post img_left block"> <h3>cal culators : Here' s how to lose a pound</h3>
<img cl ass="img_teaser" s rc="//content-dev . revol uti onheal th . com/contenti mages/i mage .2007-01-08.9057563961" alt="Calculators : Here ' s how to lose a pound" /> <div cl ass="block_column">
48
© 2006 Revolution Health Group LLC
Figure imgf000050_0001
<div class="block_column">
Figure imgf000050_0002
<div class="popul ar_post img_left block"> <h3>Sports nutrition: 5 supplements you need</h3>
<img class="img_teaser" src="//content-dev. revol utionhealth . com/contenti mages/image.2006-12-12- 9474187079" alt="Sports nutrition: 5 supplements you need" /> <div class="block_col utπn"> —
Figure imgf000050_0003
</di v> </di v>
<div class="q_module bvr-q-module block forummodul e askaquesti on" i d="token-9ab9628806ef cc75">
<div class="modul e_clippi ng_tool bvr-fabri c-module-clipppi ng-tools"> <div class="module_clippi ng_tool_matte"x/div>
<a href="/fabri c/cli ps/syndicate?token=Qget8LsYlgzTUBTLNSkl EJSvdPθm6pORRaBnwvje3kxrUXm9
49
© 2O06 Revolution Health Group LLC rHfM51cwuF9CMMXFwlCGkRl8RBaEtB%2Fo3kfopV76gx:cv5FQYbeoqKtepcFd7nx%2Fl 9WXN3uQm6dE0fu2Y HLbXmπKmnFDlN5GzOZRzl 4RJwfdrxRSKkruu_ιlIXvuHRssnGxMwyAd7Mplq5NE-ljWeRCrlmwnAKkhCbX29b OQNj 3xREθgKacl sgl42zgu5kJYmt0Q7oO6p3NT9SvQi uYp3Ng5ZRWND9vmvj F36aGCgq5hcPYvFTp9uNXa%2 B2P3MFW6ScppP9AeClgMC8w73xQ%2BpSEc8dhdc4%2FBHUJx3DCsMqYLS873ErUARqYN40oOKsk5lNPosejθ ZDMoNk6zτc8com4EgG0cfep33DsjPpw2wxalk3PiXHθ4QVr2%2BL7i0%2BqGrjbgwi G2znchaxjyz4LZecWs G2zwSznnUNDhN6mg%3A9ab9628806efcc75" class="syndi cater" target= _self"x/a>
<a href="/fabn'c/clips/clip?tokeπ=Qget8LsYlgzTUBTLNSklEJSvdP0m6pθRRaBπwvjeJkxruxm9rHfM5 lcwuF9CMMXFwKGkRl8RBaEtB%2Fo3kfopV76gXDcv5FQYbeoqKtepcFd7nx%2Fl9WXN3uQmδdE0fu2YHLbXm nκmnFDlN5GzθZRzl4RJwfdrxRSKkruu3llXvuHRssnGxMwyAd7Mplq5NEjjweRCrimwnAKkhcbx29bθQNj3 xREOgKaclsgl42zgu5kJYmt0Q7oO6p3NT9SvQiuYp3Ng5ZRWND9vmvjF36aGCgq5hcPYvFTp9uNXa%2B2P3M FW6ScppP9AeClgMC8W73xQ%2BpSEc8dhdc4%2FBHUJX3DCsMqYLS87JErUARgYN40oOKsk5lNPθsejOZ3MoN k6zTc8com4EgG0cfep33DsjPpw2wxalk3PiXHO4QVr2%2BL7l0%2BqGrjbgWiG2znChaxjyZ4LZecWsG2ZwS zππUNDhN6mg%3A9ab9628806efcc75" class="clipper" target="_self"x/a>
</div>
<form action="/forums/topics/protected_create" id="ask_form" method="post" onsubmit="$C'ask_form") .request_path.value=window.location; ">
<input type="hidden" πame="request_path" id="request_path">
<h3>Ask the community</h3>
<pxem>Ask a question or post a topi c to the community</emx/p> <fieldset class="i nline">
<textarea class="bvr-qπa-toggle text_i nput_sman " id="text_input" name="topic[topi c_text] "></textarea>
<div class="group">
<label>* you must choose a category</label>
<select id="askaquestion_select_l">
<option va1 ue="-l">select Category</option>
<option val ue="2590">About health care</opti on>
<opti on val ue="183 ">Addi cti oπ</opti on>
<option value="2049">Anemia</option>
<option val ue="241">Asthma and al lergies</option>
<option value="258">Auto-immune</option>
<option val ue="297">Bones , joints and muscles</option>
<option value="356">Brain and nerves</option>
<option value="443">cancer</opti on>
<opti on val ue=" 1144">Caregi vi ng</opti on>
<option value="561">Cold and flu</option>
50
© 2006 Revolution Health Group LLC <option value="2928">Dental Health</option>
<;option value="572">Diabetes</option>
<opti on val ue=" 621">Di gesti ve</opti on>
<optioπ value="697">Ear, nose and throat</option>
<option value="2154">Eye</option>
<opti on val ue=" 1216">Fi tness</opti on>
<option val ue="1243">Food and nutrition</option>
<option value="2936">Giving back</option>
<option value="2940">Health in the news</optϊon>
<option value="732">Heart</option>
<option value="2159">HIv-AlDS</option>
<option value="2161">Hormones</option>
<option value="2164">Infectious diseases</option>
<option value="2552">Insurance</option>
<option val ue="2168">lCidney and bladder</option>
<option value="778">Lung</option> , . ■
<option value="1380">Men's health</option>
<option value="804">Mental and behavioral heal th</opti on>
<option value="1094">Natural health</option>
<opti on val ue="2944">Other</opti on>
<option value="1160">Parenting</option>
<optioπ value="1286">Pregnancy</optioh>
<option value="2227">Prostate</optioπ>
<opti on val ue="1319">Rel ati onshi ps</opti on>
<option value="2229">Reproductive heal th</opti on>
<option value="847">Sexual health</option>
<option value="873">Skin<:/option>
<option value="913">Sl eep</option>
<option value="2259">STDs</option>
<option value="929">Weight di sorders</opti on>
<option val ue="2501">Weight managemeπt</option>
<option value="1342">Woraen's heal th</opti on>
51
© 2006 Revolution Health Group LLC </select>
<scπ" pt type="text/javascript">$( 'askaquestion_sel ect_l') .selectedlndex = 16;</script>
<scri pt type="text/javascript">
//<! [CDATA [ new Form. Element. Eventobserver('askaquestion_select_l' , function (element , value)
{new
Aj ax . Request C ' /communi ty/communi ty/opti ons?uni que_i denti f i e r=askaquesti on&sel ect_num ber=l&sel ect_tag_name=askaquestion_select&product=Product%3AForutns&depth=4' ,
{asynchronous:true, eval Scripts: true, parameters : 'askaquestion_se1ect_l=' + value})})
//]]> </script>
<div id="askaquestion_select_2_div" > <sel ect i d="askaquesti on_sel ect_2">
<option value="-l">Sel ect optional subcategory</option> <option value="1242">Cl inical trial s</option> <optioπ val ue="2354">Exerci se and your health</option> <option value="2398">Fit f ami 1 y</opti on> <option val ue="2384">Fuel up</option>. : " . . . - -
<option value="2379">Gear and equipment</option> <option value="2366">Get moving</option> <option val ue="2361">Get stronger</option> <optioπ val ue="1217">Getting started</option> <option val ue="2388">Prevent and treat i njuries</option> </sel ect>
<scri pt type="text/javascHpt">$C'askaquestion_sel ect_21) . sel ectedlndex = 0;</script>
</di v>
<5cript type="text/javascript">
Figure imgf000053_0001
</scri pt>
<div i d="askaquestion_select_3_div" class="nodisplay">
52
© 2006 Revolution Health Group LLC <sel ect i d=" askaquesti on_sel ect_3 ">
</select> </div> <script type="text/javascript">
Figure imgf000054_0001
</script>
<div id="askaquestion_select_4_div" class="nodisplay"> <sel ect i d= askaquesti on_sel ect_4">
</select> </div> <script type="text/javascript">
//<! [CDATA [ new Form. Element. EventObserverC askaquesti on_select_4' , function(element, value)
{new
Aj ax . Request ( ' /communi ty/commuπi ty/opti ons?uni que_i denti f i e r=askaquesti on&l ast=t rue& select_number=4&select_tag_name=askaquestion_select&product=Product%3AForums&depth=4
', {asynchronous: true, eval Scripts: true, parameters: 'askaquesti on_select_4=' + value})})
//]]> </script>
<input type="hidden" id="askaquestion_category_id" name=''topi c [category_i d] " value="1216"/>-
</div>
Figure imgf000054_0002
</f i el dset>
<pxem>Note: Your posting can be viewed by anyone. </emx/p>
<button type="submit" onclick="triggercustomLinkCthis, 'eventlO' , 'community
Ask?)" title="Post type="submit" class="button btn_post
"><span>Post</spanx/button>
</form>
53
© 2006 Revolution Health Group LLC </div>
<div class="q_module bvr-q-module block nav_links flat_navigation" i d=Mtoken-cca2b9e4acf4a2a2">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <div class="module_clipping_tool_matte"x/div>
<a href="/fabri c/cl ips/syndicate?token=Qget8LsYlcjzTUBTLNSklEJSvdPOmβpORRaBnwvjeJkyjaGDs 5dRjBp%2BYrcn2ExRi sT2D96WcsbS66NcOZuYaKl xl_3LVi chzoπMYBVqpXDqmNJDCwjqryp%2B7YB631eB0% 2FV3KtPChKu2gxvZZ9eBCvmETwnTαnGvlvRU%2BA22GDkV3LMAzESQL6fAfQ0GQpRJ24oZcQ3X3k4tnshKZ3 nHi3lSlz0cZ73rklyz6BMXTh9F3tdHV6vhtLlFkLEXKQEbC9kCBXf%2FJB50Qvznuθ6oyb4A7mD56fv%2RΛfR EakLθuAqB41b2lEEi FDjoLlFfM5Bql5iA4LD98_iYgKsoWhGfYnZaEQxNt1 bwctTδOTfPEuURcl 5OJHqsdO4t XO8rA9ExKdZoiu7rYbcZAh%2BccAA%2FI3uo^2Fa9L0BbchtRvP6aLnRlAFH3raAYcxpAJMgMLn'JcOlFAAW 3ckHcF5nKjS%2ByUKhtsfg%3Acca2b9e4acf4a2a2" class="syndi cater" target="_self"x/a>
<a p%2BYrcn2ExRisT2D96WcsbS66Nc0ZuYaKlxL3LVichzonMYBVqpXDqmN3DCwjqryp%2B7YB631eB0%2FV3K tPChKuZgxvZZ9eBCvmETwnTcmGvlvRU%2BA22GDkV3LMAzESQL6fAfQ0GQpR324θZcQ3X3k4tnshKZ3nHi3l Slz0cz73rklyz6BMXTh9F3tdHV6vhtLlFkLEXKQEbc9kCBX-βά2F3B50QvznUθ6oyb4A7mD56fV%2FWREakL0 uAqB41b2lEEi FDjoLlFfM5Bql5iA4LD98JYgKsowhGfγnzaEQxNtl bwctτ8oτfPEuURcl 5O3HqsdO4tXO8rA 9ExKdZOi u7rYbcZAh%2BccAA%2FIJuo%2Fa9L0BbchtRvP6aLnRiAFH3raAYcxpA3MgMLri αcOiFAAVβckHc " F5nKjS%2ByUKhtsfg%3Acca2b9e4acf4a2a2" class="elipper" target="_sel f"></a>
</div>
<di v cl ass="modul e_contai ner"> <h3>Related fitness blogs</h3> <div class="popular_post"> <ul>
<li ><a
Figure imgf000055_0001
n1 Care of Fitness</a></li>
<li ><a href="http://runmomrun. blogspot.com/" target="_blank">Not Born to Run</ax/li>
<li ><a href="http://www. thefinalsprint.com/" target="_blank">τhe Final Spriπt</ax/li>
<li ><a href="http: //exercise. about. com/About_Exercise. htm" target="_blank">Exercise at About. com</ax/li>
<li xa href="http://completerunning.com" target="_blank">complete Running Network</ax/li>
54
© 2006 Revolution Health Group LLC 1i ><a href="http://marathonmom. clubmom. com/" target="_blank">Marathon
Figure imgf000056_0001
<l i ><a href="http://www. starling-fitness . com/" target="_blank"> Starling Fitness</ax/li>
<l i xa href="http://nicolew. typepad. com/" target="_blank">A Dumbbell in a Home Gym</ax/l i>
<l i ><a href="http://www. louschuler.com/'1 target="_blank">Male Pattern Fitness</ax/li>
<1 i cl as5="l ast"xa h ref="http : //getf i tsource . bl ogware . com/" target="_blank">Getfitsource. com</ax/l i>
</ul> </div> </div>
</div>
</div>
<div id="ri ght_slot">
<div class="q_module bvr-q-module block promo community_promo_l arge" id="token-88c3e29cf4c2457b">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s "> <div class="modul e_cli pping_tool_matte"x/div>
<a href="/fabπ"c/clips/ciip?token=Qget8LsYlgzτuBTLNSkl EJSvdP0m6pORRaBπwvje3kzT%2FxDθθZG 3jXB0VD7Se3twzibKYVX3DypwNwFE%2BaA5g2YXKluyio%2B%2BblcbMhfPMTxvDH8ujRb3HFKnnF0B6BB8E m0Gs0xb%2FP9p9Rgn91sDw8pAEKIMGz7wgGDizi%2BpbbAsfkc3Btk%2Bθqwsdamxl76aJmSJRodkgGjeZPA 8tNu4M0lLK7iv9g3p%2Bml9NrywhgLθ2xTp4sh5dlXiwLvLMriNeG4Jtz6Amtp32Y%2BKhmtBt9jLD75l0pP 81xz2DDnPtSYfDθl342m7QMmMlF%2FvHbBw6θX7lpvhlwjL%2Btk2eqiKBaY2qxRw3EF3dxθFEQRFrhReDFC MlDtRjz3l9Tm3iu4z%3A88c3e29cf4c2457b" class="clipper" target= _self"x/a>
</div>
<h3>τrack your exercise</h3>
55
© 2006 Revolution Health Group LLC <img src="//content-dev. revol utionhealth.com/contentimages/image.2007-01-28.0148128179/th umbnail " alt="τrack your exercise" /> <div cl ass="img_left">
<div class="block_column">
<p>Tracking your exercise time and routi ne is a great way to establi sh healthy habits and monitor your progress . Plus, it can be rewarding to see visual payoff for all that hard work even before it shows up in your wai stline.
<br/>
<a href="/trackers/exerci se/chart" class="arrow_right" >Start tracking now!</a>
</p> </div> </di v>
</div>
<div class="q_module bvr-q-modul e block nav_J inks side_bav" i d="token-792186bla38eb863">
<di v cl ass="modul e_cl i ppi πg_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <di v cl ass="modul e_cl i ppi ng_tool_maτte"x/di v>
<a href="/fabric/clips/syndicate?token=Qget8LsYlgzτUBTLNSklEJSvdP0ra6pθRRaBnwvje3kzτ%2Fx DOθZG3jXB0VD7Se3tWZibKYVX3DypwNwFE%2BaA5g2YXKluyio%2B%2BblcbMhfPMTyW7o5lu5K6tpnFVjZt hsp%2FzhbMnQoZj2f0K8oTvvIm9G48vl2zSEit.lQpCZrgiHVIM%2Fr3E4TTqhZMθ317G%2Fa%2F6ixkHy97x 7eEKh5m6YfflDleHPBDXye3HrmpDMa3EPWLM%2BykJxOUa35Q7FDH%2BGUIKi rτvTExj9rBxT3I%2Biz%2B8eq 61e8ScEfqPtvupYfgdelx%2FElc6s2uMUaκmzY6%2BOGxiUaF3p27τkDnELEl%2BP6κ%2FAAC2L68ujWqh3k ps6S5AlG491S5QdluVBom9sf6gHXJXqy%3A792186bla38eb863" class="syndicater" target="_self"></a>
<a href="/fabri c/clips/clip?tokeπ=Qget8LsYlgzTUBTLNSkl EJ SvdP0m6pORRaBnwvjeJkzT%2 FxDOOZG 3jXBθVD7Se3tWZi bKYVX3DypwNwFE%2BaA5g2YXKIuyjo%2B%2BblcbMhfPWTyW7oSlU5κ6tpnFVjZthsp%2 FzhbMnQoZj2f0K8oTvvim9G48vl2zSEit-)QpCZrgi HviM%2Fr3E4TTqhZMθ317G%2Fa%2F6ixkHy97x7eEICh 5m6YmDleHPBDXye3HrmpDMa3EPWLM%2BykJx0ua35Q7FDH%2BGUlKi rTVTExj9rBxT3l%2Biz%2B8eq61e8s cEfqPtVupYfgde!X%2FEl c6S2uMUaKmzY6%2BOGxi UaF3p27TkOnELEl%2BP6K%2FAAC2L58ujWqh3kps6s5 Al-G49l S5QdluVBom9sf6gHX3Xqy%3A792186bla38eb863" class="cl i pper" target="_sel f"x/a>
</di v>
<div class="l i πks_related">
<h3>More fitness trackers and tool s</h3> <ul>
<l i ><a href="/live-better/vi ew-plan/Get+i n+shape">start getti ng i n shape now! </ax/li>
56
© 2006 Revolution Health Group LLC <li ><a href="/trackers/body-mass-index-bmi/chart">chart your Healthy
Figure imgf000058_0001
</div>
<div class="q_modul e bvr-q-modul e block ad size3OOx25O" id="token-822387235a723d26">
Figure imgf000058_0002
</di v>
<div class="q_modul e bvr-q-modul e bl ock forummodul e mostrepl i ed" i d="token-7d64c0c6069a25c7">
<di v cl ass="tπodul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <di v cl ass="modul e_cl i ppi πg_tool_matte"x/di v>
<a href="/fabric/clips/syndicate?token=QgetδLsYlgzTUBTLNSklE3SvdP0tn6pORRaBnwvjeJkw64lpM v9tL38B3e4vlfpGo(3%2FaTeUenr%2B2Q3gsMcCZRAkDrlICllki08CPLWt%2FdficYx5yXa2xHrTWAnbMML5 AysmjRA2bUL5plek4nwlAujtyu3tRNCG%2BDArhθ6%2Bgvθ4y2c3KHV%2BQpCZL7ck0eDwlq0%2BRp2BbyYE O3%2FG3v3rEZUeNClq2QYFAlogwmkw3l7CW3mSydBd3djjHfvun5isqMUXfs70X92vPteHYgiacLinWAKr81I NdXWE%2F4igF6YPweQdG7tyeF4L5r52pπSPpCffgnlZunsz8nmnkuGOAvlysHdDkGkueMZdKPkeX8uXYlQF: CZj9fRwel9xz%2Bvx%2BxjigZLBoxvκlv4g6ZntVU%2FKu9H%2BrvcYgstlc9%2BYufegjh2d9rκ8mposwsh AyLHTqjtlR%2FKsahmysyQ7cL3l5TKXQ%3A7d64c0c6069a25c7" class="syndicater" target="_self"x/a>
57
© 2006 Revolution Health Group LLC <a href="/f abri c/cl i ps/cl i p?token=Qget8LsYl gzTUBTLNSkl EJSvdPθm6pθRRaBnwvje3 kw64ipMv9tL3 8B3e4vifpGθQ%2Faτeuenr%2BzQ3qsMcczRAkDrlicil ki08CPLWt%2Fdfi cYx5yxa2XHrτwAnbMML5Avsnii
GJVirEzυeNC±qzQYFAiogwmicw: i /cwjm5yαBαjctj]Hrvun5τ sqMUXfs7θχy^vPteHYgτ acLmWAKr8liNdXWE %2F4igF6YPweQdG7tyeF4L5r52pnSPpCffgnlzuhsz8nmπkuG0AvlysHdDkGkueMZdKPkeX8uχYlQFJCZj9f Rwel9X2%2BvX%2BxjigZLBoXvKlV4g6ZntVU%2FKu9H%2BrVCYgStlc9%2BYufCgjh2d9rK8mpoSWshAyLHT q jtl R%2FKsahmysyQ7cL3l5TKXQ%3A7d64c0c6069a25c7" cl ass="cl i pper" target="_sel f "x/a>
</div>
<h3>Most active forum topics</h3>
<pxa href="/forums/fitness/get-movi ng/58235">what 's good to eat before a run?</ax/p>
<pxetn>2 responses</emx/p>
<pxem>Posted on 04/03/2007in <a href="/forums/fitness/get-moving">Get moving</a> by <img src="/global/presence/τind_person/hi nesward al t="site presence" cl ass="presence"/xa h ref="http ://next-dev . revol uti onheal th . com/communi ty/peopl e/prof i 1 e/hi nesward" person="#&l t ; Person : Oxb6c2f 14c&gt ; ">Hi πesward</ax/p>
<pxa href="/forums/fi'tπess/58221">how can jayme win the ncaa pool when mary has more wi ns??</ax/p>
<pxem>l response</emx/p>
<pχem>Pαsted on 04/Q2/2007in <a href="/forums/fitness">Fitπess</a> by <img src="/gl obal/presence/fi nd_person/hinesward" al t="Site Presence" cl ass="presence"/xa href ="http : //next-dev . revol uti onheal th . com/communi ty/peopl e/prof i 1 e/hi nesward" persoπ="#&l t ; Person : 0xb6cl29ac&gt ; ">Hi nesWard</ax/p>
</div>
<div class="q_modul e bvr-q-module block ad size300x250" i d="token-47769988c5ae2979">
<span cl ass="ad_text"xa href="/about/advertise-with-us" tit! e=" About our
thy+Li v
Figure imgf000059_0001
<a href ="//ad . doubl eel i ck . net/ jump/rhg . rh . hi . f i tπess/f i tness ; sz=30Ox250 ; k=Heal thy+Li vi n g ; k=Fi tness ; ut=l; os=0 ; u= ; pos=10; ti Te=IO; ord=165573025?"ximg s rc="//ad . doubl eel i ck . net/ad/rhg . rh . hi . f i tness/f i tness ; sz=3OOx25O ; k=Heal thy+Li vi ng ; k
58
© 2006 Revolution Health Group LLC width="300"
Figure imgf000060_0001
</div>
</div> </div>
</div> </div>
</div> </div> </div> </div> <div id="bottom_cap">
<di v cl as s="wrapper_bottom_l ef t">&nbsp ; </di vxdi v class="vyrapper_bottoni_right">&nbsp;</div> </di v>
<div id="footer"> <div class="links"> <ul>
<li class="no_border">company information:</li> <1ixa href="/about">About Revolution Hjealth</a></li> <lixa href="/about/our-policies">θur policies</a></Η> <lixa href="/about/advertise-with-us">Advertise with us</ax/li>
<lixa href="/about/site-map">Site map</ax/li> <lixa href="/about/contact-us">contact us</ax/li> <li class="1ast"xa. href="/help">He1p</ax/li> </ul>
<p>&copy; 2007 Revolution Health Group LLC. All rights reserved. Use of this site constitutes acceptance of Revolution Health's <a nref="/terms-of-service">terms of service</a> and <a href="/about/privacy-policy-highlights">privacy policy</a>. The material on this site is for informational purposes only, and is not a substitute for medical advice, diagnosis or treatment provided by a qualified health care provider. </p>
Figure imgf000060_0002
59
© 2006 Revolution Health Group LLC //]]></script>
<script type="text/javascript" src="/javascripts/xplusone.js"x/script> <script type="text/javascript">
//<! [CDATA [ var ev_transid = Math, round (Math. randomO * new DateO . getTimeO), docuιτ]ent.writeC"<scr" + "ipt src='//" + window. location. protocol .replaceC/:/, ' ') +
" .edge. ru4. com/smartserve/ad?placement=pt-2225-001" +
"&ev_traπsid=" + ev_transid +
"&pagecode=" + s.pageName +
"&sourcecode=" + xpone_retVal("msc") +
"&vl=" + xpone_retval("tsc") +
"&v2=" + s.channel +
"&v3=lNSERT_v3&v4=lNSERT_V4&v5=lNSERT_V5&invocation=0&forcejs11 +
"&click='x/scr" + "ipt>" );
</script>
<noscript><div><img width="l" height="l" alt="x-plus-one-tracking" s rc="//pi xel 1363. everesttech . net/1363/p?ev_transi d=&amp ; ev_pagevi ew=l"
/></divx/noscript>
</body> </html >
60
O 2006 Revolution Health Group LLC
APPENDIX B
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<title>Test Page - Revolution Health</title>
<meta name=" keywords" content=" "/>
<meta πame="description" content=""/>
<liπk rel="P3Pvl" href="/w3c/p3p.xml" />
<link rel='icon' href=I/images/common/icoπs/favicon.ico1 type='image/x-icon'/>
<link rel='shortcut icon' href='/images/common/icons/favicon.ico' tyoe= ' i mage/x-i con ' />
<link href="/stylesheets/54019/common.css" media="an" rel="stylesheet" type="text/css"/>
<scπ"pt type="text/qavascript" src="/javascπ'pts/54019/corπmoπ . js"x/script>
<script type="text/javascript">sessionτiraeθut.timeθutlnterval = 15;
SessionTimeout.timeOutwarninterval = 13;</script>
Figure imgf000063_0001
type="text/css"/>
<link href="/stylesheets/54019/print.css" media="print" rel="stylesheet" type="text/css"/>
Figure imgf000063_0002
<script type="text/javascript" src="/javascripts/53932/fabric. js "></script>
</head>
<body clas5="article_page page_fabric_page">
<script type="text/javascnpt">//<! [CDATA[ var s_accouπt=" revodev" ; //]]></script>
<script type="text/javascript" src="/javascripts/omniture-modified. js"x/script> <scri pt type="text/javascri pt">//< ! [CDATA[ s.evar2 = s. pageName=" Pages |Test+Page", s.eyar3 = s. channel ="Manage and Track My Health"; s.hierl = s.prop5 = "Pages |Test+Page";
//]]></script>
<script type="text/javascript">//<! [CDATA[ addτrackEveπt("event4") ; if C s.getQueryParamC'msc1) && lCookies.readC'msc") ){
Cookies. write ( "msc", s.getQueryParamC'msc ")i (new Date() .getTimeO + 365*24*60*60*1000*3) ) ; s.eVar9 = s.getQueryParam('msc') ; else{ s.eVar9 = cookies. read("msc") ; s . eVarlO = " ; i f (s . getQueryParamC 1Se')== " reg") { var tempvar=s.getval once ("reg", 's_se_reg') if (tempvar)
62
Θ 2006 Revolution Health Group LLC addTrackEvent("eventl") ;
rowser + " " + d.os +
Figure imgf000064_0001
<div class="">
<a href="/" id="header_logo" title="Revolution Health"xspan cl ass="nodi spl ay">Revol uti on Heal th</spanx/a>
<a href="#" class="additional_logo" title="Additional Logo"xspan cl as5="no_di spl ay"></spanx/a>
<form id="submit_query_formheader" action="/search/results" method="get" cl ass="i πput_search">
<fieldset>
<input id="src" name="src" type="hidden" va1ue="global_header" />
<legend>What would you like to f i nd?</l egend>
<div id="input_container_header" class="search_me">
<script type="text/javascript"> function disable_wwθ { di sabl e_word_wheel ( ' header ' , ' search_box_auto_compl eteheader ' , 'queryheader1 , 'input_container_header' , '380'); } </script> <input type-"text" tabindex = "1" id= "queryheader" name="query" class="search_box_380 bvr-search-box" value="" maxlength="100" onf ocus="di sabl e_ww() ', " onkeydown="chooseNextLink(event, 'header');" />
. <button type="submit" type="submit" sty! e="filter: none" id="submit_queryheader" title="Search" class="button btn_search "><span>Search</spanx/button> </div>
<div id="search_box_auto_compl eteheader" class="word_wheel display_none">
<a class="close_link" href="#" one! ick="hidewordwheel(' header' , 380); return
63
© 2006 Revolution Health Group LLC false ;">hide [x]</a>
<ul id="wheel_listheader"xli class="word">&nbsp;</lix/ul> <div class="revolution_suggests" id="suggest_modheader"x/div>
</div>
</fieldset> </form>
<div class="q_module bvr-q-module block mini_dashboard " i d="token-999ce5283509d2e2">
<div id="minidash">
<div class="salutation">
<spanxdiv class="hi">Hi ,&nbsp;</divxdiv c]ass="screenname"xa href="/my-profile/view/andyfoy" class="user" id="screenname" ti tl e="aπdyf oy">Aπdy Foy</ax/di vxdiv cl ass="f ade"x/di vx/span>
<div class="links"xa href="/account/maiπ">Accouπt</a> | <a h ref ="/regi strati on/1 ogi n/si gnout">si gn out</ax/di v> </div>
<a href="/my- revolution/" title="My Revolution" cl ass="my_revol uti on"xspan>My Revo! utioπ</spanx/a>
</div>
</div>
</div>
</div>
<div id="main_navigatioπ">
<div class="box_content">
<ul class="bvr-menu">
<li class='home first'xbxa href="/">Horae</ax/bx/li>
<li class='conditions_treatments'>
<bxa href="/conditions/">Condϊticns &amp; treatments</ax/b> <div class="ddowπ">
<ul>
<lixa href="/drugs-treatments/">Medicine chest</ax/li> <lixa href="/symptom-checker/">symptom checker</ax/li> <li class='featured_link'xa href="/toolkit/">Toolkit</ax/li> . <lixa href="/conditions/digestive/acid-reflux/">Acid ref 1 ux</ax/l i > <lixa href="/condi ti ons/brai n-nerves/al zheimers/">Al zheimer ' s</ax/l i>
<lixa href="/conditions/asthma-allergies/">Asthma &amp; allergies</ax/li> <1 ixa href="/coπdi tions/mental -behavioral -heal th/auti sm/">Autτ sm</ax/l i> <1 ixa href="/condi ti ons/bones- joi nts-muscl es/back-pai π/">Back pai n</ax/l i> <lixa href="/coπditions/bones-joints-rauscles/">Bones, joints &amp; muscles</ax/li> <lixa href="/conditions/cancer/">Cancer</ax/li> -clixa h ref ="/condi ti ons/mental -behavi oral -heal th/depressi on/">Depressi on</ax/l i > <lixa href="/conditions/diabetes/">Diabetes</ax/li> _ <lixa href="/conditions/digestive/">Digestive</ax/li> <lixa href="/conditions/heart/">Heart</ax/li> <lixa
64
© 2006 Revolution Health Group LLC href="/conditions/skin/">ski n</ax/li> <lixa href="/coπditi ons/">view all conditions A - z</ax/li>
</ul>
</div> </li>
<li class=' healthy_living1>
<bxa href="/healthy-living/">Healthy living</ax/b>
<div class="ddown">
<ul>
<lixa href="/hewsletters/newsletter/signup">Healthy living newsl etters</ax/lixli class='featured_l iπk'xa href="/live-better/">Healthy livi ng programs</ax/lixliχa href="/healthy-living/fitness/">Fitness</ax/lixl ixa h ref ="/heal thy-1 i vi ng/f ood-nut ri ti on ">Food &amp ; nut ri ti on</ax/l i ><1 i ><a h ref ="/heal thy-1 i vi ng/mens -heal th ">Men ' s heal th</ax/l i ><1 i xa href="/heal thy-1 iving/mom-central/">Moffl central </ax/lixl ixa href="/healthy-living/natural -health">Natural health</ax/l ixlixa h ref="/heal thy-1 i vi ng/parenti ng/">Parenti ng</ax/l i xl i xa href ="/heal thy-1 iving/pregnancy/'VPregnancy-c/ax/lixlixa href ="/heal thy-1 i vi ng/rel ati onshi ps/">Rel ati onshi ps</ax/l i xl i xa href="/healthy-living/weight-management/">weight loss &amp ; management</ax/lixl ixa href ="/heal thy-1 iviπg/womens-heaith/">Women ' s health</ax/lixlixa href="/heal thy-1 iving/">Vi ew all healthy living topi cs</ax/l i > </ul>
</div> </l i>
<1 i cl as s= ' doctorsjiospi tal s_more ' >
<b> <a href="/care-providers/">Doctors &amp; hospitals</ax/b> <div class="ddown">
<ul>
<lixa href="/care-providers">Find a doctor</ax/lixlixa href ="/care-provi ders?search_for=denti st">Fi nd a denti st</ax/l ixl i
65
© 2006 Revolution Health Group LLC c1ass='featured_link'><a href="/care-providers?search_fόr=hospital">Find a hospital</ax/lixlixa href="/care-providers/for-providers">For providers</a></1ix/ul>
</div> </li>
<1 i cl ass= ' connect_wi th_others ">
<bxa href="/commurπ ty/">Commum" ty</a></b> </li>
<li class=' membership^
<bxa href="/pretnium-services/">Premium services</ax/b> </li>
<li class='insurance'> <bxa href="/insurance/">msurance</ax/b> <div class="ddown">
<ul>
<lixa href="/insurance/shop/apply-for-insurance'f>compare health insurance</ax/Η> <lixa href="/insurance/iπformation/">Learn about health i nsurance</ax/l i x/ul>
</di v> </li>
<1i class=" store last">
<bxa href="/store">Store</ax/b> </li>
. </ul> </di v> </di v> </div>
<div id="page_header"> <div class="box"> <hl>Test Page</hl>
<ul id="page_controls">
<lixa href="#" id="edit-page-control " tτt1e='Εdit this page" oπcl i ck=" Fabri c . i nstance ({boundedHei ght : 1477 , anonymousEdi tor : f al se}) . edi t O ; return false ;">Edit page</ax/li>
<lixa href="#" id="save-page-control" oπcl i ck="Fabric. i nstanceC) .vi ew({persi st : true}) ; return f al se ; ">Save</ax/l i>
<lixa href="#" id="cancel -page-control" onclick="Fabric.instaπceO .cancelEditO; return false;" >caπcel</ax/li>
<lixa href="#" id="expert-mode-page-coπtrol" onclick="Fabric.instanceQ.expertModeO; return false ;">Enable slots</ax/li>
<lixa href="#" id="basic-mode-page-control" onclick="Fabric.instanceC).basicModeQ; return false;">Di sable slots</ax/li>
<li>
<span class='bvr-hover-bubble'>
<span id='help-help'>Help</span>
<span class='nα_di splay bubble help'>
<strong class='help_title'>sources of Help</strong> <ul>
<lixa style="font-size: 130%;" class="bvr- remote-dialog" href="/fabric/page/demo">watch the tutorials now!</ax/li>
<lixa href="# one! ick="Fabric. instance O .helpO; return false ;">Frequently Asked Questions</ax/li> . ..
</ul>
66
© 2006 Revolution Health Group LLC <strong class='help_title'>save vs. Cance1</strong>~
<p cl ass= ' he! p_blurb 1XlIi eking on save will publish this page as you see it below. Previous versions of this page can be found under the <a href="#" onclick="Fabric.instanceQ.historyO; return false;">Hi story tab</a>. cancel will revert this page to the most recently saved version. </p>
<strong class='help_title'>Enable slots vs. Disable slots</strong> <p class='help_blurb'>Modules can be moved about the page and resized at will, with the aide of snaplines, you can create precice page layouts. However, if you prefer a more rigid layout, you can enable slots. After enabling slots, you can choose to embed modul es&mdash ; embedding removes the ability to resize or position modules at will, but they do all of the layout work for you. You can still reorder embedded modules or move them between columns.</p>
</span> </span>
</li>
<lixa href="#print" oπclick="wiπdow.printθ ; return false;" class="print" ti tl e="Pri nt ">&nbsp ; <span cl ass="no_di spl ay">Pri nt</spanx/ax/l i>
<li class="save_and_share_icon"xdiv class="bvr-menu"> <ul id="save_share">
<li class="menu">
<bxa style="display:none" href="?save_and_share">Save &amp; Share</ax/b> <ul>
<li>
<span class='bvr-hover-bubble'>
<a class="send" href="" onclick="new Aj ax. Request C' ' , {asynchronous :true, eval Scripts: true}) ; return false; ">Send to a friend</a>
<span class='no_display bubble send_box">
,
Figure imgf000068_0001
class="button btn_send "xspan>Send</spanx/button>
67
© 2006 Revolution Health Group LLC
Figure imgf000069_0001
<a href="http://digg.com/submit?url=http%3A%2F%2Fnext-dev. revol utionhealth.com%2Fpages% 2 Ftest-page%3 Fedi t&amp ; ti tl e=τest+Page&amp ; phase=2" cl ass="di gg" target="_blank">Digg this</a>
</li> <li>
Figure imgf000069_0002
<script type="text/javascript">//<! [CDATA[ Event. observe (window, 'load1 , function O { Fabric.instance({ boundedHei ght : 1477 ,
OO
© 2006 Revolution Health Group LLC anonymousEdi tor : f al se D.editO; Fabric. Tray. instanceO .sΗdeOutQ ;
//3]></script>
<div id="fabric-nav-tabs">
<div id="star-ratings-block"> <ul id="page989" class="star- rating small -star">
<li class=' cur rent- rating1 style="width:O%;">
Currently 0.0/5 Stars. </li>
<li>
<a class="rtl" href="#" name="Lstar" onclick="new
Aj ax . RequestC ' /f abri c/rati ngs/rate/page989?uri=%2Fpages%2Ftest-page&amp ; rati πg=l' , {asynchroπous:true, eval Scripts: true}).; return false; ">l</a> </li>
<li>
<a class="rt2" href="#" name="2_star" onclick="new
Ajax.RequestC '/fabric/ rati ngs/rate/page989?uri=%2Fpages%2Ftest-page&arnp; rati ng=2' , {asynchronous: true, eval Scripts: true}); return false;">2</a> </l i >
<li>
<a class="rt3" href="#" name="3_star" onclick="new
Aj ax. Request C '/fabric/ rati πgs/rate/page989?uri=%2Fpages%2Ftest-page&amp; rati ng=3' , {asynchronous: true, eval scripts: true}; ; return false; ">3</a> </li>
<li>
<a class="rt4" href="#" πame="4_star" oπclick="πew
Ajax. Request C '/fabric/ rati ngs/rate/page989?un=%2Fpages%2Ftest-page&amp; rating=4' , {asynchronous: true, eval Scripts: true}) ; return f al se ; ">4</a> </li>
<li>
<a class="rt5" href="#" name="5_star" onclick="new
Ajax. RequestC '/fabric/ rati ngs/rate/page989?uri=%2Fpages%2Ftest-page&amp; rati ng=5', {asynchronous:true, eval Sen pts:t rue}) ; return false; ">5</a> </li>
</ul>
Figure imgf000070_0001
Tags: <span class="viewing"xa href="/fabric/search?q=Fitness" class="tag">Fitness</ax/span> </div> <div class="fabric-traversal-link">
69
© 2006 Revolution Health Group LLC <a href="/fabric/search?q=Fitness" cTass^arrovoiext' ' >Health pages</a> </div> <di v cl ass="f abri c-tutoπ" al -1 i πk">
<a href="/fabric/page/demo" class="bvr-remote-dialog">Watch the tutorials now!</a> </div> </div>
<div id="primary" class="overl ay-fabric" style=""> <di v i d=" ri ght-constrai nt"x/di v> <div id="bottotn-constraint"x/d"iv> <di v i d="f abri c-composi te-contai ner">
<div class="fabric-snapline fabric-sπapline-vertical" style="left: 634px;"x/div>
<div clas5="fabric-snapline fabπ'c-snapline-vertical" style="left: 652px;"x/div>
<div cl as s= "fabric- gutter" id="horizontal-fabric-gutter"x/div> <div class="design-cross horizontal -design-el ement"x/div> <div class="fabπc-gutter" id="vertical-fabric-gutter"x/div> <div class="design-cro5s vertical -design-el ement"x/div> <div id="fabric-page" class="view" style="height: 1477px">
Figure imgf000071_0001
<div id="fabric-embedded-modules">
</div> </div>
<div id="fabric_flowing_template" style="min-height: 1477px; _height; 1477px;">
<div id="edit-mode-blank-state"> <h2>τwo ways to get started</h2> <ol>
<liximg src="/images/fabric/right-arrow.gif"/>pon't like reading the manual? Explore for yourself by trying your luck with the clipboard. </li>
<li>Watch the demo, watcn our tutorials, and read our suggestions by clicking <a href="/fabric/page/demo" class="bvr-remote-dialog">here</a>. You can
70
© 2006 Revolution Health Group LLC get to these tutorials at any time via the 'help' cόntrδl in the upper right corner of the page.</li>
</ol> </div>
<div id="two-col" class="fabric-flow"> <div id="leftcol" class="flowing-slot">
</di v>
<div id="π"ghtcol" class="flowing-slot">
</div>
<div style=" clear: both"x/div> </div>
<di v sty! e="cl ear : both ; "></di v> </div>
<div id="fabric-footer">
<div class="footer-promo">Want to build your own Revolution HealthPage? Click <a href="/fabric/">here</a>!</div>
<div class="footer-report"> <a href="#" id="notify-page-control" notify_us_action="/fabric/page/notify?u=/pages/test-page" cl ass="bvr-noti f y-us-di alog" href="/fabri c/page/noti fy?u=/pages/test-page">Report abuse</a>
</div> </di v> </div> </div>
Figure imgf000072_0001
</di v>
71
© 2006 Revolution Health Group LLC
Figure imgf000073_0001
<scri pt type="text/javascri pt" s rc="/javascri pts/xpl usone . js"x/scri pt>
+
Figure imgf000073_0002
/x/di vx/noscri pt>
<di v i d="f abri c-tray-outer-contai ner">
Figure imgf000073_0003
<div class="clipped-module imageupl oad-prototype" id="e7fc92d68207aa00">
<div class="fabric-titlebar"xa class="fabric-embed-button" href="#"x/axa class="fabric-cl ose-button" href="#"x/ax/div>
<div class="q_module bvr-q-module fabric image_uploader" id="token-e7fc92d68207aa00">
<h2 style="margin-left:8px; ">Upload your image</h2>
72
© 2006 Revolution Health Group LLC <iframe src='/fabric/images/image_upload_frame ' frameborder="0" width="360px" height="200px" scroll ing="no"x/iframe>
</div>
</di v> <div c1ass="clipped-module ri chedi tor-prototype" id="240b0024abdl2829">
<div class="fabri c-titl ebar"xa class="fabric-embed-button" href="#"x/axa c1ass="fabri c-close-button" href="#"x/ax/div>
<div class="q_module bvr-q-module fabric ri cheditor" i d="token-240b0024abdl2829">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abn" c-modul e-cl i pppi ng-tool s"> <di v cl ass="modul e_cl i ppi ng_tool_matte"x/di v>
<a href ="/fabric/cli ps/syndi caτe?token=Qget8LsYlgzτuBTLNSklEJSvdPθm6pθRRaBπwvjeJkyrj ego cK2θlSDHWpxz3oτopblAi r5Kmt7M9UA2GXDE6EHLoM2unhdθTld8amx32D(xxuxv3sjDaVEsBeFR%2Fxw7kwn pyVz7etLrqUbeaNWW5%2BGkMRFXh%2BcQf63zzBdxYOXU%3A240b0024abdl2829" class="syndi cater" target="_sel f"x/a>
<a href="/fabric/clips/clip?tokeπ=Qget8LsYlgzTUBTLNSklEDSvdP0m6pORRaBπwvjeDkyrjcgOcKzOl SDHWpxz3oTopbIAir5Kmt7M9UAzGXDE6EHLoM2unhdθTld8amX3ZXxXuxv3sjDaVEsBeFR%2Fxw7kwnpyvz7 etLrqUbeaNWW5%2BGkMRFXh%2BcQf63zzBdxYOXU%3A240b0024abdl2829" cl ass="cl i pper" target="_sel f"></a>
</div>
<div cl ass="fabric-editor">Edit me!</div> </div>
</div>
<div class="clipped-module feedsubscriber-prototype" id="48e80adcl6c8c2d3">
<div class="fabri c-titlebar"xa cl ass="fabric-eitibed-button" href="#"x/axa class="fabri c-close-button" href="#"x/ax/div>
<div class="q_module bvr-q-tnodule feed feed_adder" id="token-48e80adcl6c8c2d3">
<h2 style="margin-l eft : 8px; ">Subscri be to a feed</h2>
<p style="margin-l eft: 8px; ">Enter the URL of an RSS or Atom feed. If you don 't know the URL, try a URL from the website and we' ll search. </p> <p styl e="margin-left: 8px; margi n :0; paddi ng :0; ">Examples : http : //www . revol uti onheal th . com/bl ogs/rss/steve , cnn . com , http : //del . i ci o . us/di abetes</p>
<iframe src='/fabri c/feeds/feed_subscriber_frame' frameborder="0" width="36Opx" hei ght="200px" scrol 1 i ng="no"x/i f rame>
73
© 2006 Revolution Health Group LLC </di v>
</div>
<div class="clipped-mαdule videoupload-prototype" id="fb37699784399329">
<diy class="fabric-titlebar"xa class="fabric-embed-button" href="#"x/a><a class="fabri c-close-buttoπ" href="#"x/ax/di v>
<div class="q_module bvr-q-module fabric video_uploader" i d="token-f b37699784399329">
<h2 style="margin-left:8px;">upload your Video</h2> <h6>lnsert a YouTube video URL.</h6>
<iframe src="/fabric/videos/video_upload_frame" frameborder="0" width="36Opx" hei ght=" 200px" scroll i ng="no"x/i f rame>
</di v>
Figure imgf000075_0001
<div id="fabric-timeline" class="fabric-tray-area"> <h3>Revision History</h3> <px/p>
<div class="tray-seperator"x/div> <div id="timeline-tray">
<div id="timeline-indicator">Loading...</div>
<di v i d="timel i ne-page"x/div> </div> </di v>
<div i d="f abri c-1 ayouts" class="fabric-tray-area"> <h3>Select a layout for your page</h3> <div class="tray-seperator"x/div> <div id="slot-layout-tray"> <h4>Fl owing slot grids</h4>
<p>τhese layouts represent flowing si ots&mdash; modules embedded within flowing slots cannot be resized or placed, they can only be re-ordered or moved between slots.</p>
<div class="recommended-flow" id="flow_one-col">
74
© 2006 Revolution Health Group LLC <img src="/images/fabric/flows/one-col.gif" alt="one-col" /> </div>
<diγ class="recommended-flow" id="flow_three-coV>
<img src="/i mages/fabric/flows/three-col .gif" alt="three-col" /> </div>
<diy class="recommended-flow" id="flow_two-col">
Figure imgf000076_0001
<div class="recommended-flow" id="flow_spl it-in-half ">
<img src="/images/fabric/flows/split-in-half.gif" a~lt="sp! it-in-half" /> </div>
<div id="hiddeπ-flows" sty! e="di splay: none"> <div id="hidden-one-col"> <div id="maiπcol" class="flowing-slot">
</di v>
</div>
<div id="hidden-sp1 it-in-half ">
<div id="lefthalf" class="flowing-slot">
</div>
<div id="righthalf" class="flowing-slot">
</di v>
</div>
<div id="hidden-three-col"> <div id="leftcol" class="flowing-slot">
</di v>
<div id="centercol" class="flowing-slot">
</di v>
<div id="rightcol" class="fl owing-slot ">
</di v>
</div>
<div id="hidden-two-col"> <div id="leftcol" class="flowing-slot">
</di v>
<div id="rightcol" class="flowing-slot">
Figure imgf000076_0002
<br />
<div id="snap-grid-tray"> <h4>snap grids</h4>
<p>Snap grid layouts are predefined sets of snap! ines&mdash; you could create the same layouts by hand by dragging snaplines from the page gutters, but these can help get you started. </p>
<div class="recommended-template"> .. ..
© 2006 Revolution Health Group LLC </div>
<div class="recommended-template">
<div c1ass="micro-snapline-vertica1" style="left: 10px;"x/div>
<div class="rrn"cro-snapline-vertical" style="left: 10px;"x/div>
<div class="ιτn"cro-snapline-vertical" style="left: 40px;"x/div>
<div class="micro-snapline-vertical" sty! e=" left: 41px;"x/div>
</div>
<di v cl ass=" recominended-templ ate">
<div class^'micro-snapline-vertical" style="left: 40px;"x/div>
<div class="micro-snapline-vertical" style="left: 40px;"x/div>
</div>
<div class="recommended-template">
<div class="micro-snapline-vertical" style="left: 31pxj"x/div>
<div class="micro-snapline-vertical" style="left: 32px;"x/div>
</div>
</div>
<div id="s1ot-layout-tray-teaser">
<h4xa href="#" one! ick=" Fabric. instance C) .expertModeO ; return false ;">Eπable s1ots</a> to pick a slot Iayout</h4>
</di v>
<div class="tray-seperator"x/div> </div>
<div id="fabric-help" class="fabric-tray-area"> <h3>τutorials and Suggest! ons</h3> <div class="tray-seperator"x/div>
<p><a href="/fabri c/page/demo" class="bvr-remote-dialog">Click here to watch the tutorials and read our suggestions. </ax/p> <h3>Frequently Asked Questions</h3> <div class="tray-seperator"x/div> <h4>What is Revolution pageBuilder?</h4>
<p>PageBuilder is a tool that allows you to build a page by creating your own modules or placing modules Revolution Health has already created on your page.</p>
76
© 2006 Revolution Health Group LLC <h4>How do I access Revolution HealthPages?</h4>
<p>You can access HealthPages in many ways. The HealthPages home can be accessed from the home page, from a dropdown menu by hovering over the home button in the site header, or, most prominently, by clicking the HealthPages button when viewing most topic pages on the site.</p>
<h4>What is the HealthPages button?</h4>
<p>This button takes you to the pages users have been built that are similar in topics to the page you were currently viewing.</p>
<h4>what is the 'clipboard'?</h4>
<p>Your clipboard is where modules you can use to build your page are stored. You can search for modules that are somewhere else on Revolution, you can access modules that you have clipped, or you can create new image, text, RSS, or video modules with the tools above. From the clipboard, you can also see the history of the page, or change the page layout.</p>
<h4>How can I access the 'clipboard'?</h4>
<p>You can access the clipboard by going to edit mode on a page, simply bring your mouse to the left side of your screen and the clipboard should slide out.</p>
<h4>How can I remove something from my clipboard?</h4>
<p>Simply click the red "x" in the upper right of a module that shows up your clipboard and it should be removed.</p>
<h4>How long do items stay on my clipboard?</h4>
<p>ltems stay in your clipboard until you remove them.</p>
<h4>can other users see my clipboard?</h4>
<p>No, other users cannot see your clipboard. It is private to just you and can only be accessed when you are logged in to Revolution Health.</p>
<h4>How do I create a page?</h4>
<p>You can create a page from the HealthPages main page here, simply give your page a title, tags, and set the editing controls and you can begin builαing.</p>
<h4>what can I use to create a page?</h4>
<p>You can use modules you create yourself or that Revolution has already created. Modules you can created include writing your own text, uploading a photo, grabbing a video from YouTube, or subscribing to an RSS feed, YOU can search or browse and clip modules Revolution has already created.</p>
<h4>How can I find modules to add to my page?</h4>
<p>τhere are two main ways to find modules. From your clipboard, you can enter a keyword or phrase and search for modules, or, you can browse around the site and clip modules that you find useful, in order to see what modules are available for clipping, you can toggle the scissors that is at the top of most pages.</p>
<h4>why can I clip some things and not others?</h4>
<p>Some modules only work where they are currently placed. We are constantly working to expand our list of available modάles.</p>
77
© 2006 Revolution Health Group LLC <h4>can I add modules from other sites?</h4>
<p>No, at this time you cannot add modules from other sites. However, you can add RSS feeds from external sites via the RSS module.</p>
<h4>Can other users view my page?</h4>
<p>Yes, your pages will be viewable by others at all times.</p>
<h4>How can I make it so only I can view my page and other users can't?</h4>
<p>we do not support this capability at this point in time.</p>
<h4>can anyone edit my page?</h4>
<p>when you create your page, you can choose if you'd like others to be able to edit your page, simply choose "Everyone" to allow others to edit your page.</ρ>
<h4>How can I make it so only I can edit my page?</h4>
<p>Select "Only me" when asked if you'd like others to be able to edit your page.</p>
<h4>How can I edit a page I've already created?</h4>
<p>You can edit a page you've already created by navigating to the page and clicking "Edit page" at the top of the page.</p>
<h4>How can I delete a page I've created?</h4>
<p>You cannot delete a page that has been created. However, at any point in time you can delete any of the contents on the page.</p>
<h4>How can I find a page I created?</h4>
<p>You can find your page by going to the HealthPages main page and viewing the "pages you've participated in" module.</p>
<h4>How can I find a page someone else created?</h4>
<p>From the HealthPages main page, you can browse the tag cloud or search.</p>
<h4>What are the scissors for?</h4>
<p>The scissors are used for clipping modules throughout the site. You can either add the module to your clipboard or, if allowed, place the module on an external site.</p>
<h4>what do the 5 stars listed with each page mean?</h4>
<p>τhe stars represent the rating other users have given the page. The more stars, the higher the rating.</p>
<h4>Hαw can I rate a page?</h4>
<p>You can simply hover over the star value you would like to give the page and click.</p>
<h4>What does it mean if I see a module removed by the moderation team?</h4>
<p>This means that something within the module violated the Revolution posting guidelines or Terms of Service.</p>
78
© 2006 Revolution Health Group LLC <h4>can I report a page that violates the Community guideliπes?</h4>
<p>γes , simply click "Report abuse" in the page header. </p> <div ciass="tray-seperator"x/div> </div>
</div> </div>
</body> </html>
79
© 2006 Revolution Health Group LLC
APPENDIX C
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri Ct//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>τest page - Revolution Health</title>
<meta name="keywords" content^" "/>
<tneta name="description" content=""/>
<link rel="P3Pvl" href="/w3c/ρ3ρ.xml" />
<link rel = 'icon' href= Yimages/common/icons/favicon.ico' type='image/x-icon'/>
<lτnk rel=' shortcut icon' href='/images/common/icons/favicon.icoI type= ' i tnage/x-i con ' />
<liπk href="/stylesheets/54019/common.css" media="an " rel="stylesheet" type="text/css"/>
<scri pt type="text/j avascri pt" s rc="/javascri pts/54019/common . js"x/scri pt>
<script type="text/j avascri pt">sessioπτimeθut.timeθutlnterval = 15; sessionTimeout.timeoutwarnlnterval = 13;</script>
<link href="/stylesheets/53932/fabric.css" media="aTI" rel="stylesheet" type="text/css"/>
<link href="/stylesheets/54019/print.css" media="pnnt" rel="stylesheet" type="text/css"/>
Figure imgf000082_0001
<script type="text/ javascript" s rc="/j avascri pts/53932/fabric.js"x/5cript>
pt>
Figure imgf000082_0002
<script type="text/j avascri pt ">//<! [CDATA[ addτrackEventC"event4") ; if( s.getQueryParamC'msc1) && ! Cookies. read ("msc") ){
Cookies. write C "msc", s.getQueryParamC'msc'), (new DateO .getTimeO + 365*24*60*60*1000*3) ); s.evar9 = s.getQueryParamC'msc1); else{ s.evar9 = Cookies. read ("msc") ;
} s.evario = "; i f Cs . getQueryParamC ' se ' )== "reg") { var tempVar=s.getvalθnce("reg", 's_se_reg.') if(tempVar)
81
© 2006 Revolution Health Group LLC addτrackEvent("eventl") ;
i f (Cooki es . read C "RTOKEN") != null){ var tempvar=s . getval Once (cookies. read ("RTOKEN") , 's_se_sig') if (tempvar) addτrackEvent("event9") ;
//]]></script>
<! — [if It IE 7.]> <div class=' ie ie6"> <! [endif] — > <! — [if IE 7]> <div class='i e i e7'> <! [endif] — > <script type="text/javascript">//<! [CDATAC var d = browserCSSDetectionO ; if( d. browser != "i e" ){ document. write( "<div class="r + d. browser + " " + d.os +
'">" ) ; } //]]x/script>
<div id="container" class="manage_track_my_,health"> <div id="header" >
<div class="box">
<div class="">
<a href="/" i d="header_"logo" title="Revolution Health"xspan class="nodisplay">Revolution Health</spanx/a>
<a href="#" class="additional_logo" title^'Αdditionai Logo"xspan cl ass="no_di spl ay"></spanx/a>
<form id="submit_query_formheader" action="/search/results" method="get" cl ass="i nput_search">
<f i el dset>
<input id="src" name="src" type="hidden" va"!ue="g1obal_header" />
<legend>What would you like to find?</legend>
<div id="input_container_header" class="search_me">
<scri pt type="text/javascri pt"> function disable_ww() { disable_word_wheel ('header1 , 'search_box_auto_compl eteheader ' , ' queryheader1 , 'input_container_header' , ' 380' ) ; } </script> <input type="text" tabindex = "1" id= "queryheader" name="query" class="search_box_380 bvr-search-box" value="" maxlength="100" onfocus="di sabl e_ww() ; " onkeydown="chooseNextLi nk(event, 'header' ) ; " />
<button type="submit" tyρe="submit" style="filter:none" id="submit_queryheader" titl e="search" class="button btn_search "><spaπ>Search</spanx/button> </div>
<div id="search_box_auto_completeheader" c1ass="word_wheel di sp1ay_none">
<a class="close_link" href="#" oπcli ck="hidewordwheel ('header' , 380) ; return
82
© 2006 Revolution Health Group LLC false ;">hide [x]</a>
<ul id="wheel_listheader"xli c]ass="word">&nfasp;</lix/ul> <di v cl ass=" revol uti on_s uggests " i d=" suggest_modheader "x/di v>
</div>
</fieldset> </form>
<div class="q_ιnodule bvr-q-module block mini_dashboard " i d="token-999ce5283509d2e2">
<div id="rainidash">
<div class="salutation">
<spanxdiv class="hi">Hi ,&nbsp;</divxdiv class="screenname"xa href="/my-profile/view/andyfoy" class="user" id="screenname" ti tl e="andyf oy">Andy Foy</ax/di vxdi v cl ass="fade"x/di vx/span>
<diy class="links"xa href="/account/main">Accouπt</a> | <a href="/registration/login/signout">Sign out</ax/div> </div>
<a href="/my- revol uti on/" title="My Revolution" cl ass="my_revol uti on"xspan>My Revol uti oπ</spanx/a>
</div>
</div>
</div>
</di v>
<div id="maiπ_navigatioπ">
<div class="box_conteπt">
<ul class="bvr-menu">
<li class='hotne first 'xbxa href="/">Home</ax/bx/li>
<1 i cl ass=' condi ti ons_treatments ' >
<bxa href="/conditions/">Conditions &amp; treatments</ax/b> <div class="ddown">
<ul>
<lixa href ="/drugs-treatmeπts/">Medi cine Chest</a></li> <lixa href="/symptom-checker/">symptom checker</ax/li> <li class='featured_link'xa href="/tool kit/'VToφl ki t</ax/li> <lixa h ref ="/condi ti ons/di ges ti ve/aci d- ref 1 ux/">Aci d refl ux</ax/l i > <1 i xa href="/conditions/brain-nerves/alzhei!tiers/">Alzheimer's</a></li>
<lixa href="/conditions/asthma-allergies/">Asthma &amp; allergies</ax/li> <lixa href="/conditions/mental -behavioral -heal th/autism/">Autism</ax/li> <lixa href="/conditions/bones-joints-muscles/back-paiπ/">Back paiπ</ax/li> <lixa href="/coπditioπs/bones-joints-muscles/">Bones, joints &amp; muscles</ax/li> <lixa href="/conditions/cancer/">cancer</ax/li> <lixa href="/conditions/mental -behavioral -heal th/depression/">Depression</ax/li> <1 i xa href="/condi ti ons/di abetes/">Diabetes</ax/l i> <1 ixa href="/conditi ons/di gestive/">Digestive</ax/Ti> <lix.a href="/conditions/heart/">Heart</ax/li> <lixa
83
© 2006 Revolution Health Group LLC href="/conditions/5kin/">skin</a></li> <7ixa href="/conditions/">view all conditions A - 2</ax/li>
</ul>
</div> </li>
<li class='healthy_living'>
<bxa href="/heal thy-1 iving/">Heal thy living</ax/b>
<div class="ddown">
<ul>
<lixa href="/newsletters/newsletter/signup">Healthy living news! etters</aχ/l ixl i class='featured_link'xa. href="/live-better/">Healthy living programs</ax/lixlixa href="/heal thy-1 i vi ng/f i tness/">Fi tness</ax/l ixlixa href ="/heal thy-1 iv"ing/food-nutrition">Food &amp; nutrition</ax/lixlixa href="/heal thy-1 iving/mens-health">Men 1S heal th</ax/l "ixlixa href="/heal thy-1 i vi ng/mom- central /">Mom cent ral</ax/l ixlixa href="/heal thy-1 iving/πatural -heal th'VNatural health</ax/li><lixa href="/heal thy-1 i vi ng/parenti ng/">Parenti ng</ax/l ixl ixa href="/heal thy-1 iving/pregπancy/'Spregnancy-c/ax/l ixlixa href ="/heal thy-1 i vi ng/rel ati onshi ps/">Rel ati onshi ps</ax/l ixl ixa href="/heal thy-1 iving/weight-managenient/">Weight loss &amp; management</a></lixlixa href="/heal thy-1 iving/womens-health/">Wotpen's heal th</aχ/l ixl ixa href="/heal thy-1 iving/'Wiew all healthy living topi cs</ax/l i> </ul>
</di v> </li>
<li class='doctors_hospitals_more'>
<b> <a href="/care-providers/">Doctors &amp; hospital s</ax/b> <div c1ass="ddown">
<ul>
<lixa href="/care-providers">Find a doctor</ax/lixlixa href="/care-providers?search_for=dentist">Find a dentist</ax/lixli
84
© 2006 Revolution Health Group LLC class='featured_link'><a href="/care-providers?search_for=hospital">Find a hospital </ax/lixlixa href="/care-providers/for-providers">For provi ders</ax/l i ></ul >
</div> </li>
<~li class='connect_with_others'>
<bxa href="/communi ty/">Communi ty</ax/fc» </Η>
<Η class='meιτιbershipτ>
<bxa href="/premium-services/">premium services</ax/b> </li>
<li class='insurance'> <bχa href="/i nsuraπce/">insurance</ax/b> <div class="ddown">
<u1>
<lixa href="/insurance/shop/app]y-for-insurance">Compare health insurance</ax/li> <lixa href="/insurance/information/">Learn about health insurance</ax/lix/ul>
</div> </li>
<li class="store last">
<bxa href="/store">Store</ax/b> </li>
Figure imgf000086_0001
<u1 -id="page_controls">
<1ixa href="#" id="edit-page-coπtrol" fitle="Edit this page" onclick="Fabric.instance({boundedHeight:1497)aπoπymousEditor:false}) .editC) ," return f al se ; ">Edi t page</ax/l i>
<lixa href="#" id="save-page- control" onclick="Fabric.instanceO.view({persist:true}); return false;">Save</ax/li>
<iixa href="#" id="cancel -page-control" onclick="Fabric.instance() .cancelEdit() ; return false;" >cancel</aχ/li>
<lixa href="#" id=" expert-mode-page-control" oncli ck=" Fabric. instance O -expertModeO; return false ;">Enable slots</ax/li>
<lixa href="#" id="basic-mode-page-control" onclick="Fabric.instanceO .basicModeO; return false; ">Di sable slots</aχ/li>
<li> <span class='bvr-hover-bubble'>
<span id='help-help'>Help</span>
<span class='no_di splay bubble help">
<strong class='help_title'>Sources of HeI p</strong> <ul>
<lixa style="font-size: 130%;" class="bvr- remote-dialog" href="/fabric/page/demo">Watch the tutorials now!</ax/li>
<lixa href="# oncli ck="Fabric.instanceO .helpO ; return false ;">Frequently Asked Questi ons</ax/l i> </ul>
85
© 2006 Revolution Health Group LLC <strong class='help_title'>save vs. Cancel</strong>
<p c"jass='he1p_b1urb'>Clicking on save will publish this page as you see it below. Previous versions of this page can be found under the <a href="#" onclick="Fabric.instanceO.history(); return false; ">Hi story tab</a>. Cancel will revert this page to the most recently saved version.</p>
<strong class='help_title'>Enable slots vs. Disable slots</strong> <p class='help_blurb'>Modules can be moved about the page and resized at will, with the aide of snaplines, you can create precice page layouts. However, if you prefer a more rigid layout, you can enable slots. After enabling slots, you can choose to embed modul es&mdash ; embedding removes the ability to resize or position modules at will, but they do all of the layout work for you. You can still reorder embedded modules or move them between columns.</p>
</span> </span>
</li>
<lixa href="#priπt" onclick="window.printθ ; return false;" class="priπt" title="Print">&nbsp;<span class="no_display">Print</spanx/ax/li>
<li class="save_and_share_icon"xdiv class="bvr-menu"> <ul id="save_share">
<li class="menu">
<bxa style="di splay: none" href="?save_and_share">Save &amp; Share</ax/b> <ul>
<li>
<span class='bvr-hover-bubble'>
<a class="send" href="" onclick="new A j ax. Request (' ' , {asynchronous :true, eval Scripts: true}); return false ;">Send to a friend</a>
<span class='no_di splay bubble send_box'>
<form accept_charset="utf-8" action="/global/page_controls/send_url_from_box"
.
Figure imgf000087_0001
class="button btn_send "><span>Send</spanx/button>
86
© 2006 Revolution Health Group LLC
Figure imgf000088_0001
<script type="text/javascript">//<! [CDATA [ Event.9bserve (window, 'load' , function O { Fabric.instance({ bouπdedHeight:1497,
© 200S Revolution Health Group LLC anonymousEdi tor : f al se K). edit O,
Fabric. Tray. instance O . s^^deoutO; //];]></script>
<div id="fabric-nav-tabs">
<div id="star-ratings-block"> <ul id="page990" class="star- rating small -star">
<li class=' current-rating1 style="width:O%;">
Currently 0.0/5 Stars. </ϋ>
<li>
<a class="rtl" href="#" name=IIl_star" onclick="new
Ajax. RequestC'/fabric/ratings/rate/page990?uπ"=%2Fpages%2Ftest-page&amp; rating=l' , {asynchronous:true, evalSen pts:true}); return false;">l</a> </li>
<li>
<a class="rt2" href="#" name="2_star" onclick="πew
Aj ax. Request C/fabri c/rati ncjs/rate/page990?uri=%2Fpages%2 Ftest-page&amp; rati ng=2' , {asyπchronousrtrue, eval Sen pts: true}) ; return f al se ; ">2</a> </li>
<li>
<a class="rt3" href="#" name="3_star" onclick="new
Aj ax . Request C ' /f abri c/rati πgs/rate/page990?u ri =%2Fpages%2 Ftest-page&amp ; rati ng=3 ' , {asynchronous:true, eval Scripts: true}) ; return f al se ; ">3</a> </li>
<li>
<a class="rt4" href="#" name="4_star" onclick="new
Aj ax. Request C '/f abri c/rati ngs/rate/page990?uri=%2Fpages%2Ftest-page&amp; rati ng=4' , {asynchronousrtrue, eval Scripts: true}) ; return false;">4</a> </li>
<li>
<a class="rt5" href="#" name="5_star" onclick="new
Ajax. Request C '/f abri c/rati πgs/rate/page990?uri=%2Fpages%2Ftest-page&amp; rati πg=5" , {asynchronous :true, eval Sen pts: true}) ; return false ;">5</a> </li>
</ul>
Figure imgf000089_0001
Tags: <span class="viewing"xa href="/fabric/search?q=Fitness" class="tag">Fitness</ax/span> </div> <di v cl ass="fabri c-traversal -1 i nk">
© 2006 Revolution Health Group LLC
Figure imgf000090_0001
<div id="primary" class="overl ay-fabric" style=""> <div i d=" right-const raint"x/di v> <div id="bottom-constraint"x/div> <di v i d="f abri c-composi te-contai ner ">
<div class="fabric-snapline fabric-snapl i ne-vertical " style="left: 634px; "x/div>
<div cl ass="fabric-snapline fabri c-snapl ine-verti cal " style="left: 652px; "x/div>
<div c1ass="fabric-gutter" id="horizoπtal-fabric-gutter"x/div> <div class="design-cross horizontal -design-el ement"x/div> <di v cl ass="f abn c-gutter" i d=" verti cal -fabri c-gutter "x/di v> <div class="design-cross verti cal -design-el ement"x/div> <div i d="fabric-page" class="vi ew" style="height: 1497px">
<di v i d="f abri c-embedded-modul es">
<div cl ass="fabri c-module overl aid overlaid standard" id="3e479f7b3f4daf31" style="top: 34px; left: 20px; width: 456px; height: 5O6px; z-index: 25001"> <div class="fabric-tit lebar">
<a class="fabric-embed-button" href="#"x/a> <a class="fabric-close-button" href="#"x/a> </di v> <div class="">
<div class="q_module bvr-q-module block at_a_glance notabs" i d="token-3e479f 7b3f 4daf 31">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <di v cl ass="modul e_cl i ppi ng_tool_matte"x/di v>
<a href="/fabri c/clips/clip?token=Qget8LsYlgzTUBTLNSklEJSvdP0m6pORRaBnwvjeJkzW%2Bilfhp% 2Fy%2FmefewhRAθH5ra8aGG3QuaKgF%2Bapc4zHrAwn9xθewviSPigN6gmC9uElaa3wC8rιlu6blFBUAyt6oW p%2BzahXy%2FPPwcLxsMjhwrE4D6baK5kDf5z5LhvzpnuWtYZ4x5rmVhr2θMMBM%2Fj5p7BzjfQo8hπBt4pR T3j4jfAN%2Fikl%2FmGGbGz26apzfmHm%2FSkUEtCnvxiYsfi skBj%2FlvrKbohsis%2FEXqXDBitl3UE06T EpBpHVVWxdaRBwsYllLQ2XGZMW1jk4l6TwnBs67a:D4%2BY54hzqg3pUsXiHdBBdw62caPiwRExlQ3ceKSMM SaXmAmBGTitiWNZqIGlgcZθBsTxlras3BFnu0a76LK9wj4VhXB0κ%2Fr.lryidJjwD4g%3A3e479f7b3f4daf3 1" class="clipper" target="_self"x/a>
</div>
<div id="at_a_glance_generi c_container_2007_02_14_7421623498" class="slot">
89
© 2006 Revolution Health Group LLC <h2x/h2>
<div class="ρopular_post img_l eft block"> <h3>Cal culators : Here's how to lose a pound</h3>
<img class="img_teaser" s rc="//content-dev . revol uti onheal th . com/contenti mages/i mage .2007-01-08.9057563961" alt="cal culators: Here's how to lose a pound" /> <div class="block_column"> u 'll need to spend doing your favorite
class="arrow_right" >Read more</a>
Figure imgf000091_0001
<div class="popular_po5t img_left block"> <h3>workouts : one for every mood</h3>
<img class="img_teaser" s rc="//content-dev . revol uti onheal th . com/contenti mages/i mage .2006-12-07.6359620049" alt="Workouts: One for every mood" /> <div cl ass="block_column">
Figure imgf000091_0002
<div class="popul ar_post img_left block"> <h3>Sports nutrition: 5 supplements you need</h3>
<img class="img_teaser" s r c="//content-dev . revol uti onheal th . com/contenti mages/i mage .2006-12-12.9474187079" alt="Sports nutrition : 5 suppl ements you need" /> <div class="block_column >
<P>
<br>Focus on a handful of important supplements, and you'll give your body — and even your next workout — a safe and noticeable boost.
<br/>
<a href="/healthy-living/raens-health/gym/supplements/fitness-supplements-overview" cl ass="arrow_right" >Read more</a>
</p> </div> </div>
</div> </div>
90
© 2006 Revolution Health Group LLC </div>
<div class="fabric-resizer-harιdle"x/div> <div style="clear: both;"x/div> </div>
</div>
</div>
<div id="fabric_flowing_template" style="min-height: 1497px: _height: 1497px;">
<div id="edit-mode-blank-state"> <h2>τwo ways to get started</h2> <o1>
<liximg src="/images/fabnc/riqht-arrow.gif"/>pon1t like reading the manual? Explore for yourself by trying your luck with the clipboard.</li>
<li>watch the demo, watch our tutorials, and read our suggestions by clicking <a href="/fabric/page/demo" class="bvr-remote-dialog">here</a>. You can get to these tutorials at any time via the 'help' control in the upper right corner of the page.</li>
</ol> </div>
<div id="two-col" class="fabric-flow"> <div id="leftcol" class="flowing-slot">
</div>
<div id="rightcol" class="flowing-slot">
</di v>
<div style="clear: both"x/div> </cHv>
<di v styl e="cl ear : both ; "x/di v> </di v>
<div id="fabric-footer">
<div class="footer-promo">want to build your own Revolution HealthPage? Click <a href="/fabric/">here</a>!</div>
<div class="footer-report"> <a href="#" id="notify-page-control" notify_us_action="/fabric/page/notify?u=/pages/test-page" cl ass="bvr-noti fy-us-di al og" href="/f abri c/page/noti f y?u=/pages/test-page">Report abuse</a>
</di v> </di v> </di v> </div>
Figure imgf000092_0001
91
© 2006 Revolution Health Group LLC <ul>
<li class="no_border">Company information:</li> <lixa href="/about">About Revolution Health</ax/li> <lixa href="/about/our-policies">θur policies</ax/li> <lixa href="/about/advertise-with-us">Advertise with us</ax/li>
<lixa href="/about/site-map">site map</ax/li> <lixa href="/about/contact-us">Contact us</aχ/li> <li class="last"xa href="/help">Help</ax/li> </ul>
<p>&copy; 2007 Revolution Health Group LLC. All rights reserved. Use of this site constitutes acceptance of Revolution Health's <a href="/terms-of-service">terms of service</a> and <a href="/about/privacy-policy-highlights">privacy policy</a>. The material on this site is for informational purposes only, and is not a substitute for medical advice, diagnosis or treatment provided by a qualified health care provider. </p>
Figure imgf000093_0001
<script type="text/javascript" src="/javascripts/xplusone.js"x/script> <script type="text/javascript">
//<! [CDATA [ var ev_transid = Math, round (Math, random C) * new DateO .getTimeO) ; document. write("<scr" + "ipt src='//" + window. location. protocol . replaceC/:/, ") +
" . edge . ru4. com/smartserve/ad?pl acement=pt-2225-001" +
"&ev_transid=" + ev_transid +
"&pagecode=" + s.pageName +
"&sourcecode=" + xpone_retval C'msc") +
"&vl=" + xpone_retval C'tsc") +
"&v2=" + s. channel +
"&v3=lNSERT_v3&v4=lNSERT_v4&v5=INSERT_V5&invocation=0&forcejs" +
"&click='x/scr" + "ipt>" );
//]]>
</script>
<noscriptxdivximg width="l" height="l" alt="x-plus-one-tracking" src="//pi xel 1363. everesttech . net/1363/p?ev_transi d=&amp ; ev_pagevτ ew=l"
/x/di vx/noscri pt>
<div id="fabric-tray-outer-container"> <di v i d="f abri c- tray-contai ner">
<div id="fabric-tray-handle">1cdiv id="fabric-tray-handle-logo"x/divx/div> <div id="fabric-tray-controls]'> <button id="fabric-clipboard-tab">Modules</button>
92
© 2006 Revolution Health Group LLC <button i d="f abri c-timel i ne-tab">Hi story</button>
<button id="fabric-layouts-tab">Layouts</button>
<button i d="f abri c-hei p-tab">Hel p</button> </div>
<div id="fabric-clipboard" clas5="fabric-tray-area"> <div id="clipboard-tray"> <div id=" special -modules ">
<div class="clipped-module imageupload- prototype" id="e7fc92d68207aa00">
<div class="fabric-titlebar"xa class="fabric-embed-button" href="#"x/axa cl ass="f abri c-cl ose-buttoπ" h ref="#"x/ax/di v>
<div class="q_module bvr-q-module fabric image_uploader" i d="token-e7f c92d68207aa00">
<h2 style="margin-left:8px,;">upload your image</h2>
<iframe src='/fabric/images/image_upload_frame frameborder="0" width="36Opx" height="200px" scroll ing="no"x/iframe>
</div>
</div> <div class="clipped-module richedi tor-prototype" id="240b0024abdl2829">
<div cla5s="fabric-titlebar"xa class="fabric-embed-button" href="#"x/axa class="fabric-close-button" href="#"x/ax/div>
<div class="q_module bvr-q-module fabric richedi tor" id="tokeπ-240b0024abdl2829">
<di v cl ass="modul e_cl i ppi ng_tool bvr-f abri c-modul e-cl i pppi ng-tool s"> <div class="module_clipping_tool_matte"x/div>
<a href="/fabric/clips/syndicate?tokeπ=Qget8LsYlgzTUBTLNSklE:svdPθm6pORRaBnwvjeJkyrjcgO ciCzOlSDHWpxz3oTopblAir5Kmt7M9UAzGXDE6EHLoM2unhdOTld8amX3zxxXuxv3sjDaVEsBeFR%2Fxw7kwn pyVz7etLrqUbeaNWW5%2BGkMRFXh%2Bcqf63zzBdxYOXU%3A240b0024abdl2829" class="syndi cater" target="_sel f "x/a>
<a href="/fabric/clips/clip?tokeπ=Qget8LsYlgzTUBTLNSklE3svdPOmβpORRaBπwvjeukyrjcgOcKzql SDHWpxz3oTopblAir5Kmt7M9UAzGXDE6EHLoM2UnhdOTld8amX3ZXxXuxv3sjDaVEsBeFR%2Fxw7kwnpyVz7 etLrqUbeaNWW5%2BGkMRFXh%2BcQf63zzBdxYOXU%3A240b0024abdl2829" class="clipper" target="_self"></a>
</div>
<div class="fabric-editor">Edit me!</div> </div>
</di v>
<div class=" clipped-module feedsubscriber-prototype" id="48e80adcl6c8c2d3">
93
© 2006 Revolution Health Group LLC <div class="fabric-titlebar"xa class="fabn'c-embed-button" href="#"x/a><a class="fabric-close-button" href="#"></ax/div>
<div class="q_module bvr-q-module feed feed_adder" id="token-48e80adcl6c8c2d3">
<h2 style="margin-left:8px;">subscribe to a feed</h2>
<p style="margin-left: 8px;">Enter the URL of an RSS or Atom feed. If you don't know the URL, try a URL from the website and we'll search. </p> <p style="margin-left: 8px; margin :0; padding :0;">Examples: http://www. revolutionhealth.com/blogs/rss/steve, cnn.com, http : //del . i ci o . us/di abetes</p>
<iframe src='/fabric/feeds/feed_subscriber_frame' frameborder="0" width="36Opx" hei ght="200px" scrol 1 i ng="no"x/i f rame>
</div>
</div>
<div class="clipped-module videoupload-prototype" id="fb37699784399329">
<div class="fabric-titlebar"xa class="fabric-embed-button" href="#"x/axa class="fabric-close-button" href="#"x/ax/div>
<div class="q_module bvr-q-rnodule fabric video_uploader" id="token-fb37699784399329">
<h2 style="margin-left:8px;">Upload your Video</h2> <h6>lnsert a YouTube video URL.</h6>
<iframe src="/fabric/videos/video_upload_frame" f rameborder="0" width="36Opx" hei ght="200px" scroll i ng="πo"x/i f rame>
</div>
Figure imgf000095_0001
<div id="fabric-timeline" class="fabric-tray-area"> - <h3>Revision History</h3>
94
© 2006 Revolution Health Group LLC <px/p>
<div class="tray-seperator"x/div>
<div id="timeline-tray">
<div id="timeline-indi cator">i_oadi ng...</div>
<div id="timeline-page"x/div> </div> </di v>
<div id="fabric-layouts" class="fabric-tray-area"> <h3>Select a layout for your page</h3> <div class="tray-seperator"x/div> <div id="slot-layout-tray"> <h4>Fl owing slot grids</h4>
<p>These layouts represent flowing si ots&mdash; modules embedded within flowing slots cannot be resized or placed, they can only be re-ordered or moved between slots.</p>
<div class="recommended-flow" id="flow_one-col">
<img s rc="/i mages/fabric/flows/one-col .gif" alt="one-col" /> </div>
<div class="recommended-flow" id="flow_three-col">
<img src="/images/fabπ'c/flows/three-col .gif" alt="three-col" /> </div>
<div class="recommended-flow" id="flow_two-col">
<img s rc="/i mages/fabric/flows /two- col .gif" alt="two-col" /> </di v>
<div class="recommended-flow" id="flow_spl it-in-half ">
<img src="/images/fabric/flows/split-in-half .gif" alt="split-in-half" /> </di v>
<div id="hidden-flows" style="di splay: none"> <div id="hidden-one-col">
<div id="maincol" class="flowing-slot">
</div>
</div>
<di v i d="hi dden-spl i t-i n-hal f ">
<div id="lefthalf" class="flowing-slot">
</div>
<div id="righthalf" class="flowing-slot">
</div>
</div>
<div id="hidden-three-col">
<div id="leftcol" class="flowing-slot">
</div>
<div id=" center col" class="flowing-slot">
</div>
<div id="rightcol" class="flowing-slot">
</div>
</div>
<div id="hidden-two-col">
<div id="leftcol" class="flowing-slot">
95
© 2006 Revolution Health Group LLC </di v>
<div id="n'ghtcol" class="flowing-slot">
both"x/div>
Figure imgf000097_0001
<br />
<div id="snap-grid-tray"> <h4>snap grids</h4>
<p>Snap grid layouts are predefined sets of snap! ines&mdash; you could create the same layouts by hand by dragging snapliπes from the page gutters, but these can help get you started. </p>
<di v cl ass=" recommended-templ ate">
</div>
<div class=" recommended-templ ate">
<div class="micro-snap1ine-vertical" style="left: 10px;"x/div>
<div class="micro-snapline-vertical" style="left: 10px;"x/div>
<div class="micro-snapline-vertical" styl e="l ef t ; 40px;"x/div;>
<div class="micro-snapline-vertical" style="left: 41px;"x/div>
</div>
<div class=" recommended-templ ate">
<div class="micro-snapline-vertical" style="left: 40px;"x/div>
<div class="micro-snapliπe-vertical" style="left: 40ρx;"x/div>
</di v>
<di v cl ass=" recommended-templ ate">
<div class="micro-snapline-vertical" style="left: 31px;"x/div>
<div class="micro-snapline-vertical" style="left: 32px;"x/div>
</di v>
</div>
<di v i d="sl ot-1 ayout-tray-teaser">
96
© 2006 Revolution Health Group LLC <h4xa href="#" oncl i ck="Fabric. instanceQ .expertModeO ; return false ; ">Enable slots</a> to pick a slot Iayout</h4>
</div>
<div cl ass="tray-seperator"x/div> </div>
<div id="fabric-help" class="fabri c-tray-area"> <h3>Tutorials and Suggestions</h3> <di v cl ass="tray-seperator"x/di v>
<pxa href="/fabn c/page/demo" class="bvr-remote-dialog">Cl i ck here tα watch the tutorial s and read our suggest! ons.</ax/p> <h3>Frequently Asked Questions</h3> <di v cl ass="tray-seperator"x/div> <h4>What is Revolution PageBuilder?</h4>
<p>PageBuilder i s a tool that allows you to buil d a page by creating your own modul es or placing modules Revolution Health has al ready created on your page.</p>
<h4>How do I access Revol ution HealthPages?</h4>
<p>You can access HealthPages in many ways. The HealthPages home can be accessed from the home page, from a dropdown menu by hovering over the home button i n the si te header, or, most prominently, by cl icki ng the HealthPages button when viewi ng most topic pages on the si te.</p>
<h4>What is the HealthPages button?</h4>
<p>This button takes you to the pages users have been bui lt that are similar in topi cs to the page you were currently viewi ng. </p>
<h4>what is the ' cl i pboarcT ?</h4>
<p>Your clipboard is where modules you can use to bui l d your page are stored, YOU can search for modules that are somewhere el se on Revol ution, you can access modules that you have clipped, or you can create new image, text, RSS, or video modul es with the tools above. From the clipboard, you can also see the history of the page, or change the page layout . </p>
<h4>How can I access the 1cli pboard'?</h4>
<p>You can access the clipboard by going to edit mode on a page. Simply bring your mouse to the left side of your screen and the clipboard should slide out.</p>
<h4>How can I remove something from my clipboard?</h4>
<p>simply click the red "x" in the upper right of a module that shows up your clipboard and it should be removed,</p>
<h4>How long do items stay on my clipboard?</h4>
<p>ltems stay in your clipboard until you remove them.</p>
<h4>Can other users see my clipboard?</h4>
<p>No, other users cannot see your clipboard. It is private to just you and can only be accessed when you are logged in to Revolution Health.</p>
<h4>How do I create a page?</h4>
<p>You can create a page from the HealthPages main page here. Simply give your page a title, tags, and set the editing controls and you can begin building.</p>
<h4>what can I use to create a page?</h4>
97
Θ 2006 Revolution Health Group LLC <p>You can use modules you create yourself or that Revolution has al ready created . Modules you can created include writi ng your own text, uploading a photo, grabbing a video from YouTube, or subscribing to an RSS feed. You can search or browse and clip modules Revolution has al ready created . </p>
<h4>How can I find modules to add to my page?</h4>
<p>τhere are two main ways to find modules. From your clipboard, you can enter a keyword or phrase and search for modules , or, you can browse around the site and cli p modules that you fi nd useful , in order to see what modul es are avai labl e for clipping, you can toggle the sci ssors that is at the top of most pages . </p>
<h4>Why can I cl ip some things and not others?</h4>
<p>some modul es only work where they are currently placed . We are constantly worki ng to expand our list of available modules. </p>
<h4>Can I add modules from other sites?</h4>
<p>No, at this time you cannot add modules from other sites . However, you can add RSS feeds from external sites via the RSS module. </p>
<h4>Can other users vi ew my page?</h4>
<p>Yes, your pages wil l be viewable by others at all times . </p>
<h4>How can I make it so only I can vi ew my page and other users can 't?</h4>
<p>we do not support this capability at thi s point i n time.</p>
<h4>can anyone edi t my page?</h4>
<p>when you create your page, you can choose if you' d l ike others to be abl e to edit your page. Simply choose "Everyone" to allow others to edit your page.</p>
<h4>How can I make it so only I can edit my page?</h4>
<p>select "only me" when asked if you ' d li ke others to be able to edit your page.</p>
<h4>How can I edit a page I 've al ready created?</h4>
<p>You can edit a page you've al ready created by navigating to the page and cli cking "Edit page" at the top of the page.</p>
<h4>How can I delete a page I've created?</h4>
<p>You cannot delete a page that has been created. However, at any point in time you can delete any of the contents on the page.</p>
<h4>How can I find a page I created?</h4>
<p>You can find your page by going to the HealthPages main page and viewing the "Pages you've participated in" module.</p>
<h4>How can I find a page someone else created?</h4>
<p>From the HealthPages main page, you can browse the tag cloud or search.</p>
<h4>what are the scissors for?</h4>
<p>τhe scissors are used for clipping modules throughout the site. You can either
98
© 2006 Revolution Health Group LLC add the modul e to your cli pboard or, if allowed", place the module on an external site.</p>
<h4>What do the 5 stars listed with each page meaπ?</h4>
<p>τhe stars represent the rating other users have given the page. The more stars, the higher the rating. </p>
<h4>How can I rate a page?</h4>
<p>You can simply hover over the star val ue you would like to give the page and cl i ck.</p>
<h4>what does it mean if I see a module removed by the moderation team?</h4>
<p>This means that something within the module violated the Revol ution Posting guidelines or Terms of Service. </p>
<h4>Can I report a page that violates the community guidel ines?</h4>
<p>Yes , simply cl i ck "Report abuse" i n the page header. </p> <div class="tray-seperator"x/div> </di v>
</div> </di v>
</body> </htm l>
99
© 2006 Revolution Health Group LLC

Claims

WHAT IS CLAIMED IS
1. A method comprising: receiving, from a user, a request to access a web page; in response to receiving the request to access the web page, identifying a manifest associated with the requested web page that: identifies a template that defines a structural layout for the requested web page, specifies multiple discrete modules to be included in the requested web page, and specifies locations for the multiple discrete modules within the defined structural layout for the requested web page; accessing the identified manifest; based on the accessed manifest, generating a markup language framework for the requested web page that: specifies the structural layout for the requested web page, and includes references to the modules to be included in the requested web page, the references to the modules enabling the modules to be accessed and included within source code for the requested web page; assembling source code for the requested web page, including: parsing the markup language framework for the requested web page and identifying the references to the modules to be included in the requested web page, based on identifying the references to the modules to be included in the requested web page, fetching the referenced modules and replacing the references to the modules with the fetched modules, and including a script within the source code for the requested web page that facilitates selection and importation of modules from the assembled source code for the requested web page into source code of other web pages; serving the assembled source code for the requested web page to the user; enabling rendering, to the user, of the assembled source code for the requested web page in a display mode, the rendered web page including a selectable indicator that enables the user to request that the rendered web page transition to a portable module mode; in response to user selection of the indicator, transitioning the rendered web page from the display mode to the portable module mode, including: invoking the script that facilitates selection and importation of modules from the assembled source code for the requested web page into source code for other web pages, causing a veneer that visually identifies individual modules that are available for importation into other web pages to overlay the rendered web page, and enabling the user to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages.
2. The method of claim 1 further comprising: after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages; identifying a network address for the selected module; providing the identified network address for the selected module to the user; enabling the user to embed the network address for the selected module in source code for a different web page; and enabling the module to be accessed when a browser renders the source code for the different web page.
3. The method of claim 1 further comprising: after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages; providing an encrypted representation of a network address for the selected module to the user; enabling the user to embed the encrypted representation of the network address in source code for a different web page; receiving the encrypted representation of the network address and a request to access a module from a browser that is attempting to render the source code for the different web page; in response to receiving the encrypted representation of the network address and the request to access a module: determining that the encrypted representation of the network address corresponds to the network address for the selected module, and based on determining that the encrypted representation of the network address corresponds to the network address for the selected module, enabling the selected module to be accessed by the browser attempting to render the source code for the different web page.
4. The method of claim 1 further comprising: after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages; identifying source code for the selected module; and enabling the user to embed the source code for the selected module in source code for a different web page.
5. The method of claim 1 further comprising: maintaining, on behalf of the user, a personal collection of modules; after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into other web pages; and saving a representation of a network address for the selected module in the personal collection of modules maintained on behalf of the user.
6. The method of claim 1 further comprising: providing the user with access to a different web page, where source code for the different web page includes a different script that facilitates editing the source code for the different web page; and enabling the user to edit the source code for the different web page only when the different script that facilitates editing the different web page is invoked.
7. The method of claim 6 further comprising: enabling rendering of the source code for the different web page including creating a data object model for the different web page; receiving a request from the user to edit the different web page; in response to receiving the request from the user to edit the different web page, invoking the different script that facilitates editing the source code for the different web page; receiving a request from the user to reformat a particular module included in the different web page; in response to receiving the request from the user to reformat the particular module included in the different web page: modifying the data object model for the different web page in accordance with the request to reformat the particular module, and causing the rendered different web page to be updated to reflect the modified data object model for the different web page.
8. The method of claim 7 further comprising: receiving a request from the user to save the different web page including the reformatted module; in response to receiving the request from the user to save the different web page, modifying the source code for the different web page to reflect the modified data object model for the different web page; and saving the modified source for the different web page.
9. The method of claim 6 further comprising: enabling rendering of the source code for the different web page including creating a data object model for the different web page; receiving a request from the user to edit the different web page; in response to receiving the request from the user to edit the different web page, invoking the different script that facilitates editing the different web page; providing the user with access to one or more modules from the personal collection of modules maintained on behalf of the user, the one or more modules from the personal collection of modules including the selected module; receiving, from the user, a request to import the selected module into the different web page; and in response to receiving the request to import the selected module into the different web page: modifying the data object model for the different web page to include a representation of the selected module, and based on the modified data object model for the different web page, causing the rendered different web page to be updated to reflect importation of the selected module into the different web page.
10. The method of claim 9 further comprising: receiving a request from the user to save the different web page including the selected module; and in response to receiving the request from the user to save the different web page: identifying, from within the personal collection of modules maintained on behalf of the user, the representation of the network address for the selected module, modifying the source code for the different web page to reflect the modified data object model for the different web page including embedding the representation of the network address for the selected module in the source code for the different web page, and saving the modified source code for the different web page.
11. The method of claim 10 further comprising: after saving the modified source code for the different web page, receiving, from a browser associated another user, a request to access the different web page; in response to receiving the request to access the different web page from the browser associated with the other user, providing, to the browser associated with the other user, the modified source code for the different web page including the embedded representation of the network address for the selected module; receiving, from the browser associated with the other user and while the browser associated with the other user is attempting to render the source code for the different web page, a request to access the network address for the selected module; and in response to receiving the request to access the network address for the selected module, providing the selected module to the browser associated with the other user for rendering within the different web page.
12. The method of claim 9 further comprising: after modifying the data object model for the different web page to include a representation of the selected module and causing the rendered different web page to be updated to reflect importation of the selected module into the different web page, receiving a request from the user to reformat the selected module in the different web page; and in response to receiving the request from the user to format the particular module included in the different web page: modifying the data object model for the different web page in accordance with the request to format the particular module, and causing the rendered different web page to be updated to reflect the modified data object model for the different web page.
13. The method of claim 12 wherein : receiving the request to reformat the selected module in the different web page includes receiving a request to resize the selected module in the different web page; modifying the data object model for the different web page in accordance with the request to format the particular module includes modifying the data object model for the different web page to resize the representation of the selected module included in the data object model; and causing the rendered different web page to be updated to reflect the modified data object model for the different web page includes causing the rendered different web page to be updated to reflect the resized selected module.
14. The method of claim 12 wherein: receiving the request to reformat the selected module in the different web page includes receiving a request to reformat text within the selected module in the different web page; modifying the data object model for the different web page in accordance with the request to format the particular module includes modifying the data object model for the different web page to reflect the reformatted text within the selected module included in the data object model; and causing the rendered different web page to be updated to reflect the modified data object model for the different web page includes causing the rendered different web page to be updated to reflect the reformatted text within the selected module.
15. The method of claim 6 further comprising: enabling rendering of the different web page including creating a data object model for the different web page; receiving a request from the user to edit the different web page; in response to receiving the request from the user to edit the different web page, invoking the different script that facilitates editing the different web page; receiving a request from the user to reformat a particular module included in the different web page; in response to receiving the request from the user to reformat the particular module included in the different web page: modifying the data object model for the different web page in accordance with the request to reformat the particular module, and causing the rendered different web page to be updated to reflect the modified data object model for the different web page, the updated rendered different web page including a pixel perfect representation of the reformatted particular module.
16. The method of claim 1 wherein at least a particular one of the modules includes pre-defined content and subscribes to contextual content such that fetching the particular module and replacing the reference to the particular module with the fetched particular module includes: fetching the particular module including the pre-defined content; determining appropriate contextual content to include in the particular module; fetching the determined appropriate contextual content to include in the particular module; assembling the fetched contextual content in the fetched particular module; and replacing the reference to the particular module with the assembled particular module including the fetched pre-defined content and the fetched contextual content.
17. The method of claim 16 wherein: the requested web page is part of a web site that includes multiple sections, each section including one or more web pages and being associated with at least one context, such that receiving a request to access a web page includes receiving a request to access a web page that is located in a particular section of the website; and determining appropriate contextual content to include in the particular module includes: determining that the requested web page is located within the particular section of the web site, determining a context for the requested web page based on determining that the requested web page is located within the particular section of the website, and determining appropriate contextual content to include in the particular module based on the determined context for the requested web page.
18. The method of claim 16 further comprising maintaining a user profile for the user that stores one or more attributes for the user, wherein determining appropriate contextual content to include in the particular module includes: accessing the user profile maintained for the user; identifying one or more attributes for the user from the accessed user profile; and determining appropriate contextual content to include in the particular module based on the identified attributes for the user.
19. The method of claim 16 further comprising: after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into source code for other web pages; identifying a network address for the selected module, the network address for the selected module enabling access to both the pre-defined content for the module and the determined appropriate contextual content to include in the particular module; providing the identified network address for the selected module to the user; enabling the user to embed the network address for the selected module in source code for a different web page; and enabling the module including the pre-defined content and the determined appropriate contextual content to be accessed when a browser renders the source code for the different web page.
20. The method of claim 16 further comprising: after transitioning the rendered web page from the display mode to the portable module mode, receiving a selection, by the user, of a particular one of the individual modules identified as available for importation into source code for other web pages; providing an encrypted representation of a network address for the selected module to the user; enabling the user to embed the encrypted representation of the network address in source code for a different web page; receiving the encrypted representation of the network address and a request to access a module from a browser that is attempting to render the source code for the different web page; in response to receiving the encrypted representation of the network address and the request to access a module: determining that the encrypted representation of the network address corresponds to the network address for the selected module, and based on determining that the encrypted representation of the network address corresponds to the network address for the selected module, enabling the selected module including both the pre-defined content for the module and the determined appropriate content for the module to be accessed by the browser attempting to render the source code for the different web page.
21. The method of claim 1 wherein all of the modules are available for importation from the assembled source code for the requested web page into source code for other web pages such that: causing a veneer that visually identifies individual modules that are available for importation into other web pages to overlay the rendered web page includes causing a veneer that visually identifies all of the individual modules in the rendered web page as available for importation into other web pages; and enabling the user to import one or more of the visually identified modules from the assembled source code for the requested web page into source code for other web pages including enabling the user to import all of the modules from the assembled source code for the requested web page into source code for other web pages.
22. The method of claim 1 wherein some, but not all, of the modules are available for importation from the assembled source code for the requested web page into source code for other web pages such that: causing a veneer that visually identifies individual modules that are available for importation into other web pages to overlay the rendered web page includes causing a veneer that visually identifies some, but not all, of the individual modules in the rendered web page as available for importation into other web pages; and enabling the user to import one or more of the visually identified modules from the assembled source code for the requested web page into source code for other web pages including enabling the user to import some, but not all, of the modules from the assembled source code for the requested web page into source code for other web pages.
23. The method of claim 1 wherein the markup language is edge side includes such that generating a markup language framework for the requested web page includes generating an edge side includes framework for the requested web page.
24. The method of claim 1 wherein enabling the user to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages includes enabling the user to import one or more of the visually distinguished modules from the assembled source code for the requested web page into source code for other web pages only when the rendered web page is in portable module mode.
25. The method of claim 1 wherein identifying a manifest associated with the requested web page that specifies locations for the multiple discrete modules within the predefined structural layout for the requested web page includes identifying a manifest associated with the requested web page that specifies relative locations for the multiple discrete modules within web page screen real estate for the requested web page.
26. A method comprising: receiving, from a user, a request to access a web page that is part of a web site that includes multiple web pages, the web page including multiple discrete modules; in response to receiving the request to access the web page, displaying the requested web page to the user in a display mode, wherein, during display mode, at least one of the modules is locked and unavailable for importation into other web pages; enabling user selection of a control that enables the user to request that the displayed web page be transitioned from the display mode to a portable module mode, wherein, during portable module mode, one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages; and responsive to user selection of the control: transitioning the displayed web page from display mode to portable module mode, visually distinguishing modules that are available for importation from the displayed web page into other web pages, and enabling user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages.
27. The method of claim 26 wherein displaying the requested web page to the user in a display mode includes displaying the requested web page to the user such that all of the modules are locked and unavailable for importation into other web pages.
28. The method of claim 26 wherein displaying the requested web page to the user in a display mode includes displaying the requested web page to the user such that boundaries separating the modules are transparent.
29. A computer-readable medium having embodied thereon a computer program, the computer program including instructions that, when executed, cause a computer to: receive, from a user, a request to access a web page that is part of a web site that includes multiple web pages, the web page including multiple discrete modules; in response to receiving the request to access the web page, display the requested web page to the user in a display mode, wherein, during display mode, at least one of the modules are locked and unavailable for importation into other web pages; enable user selection of a control that enables the user to request that the displayed web page be transitioned from the display mode to a portable module mode, wherein, during portable module mode, one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages; and in response to user selection of the control: transition the displayed web page from display mode to portable module mode, visually distinguish modules that are available for importation from the displayed web page into other web pages, and enable user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages.
30. A system comprising: a memory; and a processor configured to: receive, from a user, a request to access a web page that is part of a web site that includes multiple web pages, the web page including multiple discrete modules; in response to receiving the request to access the web page, display the requested web page to the user in a display mode, wherein, during display mode, at least one of the modules are locked and unavailable for importation into other web pages; enable user selection of a control that enables the user to request that the displayed web page be transitioned from the display mode to a portable module mode, wherein, during portable module mode, one or more of the modules that are locked and unavailable for importation into other web pages during display mode are unlocked and available for importation from the displayed web page into other web pages; and in response to user selection of the control: transition the displayed web page from display mode to portable module mode, visually distinguish modules that are available for importation from the displayed web page into other web pages, and enable user selection of one or more of the visually distinguished modules for importation from the displayed web page into other web pages.
PCT/US2007/088249 2007-04-17 2007-12-19 Publishing, importing, and formatting web page modules WO2008127474A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US91241707P 2007-04-17 2007-04-17
US60/912,417 2007-04-17

Publications (1)

Publication Number Publication Date
WO2008127474A1 true WO2008127474A1 (en) 2008-10-23

Family

ID=39864224

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/088249 WO2008127474A1 (en) 2007-04-17 2007-12-19 Publishing, importing, and formatting web page modules

Country Status (1)

Country Link
WO (1) WO2008127474A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595691B2 (en) 2009-06-05 2013-11-26 Maxymiser Ltd. Method of website optimisation
WO2015142596A1 (en) * 2014-03-17 2015-09-24 Microsoft Technology Licensing, Llc Asset collection service through capture of content
CN106462555A (en) * 2014-05-14 2017-02-22 网页云股份有限公司 Methods and systems for web content generation
US9672114B2 (en) 2014-04-16 2017-06-06 Microsoft Technology Licensing, Llc Conditional saving of input data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161907A1 (en) * 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
US20050213790A1 (en) * 1999-05-19 2005-09-29 Rhoads Geoffrey B Methods for using wireless phones having optical capabilities
US20070061487A1 (en) * 2005-02-01 2007-03-15 Moore James F Systems and methods for use of structured and unstructured distributed data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213790A1 (en) * 1999-05-19 2005-09-29 Rhoads Geoffrey B Methods for using wireless phones having optical capabilities
US20020161907A1 (en) * 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
US20070061487A1 (en) * 2005-02-01 2007-03-15 Moore James F Systems and methods for use of structured and unstructured distributed data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MANCORIDIS S. ET AL.: "REportal: A Web-Based Portal Site for Reverse Engineering", WCRE PROCEEDINGS OF THE EIGHT WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE'01), pages 221, Retrieved from the Internet <URL:http://www.akpublic.research.att.com/areas/visualization/papers_videos/pdf/DBLP-conf.wcre-MancoridisSCGK01.pdf> *
MANCORIDIS S. ET AL.: "REportal: A Web-based Portal Site for Reverse Engineering", WCRE PROCEEDINGS OF THE EIGHT WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE'01), pages 221, Retrieved from the Internet <URL:http://www.portal.acm.org/citation.cf?id=837123&jmp=cit&coll=GUIDE&dl=GUIDE&CFID=25316983&CFTOKEN=80290146#CIT> *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595691B2 (en) 2009-06-05 2013-11-26 Maxymiser Ltd. Method of website optimisation
US9489178B2 (en) 2009-06-05 2016-11-08 Maxymiser Ltd. Method of website optimisation
US9854064B2 (en) 2009-06-05 2017-12-26 Oracle International Corporation Method of website optimisation
WO2015142596A1 (en) * 2014-03-17 2015-09-24 Microsoft Technology Licensing, Llc Asset collection service through capture of content
US9672114B2 (en) 2014-04-16 2017-06-06 Microsoft Technology Licensing, Llc Conditional saving of input data
US9934081B2 (en) 2014-04-16 2018-04-03 Microsoft Technology Licensing, Llc Conditional saving of input data
CN106462555A (en) * 2014-05-14 2017-02-22 网页云股份有限公司 Methods and systems for web content generation

Similar Documents

Publication Publication Date Title
Paulson Building rich web applications with Ajax
US7996756B2 (en) System and methods for displaying user modifiable server-rendered images
US8086960B1 (en) Inline review tracking in documents
US7359873B2 (en) Self-service catalog manager for stores implemented on a communications network
Hoy HTML5: a new standard for the Web
AU2011201137B1 (en) Codeless Dynamic Websites Including General Facilities
US20180157763A1 (en) System and method for generating an electronic page
WO2009001166A1 (en) Method to generate a software part of a web page and such software part
Schafer Html, xhtml, and css bible
WO2008127474A1 (en) Publishing, importing, and formatting web page modules
Ratha et al. HTML5 in web development: a new approach
Marill et al. The MedlinePlus public user interface: studies of design challenges and opportunities
Vardell Natural medicines: a complementary and alternative medicines tool combining natural standard and the natural medicines comprehensive database
Aryal Bootstrap: a front-end framework for responsive web design
Shereff Electronic books for biomedical information
JP5237875B2 (en) Shared article publishing system
Hadlock jQuery Mobile: Develop and design
Clark Responsive web design in practice
Medina et al. Pro SharePoint 2013 Branding and Responsive Web Development
Cravens et al. HTML5 Hacks: Tips & Tools for Creating Interactive Web Applications
Wusteman Web forms: the next generation
Estabrook et al. Applications of RSS in Health Sciences Libraries
SETT MANTRITA DEY
Laferriere Thieme MedOne Education Review
India Design Your Imagination

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07865894

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07865894

Country of ref document: EP

Kind code of ref document: A1