Line 9: |
Line 9: |
| === Status === | | === Status === |
| | | |
− | Karma is a sub-project of Sugar Labs that is under active development as a part of a [[Karma#GSoC_Project| Google Summer of Code project]]. The latest examples can be seen at [http://karma.sugarlabs.org|http://karma.sugarlabs.org]. You can also check out the [http://karmaproject.wordpress.com Karma Project blog] for updates. | + | Karma is a sub-project of Sugar Labs that is under active development as a part of a [[Karma#GSoC_Project| Google Summer of Code project]]. The latest examples can be seen at [http://karma.sugarlabs.org http://karma.sugarlabs.org]. You can also check out the [http://karmaproject.wordpress.com Karma Project blog] for updates. |
| | | |
| | | |
Line 34: |
Line 34: |
| === Design Philosophy === | | === Design Philosophy === |
| | | |
− | A Karma lesson is composed of a valid xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS without having to understand the JavaScript code. | + | A Karma lesson is composed of a valid html5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS or you could translate the activity, without having to understand the JavaScript code. |
| | | |
| === Technical Architecture === | | === Technical Architecture === |
| | | |
| * Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. | | * Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. |
− | * Primary Programming language - Javascript (?version?) Karma depends heavily the javascript library jQuery, version 1.3. | + | * Primary Programming language - Javascript ([https://developer.mozilla.org/En/JavaScript 1.8.1]) Karma depends heavily the javascript library jQuery, version 1.3. |
| * i18n -- Pervasive internationalization is a critical part of Karma | | * i18n -- Pervasive internationalization is a critical part of Karma |
| ** Supported types of i18n | | ** Supported types of i18n |
Line 52: |
Line 52: |
| | | |
| lesson_name/ | | lesson_name/ |
− | index.html # valid xhtml5 -- markup only includes visual elements and links in other resources, no inline code or styling | + | index.html # valid html5 -- markup only includes visual elements and links in other resources, no inline code or styling |
− | css/ # css files -- all control of presentation done in CSS | + | css/ # css files -- all control of presentation done in CSS |
| karma.css # default stylesheet for Karma | | karma.css # default stylesheet for Karma |
| lesson_name.css # custom stylesheet for lesson | | lesson_name.css # custom stylesheet for lesson |
| js/ # javascript files | | js/ # javascript files |
| karma.js # common javascript functions for a Karma lesson | | karma.js # common javascript functions for a Karma lesson |
− | jquery.js, jquery.growl.js # utility functions from jquery | + | jquery.js, jquery.growl.js # utility functions from jQuery |
| lesson_name.js # javascript controlling logic for the lesson | | lesson_name.js # javascript controlling logic for the lesson |
| po/ # translation files | | po/ # translation files |
− | ne_NP.po # example translation file for US English | + | ne_NP.po # example translation file for Nepal - Nepalli |
| sp_ES.po # example translation file for traditional Spanish | | sp_ES.po # example translation file for traditional Spanish |
− |
| |
| | | |
| | | |
Line 73: |
Line 72: |
| * Working demos at http://karma.sugarlabs.org | | * Working demos at http://karma.sugarlabs.org |
| * Project Documentation kept in the Sugar Labs wiki | | * Project Documentation kept in the Sugar Labs wiki |
− | * Code naming conventions ? | + | * Code naming conventions: Based in [http://www.gnu.org/prep/standards/standards.html GNU standards] |
| * File naming conventions: lowercase letters, underscore instead of spaces (need to write more about it) | | * File naming conventions: lowercase letters, underscore instead of spaces (need to write more about it) |
| | | |