コード例 #1
0
        public IEnumerable <ContribDocument> Run()
        {
            var contribEntries =
                zingzeudata.ZingzeuData.Parser.ParseContrib.GetContribEntries(contribPath);
            var results = new List <ContribDocument>();

            for (var i = 0; i < contribEntries.Count; ++i)
            {
                var entry = contribEntries[i];
                var tmp   = new ContribDocument
                {
                    Hanzi                 = entry.Hanzi.Replace("*", ""),
                    YngpingUnderlying     = entry.PronUnderlying,
                    YngpingSandhi         = entry.PronSandhi,
                    ExplanationRaw        = entry.ExplanationRaw,
                    ExplanationStructured = SafeParseExplanation(entry.ExplanationRaw),
                    Contributors          = { entry.Contributors }
                };
                if (string.IsNullOrEmpty(entry.ZingzeuId))
                {
                    tmp.RowNumber = i + 1;
                }
                else
                {
                    tmp.ZingzeuId = entry.ZingzeuId;
                }
                results.Add(tmp);
            }
            return(results);
        }
コード例 #2
0
        public RichTextNode ToRichTextNode(ContribDocument doc)
        {
            var output = new RichTextNode()
            {
                VerticalContainer = new RichTextNode.Types.VerticalContainerNode()
                {
                    Children =
                    {
                        SectionHeader(doc.Hanzi, RenderSourcePronunciations(doc.YngpingUnderlying, doc.YngpingSandhi)),
                    }
                }
            };

            if (doc.ExplanationStructured != null)
            {
                output.VerticalContainer.Children.Add(explanationRenderer.ToRichTextNode(doc.ExplanationStructured, doc.Hanzi));
            }
            else
            {
                output.VerticalContainer.Children.Add(SimpleText(zc.tH(doc.ExplanationRaw)));
            }
            output.VerticalContainer.Children.Add(
                Source(zc.tM("此释义来自网友贡献。 贡献者: " + string.Join(",", doc.Contributors)))
                );
            return(output);
        }