diff --git a/build/DownloadDocFX.ps1 b/build/DownloadDocFX.ps1 deleted file mode 100644 index 5f6c629..0000000 --- a/build/DownloadDocFX.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -[cmdletbinding()] -param([string]$Version="2.48.1",[string]$Folder) -Add-Type -AssemblyName System.IO.Compression.FileSystem -[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12 - -function DownloadDocFX([string]$version, [string]$folder) -{ - Write-Output "Using folder $folder" - $path = "$folder\v$version" - if (!(Test-Path $path)) - { - New-Item -ItemType Directory -Force -Path $path - Write-Output "Downloading DocFX v$version..." - Invoke-WebRequest -Uri "https://github.com/dotnet/docfx/releases/download/v$version/docfx.zip" -OutFile "$folder\docfx_v$version.zip" - [System.IO.Compression.ZipFile]::ExtractToDirectory("$folder\docfx_v$version.zip",$path ) - } -} -DownloadDocFX -version $Version -folder $Folder \ No newline at end of file diff --git a/build/GenerateDoc.cmd b/build/GenerateDoc.cmd deleted file mode 100644 index 882f9ed..0000000 --- a/build/GenerateDoc.cmd +++ /dev/null @@ -1,18 +0,0 @@ -@ECHO OFF - -SET DocFXVersion=2.48.1 -SET DocFxFolder=%~dp0\..\.tools\docfx - -REM Download DocFx -powershell -ExecutionPolicy ByPass -command "%~dp0/DownloadDocFX.ps1" -Version %DocFXVersion% -Folder %DocFxFolder% - -REM Merge output (not implemented) -REM %DocFxFolder%\v%DocFXVersion%\docfx.exe merge - -REM Generate OMD -dotnet tool install --tool-path .tools/omd dotMorten.OmdGenerator --version 1.2.0 -mkdir %~dp0../artifacts/docs/api -.tools\omd\generateomd /source=%~dp0../src/NmeaParser /output=%~dp0../artifacts/docs/api/omd.html /preprocessors=NETSTANDARD1_4;NETSTANDARD - -REM Build the output site (HTML) from the generated metadata and input files (uses configuration in docfx.json in this folder) -%DocFxFolder%\v%DocFXVersion%\docfx.exe %~dp0..\docs\docfx.json diff --git a/docs/BuildDoc.cmd b/docs/BuildDoc.cmd new file mode 100644 index 0000000..ce1c972 --- /dev/null +++ b/docs/BuildDoc.cmd @@ -0,0 +1,21 @@ +@ECHO OFF + +SET DocFXVersion=2.48.1 +SET DocFxFolder=%~dp0..\.tools\docfx + +REM Download DocFx + +IF NOT EXIST "%DocFxFolder%\v%DocFXVersion%\docfx.exe" ( + MKDIR "%DocFXFolder%\v%DocFXVersion%" + powershell -ExecutionPolicy ByPass -command "Invoke-WebRequest -Uri "https://github.com/dotnet/docfx/releases/download/v%DocFXVersion%/docfx.zip" -OutFile '%DocFxFolder%\docfx_v%DocFXVersion%.zip'" + powershell -ExecutionPolicy ByPass -command "Expand-Archive -LiteralPath '%DocFxFolder%\docfx_v%DocFXVersion%.zip' -DestinationPath '%DocFxFolder%\v%DocFXVersion%'" + DEL "%DocFxFolder%\docfx_v%DocFXVersion%.zip" /Q +) + +REM Generate OMD +dotnet tool install --tool-path .tools/omd dotMorten.OmdGenerator --version 1.2.0 +mkdir %~dp0../artifacts/docs/api +.tools\omd\generateomd /source=%~dp0../src/NmeaParser /output=%~dp0../artifacts/docs/api/omd.html /preprocessors=NETSTANDARD1_4;NETSTANDARD + +REM Build the output site (HTML) from the generated metadata and input files (uses configuration in docfx.json in this folder) +%DocFxFolder%\v%DocFXVersion%\docfx.exe %~dp0\docfx.json -t --serve diff --git a/docs/docfx.json b/docs/docfx.json index a729f3e..33690c4 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -127,7 +127,7 @@ "globalMetadataFiles": [], "fileMetadataFiles": [], "template": [ - "default" + "default","template_overrides" ], "postProcessors": [], "markdownEngineName": "markdig", diff --git a/docs/images/logo.png b/docs/images/logo.png index 206f699..442ef81 100644 Binary files a/docs/images/logo.png and b/docs/images/logo.png differ diff --git a/docs/template_overrides/partials/head.tmpl.partial b/docs/template_overrides/partials/head.tmpl.partial new file mode 100644 index 0000000..c05e8c1 --- /dev/null +++ b/docs/template_overrides/partials/head.tmpl.partial @@ -0,0 +1,21 @@ +{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} + + + + + {{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}} + + + + {{#_description}}{{/_description}} + + + + + + + + {{#_noindex}}{{/_noindex}} + {{#_enableSearch}}{{/_enableSearch}} + {{#_enableNewTab}}{{/_enableNewTab}} + \ No newline at end of file diff --git a/docs/template_overrides/styles/main.css b/docs/template_overrides/styles/main.css new file mode 100644 index 0000000..9174371 --- /dev/null +++ b/docs/template_overrides/styles/main.css @@ -0,0 +1,253 @@ +/* COLOR VARIABLES*/ +:root { + --header-bg-color: #0d47a1; + --header-ft-color: #fff; + --highlight-light: #5e92f3; + --highlight-dark: #003c8f; + --font-color: #34393e; + --custom-box-shadow: 0 1px 2px 0 rgba(61, 65, 68, 0.06), 0 1px 3px 1px rgba(61, 65, 68, 0.16); +} + +body { + color: var(--font-color); + font-family: "Roboto", sans-serif; + line-height: 1.5; + font-size: 16px; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + word-wrap: break-word; +} + +/* HIGHLIGHT COLOR */ + +button, +a { + color: var(--highlight-dark); + cursor: pointer; +} + +button:hover, +button:focus, +a:hover, +a:focus { + color: var(--highlight-light); + text-decoration: none; +} + +.toc .nav > li.active > a { + color: var(--highlight-dark); +} + +.toc .nav > li.active > a:hover, +.toc .nav > li.active > a:focus { + color: var(--highlight-light); +} + +.pagination > .active > a { + background-color: var(--header-bg-color); + border-color: var(--header-bg-color); +} + +.pagination > .active > a, +.pagination > .active > a:focus, +.pagination > .active > a:hover, +.pagination > .active > span, +.pagination > .active > span:focus, +.pagination > .active > span:hover { + background-color: var(--highlight-light); + border-color: var(--highlight-light); +} + +/* HEADINGS */ + +h1 { + font-weight: 600; + font-size: 32px; +} + +h2 { + font-weight: 600; + font-size: 24px; + line-height: 1.8; +} + +h3 { + font-weight: 600; + font-size: 20px; + line-height: 1.8; +} + +h5 { + font-size: 14px; + padding: 10px 0px; +} + +article h1, +article h2, +article h3, +article h4 { + margin-top: 35px; + margin-bottom: 15px; +} + +article h4 { + padding-bottom: 8px; + border-bottom: 2px solid #ddd; +} + +/* NAVBAR */ + +.navbar-brand > img { + color: var(--header-ft-color); +} + +.navbar { + border: none; + /* Both navbars use box-shadow */ + -webkit-box-shadow: var(--custom-box-shadow); + -moz-box-shadow: var(--custom-box-shadow); + box-shadow: var(--custom-box-shadow); +} + +.subnav { + border-top: 1px solid #ddd; + background-color: #fff; +} + +.navbar-inverse { + background-color: var(--header-bg-color); + z-index: 100; +} + +.navbar-inverse .navbar-nav > li > a, +.navbar-inverse .navbar-text { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid transparent; + padding-bottom: 12px; +} + +.navbar-inverse .navbar-nav > li > a:focus, +.navbar-inverse .navbar-nav > li > a:hover { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid white; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:focus, +.navbar-inverse .navbar-nav > .active > a:hover { + color: var(--header-ft-color); + background-color: var(--header-bg-color); + border-bottom: 3px solid white; +} + +.navbar-form .form-control { + border: none; + border-radius: 20px; +} + +/* SIDEBAR */ + +.toc .level1 > li { + font-weight: 400; +} + +.toc .nav > li > a { + color: var(--font-color); +} + +.sidefilter { + background-color: #fff; + border-left: none; + border-right: none; +} + +.sidefilter { + background-color: #fff; + border-left: none; + border-right: none; +} + +.toc-filter { + padding: 10px; + margin: 0; +} + +.toc-filter > input { + border: 2px solid #ddd; + border-radius: 20px; +} + +.toc-filter > .filter-icon { + display: none; +} + +.sidetoc > .toc { + background-color: #fff; + overflow-x: hidden; +} + +.sidetoc { + background-color: #fff; + border: none; +} + +/* ALERTS */ + +.alert { + padding: 0px 0px 5px 0px; + color: inherit; + background-color: inherit; + border: none; + box-shadow: var(--custom-box-shadow); +} + +.alert > p { + margin-bottom: 0; + padding: 5px 10px; +} + +.alert > ul { + margin-bottom: 0; + padding: 5px 40px; +} + +.alert > h5 { + padding: 10px 15px; + margin-top: 0; + text-transform: uppercase; + font-weight: bold; + border-radius: 4px 4px 0 0; +} + +.alert-info > h5 { + color: #1976d2; + border-bottom: 4px solid #1976d2; + background-color: #e3f2fd; +} + +.alert-warning > h5 { + color: #f57f17; + border-bottom: 4px solid #f57f17; + background-color: #fff3e0; +} + +.alert-danger > h5 { + color: #d32f2f; + border-bottom: 4px solid #d32f2f; + background-color: #ffebee; +} + +/* CODE HIGHLIGHT */ +pre { + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + word-break: break-all; + word-wrap: break-word; + background-color: #fffaef; + border-radius: 4px; + border: none; + box-shadow: var(--custom-box-shadow); +}