Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: tools/grit/grit/format/html_inline.py

Issue 2835009: Split options page code/html into its own set of files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/options/preferences.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Flattens a HTML file by inlining its external resources. 6 """Flattens a HTML file by inlining its external resources.
7 7
8 This is a small script that takes a HTML file, looks for src attributes 8 This is a small script that takes a HTML file, looks for src attributes
9 and inlines the specified file, producing one HTML file with no external 9 and inlines the specified file, producing one HTML file with no external
10 dependencies. 10 dependencies.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 filename = filename.replace('%DISTRIBUTION%', distribution) 100 filename = filename.replace('%DISTRIBUTION%', distribution)
101 return os.path.join(input_filepath, filename) 101 return os.path.join(input_filepath, filename)
102 102
103 def InlineFileContents(src_match, pattern): 103 def InlineFileContents(src_match, pattern):
104 """Helper function to inline external script and css files""" 104 """Helper function to inline external script and css files"""
105 filepath = GetFilepath(src_match) 105 filepath = GetFilepath(src_match)
106 if filepath is None: 106 if filepath is None:
107 return src_match.group(0) 107 return src_match.group(0)
108 return pattern % ReadFile(filepath) 108 return pattern % ReadFile(filepath)
109 109
110 def InlineIncludeFiles(src_match):
111 """Helper function to inline external script files"""
112 return InlineFileContents(src_match, '%s')
113
110 def InlineScript(src_match): 114 def InlineScript(src_match):
111 """Helper function to inline external script files""" 115 """Helper function to inline external script files"""
112 return InlineFileContents(src_match, '<script>%s</script>') 116 return InlineFileContents(src_match, '<script>%s</script>')
113 117
114 def InlineCssText(text, css_filepath): 118 def InlineCssText(text, css_filepath):
115 """Helper function that inlines external resources in CSS text""" 119 """Helper function that inlines external resources in CSS text"""
116 filepath = os.path.dirname(css_filepath) 120 filepath = os.path.dirname(css_filepath)
117 return InlineCssBackgroundImages(text, filepath) 121 return InlineCssBackgroundImages(text, filepath)
118 122
119 def InlineCssFile(src_match): 123 def InlineCssFile(src_match):
(...skipping 25 matching lines...) Expand all
145 # references gets inlined in the css and js 149 # references gets inlined in the css and js
146 flat_text = re.sub('<script .*?src="(?P<filename>[^"\']*)".*?></script>', 150 flat_text = re.sub('<script .*?src="(?P<filename>[^"\']*)".*?></script>',
147 InlineScript, 151 InlineScript,
148 ReadFile(input_filename)) 152 ReadFile(input_filename))
149 153
150 flat_text = re.sub( 154 flat_text = re.sub(
151 '<link rel="stylesheet".+?href="(?P<filename>[^"\']*)".*?>', 155 '<link rel="stylesheet".+?href="(?P<filename>[^"\']*)".*?>',
152 InlineCssFile, 156 InlineCssFile,
153 flat_text) 157 flat_text)
154 158
159 flat_text = re.sub(
160 '<!--\s*include\s+file="(?P<filename>[^"\']*)".*-->',
161 InlineIncludeFiles,
162 flat_text)
163
155 # TODO(glen): Make this regex not match src="" text that is not inside a tag 164 # TODO(glen): Make this regex not match src="" text that is not inside a tag
156 flat_text = re.sub('src="(?P<filename>[^"\']*)"', 165 flat_text = re.sub('src="(?P<filename>[^"\']*)"',
157 SrcReplace, 166 SrcReplace,
158 flat_text) 167 flat_text)
159 168
160 # TODO(arv): Only do this inside <style> tags. 169 # TODO(arv): Only do this inside <style> tags.
161 flat_text = InlineCssBackgroundImages(flat_text) 170 flat_text = InlineCssBackgroundImages(flat_text)
162 171
163 flat_text = re.sub('<link rel="icon".+?href="(?P<filename>[^"\']*)"', 172 flat_text = re.sub('<link rel="icon".+?href="(?P<filename>[^"\']*)"',
164 SrcReplace, 173 SrcReplace,
165 flat_text) 174 flat_text)
166 175
167 out_file = open(output_filename, 'wb') 176 out_file = open(output_filename, 'wb')
168 out_file.writelines(flat_text) 177 out_file.writelines(flat_text)
169 out_file.close() 178 out_file.close()
170 179
171 def main(): 180 def main():
172 if len(sys.argv) <= 2: 181 if len(sys.argv) <= 2:
173 print "Flattens a HTML file by inlining its external resources.\n" 182 print "Flattens a HTML file by inlining its external resources.\n"
174 print "html_inline.py inputfile outputfile" 183 print "html_inline.py inputfile outputfile"
175 else: 184 else:
176 InlineFile(sys.argv[1], sys.argv[2]) 185 InlineFile(sys.argv[1], sys.argv[2])
177 186
178 if __name__ == '__main__': 187 if __name__ == '__main__':
179 main() 188 main()
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/preferences.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698