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

Side by Side Diff: chrome/common/extensions/docs/server2/content_provider.py

Issue 92143003: Docserver: Reorganise the site templates into a single site.html file which (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from HTMLParser import HTMLParser 5 from HTMLParser import HTMLParser
6 import mimetypes 6 import mimetypes
7 import logging 7 import logging
8 import os 8 import os
9 9
10 from compiled_file_system import SingleFile 10 from compiled_file_system import SingleFile
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 @SingleFile 56 @SingleFile
57 def _CompileContent(self, path, text): 57 def _CompileContent(self, path, text):
58 assert text is not None, path 58 assert text is not None, path
59 mimetype = mimetypes.guess_type(path)[0] 59 mimetype = mimetypes.guess_type(path)[0]
60 if mimetype is None: 60 if mimetype is None:
61 content = text 61 content = text
62 mimetype = 'text/plain' 62 mimetype = 'text/plain'
63 elif mimetype == 'text/html': 63 elif mimetype == 'text/html':
64 content = ToUnicode(text) 64 content = ToUnicode(text)
65 if self._supports_templates: 65 if self._supports_templates:
66 content = Handlebar(content) 66 content = Handlebar(content, name=path)
67 elif (mimetype.startswith('text/') or 67 elif (mimetype.startswith('text/') or
68 mimetype in ('application/javascript', 'application/json')): 68 mimetype in ('application/javascript', 'application/json')):
69 content = ToUnicode(text) 69 content = ToUnicode(text)
70 else: 70 else:
71 content = text 71 content = text
72 return ContentAndType(content, mimetype) 72 return ContentAndType(content, mimetype)
73 73
74 def GetContentAndType(self, path): 74 def GetContentAndType(self, path):
75 path = path.lstrip('/') 75 path = path.lstrip('/')
76 base, ext = os.path.splitext(path) 76 base, ext = os.path.splitext(path)
77 77
78 # Check for a zip file first, if zip is enabled. 78 # Check for a zip file first, if zip is enabled.
79 if self._directory_zipper and ext == '.zip': 79 if self._directory_zipper and ext == '.zip':
80 zip_future = self._directory_zipper.Zip(base) 80 zip_future = self._directory_zipper.Zip(base)
81 return Future(delegate=Gettable( 81 return Future(delegate=Gettable(
82 lambda: ContentAndType(zip_future.Get(), 'application/zip'))) 82 lambda: ContentAndType(zip_future.Get(), 'application/zip')))
83 83
84 return self._content_cache.GetFromFile(path, binary=True) 84 return self._content_cache.GetFromFile(path, binary=True)
85 85
86 def Cron(self): 86 def Cron(self):
87 # Running Refresh() on the file system is enough to pull GitHub content, 87 # Running Refresh() on the file system is enough to pull GitHub content,
88 # which is all we need for now while the full render-every-page cron step 88 # which is all we need for now while the full render-every-page cron step
89 # is in effect. 89 # is in effect.
90 # TODO(kalman): Walk over the whole filesystem and compile the content. 90 # TODO(kalman): Walk over the whole filesystem and compile the content.
91 return self.file_system.Refresh() 91 return self.file_system.Refresh()
92 92
93 def __repr__(self): 93 def __repr__(self):
94 return 'ContentProvider of <%s>' % repr(self.file_system) 94 return 'ContentProvider of <%s>' % repr(self.file_system)
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/app.yaml ('k') | chrome/common/extensions/docs/server2/cron.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698