示例#1
0
        public void MdWithFrontMatterJson()
        {
            var di  = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "bar", null);
            var c   = @"hello
space
cowboy
";
            var m   = @"{ ""name"": ""gremlin"",
""age"": 3,
""fun"": true,
""bwh"": { b: 90, w: 58, h: 88 } }
";
            var all = "---" + Environment.NewLine + m + "---" + Environment.NewLine + c;

            var md = new Documents.Markdown(di, all, null, null, null);

            var result = md.Process();

            var mdr = result as MarkdownResult;

            Assert.IsNotNull(mdr);
            Assert.AreEqual("gremlin", ((JValue)mdr.Meta.name).Value);
            Assert.AreEqual((Int64)3, ((JValue)mdr.Meta.age).Value);
            Assert.AreEqual((Int64)88, ((JValue)mdr.Meta.bwh.h).Value);
            Assert.AreEqual(true, ((JValue)mdr.Meta.fun).Value);
            Assert.AreEqual(c, mdr.Content);
            Assert.AreEqual(Enums.FrontMatterType.Json, mdr.FrontMatterType);
        }
示例#2
0
        public void MdWithFrontMatterYaml()
        {
            var di  = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "bar", null);
            var c   = @"hello
space
cowboy
";
            var m   = @"name: gremlin
age: !!int 3
fun: !!bool true
bwh: { b: !!int 90, w: !!int 58, h: !!int 88 }
";
            var all = "---" + Environment.NewLine + m + "---" + Environment.NewLine + c;

            var md = new Documents.Markdown(di, all, null, null, null);

            var result = md.Process();

            var mdr = result as MarkdownResult;

            Assert.IsNotNull(mdr);
            Assert.AreEqual("gremlin", ((JValue)mdr.Meta.name).Value);
            Assert.AreEqual((Int64)3, ((JValue)mdr.Meta.age).Value);
            Assert.AreEqual((Int64)88, ((JValue)mdr.Meta.bwh.h).Value);
            Assert.AreEqual(true, ((JValue)mdr.Meta.fun).Value);
            Assert.AreEqual(c, mdr.Content);
            Assert.AreEqual(Enums.FrontMatterType.Yaml, mdr.FrontMatterType);
        }
示例#3
0
        public void NoFrontMatter()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"aloha";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;

            Assert.AreEqual("aloha", mdr.Content.Trim());
        }
示例#4
0
        public void NoContent()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
foo: bar
---";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;

            Assert.AreEqual(string.Empty, mdr.Content.Trim());
        }
示例#5
0
        public void DuplicatedMetaFields2()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
slugie: x
Slugie: X
---
hm
";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;
        }
示例#6
0
        public void InvalidFrontMatter()
        {
            var di = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "bar", null);
            var md = new Documents.Markdown(di,
                                            @"---
name: Ami Kawashima (川嶋 亜美)",
                                            null,
                                            null,
                                            null
                                            );

            md.Process();
        }
示例#7
0
        public void TransformationsFail2()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
foo: "" x ""
---";
            var md     = new Documents.Markdown(di, c, new Documents.Transformation.Transformation("x", @"
- from: foo
  to: $slug
  transformations:
  - epoch
"), null, null);
            var result = md.Process();
        }
示例#8
0
        public void DetectHeaderFormatAsBadYaml()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
rom lll:
xx
aaa /// // /
---
hm
";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;
        }
示例#9
0
        public void BadInternalTag()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
$nenecchi: damn
---
hm
";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;

            Assert.AreEqual(new DateTime(2016, 03, 04).Date, mdr.Date);
        }
示例#10
0
        public void MdWithoutFrontMatter()
        {
            var di = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "bar", null);
            var c  = @"hello
space
cowboy";
            var md = new Documents.Markdown(di, c, null, null, null);

            var result = md.Process();

            Assert.AreEqual("bar", result.DocumentIdentifier.DocumentId);

            var mdr = result as MarkdownResult;

            Assert.IsNotNull(mdr);
            Assert.AreEqual(c, mdr.Content);
            Assert.AreEqual(Enums.FrontMatterType.None, mdr.FrontMatterType);
        }
示例#11
0
        public void Transformations()
        {
            var di = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c  = @"---
foo: "" BAR ""
Normalize: žLUťoučký!
sort: čuník
date: 2001-12-15T02:59:43.1Z
---";
            var md = new Documents.Markdown(di, c, new Documents.Transformation.Transformation("x", @"
- from: foo
  to: foo2
  transformations:
  - trim
  - lowercase
- from: foo2
  to: foo3
  transformations:
  - uppercase
- from: normalize
  to: normalize
  transformations:
  - normalize
- from: sort
  to: sort2
  transformations:
  - search
- from: date
  to: dateAsEpoch
  transformations:
  - epoch
"), null, null);

            var     result  = md.Process();
            var     mdr     = result as MarkdownResult;
            JObject metaObj = JObject.FromObject(result.Meta);

            Assert.AreEqual(new JValue(" BAR "), metaObj["foo"]);
            Assert.AreEqual(new JValue("bar"), metaObj["foo2"]);
            Assert.AreEqual(new JValue("BAR"), metaObj["foo3"]);
            Assert.AreEqual(new JValue("zlutoucky!"), metaObj["normalize"]);
            Assert.AreEqual(new JValue("d*unj*k"), metaObj["sort2"]);
            Assert.AreEqual(new JValue(1008385183), metaObj["dateAsEpoch"]);
        }
示例#12
0
        public void NoDate()
        {
            var di  = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "bar", null);
            var c   = @"hello";
            var m   = @"{ ""name"": ""gremlin"",
""age"": 3,
""fun"": true,
""bwh"": { b: 90, w: 58, h: 88 } }
";
            var all = "---" + Environment.NewLine + m + "---" + Environment.NewLine + c;

            var md = new Documents.Markdown(di, all, null, null, null);

            var result = md.Process();

            var mdr = result as MarkdownResult;

            Assert.AreEqual(DateTime.MinValue.Date, mdr.Date);
        }
示例#13
0
        public void DateInMeta()
        {
            var di  = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c   = @"hello";
            var m   = @"{ ""name"": ""gremlin"",
""age"": 3,
""fun"": true,
""$date"": ""2011-11-23"",
""bwh"": { b: 90, w: 58, h: 88 } }
";
            var all = "---" + Environment.NewLine + m + "---" + Environment.NewLine + c;

            var md = new Documents.Markdown(di, all, null, null, null);

            var result = md.Process();

            var mdr = result as MarkdownResult;

            Assert.AreEqual(new DateTime(2011, 11, 23).Date, mdr.Date);
        }
示例#14
0
        public void MetaCamelCasing()
        {
            var di     = new DocumentIdentifierToken("x", Enums.DocumentType.Content, "foo", "2016-03-04-bar", null);
            var c      = @"---
Raw: 123
a-l-o-h-a : 345
Sakura_Nene: true
---
hm
";
            var md     = new Documents.Markdown(di, c, null, null, null);
            var result = md.Process();
            var mdr    = result as MarkdownResult;

            JObject metaObj = JObject.FromObject(result.Meta);
            Dictionary <string, object> meta = metaObj.ToObject <Dictionary <string, object> >();

            Assert.AreEqual("raw", meta.First().Key);
            Assert.AreEqual("a-l-o-h-a", meta.Skip(1).Take(1).Single().Key);
            Assert.AreEqual("sakura_Nene", meta.Skip(2).Take(1).Single().Key);
        }