# JWML **Repository Path**: jempson/JWML ## Basic Information - **Project Name**: JWML - **Description**: Javascript Wedget Markup Language,js部件化语言,简称JWML,采用js原生态语法,可嵌入js的标记语言,不需依赖第三方库或工具,具有轻量级、按需加载、前端控件、前端动态模板、前端绑定特性。 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-03-28 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JWML Javascript Wedget Markup Language,js部件化语言,简称JWML,采用js原生态语法,可嵌入js的标记语言,不需依赖第三方库或工具,具有轻量级、按需加载、前端控件、前端动态模板、前端绑定特性。 # Demo说明 ### 显示hello world HTML代码: ``` hello world ``` JWML代码: ``` JWML`hello world`.render(); ``` demo源文件:/demo/Hello.html ### 点击按钮打印"Is me" HTML代码: ``` ``` JWML代码: ``` JWML .input({type:"button",id:"btnJWML",value:"点击我"})() (function(){ var btnJwml = document.getElementById("btnJWML"); btnJwml.addEventListener("click", function(){ alert("Is me!"); }) }) .render(); ``` 不需要ID获取input: ``` JWML .input({type:"button",value:"点击我"})() (function(btnJwml){ //这里会计算参数数量,自动填入生成的element btnJwml.addEventListener("click", function(){ alert("Is me!"); }) }) .render(); ``` demo源文件:/demo/Script.html ### 动态模板 ``` var output = JWML.div`动态模板:`(); for(var i = 0; i < 10; i++){ if(i % 2 == 0){ output.div({style:"background:yellow"})`第${i+1}行`() } else { output.div({})`第${i+1}行`() } } output.render(); ``` demo源文件:/demo/Dynamic.html ### 绑定 ``` _.Value = "这是初始值"; //也可是这样设置初始值:_({ Value:"这是初始值" }) //定义计数器 var count = 0; JWML .input({type:"text",value:_`Value`})() .div`hello ${_`Value`} world`() .div({style:"background:yellow"})(_`Value`)() .input({type:"button",onclick:"_.Value = '计数器:' + (count++)",value:"增加计数器"})() .render(); ``` demo源文件:/demo/Binding.html ### 部件 ``` //定义一个YellowPanel部件 JWMLWidget.YellowPanel = function(input, output){ output .div({ style:"text-align:center; background:yellow;" }) (input.children) (); }; JWML //使用YellowPanel部件 .YellowPanel`hello world`() .render(); ``` demo源文件:/demo/Widget.html ### 加载外部部件 ``` // in /lib/JWML/Widget/YellowPanel.js JWMLWidget.YellowPanel = function(input, output){ output .div({ style:"text-align:center; background:yellow;" }) (input.children) (); }; // in /lib/demo/Widget-LoadFile.html //Needing to run in web server //Auto load javascript file "../lib/JWML/Widget/YellowPanel.js" JWML .YellowPanel`hello world`() .render(); ``` demo源文件:/demo/Widget-LoadFile.html ### 部件继承扩展 未实现demo,有需要demo可评论处留言 # lib文件说明 - /lib/JWML.js 无协程源码文件 - /lib/JWML.min.js 无协程打包文件 - /lib/JWML.coro.js 协程源码文件 - /lib/JWML.coro.min.js 协程打包文件 # 作者心声 - JWML项目在作者开源初衷: - - 希望更多有志向、有社会责任感、有情商的勇者,共同参与让JWML形成发光发亮的技术生态圈,大到让外国人也欣赏中国开源的力量。 - - 作者不在乎技术专利与获益问题,坚守把该项目未来所有价值成果,尽可能公平公正的分给那些为JWML努力付出的勇者。 - - 作者之所以原意分享成果,并不是有多大的无私,因为作者多得是本事 :joy: (不信的话,见下面“作者自信”章节) - - 作者想尝试下开源的力量,能否为作者获得更多的焦点,能否认识更多的有志向、有社会责任感、有情商的朋友,能否用群众的力量做点事情呢? - - 作者未来必将有很多大的作为,希望结识到更多有力量的朋友,共赴未来的计划布局。(计划见下面"社会美好计划"章节) - 融资与心血是矛盾关系,只要消除这个矛盾,融资会是一把利器。 - 经济已经繁荣的时代,大部分人处在焦虑与痛苦中,如何让人们过上美好生活是我们这一代人的使命与责任。 - 业务模式创新、人工智能、第四代住房,会是实现“美好”的几个重要组成部分。 - 在实现生活美好的进程中,思想美好才是真正的美好,也需要同时关注与建设。舆论自由不一定好,任何人都可以随便造谣,而造谣的东西特别容易让人信,而这些东西都直接的影响到人的心态。 - JWML需要得到更多人士关注与认可,需要进入码云GVP,把这些理念传达给更多人。 # 社会美好计划 1. 为JWML设计一个官方网站,做更详细的说明文档与demo,把HTML转JWML的转换器放到官网上。 2. 成立开源小组,设立初步的贡献度评估面板,要公平公正。 3. 基于JWML设计一些标准部件,包括表格、树、报表设计器、工作流设计器。。 4. 结交有志能士,共赴未来,共同研究技术,担负社会责任,共创社会美好时代。 # 作者自信 下图是作者对信息技术的全局观,其中红色部分是作者已经完成研发的部分成果(还有敬请期待 :stuck_out_tongue_closed_eyes: ): ![输入图片说明](https://gitee.com/uploads/images/2018/0328/025303_e5a9c9b2_1167317.png "信息技术按追求分类.png") # 正在创业奋斗的年轻人 - 创业需要明白很多细节,包括应该找怎样的合伙人,股权应该如何分配等问题。 - 我们看到很多成功的例子,却看不见更多失败的教训,需要寻找真相。 - 坚韧性格、追求高远、不断学习,会是人生安全感的来源。 **有疑问可在评论处提问,想交流人生哲学价值观的,欢迎私信或留言**