issues: Difference between revisions
m (Correcting Page Layout Errors) |
m (Further minor corrections) |
||
Line 25: | Line 25: | ||
* repeating the markup will increase page size | * repeating the markup will increase page size | ||
* it will become more difficult to maintain/change the page | * it will become more difficult to maintain/change the page | ||
'''Solution''' | '''Solution''' | ||
Line 30: | Line 31: | ||
** e.g. in the page header, or | ** e.g. in the page header, or | ||
** in a separate file (see later) | ** in a separate file (see later) | ||
* define '''abbreviations | * define '''abbreviations''' to those classes | ||
** use actually only the abbrevioations inside the web page, instead of the '''whole paragraph''' of markup | ** use actually only the abbrevioations inside the web page, instead of the '''whole paragraph''' of markup | ||
Line 47: | Line 48: | ||
*** download only the relevant class (NO need to actually download the whole page) | *** download only the relevant class (NO need to actually download the whole page) | ||
*** '''EXTEND html protocol to be able to download ''web-file/class-defined-inside-file'' '''without beeing necessary to download the whole file | *** '''EXTEND html protocol to be able to download ''web-file/class-defined-inside-file'' '''without beeing necessary to download the whole file | ||
=== Requirements === | === Requirements === | ||
Line 52: | Line 54: | ||
New Tags: | New Tags: | ||
* '''<struct> ... </struct>''': like the C/C++ struct, will define the microformats structure | * '''<struct> ... </struct>''': like the C/C++ struct, will define the microformats structure | ||
* '''<v> ... </v>''': will define the variable | * '''<v> ... </v>''': this will define the variable inside the ''struct'' that should be replaced | ||
* '''<v ... />''': similarly to | * '''<v ... />''': similarly to above, but this will NOT be displayed by the browser | ||
** '''<v>''' is a shorthand for '''var''', to further reduce file size | ** '''<v>''' is a shorthand for '''var''', to further reduce file size | ||
Line 108: | Line 110: | ||
</nowiki></pre> | </nowiki></pre> | ||
IF, one variable should NOT be displayed by the browser, we would use < | |||
IF, one variable should NOT be displayed by the browser, we would use <v val="..." /> instead (the ''val='' could be omitted), e.g.: | |||
<pre><nowiki> | <pre><nowiki> | ||
<div class="geo"> | <div class="geo"> | ||
Line 117: | Line 120: | ||
Would become: | Would become: | ||
* the microformats definition page | * inside the microformats definition page write: | ||
<pre><nowiki> | <pre><nowiki> | ||
MyGeoStructure{ | MyGeoStructure{ | ||
Line 127: | Line 130: | ||
</nowiki></pre> | </nowiki></pre> | ||
* the web page | * the code inside the web page: | ||
<pre><nowiki> | <pre><nowiki> | ||
<struct class="MyGeoStructure"> | <struct class="MyGeoStructure"> | ||
Line 136: | Line 139: | ||
- discussion opened by [[discoleo|Leonard Mada]] |
Revision as of 11:53, 23 November 2006
Issues which apply to more than one microforamt.
Bloated Format
The Problem
Unfortunately, current microformats implementation consume a vast amount of space. The complexity will increase even more, when wanting to solve/add more complex issues. A direct consequence of this is a bloated format:
- some of the markup is really bloated
- instead of a number, we end sometimes with a whole new paragraph of markup
- however, in order to be complete, the markup might need to be so
- nevertheless, having a page with 1000 data points will be a horror scenario
Therefore, I proposed to open this new brainstorming session/page on how to efficiently implement the microformats in web pages.
Ideas/ Solutions
If we think a little bit back about css, one of the main reasons of its development was:
- to separate content from style
- page code becomes more easy to understand
- and to maintain
- and often the size shrinks significantly
We must learn this lesson when dealing with microformats. Specifically, the following issues are important:
- extensive microformat markup inside the page code will significantly reduce the readability of the code
- repeating the markup will increase page size
- it will become more difficult to maintain/change the page
Solution
- define microformat classes
- e.g. in the page header, or
- in a separate file (see later)
- define abbreviations to those classes
- use actually only the abbrevioations inside the web page, instead of the whole paragraph of markup
- define the microformat classes inside a separate file (similarly to the css)
- this file needs NOT to be downloaded automatically
- you do NOT need it for displaying the data
- it is only needed when wanting to import the data somewhere
- most viewers, however, only view the data
- let the browser automatically download this file, only IF:
- there is enough bandwidth
- the user wants to copy that data
- the user wants to explicitly save the whole page
- when the user wants to copy an item
- the web browser should acces that microformats additional page and
- download only the relevant class (NO need to actually download the whole page)
- EXTEND html protocol to be able to download web-file/class-defined-inside-file without beeing necessary to download the whole file
- this file needs NOT to be downloaded automatically
Requirements
New Tags:
- <struct> ... </struct>: like the C/C++ struct, will define the microformats structure
- <v> ... </v>: this will define the variable inside the struct that should be replaced
- <v ... />: similarly to above, but this will NOT be displayed by the browser
- <v> is a shorthand for var, to further reduce file size
Examples
Lets take this code:
<div class="hcite"> <div class="book"> <span class="fn">Book Title</span> <div class="chapter"> <span class="fn">Chapter Title</span> </div> </div> </div>
We would define this in the header like this:
<struct> MyName{ <div class="hcite"> <div class="book"> <span class="fn"><v /></span> <div class="chapter"> <span class="fn"><v /></span> </div> </div> </div> } </struct>
or in a separate microformats file (NO struct needed):
MyName{ <div class="hcite"> <div class="book"> <span class="fn"><v /></span> <div class="chapter"> <span class="fn"><v /></span> </div> </div> </div> }
Inside the web page we use:
<struct class="MyName"> <v>1st variable</v> <v>2nd variable</v> </struct>
IF, one variable should NOT be displayed by the browser, we would use <v val="..." /> instead (the val= could be omitted), e.g.:
<div class="geo"> <abbr class="latitude" title="37.408183">N 37° 24.491</abbr> <abbr class="longitude" title="-122.13855">W 122° 08.313</abbr> </div>
Would become:
- inside the microformats definition page write:
MyGeoStructure{ <div class="geo"> <abbr class="latitude" title=v><v /></abbr> <abbr class="longitude" title=v><v /></abbr> </div> }
- the code inside the web page:
<struct class="MyGeoStructure"> <v "37.408183" /><v>N 37° 24.491</v> <v "-122.13855" /><v>W 122° 08.313</v> </struct>
- discussion opened by Leonard Mada