IP Library Granted Patent US 9,021,348
Granted Patent B1
US 9,021,348 · App. 13/253,696 · Granted Apr 28, 2015

Composition of templates using transclusion that guarantee a valid HTML document

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,021,348
App. No.
13/253,696
Granted
Apr 28, 2015
Kind
B1
Abstract

A system, method and computer-readable medium for composing a valid HTML document using template transclusion. A system includes a memory configured to store a transcluded template file, the transcluded template file includes a transcluded template and a transcluding template file, the transcluding template file including a transcluding template, the transcluding template including credentials to the transcluded template. The system also includes a template building module configured to build a transcluded template object from the transcluded template and a transcluding template object from the transcluding template, where the transcluded template object and the transcluding template object generate a valid HTML document that is sent for display on a browser.

Claims (85)

1. A computer-implemented method for composing a valid HTML document using template transclusion, comprising:

retrieving a transcluded template file including a transcluded template;

retrieving a transcluding template file including a transcluding template, the transcluding template including credentials to the transcluded template;

validating that a data-type of an input parameter in the transcluding template matches a data-type of the transcluded template;

building a binary transcluded template object from the transcluded template and a binary transcluding template object from the transcluding template based on the validating; and

uploading the binary transcluded template object and the binary transcluding template object to a server to generate the valid HTML document that is sent for display on a browser, wherein content in the valid HTML document associated with the transcluded template is included within content in the valid HTML document associated with the transcluding template.

2. The computer-implemented method of claim 1 , wherein the credentials include a uniform resource locator (URL) and an identifier of the transcluded template, wherein the URL includes a path to the transcluded file.

3. The computer-implemented method of claim 2 , further comprising:

validating that the transcluded file is accessible using the URL; and

validating that the transcluded template exists in the transcluded file using the identifier.

4. The computer-implemented method of claim 1 , further comprising:

generating an abstract syntax tree for the transcluded template; and

generating an abstract syntax tree for the transcluding template, the abstract syntax tree for the transcluding template including a tag to the abstract syntax tree for the transcluded template.

5. The computer-implemented method of claim 1 , further comprising:

identifying a cascading style sheet (CSS) rule associated with the transcluded template;

inserting the CSS rule in the transcluding template file;

inserting a credential associated with the transcluded template into the transcluding template;

associating the credential with the CSS rule; and

wherein building the binary transcluding template object further comprises:

including, based on the credential the CSS rule associated with the transcluded template in the binary transcluding template object, wherein the content in the valid HTML document associated with the transcluded template is displayed with the CSS rule associated with the transcluded template.

6. The computer-implemented method of claim 5 , wherein the cascading style sheet (CSS) is included outside of the transcluded template in the transcluded template file or stored outside of the transcluded template file.

7. The computer-implemented method of claim 1 , further comprising:

identifying JavaScript code associated with the transcluded template;

inserting the JavaScript code in the transcluding template file;

inserting a credential associated with the transcluded template into the transcluding template;

associating the inserted credential with the JavaScript code; and

wherein building the binary transcluding template object further comprises including the JavaScript code associated with the transcluded template in the binary transcluding template object based on the inserted credential, wherein the content in the valid HTML document associated with the transcluded template is displayed using the JavaScript code associated with the transcluded template.

8. The computer-implemented method of claim 1 , wherein the transcluded template inherits a data-type from a protocol buffer.

9. The computer-implemented method of claim 1 , wherein the transcluding template inherits the data-type from the protocol buffer.

10. A system for composing a valid HTML document using template transclusion, comprising:

a memory configured to:

store a transcluded template file, the transcluded template file including a transcluded template; and

store a transcluding template file, the transcluding template file including a transcluding template, the transcluding template including credentials to the transcluded template; and

a template building module configured to:

validate that a data-type of an input parameter in the transcluding template matches a data-type of the transcluded template;

build a binary transcluded template object from the transcluded template based on the validation;

build a binary transcluding template object from the transcluding template based on the validation; and

upload the binary transcluded template object and the binary transcluding template object to a web server to generate the valid HTML document that is sent for display on a browser, wherein content in the valid HTML document associated with the transcluded template is included within content in the valid HTML document associated with the transcluding template.

11. The system of claim 10 , wherein the credentials include a uniform resource locator (URL) of the transcluded file and an identifier of the transcluded template.

12. The computer-implemented method of claim 11 , wherein the template building module is further configured to:

validate that the transcluded file is accessible using the URL; and

validate that the transcluded template exists in the transcluded file using an identifier.

13. The system of claim 10 , wherein the template building module is further configured to:

generating an abstract syntax tree for the transcluded template; and

generating an abstract syntax tree for the transcluding template, the abstract syntax tree for the transcluding template including a tag to the abstract syntax tree for the transcluded template.

