Example #1
0
    def build_and_process(self, source_html, target_html, debug=False, skip_build=False):
        self.debug = debug
        if not skip_build:
            self.build()

        source_js_files = [os.path.join(closure_path, "goog", "base.js")]
        source_js_files += [self.application_js_path, self.deps_js_path]
        HtmlPost.replaceJsFiles(source_html, target_html, self.compiled_js_path, source_js_files)
Example #2
0
  def build_and_process(self, source_html, target_html, debug = False, skip_build = False):
    if(not skip_build):
      self.deps_and_compile(debug)
    
    source_js_files = [os.path.join(self.googPath(), 'base.js')]
    source_js_files += [self.deps_js_path]

    if(self.application_js_path):
      source_js_files += [self.application_js_path]
    HtmlPost.replaceJsFiles(source_html, target_html, self.compiled_js_path, source_js_files)
 def compress(self):
   dom = minidom.parse(self.source)
   
   if(self.target_css):
     # find css
     css_elements = HtmlPost.getCSSElementsFromDom(dom)
     css_files = map(lambda e: e.getAttribute('href'), css_elements)
     for element in css_elements:
       # remove originals
       element.parentNode.removeChild(element)
   
     # concat, compress
     CssCompressor(css_files, self.target_css).compress()
   
     #add new element back into dom
     css_element = dom.createElement('link')
     css_element.setAttribute('rel', 'stylesheet')
     css_element.setAttribute('type', 'text/css')
     css_element.setAttribute('href', self.target_css)
   
   # find js
   script_elements = HtmlPost.getScriptElementsFromDom(dom)
   # remove all script references that are compiled
   for element in script_elements:
     HtmlPost.process_script_element(element)
   
   # concat, compress
   script_elements_w_src = filter(lambda e: e.hasAttribute('src'), script_elements)
   source_files = map(lambda e: e.getAttribute('src'), script_elements_w_src)
   concat(source_files, self.target_js)
   
   compiledElement = dom.createElement('script')
   compiledElement.setAttribute('src', self.target_js)
   
   head = dom.getElementsByTagName('head')[0]
   if(self.target_css):
     # append compressed css
     appendAfterLast(css_element, head, 'link')
   # append compiled js
   head.appendChild(compiledElement)
   
   # write changed file to temp file
   
   self._tmp = get_tmp_file_name(self.source)
   writeXmlSansInstructions(dom, self._tmp)
   
   with open(self._tmp,'r') as file:
     contents = map(lambda x: x.strip(), file.readlines())
   with open(self._tmp,'w') as file:
     file.writelines(contents)
   
   # compress html
   run_process_file_command(self.get_compress_args)
   HtmlPost.ensureHtmlElementsFromFile(self.target)
   remove_if_exists(self._tmp)