freestring

    1.0.1 • Public • Published

    freestring

    自由书写string 轮子

    无意中看到了sindresorhus的multiline,觉得很实用,逻辑很简单,所以就自己加了点东西造了个轮子;除了multiline的写法外,加了一个简单的模板变量功能。

    freestring就是用于模拟ES6的template string,让书写string更自由。可以直接复制一段html保持原来的格式粘贴使用,而不需要用js拼接,还可以使用简单的模板变量。

    如果需要复杂的模板变量,那就引入ejs或者mustache吧,直接使用最简单的用法把html转成字符,再通过ejs.render渲染

    How To Use

    nodejs : npm install freestring
    browser : <script src="freestring"> or use seajs : require("freestring")

    最简单用法

    var str = freestring(function(){
        /*
               <ul class="name">
                   <li class="id1"></li>
                   <li class="id2"></li>
                   <li class="id3"></li>
               </ul>
        */
    })
    

    可以添加参数

    var str = freestring(function(){
        /*
               <ul class="name">
                   <li class="id1">${data}</li>
                   <li class="id1">${yo.hllo}</li>
                   <li class="id2">${data2.0}</li>
                   <li class="id3">${data2[1]}</li>
               </ul>
        */
    } , {data:"ss" , yo : {hllo : 'asd'}, data2:[0 , 2 , 3]});
    

    或者

    var str = freestring(function(){
        /*
             <ul class="name">
                 <li class="id1">${0}</li>
                 <li class="id2">${1}</li>
                 <li class="id3">${2}</li>
             </ul>
         */
    } , ['asd' , '123' , 12344]);
    

    在浏览器使用时,如果使用uglify压缩代码会将注释删除,导致代码失效。
    解决办法:
    1、添加@preserve,同时要在方法体里加点内容,才不会被当成空函数
    2、设置uglify的压缩参数:preserveComments:'some',即可保留@preserve的注释

    var str = freestring(function(){
        /*@preserve
             <ul class="name"></ul>
         */console.log
    } , ['asd' , '123' , 12344]);
    

    Keywords

    none

    Install

    npm i freestring

    DownloadsWeekly Downloads

    3

    Version

    1.0.1

    License

    MIT

    Last publish

    Collaborators

    • wanghx