我一直在滾動我所有的腳本和模板在一個大的.js文件,現在幾個項目。我使用基於java的構建工具ant來連接和管理我的js的各種處理腳本。
將大型模板存儲在javascript變量中的最大問題是javascript缺少多行字符串。我處理這個寫有蟒蛇般的三引號語法我的文件:
var templateVariable = '''
<div>
<div></div>
</div>
'''
我然後運行這個自定義語法JavaScript文件雖然包含下面的python腳本,它把它在法律的javascript:
#!/usr/bin/env python
# encoding: utf-8
"""
untitled.py
Created by Morgan Packard on 2009-08-24.
Copyright (c) 2009 __MyCompanyName__. All rights reserved.
"""
import sys
import os
def main():
f = open(sys.argv[1], 'r')
contents = f.read()
f.close
split = contents.split("'''")
print "split length: " + str(len(split))
processed = ""
for i in range(0, len(split)):
chunk = split[i]
if i % 2 == 1:
processedChunk = ""
for i,line in enumerate(chunk.split("\n")):
if i != 0:
processedChunk = processedChunk + "+ "
processedChunk = processedChunk + "\"" + line.strip().replace("\"", "\\\"").replace('\'', '\\\'') + "\"" + "\n"
chunk = processedChunk
processed = processed + chunk
f = open(sys.argv[1], 'w')
f.write(processed)
f.close()
if __name__ == '__main__':
main()
以這種方式工作,我可以代碼更多或更少的純HTML模板,並將它們部署,與應用程序代碼一起,一個單一的.js文件裏面。
https://github.com/leshill/handlebars_assets –