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); }
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); }
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); }
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); }