diff --git a/docs/content/fsdocs-default.css b/docs/content/fsdocs-default.css index e2063f56..dc2496f0 100644 --- a/docs/content/fsdocs-default.css +++ b/docs/content/fsdocs-default.css @@ -1046,15 +1046,10 @@ span[onmouseout] { .fsdocs-entity-xmldoc { > div { display: flex; - flex-direction: row-reverse; - justify-content: flex-start; + flex-direction: row; + justify-content: space-between; align-items: flex-start; - & p.fsdocs-summary { - margin: 0; - flex-grow: 1; - } - & pre { margin-bottom: var(--spacing-200); padding: var(--spacing-50); @@ -1064,18 +1059,41 @@ span[onmouseout] { } } + .fsdocs-summary-contents { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + } + + .fsdocs-member-xmldoc-column { + width: 100%; + display: flex; + flex-direction: column; + justify-content: flex-start; + } + + .icon-button-row { + display: flex; + flex-direction: row; + justify-content: flex-end; + align-items: flex-start; + height: calc(-1 * var(--spacing-200)); + } + .fsdocs-member-xmldoc { & summary { display: list-item; counter-increment: list-item 0; list-style: disclosure-closed outside; cursor: pointer; + width: calc(100% - var(--spacing-300)); margin-left: var(--spacing-300); > .fsdocs-summary { display: flex; - flex-direction: row-reverse; - justify-content: flex-start; + flex-direction: row; + justify-content: space-between; align-items: flex-start; & p.fsdocs-summary { @@ -1112,6 +1130,13 @@ span[onmouseout] { .fsdocs-return-name, .fsdocs-param-name { font-weight: 500; } + + > div.fsdocs-summary { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; + } } } diff --git a/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs b/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs index 5190acaf..c2834eb0 100644 --- a/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs +++ b/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs @@ -18,7 +18,7 @@ let fsdocsSummary (x: ApiDocHtml) = if x.HtmlText.StartsWith("
", StringComparison.Ordinal) then embed x else - p [ Class "fsdocs-summary" ] [ embed x ] + div [ Class "fsdocs-summary-contents" ] [ p [ Class "fsdocs-summary" ] [ embed x ] ] type HtmlRender(model: ApiDocModel, ?menuTemplateFolder: string) = let root = model.Root @@ -182,10 +182,12 @@ type HtmlRender(model: ApiDocModel, ?menuTemplateFolder: string) = let smry = div [ Class "fsdocs-summary" ] [ - yield! copyXmlSigIconForSymbolMarkdown m.Symbol - yield! copyXmlSigIconForSymbol m.Symbol - yield! sourceLink m.SourceLocation fsdocsSummary m.Comment.Summary + div [ Class "icon-button-row" ] [ + yield! sourceLink m.SourceLocation + yield! copyXmlSigIconForSymbol m.Symbol + yield! copyXmlSigIconForSymbolMarkdown m.Symbol + ] ] let dtls = @@ -272,7 +274,10 @@ type HtmlRender(model: ApiDocModel, ?menuTemplateFolder: string) = if List.isEmpty dtls then smry elif String.IsNullOrWhiteSpace(m.Comment.Summary.HtmlText) then - yield! dtls + div [ Class "fsdocs-member-xmldoc-column" ] [ + div [ Class "icon-button-row" ] (sourceLink m.SourceLocation) + yield! dtls + ] else details [] ((summary [] [ smry ]) :: dtls) ] @@ -325,10 +330,12 @@ type HtmlRender(model: ApiDocModel, ?menuTemplateFolder: string) = ] td [ Class "fsdocs-entity-xmldoc" ] [ div [] [ - yield! copyXmlSigIconForSymbolMarkdown e.Symbol - yield! copyXmlSigIconForSymbol e.Symbol - yield! sourceLink e.SourceLocation fsdocsSummary e.Comment.Summary + div [ Class "icon-button-row" ] [ + yield! sourceLink e.SourceLocation + yield! copyXmlSigIconForSymbol e.Symbol + yield! copyXmlSigIconForSymbolMarkdown e.Symbol + ] ] ] ]