Example #1
0
 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);
         }
     }
 }
Example #2
0
        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);
        }