/// <summary>
        /// Writes the header for the code model member
        /// </summary>
        /// <remarks>Writes source-only packages list if available</remarks>
        /// <param name="member">Member being documented</param>
        /// <param name="markup">Markup provider</param>
        /// <returns>String to be added to the header text builder</returns>
        public string WritePageHeader(Member member, IMarkupProvider markup)
        {
            SourceOnlyPackagesByMember.TryGetValue(member, out var packages);
            if (packages == null || packages.Count < 1)
            {
                return(string.Empty);
            }

            return(markup.LineBreak() + "Source-only packages: " + string.Join(", ", packages.Select(p => Link(p.PackageId, p, markup))));
        }
        /// <summary>
        /// Writes the body fro the code model member
        /// </summary>
        /// <remarks>This method is used as a sample only. It's not called as the <see cref="PriorityPageBody"/> is zero</remarks>
        /// <param name="member">Member being documented</param>
        /// <param name="markup">Markup provider</param>
        /// <returns>Async task</returns>
        public async Task WritePageBodyAsync(Member member, IMarkupProvider markup)
        {
            SourceOnlyPackagesByMember.TryGetValue(member, out var packages);
            if (packages == null || packages.Count < 1)
            {
                return;
            }

            await markup.WriteH3Async("Source-only packages");

            await markup.WriteParaAsync(new Txt()
                                        .AddEach(p => $"{p.PackageId} - {p.PackageDescription}", packages, markup.LineBreak()));
        }