blob: 238aa74ef8c320581319a039872e021531930121 [file] [log] [blame]
Dave Borowitz9de65952012-08-13 16:09:45 -07001// Copyright 2012 Google Inc. All Rights Reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package com.google.gitiles;
16
17import com.google.common.base.Function;
Dave Borowitz987988a2014-03-19 09:29:13 -070018import com.google.common.collect.ImmutableList;
Dave Borowitz9de65952012-08-13 16:09:45 -070019import com.google.common.collect.ImmutableMap;
20import com.google.common.io.Resources;
21import com.google.template.soy.SoyFileSet;
22import com.google.template.soy.tofu.SoyTofu;
23
24import java.net.URL;
25import java.util.Map;
26
27/** Renderer that precompiles Soy and uses static precompiled CSS. */
28public class DefaultRenderer extends Renderer {
29 private final SoyTofu tofu;
30
31 DefaultRenderer() {
Han-Wen Nienhuysc0200f62016-05-02 17:34:51 +020032 this("", ImmutableList.<URL>of(), "");
Dave Borowitz9de65952012-08-13 16:09:45 -070033 }
34
Dave Borowitz76bbefd2014-03-11 16:57:45 -070035 public DefaultRenderer(String staticPrefix, Iterable<URL> customTemplates, String siteTitle) {
Han-Wen Nienhuysc0200f62016-05-02 17:34:51 +020036 this(ImmutableMap.<String, String>of(), staticPrefix, customTemplates, siteTitle);
Dave Borowitz9de65952012-08-13 16:09:45 -070037 }
38
Han-Wen Nienhuysc0200f62016-05-02 17:34:51 +020039 public DefaultRenderer(
40 Map<String, String> globals,
41 String staticPrefix,
42 Iterable<URL> customTemplates,
43 String siteTitle) {
Dave Borowitz9de65952012-08-13 16:09:45 -070044 super(
45 new Function<String, URL>() {
46 @Override
47 public URL apply(String name) {
48 return Resources.getResource(Renderer.class, "templates/" + name);
49 }
50 },
Han-Wen Nienhuysc0200f62016-05-02 17:34:51 +020051 globals,
52 staticPrefix,
53 customTemplates,
54 siteTitle);
55 SoyFileSet.Builder builder = SoyFileSet.builder().setCompileTimeGlobals(this.globals);
Shawn Pearcea9b99a12015-02-10 15:35:11 -080056 for (URL template : templates.values()) {
Dave Borowitz9de65952012-08-13 16:09:45 -070057 builder.add(template);
58 }
59 tofu = builder.build().compileToTofu();
60 }
61
62 @Override
63 protected SoyTofu getTofu() {
64 return tofu;
65 }
66}