コード例 #1
0
        private static string RenderReferenceList(IReferenceStyle referenceStyle, ReferenceListTag referenceList,
                                                  IReadOnlyList <ReferenceTag> sortedReferences, string contentAfter)
        {
            var renderedReferenceList = referenceStyle.RenderReferenceList(referenceList, sortedReferences);

            contentAfter = contentAfter.Replace(referenceList.RawHtml, renderedReferenceList);
            return(contentAfter);
        }
コード例 #2
0
        public void WhenReferenceListTagIsEmpty_AtrtibutesAreNull()
        {
            // Arrange / Act
            var tag = new ReferenceListTag("<reference-list />");

            // Assert
            Assert.Equal("<reference-list />", tag.RawHtml);
            Assert.Null(tag.HeaderText);
            Assert.Null(tag.HeaderWrapper);
            Assert.Null(tag.Id);
        }
コード例 #3
0
        public void AttributeValuesAreParsedCorrectly_IfTagIsMultiline()
        {
            // Arrange / Act
            var tag = new ReferenceListTag(@"<reference-list id='123'
                                                             header='Bibliography'
                                                             header-wrapper='h2' />");


            // Assert
            Assert.Equal("Bibliography", tag.HeaderText);
            Assert.Equal("h2", tag.HeaderWrapper);
            Assert.Equal("123", tag.Id);
        }
コード例 #4
0
        public string RenderReferenceList([NotNull] ReferenceListTag referenceList,
                                          [NotNull] IReadOnlyList <ReferenceTag> sortedReferences)
        {
            var referenceListMarkup = new StringBuilder();

            // typically h1 is article's title in a well-structured document, so h2 was chosen as default
            var headerWrapperTag = referenceList.HeaderWrapper ?? "h2";
            // "(...) Use “Reference list” or “Literature list” as the heading." https://innsida.ntnu.no/wiki/-/wiki/English/Using+the+Harvard+reference+style
            var headerText = referenceList.HeaderText ?? "Reference List";

            referenceListMarkup.AppendLine(
                $@"<{headerWrapperTag} id='reference-list' class='reference-list'>{headerText}</{headerWrapperTag}>");
            referenceListMarkup.AppendLine($@"<ol id='reference-list-content'>");
            foreach (var reference in sortedReferences)
            {
                var renderedReference = RenderReferenceListItem(reference);
                referenceListMarkup.AppendLine(renderedReference);
            }
            referenceListMarkup.AppendLine($@"</ol>");

            var renderedReferenceList = referenceListMarkup.ToString();

            return(renderedReferenceList);
        }