static void Main(string[] args) { foreach (var src in args) { try { var parser = new PukiwikiParser(); using (var reader = new StreamReader(src, Encoding.UTF8)) { parser.Run(reader); } var converter = new Converter(parser); converter.Run(Path.ChangeExtension(src, ".pdf")); } catch (Exception err) { Console.WriteLine(err.Message); } } }
public void TestPukiwkiParser() { var parser = new PukiwikiParser(); var path = System.Environment.CurrentDirectory + @"\examples\example.txt"; using (var reader = new StreamReader(path, Encoding.UTF8)) { parser.Run(reader); } var v = parser.Elements; int index = 0; // サンプルテキスト Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(1, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); Assert.AreEqual(ElementType.Paragraph, v[index++].Type); // サブセクション Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(2, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); // サブ*2セクション Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(3, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); // サブ*3セクション Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(4, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); // サブ*4セクション Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(5, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); // リスト Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(1, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); Assert.AreEqual(ElementType.Section, v[index++].Type); Assert.AreEqual(ElementType.Paragraph, v[index++].Type); Assert.AreEqual(ElementType.List, v[index++].Type); Assert.AreEqual(ElementType.List, v[index++].Type); Assert.AreEqual(ElementType.List, v[index++].Type); Assert.AreEqual(ElementType.List, v[index++].Type); Assert.AreEqual(ElementType.Section, v[index++].Type); Assert.AreEqual(ElementType.Paragraph, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); Assert.AreEqual(ElementType.NumericList, v[index++].Type); // 画像 Assert.AreEqual(ElementType.Section, v[index].Type); Assert.AreEqual(1, v[index].Depth); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); Assert.AreEqual(ElementType.Image, v[index].Type); Assert.AreEqual("example.jpg", v[index].Value); ++index; Assert.AreEqual(ElementType.Paragraph, v[index++].Type); }