Browse Source

Merge pull request #20213 from abpframework/DocsGoogleSearch

Add Google Search feature to docs module.
pull/20255/head
Alper Ebiçoğlu 2 years ago
committed by GitHub
parent
commit
3df8384518
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  2. 14
      modules/docs/src/Volo.Docs.Web/DocsWebGoogleOptions.cs
  3. 21
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

8
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -85,7 +85,7 @@ namespace VoloDocs.Web
Configure<DocsElasticSearchOptions>(options =>
{
options.Enable = true;
options.Enable = false;
});
Configure<AbpDbConnectionOptions>(options =>
@ -164,9 +164,11 @@ namespace VoloDocs.Web
options.Conventions.AddPageRoute("/Error", "error/{statusCode}");
});
Configure<DocsWebGoogleTranslationOptions>(options =>
Configure<DocsWebGoogleOptions>(options =>
{
options.UseGoogleTranslation = true;
options.EnableGoogleTranslate = true;
options.EnableGoogleProgrammableSearchEngine = true;
options.GoogleSearchEngineId = "77c7266532da1427f";
});
}

14
modules/docs/src/Volo.Docs.Web/DocsWebGoogleTranslationOptions.cs → 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 EnableGoogleTranslate { get; set; }
/// <summary>
/// https://cloud.google.com/translate/docs/languages
@ -15,9 +15,13 @@ public class DocsWebGoogleTranslationOptions
public Func<CultureInfo, string> GetCultureLanguageCode { get; set; }
public DocsWebGoogleTranslationOptions()
public bool EnableGoogleProgrammableSearchEngine { get; set; }
public string GoogleSearchEngineId { get; set; }
public DocsWebGoogleOptions()
{
UseGoogleTranslation = false;
EnableGoogleTranslate = false;
IncludedLanguages =
[
"en",
@ -47,5 +51,7 @@ public class DocsWebGoogleTranslationOptions
_ => culture.TwoLetterISOLanguageName
};
};
EnableGoogleProgrammableSearchEngine = false;
}
}

21
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -22,7 +22,7 @@
@inject IThemeManager ThemeManager
@inject IPageLayout PageLayout
@inject IHtmlLocalizer<DocsResource> L
@inject IOptions<DocsWebGoogleTranslationOptions> DocsWebOptions
@inject IOptions<DocsWebGoogleOptions> DocsWebGoogleOptions
@model IndexModel
@{
@ -58,15 +58,15 @@
<abp-script src="/Pages/Documents/Shared/Scripts/vs.js"/>
<abp-script src="/Pages/Documents/Project/index.js"/>
</abp-script-bundle>
if (DocsWebOptions.Value.UseGoogleTranslation)
if (DocsWebGoogleOptions.Value.EnableGoogleTranslate)
{
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: '@DocsWebOptions.Value.GetCultureLanguageCode(CultureInfo.CurrentUICulture)',
pageLanguage: '@DocsWebGoogleOptions.Value.GetCultureLanguageCode(CultureInfo.CurrentUICulture)',
autoDisplay: false,
disableAutoTranslation: true,
includedLanguages: '@string.Join(",", DocsWebOptions.Value.IncludedLanguages)',
includedLanguages: '@string.Join(",", DocsWebGoogleOptions.Value.IncludedLanguages)',
layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL
}, 'google_translate_element');
}
@ -81,11 +81,15 @@
var alt = img.attr('alt');
a.removeClass().css('color', '#666').html(alt);
}
}
}
});
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
}
if (DocsWebGoogleOptions.Value.EnableGoogleProgrammableSearchEngine)
{
<script async src="https://cse.google.com/cse.js?cx=@DocsWebGoogleOptions.Value.GoogleSearchEngineId"></script>
}
}
else
{
@ -214,7 +218,7 @@
}
</div>
@if (DocsWebOptions.Value.UseGoogleTranslation)
@if (DocsWebGoogleOptions.Value.EnableGoogleTranslate)
{
<div class="docs-version mt-2 skiptranslate">
<span>@L["GoogleTranslate"]</span>
@ -318,6 +322,11 @@
</div>
</div>
}
@if (DocsWebGoogleOptions.Value.EnableGoogleProgrammableSearchEngine)
{
<div class="gcse-search"></div>
}
</div>
@{
var showContributors = Model.Document.Contributors != null && Model.Document.Contributors.Count > 0;

Loading…
Cancel
Save