{"id":19197518,"url":"https://github.com/rikulo/eul","last_synced_at":"2025-02-23T05:11:43.797Z","repository":{"id":5130370,"uuid":"6296126","full_name":"rikulo/eul","owner":"rikulo","description":"[Deprecated] Rikulo EUL (Embeddable User-interface Language) is a markup language allowing developers to define user-interface in HTML 5 and XML. EUL is embeddable in Dart code or HTML pages.","archived":false,"fork":false,"pushed_at":"2013-02-20T01:43:06.000Z","size":204,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-04T10:17:49.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rikulo.org","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"urbanairship/phonegap-ua-push","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rikulo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-19T14:20:58.000Z","updated_at":"2013-11-01T18:30:06.000Z","dependencies_parsed_at":"2022-07-05T09:25:11.507Z","dependency_job_id":null,"html_url":"https://github.com/rikulo/eul","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Feul","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Feul/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Feul/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Feul/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rikulo","download_url":"https://codeload.github.com/rikulo/eul/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240271536,"owners_count":19774859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T12:17:07.889Z","updated_at":"2025-02-23T05:11:43.769Z","avatar_url":"https://github.com/rikulo.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Rikulo EUL\n\n\u003e **EUL is deprecated.** Please use [Rikulo UXL](https://github.com/rikulo/uxl) instead.\n\n[Rikulo EUL](http://rikulo.org) (Embeddable User-interface Language) is a markup language allowing developers to define user-interface in HTML 5 and XML.\n\nUnlike [Rikulo UXL](https://github.com/rikulo/uxl), which compiles the markup language to Dart, EUL is interpreted at run time and can be embedded in Dart code (as a string) or HTML pages (as a HTML fragment).\n\n* [Home](http://rikulo.org)\n* [Documentation](http://docs.rikulo.org)\n* [API Reference](http://api.rikulo.org/eul/latest/)\n* [Discussion](http://stackoverflow.com/questions/tagged/rikulo)\n* [Issues](https://github.com/rikulo/eul/issues)\n\nRikulo EUL is distributed under the Apache 2.0 License.\n\n##Install from Dart Pub Repository\n\nAdd this to your `pubspec.yaml` (or create it):\n\n    dependencies:\n      rikulo_eul:\n\nThen run the [Pub Package Manager](http://pub.dartlang.org/doc) (comes with the Dart SDK):\n\n    pub install\n\n##Install from Github for Bleeding Edge Stuff\n\nTo install stuff that is still in development, add this to your `pubspec.yam`:\n\n    dependencies:\n      rikulo_eul:\n        git: git://github.com/rikulo/eul.git\n\nFor more information, please refer to [Pub: Dependencies](http://pub.dartlang.org/doc/pubspec.html#dependencies).\n\n##Usage\n\nExample 1: Everything starts from the EULTemplate:\n\n(TextEUL.dart)\n\n    import 'dart:html';\n    import 'package:rikulo_ui/view.dart';\n    import 'package:rikulo_eul/eul.dart'; //(required) EUL classes and utilities\n    import 'package:rikulo_eul/impl.dart'; //(optional) EUL implementation\n\n    void main() {\n      final View mainView = new View()..addToDocument()\n      mainView.layout.text = \"type: linear; orient: vertical\";\n\n      //Define the template with a string\n      new EULTemplate('''\n        \u003cView layout=\"type: linear\"\u003e\n          \u003cView layout=\"type: linear; orient: vertical\"\u003e\n            \u003cCheckBox forEach=\"#{['Apple', 'Orange', 'Banana', 'Pomelo']}\" text=\"#{each}\"\u003e\u003c/CheckBox\u003e\n          \u003c/View\u003e\n          \u003cTextView class=\"list\"\u003e\n            \u003cattribute name=\"html\"\u003e\n              \u003cul\u003e\n                \u003cli\u003eThis is the first item of TextView with HTML\u003c/li\u003e\n                \u003cli style=\"font-weight: bold\"\u003eThis is the second\u003c/li\u003e\n              \u003c/ul\u003e\n              \u003col\u003e\n                \u003cli forEach=\"#{['Henri', 'Tom', 'Simon', 'Tim']}\"\u003e#{each}\u003c/li\u003e\n              \u003c/ol\u003e\n            \u003c/attribute\u003e\n          \u003c/TextView\u003e\n        \u003c/View\u003e\n      ''').create(mainView);\n    }\n\n(TextEUL.html)\n\n    \u003c!DOCTYPE html\u003e\n    \u003chtml\u003e\n      \u003chead\u003e\n        \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /\u003e\n        \u003clink rel=\"stylesheet\" type=\"text/css\" href=\"packages/rikulo_ui/resource/css/view.css\" /\u003e\n      \u003c/head\u003e\n      \u003cbody\u003e\n        \u003cstyle\u003e\n        .list {\n          border: 2px solid #886;\n          border-radius: 6px;\n        }\n        \u003c/style\u003e\n        \u003cscript type=\"application/dart\" src=\"TestEUL2.dart\"\u003e\u003c/script\u003e\n        \u003cscript src=\"packages/browser/dart.js\"\u003e\u003c/script\u003e\n      \u003c/body\u003e\n    \u003c/html\u003e\n\nExample2: Or you can choose to read the template definition from the html page.\n\n(TextEUL2.dart)\n\n    import 'dart:html';\n    import 'package:rikulo_ui/view.dart';\n    import 'package:rikulo_eul/eul.dart'; //(required) EUL classes and utilities\n    import 'package:rikulo_eul/impl.dart'; //(optional) EUL implementation\n\n    void main() {\n      final View mainView = new View()..addToDocument()\n      mainView.layout.text = \"type: linear; orient: vertical\";\n\n      //Define the template from the element node \"eul\"\n      new EULTemplate.fromNode(document.query(\"#eul\").elements[0]..remove())\n          .create(mainView);\n    }\n\n(TextEUL2.html)\n\n    \u003c!DOCTYPE html\u003e\n    \u003chtml\u003e\n      \u003chead\u003e\n        \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /\u003e\n        \u003clink rel=\"stylesheet\" type=\"text/css\" href=\"packages/rikulo_ui/resource/css/view.css\" /\u003e\n      \u003c/head\u003e\n      \u003cbody\u003e\n        \u003cstyle\u003e\n        .list {\n          border: 2px solid #886;\n          border-radius: 6px;\n        }\n        \u003c/style\u003e\n        \u003cdiv id=\"eul\" style=\"display: none\"\u003e\n          \u003cView layout=\"type: linear\"\u003e\n            \u003cView layout=\"type: linear; orient: vertical\"\u003e\n              \u003cCheckBox forEach=\"#{['Apple', 'Orange', 'Banana', 'Pomelo']}\" text=\"#{each}\"\u003e\u003c/CheckBox\u003e\n            \u003c/View\u003e\n            \u003cTextView class=\"list\"\u003e\n              \u003cattribute name=\"html\"\u003e\n                \u003cul\u003e\n                  \u003cli\u003eThis is the first item of TextView with HTML\u003c/li\u003e\n                  \u003cli style=\"font-weight: bold\"\u003eThis is the second\u003c/li\u003e\n                \u003c/ul\u003e\n                \u003col\u003e\n                  \u003cli forEach=\"#{['Henri', 'Tom', 'Simon', 'Tim']}\"\u003e#{each}\u003c/li\u003e\n                \u003c/ol\u003e\n              \u003c/attribute\u003e\n            \u003c/TextView\u003e\n          \u003c/View\u003e\n        \u003c/div\u003e\n        \u003cscript type=\"application/dart\" src=\"TestEUL2.dart\"\u003e\u003c/script\u003e\n        \u003cscript src=\"packages/browser/dart.js\"\u003e\u003c/script\u003e\n      \u003c/body\u003e\n    \u003c/html\u003e\n\n##Pros and Cons\n\n\u003e Rikulo UXL depends on mirrors heavily. For better performance and smaller footprint, it is suggested to use [Rikulo UXL](https://github.com/rikulo/uxl) instead if applicable.\n\n###Pros\n\n* The user interface can be defined easily in a similar manner to HTML pages.\n* MVC/MVP and data-binding for improving the separation of view, model and controller.\n* The content can be indexed by search engines if you embed it as HTML fragment.\n* Ready for MVVM design pattern.\n\n###Cons\n\n* It is interpreted at run time based on mirrors, so the performance is slower and the tree shaking of `dart2js` might not work as effective as expressing UI in Dart or in [UXL](https://github.com/rikulo/uxl).\n\n##Notes to Contributors\n\n###Create Addons\n\nRikulo is easy to extend. The simplest way to enhance Rikulo is to [create a new repository](https://help.github.com/articles/create-a-repo) and add your own great widgets and libraries to it.\n\n###Fork Rikulo EUL\n\nIf you'd like to contribute back to the core, you can [fork this repository](https://help.github.com/articles/fork-a-repo) and send us a pull request, when it is ready.\n\nPlease be aware that one of Rikulo's design goals is to keep the sphere of API as neat and consistency as possible. Strong enhancement always demands greater consensus.\n\nIf you are new to Git or GitHub, please read [this guide](https://help.github.com/) first.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikulo%2Feul","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frikulo%2Feul","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikulo%2Feul/lists"}