Exemplo n.º 1
0
        public static Generator ToHTML5(this Element self, IReadOnlyCollection<ITag> inners, Generator generator)
        {
            var tags = new Generator(generator.Indention + 1);
            inners.ForEach(x => x.ToHTML5(tags));
            var annotations = String.Concat(self.Annotations.Select(x => x.ToHTML5()));

            var isText = inners.Count == 1 && inners.Single() is Text;
            if (!inners.Any())
            {
                if (self.Name.ToLower() == "script")
                    generator.Write("<{0}{1}></{0}>", self.Name, annotations);
                else
                    generator.Write("<{0}{1} />", self.Name, annotations);
            }
            else if (isText)
            {
                generator.Write("<{0}{1}>{2}</{0}>", self.Name, annotations, tags.Generate().Trim());
            }
            else
            {
                generator.Write("<{0}{1}>{2}", self.Name, annotations, tags.Generate());
                generator.Write("</{0}>", self.Name);
            }
            return generator;
        }
Exemplo n.º 2
0
 public static Generator ToHTML5(this DocType self, Generator generator)
 {
     switch (self)
     {
         case DocType.Html5:
             generator.Write("<!DOCTYPE html>");
             break;
         default:
             throw new ArgumentOutOfRangeException("self");
     }
     return generator;
 }
Exemplo n.º 3
0
Arquivo: Tag.cs Projeto: kokudori/Y3
 public static Generator ToHTML5(this Text self, Generator generator)
 {
     generator.Write(self.Value);
     return generator;
 }
Exemplo n.º 4
0
 public static Generator ToHTML5(this Comment self, Generator generator)
 {
     generator.Write("<!-- {0} -->", self.Text);
     return generator;
 }