From 3a4e9a3cddadb55cd4ec77c3e09d93634ea04d60 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 12 Jul 2024 14:51:03 +0800 Subject: [PATCH] Add Google Search feature to docs module. --- .../docs/app/VoloDocs.Web/VoloDocsWebModule.cs | 8 +++++--- ...lationOptions.cs => DocsWebGoogleOptions.cs} | 14 ++++++++++---- .../Pages/Documents/Project/Index.cshtml | 17 +++++++++++++---- .../Pages/Documents/Project/index.css | 6 ++++++ .../Pages/Documents/Project/index.min.css | 2 +- 5 files changed, 35 insertions(+), 12 deletions(-) rename modules/docs/src/Volo.Docs.Web/{DocsWebGoogleTranslationOptions.cs => DocsWebGoogleOptions.cs} (73%) diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index ff50ee3247..2b2fe4d33f 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs @@ -85,7 +85,7 @@ namespace VoloDocs.Web Configure(options => { - options.Enable = true; + options.Enable = false; }); Configure(options => @@ -164,9 +164,11 @@ namespace VoloDocs.Web options.Conventions.AddPageRoute("/Error", "error/{statusCode}"); }); - Configure(options => + Configure(options => { - options.UseGoogleTranslation = true; + options.EnableGoogleTranslation = true; + options.EnableGoogleProgrammableSearchEngine = true; + options.GoogleSearchEngineId = "77c7266532da1427f"; }); } diff --git a/modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs b/modules/docs/src/Volo.Docs.Web/DocsWebGoogleOptions.cs similarity index 73% rename from modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs rename to modules/docs/src/Volo.Docs.Web/DocsWebGoogleOptions.cs index a970cdbf98..c2614decce 100644 --- a/modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs +++ b/modules/docs/src/Volo.Docs.Web/DocsWebGoogleOptions.cs @@ -4,9 +4,9 @@ using System.Globalization; namespace Volo.Docs; -public class DocsWebGoogleTranslationOptions +public class DocsWebGoogleOptions { - public bool UseGoogleTranslation { get; set; } + public bool EnableGoogleTranslation { get; set; } /// /// https://cloud.google.com/translate/docs/languages @@ -15,9 +15,13 @@ public class DocsWebGoogleTranslationOptions public Func GetCultureLanguageCode { get; set; } - public DocsWebGoogleTranslationOptions() + public bool EnableGoogleProgrammableSearchEngine { get; set; } + + public string GoogleSearchEngineId { get; set; } + + public DocsWebGoogleOptions() { - UseGoogleTranslation = false; + EnableGoogleTranslation = false; IncludedLanguages = [ "en", @@ -47,5 +51,7 @@ public class DocsWebGoogleTranslationOptions _ => culture.TwoLetterISOLanguageName }; }; + + EnableGoogleProgrammableSearchEngine = false; } } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index b7a8c2d321..116facfd26 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -22,7 +22,7 @@ @inject IThemeManager ThemeManager @inject IPageLayout PageLayout @inject IHtmlLocalizer L -@inject IOptions DocsWebOptions +@inject IOptions DocsWebOptions @model IndexModel @{ @@ -58,7 +58,7 @@ - if (DocsWebOptions.Value.UseGoogleTranslation) + if (DocsWebOptions.Value.EnableGoogleTranslation) { } + if (DocsWebOptions.Value.EnableGoogleProgrammableSearchEngine) + { + + } } else { @@ -214,7 +218,7 @@ } - @if (DocsWebOptions.Value.UseGoogleTranslation) + @if (DocsWebOptions.Value.EnableGoogleTranslation) {
@L["GoogleTranslate"] @@ -318,6 +322,11 @@
} + + @if (DocsWebOptions.Value.EnableGoogleProgrammableSearchEngine) + { + + } @{ var showContributors = Model.Document.Contributors != null && Model.Document.Contributors.Count > 0; diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.css b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.css index e8d0a035a0..b68e468eb6 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.css +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.css @@ -45,4 +45,10 @@ body { outline: none; } +.gsc-control-cse { + background-color: #fbfbfb !important; + border: none !important; + padding: 0 !important; +} + /*# sourceMappingURL=Index.css.map */ diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css index 6fc6088aca..9a8fd5e803 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.min.css @@ -1 +1 @@ -.code-toolbar .line-highlight{margin-top:1.5em !important;background:rgba(233,237,241,0.34) !important;padding:1px !important;}.input-group .input-group-text{background-color:transparent !important;}.navigation .next-link .desc,.navigation .prev-link .desc{color:#0D6EFD;}.navigation .next-link .desc .fa,.navigation .prev-link .desc .fa{font-size:12px;}.navigation .next-link .title,.navigation .prev-link .title{font-weight:600;font-size:18px;color:#0B1621;}body{top:0px !important;}.skiptranslate iframe{display:none !important;}.google_translate_text{color:#aaa;font-family:var(--bs-body-font-family);font-size:10pt;margin-left:2px;font-weight:500;}.goog-te-gadget{white-space:break-spaces !important;}.goog-te-combo:focus-visible{border:0px;outline:none;}/*# sourceMappingURL=Index.min.css.map */ \ No newline at end of file +.code-toolbar .line-highlight{margin-top:1.5em !important;background:rgba(233,237,241,0.34) !important;padding:1px !important;}.input-group .input-group-text{background-color:transparent !important;}.navigation .next-link .desc,.navigation .prev-link .desc{color:#0D6EFD;}.navigation .next-link .desc .fa,.navigation .prev-link .desc .fa{font-size:12px;}.navigation .next-link .title,.navigation .prev-link .title{font-weight:600;font-size:18px;color:#0B1621;}body{top:0px !important;}.skiptranslate iframe{display:none !important;}.google_translate_text{color:#aaa;font-family:var(--bs-body-font-family);font-size:10pt;margin-left:2px;font-weight:500;}.goog-te-gadget{white-space:break-spaces !important;}.goog-te-combo:focus-visible{border:0px;outline:none;}.gsc-control-cse{background-color:#fbfbfb !important;border:none !important;padding:0 !important;}/*# sourceMappingURL=Index.min.css.map */ \ No newline at end of file