CSC/ECE 517 Fall 2017/M1752 Implement the Microdata API: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
The Microdata HTML specification allows web data to be enriched in that it allows machines to learn more about the data in a webpage. A typical example is shown below | The Microdata HTML specification allows web data to be enriched in that it allows machines to learn more about the data in a webpage. A typical example is shown below | ||
Line 11: | Line 10: | ||
For more information about the specification, please refer - | For more information about the specification, please refer - | ||
The number of websites that use Microdata is growing; currently about 13% of websites use Microdata (statistics courtesy Alexa) , an % increase since 2014 | The number of websites that use Microdata is growing; currently about 13% of websites use Microdata (statistics courtesy Alexa) , an % increase since 2014 | ||
---- | |||
'''Design''' - As for the initial stage of this project, the scope did not require any major changes to the engine design. We implemented a DOM method to handle appropriate attributes in the microdata API. | '''Design''' - As for the initial stage of this project, the scope did not require any major changes to the engine design. We implemented a DOM method to handle appropriate attributes in the microdata API. | ||
---- | |||
'''Configuration''' - The preference [Pref="dom.microdata.testing.enabled"] was added to toggle the experimental microdata methods during development. | '''Configuration''' - The preference [Pref="dom.microdata.testing.enabled"] was added to toggle the experimental microdata methods during development. | ||
---- | |||
'''Dependency Handling''' - | '''Dependency Handling''' - | ||
'''Html5ever''' - HTML attribute names are fetched in Servo from a lookup file in the html5ever module. The html5ever module was augmented with the 'itemprop' and 'itemtype' attributes for use in Servo. | '''Html5ever''' - HTML attribute names are fetched in Servo from a lookup file in the html5ever module. The html5ever module was augmented with the 'itemprop' and 'itemtype' attributes for use in Servo. |
Revision as of 08:31, 27 October 2017
Scope - The scope of this project is to implement initial support for Microdata API specification by allowing the Servo engine to read Microdata API tags from web pages and interpret them in the DOM. This should lay a groundwork for future improvements to implement features to created vCard and JSON data from Microdata on the ServoShell.
The Microdata HTML specification allows web data to be enriched in that it allows machines to learn more about the data in a webpage. A typical example is shown below
Some popular websites like - use the Microdata.
This specification consists of the following html attributes. Out of which ‘itemscope’ and ‘itemprop’ are currently in scope.
For more information about the specification, please refer - The number of websites that use Microdata is growing; currently about 13% of websites use Microdata (statistics courtesy Alexa) , an % increase since 2014
----
Design - As for the initial stage of this project, the scope did not require any major changes to the engine design. We implemented a DOM method to handle appropriate attributes in the microdata API.
Configuration - The preference [Pref="dom.microdata.testing.enabled"] was added to toggle the experimental microdata methods during development.
Dependency Handling - Html5ever - HTML attribute names are fetched in Servo from a lookup file in the html5ever module. The html5ever module was augmented with the 'itemprop' and 'itemtype' attributes for use in Servo.
Implementation - The implementation involved updates to the Web Interface Definition Language (webidl) files and its Rust implementation.
parse_plain_attributes ->
propertyNames ->
The method
HTMLElement.webidl ->
Htmlelement.rs ->