This invention is generally related to the World Wide Web, and more particularly to web site development and editing.
The World Wide Web of the Internet is a widely used resource for sharing information and ideas. Web pages are used commercially to advertise and sell products and services, and non-commercially to share information about various subjects of interest. Text, graphics and other features displayed by Web pages are generally written in HyperText Markup Language (“HTML”) format which indicates to a target computer how to display the Web page. HTML files include plain text, e.g., ASCII, with codes that a Web browser interprets to produce a particular effect on the target computer.
Historically, web site development was primarily done by people with technical knowledge such as computer programmers. HTML is perceived to be difficult for some non-technical people to use. However, growing use of the Web, the need to regularly update Web site content, and particularly the need for Web site co-construction created a need for a development tool such as “WikiWiki.” WikiWiki is a Web site development tool which includes server software that allows users to easily create and edit Web page content by generating or modifying simple “Wiki” source code using a Web browser. The server software translates the Wiki source code to HTML format. Wiki Web pages (“Wikis”) support hyperlinks, and have simple text syntax for creating new pages and crosslinks between internal pages. Text markers are employed to indicate text formatting, list items and headers. For example, a given Wiki implementation may render the text *foo* as the bold-faced foo, and may render “foo” as italic foo. In typical usage, one visits a WikiWiki web site, sees a page that requires editing, clicks a link labeled “Edit this page,” and is presented with a text field containing the Wiki source code of the page. Upon editing and submitting the text field, the page is updated to reflect the changes. In particular, the server software translates the Wiki source, including the changes, into HTML which is then provided to the user's computer. It should be noted that the term “Wiki” as used herein refers to both the tool by that name developed by Ward Cunningham and other tools known by various names which perform similar functions.
The invention is predicated in-part upon recognition of some shortcomings of Wiki tools. For example, one shortcoming is that one page in a WikiWiki web site cannot refer to values on another page symbolically, or make the page reference itself symbolic. Given a WikiWiki page that contains a list of values, some Wiki tools might support adding the values together on the same page, but the values would have to be copied and pasted into other places such as a second page where they might be relevant. Consequently, updating the values on the first page would not result in the values on the second page being updated. Although some Wiki tools support referencing text on another page, integrated computations between pages is not supported.
In accordance with the present invention, a value may be referenced on a Wiki page other than the Wiki page on which the value is defined. Translation of value-referencing Wiki source to HTML is executed in a manner which enables changes to the value in the value-defining page to be reflected in the rendering of the value referencing page, i.e., the value reference is dynamic. Further, use of a symbolic name to represent a value is supported. Performance of calculations with a value and page aliasing may also be supported.
One advantage of dynamic value references is that updating of values in a Wiki Web site is facilitated. In particular, by dynamically referencing a defined value to the page on which the value is defined, changes to the value are reflected in all referencing pages without need for manual updates, and consequently without need for personal knowledge of which pages reference the value. The technique also advantageously reduces the effort required to implement a change because the value can be updated by changing only the value-defining page rather than all pages which use the value.
Support for use of symbolic names with formulas and defined values facilitate Web site development and editing by enabling use of recognizable terms rather than mathematical and logic expressions. Page aliasing facilitates development and editing by simplifying use of alternative sets of defined values. For example, a change in one line of a referencing page may cause selection of values from a different value-defining page, thereby obviating the need to change each individual value on the referencing page.
In order to facilitate a fuller understanding of the present invention, reference is now made to the appended drawings. These drawings should not be construed as limiting the present invention, but are intended to be exemplary only.
Referring to
When rendered in HTML by the Wiki server software, a formula in Wiki source 10 is rendered as the formula's value in the displayed text 12. Hence, the formula {12} is rendered as 12 in the displayed text. Similarly, the formula {12*2.13} is rendered as 25.56 in the displayed text. In the case of a name assignment, the value of the formula is the value assigned to the name. Hence, {milesPerHour: 65} is rendered as 65.
Formulas may be included in text strings to produce a desired result. Continuing with the illustrated example, the text string We went {milesPerHour} miles per hour for {hours: 2.5} hours, for a total of {milesPerHour*hours} miles! in Wiki source 10 is rendered as We went 65 miles per hour for 2.5 hours, for a total of 162.5 miles! in the displayed text 12. In the illustrated example milesPerHour is assigned the value 65 outside of the text string, while hours is assigned the value 2.5 inside the text string and the formula {milesPerHour*hours} is defined inside the text string. Names may be assigned, and formulas may be defined, anywhere in a Wiki page including inside and outside of text strings. Once a name is assigned, any formula later on the page may refer to the assigned name. Undefined names are silently treated as numeric zero when used in a formula. As a design variant, undefined names could be treated as an error. It is an error to define the same name twice in one page.
Referring to
Referring to
Mathematical functions may also be included to facilitate calculations. For example, a square function “sqr” may be included such that the Wiki source 18 Radius {r: 3}, area {area: MathConstants.pi*sqr {r}} is rendered as Radius 3, area 28.27 in the displayed text 22. Many other mathematical functions can be supported, such as those commonly found on an engineering calculator, advanced programming language or mathematics software. Those skilled in the art will recognize which functions are desirable for achieving a particular result.
Referring to
The translation of Wiki source to HTML is executed in a manner which enables changes in referenced pages to be reflected in the referring pages. This may be accomplished by executing translation upon each viewing. Alternatively, WikiWiki source code is initially translated into HTML and cached as HTML to avoid unnecessary re-translation. In either case, a parsing stage is employed in which referenced names and formulas are translated into their values based on the state of the respective defining pages prior to translating the formulas and names on the referencing page. In other words, reference is made to the defining pages to resolve the values before the values are employed in rendering a page to an HTML format that will be provided to the target computer.
In view of the description above, it will be understood by those of ordinary skill in the art that modifications and variations of the described and illustrated embodiments may be made within the scope of the inventive concepts. Moreover, while the invention is described in connection with various illustrative structures, those of ordinary skill in the art will recognize that the invention may be employed with other structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.