Exemplo n.º 1
0
        public void LoadTemplates(params Assembly[] assemblies)
        {
            var pattern = new Regex(@"^.*\.Templates\.(.+)\.hbs$", RegexOptions.IgnoreCase);

            foreach (var assembly in assemblies)
            {
                foreach (var resourceName in assembly.GetManifestResourceNames())
                {
                    var match = pattern.Match(resourceName);

                    if (!match.Success)
                    {
                        continue;
                    }

                    var contents = default(string);

                    using (var stream = assembly.GetManifestResourceStream(resourceName))
                        using (var reader = new StreamReader(stream, Encoding.UTF8))
                        {
                            contents = reader.ReadToEnd();
                        }

                    var templateName = match.Groups[1].Value.Replace('.', '/');
                    var template     = new Template(templateName, this.Instance, TemplateSource.CreateForText(contents));

                    this.RegisterTemplate(template, true);
                }
            }
        }
Exemplo n.º 2
0
        public void LoadTemplates(Assembly assembly, string templatePath, string templateNamePrefix)
        {
            var pattern = new Regex($@"^{Regex.Escape(templatePath)}\.(.+)\.hbs$", RegexOptions.IgnoreCase);

            foreach (var resourceName in assembly.GetManifestResourceNames())
            {
                var match = pattern.Match(resourceName);

                if (!match.Success)
                {
                    continue;
                }

                var contents = default(string);

                using (var stream = assembly.GetManifestResourceStream(resourceName))
                    using (var reader = new StreamReader(stream, Encoding.UTF8))
                    {
                        contents = reader.ReadToEnd();
                    }

                var templateName = templateNamePrefix + "/" + match.Groups[1].Value.Replace('.', '/');
                var template     = new Template(templateName, Instance, TemplateSource.CreateForText(contents));

                RegisterTemplate(template, true);
            }
        }
Exemplo n.º 3
0
        public void LoadTemplates(params string[] folders)
        {
            foreach (var folder in folders)
            {
                foreach (var file in Directory.EnumerateFiles(folder, "*.hbs", SearchOption.AllDirectories))
                {
                    var templateDir  = PathUtils.GetRelativePath(folder, Path.GetDirectoryName(file)).Replace("\\", "/");
                    var templateName = Path.GetFileNameWithoutExtension(file);

                    if (!string.IsNullOrWhiteSpace(templateDir))
                    {
                        templateName = templateDir + "/" + templateName;
                    }

                    var template = new Template(templateName, this.Instance, TemplateSource.CreateForFile(file));

                    this.RegisterTemplate(template, true);
                }
            }
        }
Exemplo n.º 4
0
        public void AddTemplate(string name, string templateText, bool overrideExisting = false)
        {
            var template = new Template(name, this.Instance, TemplateSource.CreateForText(templateText));

            this.RegisterTemplate(template, overrideExisting);
        }
Exemplo n.º 5
0
 public Template(string name, IHandlebars handlebars, TemplateSource source)
 {
     this.Name        = name;
     this._handlebars = handlebars;
     this.Source      = source;
 }
Exemplo n.º 6
0
 public Template(string name, IHandlebars handlebars, TemplateSource source)
 {
     Name        = name;
     _handlebars = handlebars;
     Source      = source;
 }