14. The system of claim 10 , wherein the template building module is further configured to:

identify a cascading style sheet (CSS) rule associated with the transcluded template;

insert the CSS rule in the transcluding template file;

insert a credential associated with the transcluded template into the transcluding template;

associate the inserted credential with the CSS rule; and

build the binary transcluding template object that based on the inserted credential includes the CSS rule associated with the transcluded template in the binary transcluding template object, wherein the content in the valid HTML document associated with the transcluded template is displayed with the CSS rule associated with the transcluded template.

15. The system of claim 14 , wherein the cascading style sheet (CSS) is included outside of the transcluded template in the transcluded template file or stored outside of the transcluded template file.

16. The system of claim 10 wherein the template building module is further configured to:

identify JavaScript code associated with the transcluded template;

insert the JavaScript code in the transcluding template file;

insert a credential associated with the transcluded template into the transcluding template;

associate the inserted credential with the JavaScript code; and

build the binary transcluding template object that based on the inserted credential includes the JavaScript code associated with the transcluded template in the binary transcluding template object, wherein the content in the valid HTML document associated with the transcluded template is displayed using the JavaScript code associated with the transcluded template.

17. An article of manufacture including a computer-readable medium having instructions stored thereon that, when executed by a computing device, cause the computing device to perform operations comprising:

retrieving a transcluded template file, the transcluded template file including a transcluded template;

retrieving a transcluding template file, the transcluding template file including a transcluding template, the transcluding template including credentials to the transcluded template;

validating that a data-type of an input parameter in the transcluding template matches a data-type of the transcluded template;

building a binary transcluded template object from the transcluded template and a binary transcluding template object from the transcluding template based on the validating;

uploading the binary transcluded template object and the binary transcluding template object to a web server to generate the valid HTML document that is sent for display on a browser, wherein content in the valid HTML document associated with the transcluded template is included within content in the valid HTML document associated with the transcluding template.

18. The computer-readable medium of claim 17 , wherein the credentials include a uniform resource locator (URL) of the transcluded file and an identifier of the transcluded template.

19. The computer-readable medium of claim 18 , wherein the instructions that cause the building the transcluded template object and the transcluding template object, comprise instructions that, when executed by the computing device, cause the computing device to perform operations comprising:

validating that the transcluded file is accessible using the URL; and

validating that the transcluded template exists in the transcluded file using the identifier.

20. The computer-readable medium of claim 17 , wherein the instructions that cause the generating comprise instructions that, when executed by the computing device, cause the computing device to perform operations comprising:

generating an abstract syntax tree for the transcluded template; and

generating an abstract syntax tree for the transcluding template, the abstract syntax tree for the transcluding template including a tag to the abstract syntax tree for the transcluded template.

21. The computer-readable medium of claim 17 , wherein the transcluded template and the transcluding template inherit a data-type from a protocol buffer.

22. The computer-readable medium of claim 17 , wherein the instructions that cause the building comprise instructions that, when executed by the computing device, cause the computing device to perform operations comprising:

identifying a cascading style sheet (CSS) rule associated with the transcluded template;

inserting the CSS rule in the transcluding template file;

inserting a credential associated with the transcluded template into the transcluding template;

associating the inserted credential with the CSS rule; and

wherein building the binary transcluding template object further comprises:

including the CSS rule associated with the transcluded template in the binary transcluding template object based on the inserted credential, such that the content in the valid HTML document associated with the transcluded template is displayed with the CSS rule associated with the transcluded template.

23. The computer-readable medium of claim 17 , wherein the instructions that cause the building comprise instructions that, when executed by the computing device, cause the computing device to perform operations comprising:

identifying JavaScript code associated with the transcluded template;

inserting the JavaScript code in the transcluding template file;

inserting a credential associated with the transcluded template into the transcluding template;

associating the inserted credential with the JavaScript code; and

wherein building the binary transcluding template object further comprises including the JavaScript code associated with the transcluded template in the binary transcluding template object based on the inserted credential, such that the content in the valid HTML document associated with the transcluded template is displayed using the JavaScript code associated with the transcluded template.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE LISTED ON ORIGINAL DOCUMENT PREVIOUSLY RECORDED ON REEL 027021 FRAME 0546. ASSIGNOR (S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 19, 2011
From: MESCHKAT, STEFFEN; MICHAEL, CONSTANTINOS; BOONSTOPPEL, TOBIAS; HAUSTEIN, STEFAN
To: GOOGLE INC.
Reel/Frame 027098/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2011
From: MESCHKAT, STEFFEN; MICHAEL, CONSTANTINOS; BOONSTOPPEL, TOBIAS; HAUSTEIN, STEFAN
To: GOOGLE INC.
Reel/Frame 027021/0546 →