code: function (htmlUrl) {
      var htmlState = htmlUrl.split(/\\|\//);
      var catalog = params.catalog;
      if (htmlState.length > 1) {
          catalog = htmlState[htmlState.length - 2]; //倒数第二个值是catalog
      }
      var htmlName = htmlState[htmlState.length - 1];
      getHtmlIdThen(htmlUrl, function (htmlid) {
          redirectTo(params.url.server + params.url.htmlfileserver, false);//跳转到新增或修改html文件的form表单页面
          casper.wait(1, function () {
              casper.evaluate(function (server) {
                  document.forms[0].target = "_blank";
                  document.forms[0].action = server;
              }, (htmlid !== null) ? params.url.htmlfileupdate : params.url.htmlfileadd);//简单判断，不是null，就是有值，这时候，执行覆盖操作
          });
          casper.wait(1, function () {
              if (params.htmlSafeAdd && htmlid !== null) { //安全模式下，如果发现已存在，不能更新
                  this.echo('page #yellow{' + htmlUrl + '.htm} already exit, please check.');
                  return;
              }
              var type = '0'; //是html的时候是0. 含有 xml 开头的时候是xslt的类型 是 1
              if (/^<\?xml.*\?>/.test(params.__htmls[htmlUrl])) {
                  type = '1';
              }
              casper.fill('[name=_form]', {
                  id: (htmlid !== null) ? htmlid : '',
                  name: htmlName,
                  jump: 1,
                  async: 1,
                  file: htmlName + '.htm',
                  type: type,
                  catalog: catalog,
                  topic: params.topic,
                  site: params.channelId,
                  fpath: '',
                  root: 'main',
                  content: params.__htmls[htmlUrl]
              }, true);
              this.echo('page #yellow{' + htmlUrl + '.htm} ' + ((htmlid !== null) ? 'updated' : 'created') + '.');
          });
      });
  }
docs: 添加或修改html文件 htmlUrl。。。
  @param htmlUrl