blob: 6f7e6c4b9b36f73564ca7f651c9645e8f817e786 [file] [log] [blame]
<!doctype html>
<html lang="zh-CN" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Apache Answer 使用插件详细教程 | Answer</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://answer.apache.org/zh-CN/blog/how-to-package-and-deploy-answer-plugins"><meta data-rh="true" property="og:locale" content="zh_CN"><meta data-rh="true" property="og:locale:alternate" content="en"><meta data-rh="true" name="docusaurus_locale" content="zh-CN"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="keywords" content="Free, Open-source, Q&amp;A Platform, Knowledge Sharing Platform, Community Forum, Knowledge Base, Developer Hub, Support Center"><meta data-rh="true" name="http-equiv" content="Content-Security-Policy" value="default-src &#x27;self&#x27; data: blob: &#x27;unsafe-inline&#x27; https://www.apachecon.com/ https://www.communityovercode.org/ https://analytics.apache.org/ https://api-js.mixpanel.com/track/; connect-src https://api-js.mixpanel.com/track/;"><meta data-rh="true" property="og:site_name" content="Answer"><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="og:title" content="Apache Answer 使用插件详细教程 | Answer"><meta data-rh="true" name="description" content="手把手教你如何使用 Answer 插件"><meta data-rh="true" property="og:description" content="手把手教你如何使用 Answer 插件"><meta data-rh="true" property="og:image" content="https://answer.apache.org/zh-CN/assets/images/2024-07-02-cover-zh@4x-7c4534f19e2d2062aceece5768a17365.png"><meta data-rh="true" name="twitter:image" content="https://answer.apache.org/zh-CN/assets/images/2024-07-02-cover-zh@4x-7c4534f19e2d2062aceece5768a17365.png"><meta data-rh="true" property="article:published_time" content="2024-07-02T00:00:00.000Z"><meta data-rh="true" property="article:author" content="https://github.com/shuashuai"><link data-rh="true" rel="icon" href="/zh-CN/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://answer.apache.org/zh-CN/blog/how-to-package-and-deploy-answer-plugins"><link data-rh="true" rel="alternate" href="https://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins" hreflang="en"><link data-rh="true" rel="alternate" href="https://answer.apache.org/zh-CN/blog/how-to-package-and-deploy-answer-plugins" hreflang="zh-CN"><link data-rh="true" rel="alternate" href="https://answer.apache.org/blog/how-to-package-and-deploy-answer-plugins" hreflang="x-default"><script data-rh="true">var _paq=window._paq=window._paq||[];_paq.push(["setDoNotTrack",!0]),_paq.push(["disableCookies"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){var a="https://analytics.apache.org/";_paq.push(["setTrackerUrl",a+"matomo.php"]),_paq.push(["setSiteId","75"]);var e=document,p=e.createElement("script"),t=e.getElementsByTagName("script")[0];p.async=!0,p.src=a+"matomo.js",t.parentNode.insertBefore(p,t)}()</script><link rel="search" type="application/opensearchdescription+xml" title="Apache Answer" href="/zh-CN/opensearch.xml">
<link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache Answer RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache Answer Atom Feed">
<link rel="stylesheet" href="/fonts/fonts.css"><link rel="stylesheet" href="/zh-CN/assets/css/styles.3122614c.css">
<script src="/zh-CN/assets/js/runtime~main.a73dc7c1.js" defer="defer"></script>
<script src="/zh-CN/assets/js/main.23c65135.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="跳到主要内容"><a class="skipToContent_D8pK" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><nav aria-label="主导航" class="navbar navbar--fixed-top navbar--primary"><div class="navbar__inner"><div class="navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh-CN/"><div class="navbar__logo"><img src="/zh-CN/img/logo.svg" alt="Answer Logo" class="themedImage_Pn4p themedImage--light_PnYV"><img src="/zh-CN/img/logo.svg" alt="Answer Logo" class="themedImage_Pn4p themedImage--dark_eYgw"></div></a><a class="navbar__item navbar__link" href="/zh-CN/docs">文档<!-- --></a><a class="navbar__item navbar__link" href="/zh-CN/plugins">插件<!-- --></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/zh-CN/blog">博客<!-- --></a><a class="navbar__item navbar__link" href="/zh-CN/download">下载<!-- --></a><div class="navbar__item dropdown dropdown--hoverable"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/zh-CN/community/support">社区<!-- --></a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/zh-CN/community/support">支持<!-- --></a></li><li><a href="https://meta.answer.dev" target="_blank" rel="noopener noreferrer" class="dropdown__link">问答社区<!-- --></a></li><li><a class="dropdown__link" href="/zh-CN/community/team">团队<!-- --></a></li><li><a class="dropdown__link" href="/zh-CN/community/security">安全<!-- --></a></li><li><a class="dropdown__link" href="/zh-CN/community/security-model">Security Model<!-- --></a></li><li><a class="dropdown__link" href="/zh-CN/community/contributing">贡献<!-- --></a></li><li><a href="https://github.com/apache/answer/projects" target="_blank" rel="noopener noreferrer" class="dropdown__link">路线图<!-- --></a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Apache软件基金会<!-- --></a><ul class="dropdown__menu"><li><a href="https://www.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link">基金会<!-- --></a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">许可证<!-- --></a></li><li><a href="https://www.apache.org/events/current-event.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">活动<!-- --></a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">赞助<!-- --></a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">隐私<!-- --></a></li><li><a class="dropdown__link" href="/zh-CN/community/security">安全<!-- --></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">致谢<!-- --></a></li></ul></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link bi bi-translate"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_DSK9"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>简体中文<!-- --></a><ul class="dropdown__menu"><li><a href="/blog/how-to-package-and-deploy-answer-plugins" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">English<!-- --></a></li><li><a href="/zh-CN/blog/how-to-package-and-deploy-answer-plugins" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="zh-CN">简体中文<!-- --></a></li></ul></div><a href="https://twitter.com/answerdev" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-twitter-x navbar-icon-link"></a><a href="https://discord.gg/a6PZZbfnFx" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-discord navbar-icon-link"></a><a href="https://github.com/apache/answer" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link bi bi-github navbar-icon-link"></a><div class="searchBox_H2mL"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_eExm"><div class="container"><div class="justify-content-end mb-4 row"><div class="col-lg-8 col-md-12"><div class="px-0 px-lg-5 pt-5"><header><div class="d-flex align-items-center mb-3"><a class="me-2" href="/zh-CN/blog">博客<!-- --></a><span class="me-2">/</span><a class="me-2" href="/zh-CN/blog/category/tutorials">使用指南<!-- --></a></div><h1 class="mb-3"><a class="text-body" href="/zh-CN/blog/how-to-package-and-deploy-answer-plugins">Apache Answer 使用插件详细教程</a></h1><div class="d-flex align-items-center text-secondary"><div class="me-3">Shuai</div><time class="me-3" datetime="2024-07-02T00:00:00.000Z">2024年7月2日</time><div>阅读需 9 分钟<!-- --></div></div></header></div></div><div class="col-lg-2 col-md-12"></div></div><div class="justify-content-end row"><div class="col-lg-8 col-md-12"><article class="px-0 px-lg-5 pb-5 mb-5" itemprop="blogPost" itemscope="" itemtype="http://schema.org/BlogPosting"><meta itemprop="image" content="https://answer.apache.org/zh-CN/2024-07-02-cover-zh@4x.png"><div id="__blog-post-container" class="markdown" itemprop="articleBody"><div class="mb-4"><img decoding="async" loading="lazy" src="/zh-CN/assets/images/2024-07-02-cover-zh@4x-7c4534f19e2d2062aceece5768a17365.png" class="rounded img_RAU7" width="1280px" height="720px"></div><p>在最近的的社区反馈中,部分用户反馈在使用 Answer 插件的过程中,不知道如何将插件打包进入 Answer 系统中,<!-- --><a href="https://answer.apache.org/docs/plugins/" target="_blank" rel="noopener noreferrer">Answer 插件构建文档</a>中也没有提示正确结果的示例,所以对于一些非专业的开发者造成了一些困扰,所以本篇将作为一个详细教程,来手把手教会你正确打包 Answer 插件。<!-- --></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="开始之前">开始之前<!-- --><a href="#开始之前" class="hash-link" aria-label="开始之前的直接链接" title="开始之前的直接链接"></a></h3>
<!-- --><p>在开始之前,请确保您已经配置好了基础的开发环境,包括 Node.js、pnpm、Docker、Go 等。同时,请确保您已经阅读了官方的<!-- --><a href="https://answer.apache.org/docs/development" target="_blank" rel="noopener noreferrer">开发环境配置文档</a><!-- --></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="注意">注意<!-- --><a href="#注意" class="hash-link" aria-label="注意的直接链接" title="注意的直接链接"></a></h3>
<!-- --><p><strong>如果使用的是最新的代码这里可以直接跳过</strong></p>
<!-- --><p>在 1.3.5 版本中,对插架的构建流程及部分插件的命令有所调整,如果你用的是 1.3.5 版本之前的代码,需要更改部分插件内部的基础信息。具体涉及到的插件有:</p>
<!-- --><ol>
<!-- --><li>editor-chart</li>
<!-- --><li>editor-formula</li>
<!-- --><li>embed-basic (该插件 1.3.5版本后才有)</li>
<!-- --></ol>
<!-- --><p>更改的<!-- --><a href="https://github.com/apache/answer-plugins/commit/e224fee9b8a0b936e143e852050d9345aa249201" target="_blank" rel="noopener noreferrer">commit id</a>, 需要将对应的插件的 <!-- --><code>package.json</code> 文件中的插件名称的 &#x27;-&#x27; 替换成 &#x27;_&#x27;, 例如:
<!-- --><img decoding="async" loading="lazy" alt="image.png" src="/zh-CN/assets/images/01-a64d897a78469334c4076cbb02d679cb.webp" width="750" height="495" class="img_RAU7"></p>
<!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="一构建包含插件的镜像">一:构建包含插件的镜像<!-- --><a href="#一构建包含插件的镜像" class="hash-link" aria-label="一:构建包含插件的镜像的直接链接" title="一:构建包含插件的镜像的直接链接"></a></h2>
<!-- --><p>构建包含插件的 docker 镜像有两种场景:</p>
<!-- --><ol>
<!-- --><li>基于官方基础镜像构建</li>
<!-- --><li>基于本地代码构建</li>
<!-- --></ol>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="基于官方基础镜像构建">基于官方基础镜像构建<!-- --><a href="#基于官方基础镜像构建" class="hash-link" aria-label="基于官方基础镜像构建的直接链接" title="基于官方基础镜像构建的直接链接"></a></h3>
<!-- --><p>如果您不需要对 Answer 的源码进行调整,可以直接基于官方基础镜像构建。具体步骤请参考<!-- --><a href="https://answer.apache.org/docs/plugins/#build-with-plugin-from-answer-base-image" target="_blank" rel="noopener noreferrer">官方文档</a>构建带有插件的 Docker 镜像,本文不做演示。<!-- --></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="基于本地代码构建-docker-镜像总体步骤">基于本地代码构建 Docker 镜像总体步骤<!-- --><a href="#基于本地代码构建-docker-镜像总体步骤" class="hash-link" aria-label="基于本地代码构建 Docker 镜像总体步骤的直接链接" title="基于本地代码构建 Docker 镜像总体步骤的直接链接"></a></h3>
<!-- --><p>如果您对 Answer 的源码有调整,需要基于自己修改的代码进行构建。请保持本地代码最新,以下是总体步骤:</p>
<!-- --><ol>
<!-- --><li><strong>添加所需插件</strong>:在根目录的 <!-- --><code>/script/plugin_list</code> 文件添加所需要的插架仓库,每行一个<!-- --></li>
<!-- --><li><strong>构建 Docker 镜像</strong>:运行 <!-- --><code>docker build -t &lt;image_name[:tag]&gt; .</code> 命令开始构建镜像。<!-- --></li>
<!-- --><li><strong>本地启动,验证插件是否正确运行</strong>:等待构建完成后,运行 <!-- --><code>docker run -d -p 9080:80 -v answer-data:/data --name &lt;container_name&gt; &lt;image_name&gt;</code>命令,进行验证。<!-- --></li>
<!-- --></ol>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="1添加所需插件">1.添加所需插件<!-- --><a href="#1添加所需插件" class="hash-link" aria-label="1.添加所需插件的直接链接" title="1.添加所需插件的直接链接"></a></h3>
<!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/connector-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/reviewer-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/captcha-basic@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">github.com/apache/answer-plugins/editor-formula@latest</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="2构建-docker-镜像">2.构建 Docker 镜像<!-- --><a href="#2构建-docker-镜像" class="hash-link" aria-label="2.构建 Docker 镜像的直接链接" title="2.构建 Docker 镜像的直接链接"></a></h3>
<!-- --><p>构建需要一定时间请等待构建完成
<!-- --><img decoding="async" loading="lazy" alt="docker build process" src="/zh-CN/assets/images/docker-build-b465cae38cd3b7c3435a342372c1012a.webp" width="927" height="512" class="img_RAU7"></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="3本地启动验证插件是否正确运行">3.本地启动,验证插件是否正确运行<!-- --><a href="#3本地启动验证插件是否正确运行" class="hash-link" aria-label="3.本地启动,验证插件是否正确运行的直接链接" title="3.本地启动,验证插件是否正确运行的直接链接"></a></h3>
<!-- --><p>运行下面命令启动,<!-- --><a href="https://answer.apache.org/docs/installation#install-steps" target="_blank" rel="noopener noreferrer">根据文档</a>完成初始化, 登录管理后台激活插件,查看插件是否正确运行。<!-- --></p>
<!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain">docker run -d -p 9080:80 -v answer-data:/data --name answer101 answer-plugin</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<!-- --><p>初始化完成后,登录你的网站访问管理后台,激活插件,查看插件是否正确运行即可。</p>
<!-- --><p>管理后台
<!-- --><img decoding="async" loading="lazy" alt="installed plugins" src="/zh-CN/assets/images/installed-plugins-4c0a60416e307cf55d7e531785a40df0.webp" width="1525" height="592" class="img_RAU7"></p>
<!-- --><p>激活插件:
<!-- --><img decoding="async" loading="lazy" alt="active a plugin" src="/zh-CN/assets/images/active-plugin-bca3326dfcac67fab831d5e56ae8a8b3.webp" width="1365" height="505" class="img_RAU7"></p>
<!-- --><p>确认对应插件(editor-formula)的是否正确运行:
<!-- --><img decoding="async" loading="lazy" alt="confirm formula plugin result" src="data:image/webp;base64,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" width="852" height="487" class="img_RAU7"></p>
<!-- --><h2 class="anchor anchorWithStickyNavbar_loeA" id="二构建包含插件的二进制">二:构建包含插件的二进制<!-- --><a href="#二构建包含插件的二进制" class="hash-link" aria-label="二:构建包含插件的二进制的直接链接" title="二:构建包含插件的二进制的直接链接"></a></h2>
<!-- --><p>下面将指导您如何构建包含特定插件的 Apache Answer 二进制文件。这个过程包括构建基础二进制文件、将所需插件包含在内、本地验证插件以及最终部署该二进制文件。</p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="二进制总体步骤">二进制总体步骤<!-- --><a href="#二进制总体步骤" class="hash-link" aria-label="二进制总体步骤的直接链接" title="二进制总体步骤的直接链接"></a></h3>
<!-- --><ol>
<!-- --><li>构建基础二进制文件</li>
<!-- --><li>利用基础二进制文件构建所需插件的二进制文件.</li>
<!-- --><li>本地验证插件</li>
<!-- --><li>部署该二进制</li>
<!-- --></ol>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="1构建基础二进制文件">1.构建基础二进制文件<!-- --><a href="#1构建基础二进制文件" class="hash-link" aria-label="1.构建基础二进制文件的直接链接" title="1.构建基础二进制文件的直接链接"></a></h3>
<!-- --><p>首先使用 <!-- --><code>make ui</code> 命令构建前端静态资源。<!-- --></p>
<!-- --><p>效果:</p>
<!-- --><ol>
<!-- --><li>安装依赖
<!-- --><img decoding="async" loading="lazy" alt="install ui dependence" src="/zh-CN/assets/images/make-ui-01-8e6b732388f740e04c9c35bbfe4ab1ce.webp" width="1043" height="575" class="img_RAU7"></li>
<!-- --><li>依赖安装完成开始构建静态资源
<!-- --><img decoding="async" loading="lazy" alt="build ui static files" src="/zh-CN/assets/images/make-ui-02-c221e4d0fb7d28b482784f45d4b9f79e.webp" width="975" height="721" class="img_RAU7"></li>
<!-- --></ol>
<!-- --><p>然后使用 <!-- --><code>make build</code> 构建基础二进制文件,运行成功会在项目根目录生成 answer 二进制文件,该过程中如果出现 go 的依赖安装失败的提示,可以本地尝试运行 <!-- --><code>go mod download</code>,查看是否能够安装成功,如果仍然失败,请考虑配置国内镜像: <!-- --><a href="https://goproxy.cn/%EF%BC%8C%E6%88%96%E8%80%85%E5%BC%80%E5%90%AF%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%90%86%E3%80%82" target="_blank" rel="noopener noreferrer">https://goproxy.cn/,或者开启网络代理。</a></p>
<!-- --><p>成功结果:
<!-- --><img decoding="async" loading="lazy" alt="build binary success" src="/zh-CN/assets/images/make-ui-03-afe3e3ea53679061f1d6af16f2b770cc.webp" width="1098" height="381" class="img_RAU7"></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="2利用基础二进制文件构建包含所需插件的二进制文件">2.利用基础二进制文件构建包含所需插件的二进制文件<!-- --><a href="#2利用基础二进制文件构建包含所需插件的二进制文件" class="hash-link" aria-label="2.利用基础二进制文件构建包含所需插件的二进制文件的直接链接" title="2.利用基础二进制文件构建包含所需插件的二进制文件的直接链接"></a></h3>
<!-- --><p>参考 <!-- --><a href="https://answer.apache.org/docs/plugins/#binary-build" target="_blank" rel="noopener noreferrer">Answer 文档</a></p>
<!-- --><div class="codeBlockContainer_APcc theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_m3Ux"><pre tabindex="0" class="prism-code language-text codeBlock_qGQc thin-scrollbar"><code class="codeBlockLines_p187"><span class="token-line" style="color:#393A34"><span class="token plain"># answer build --with [plugin@plugin_version=[replacement]] --output [file]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># build a new answer with github login plugin then output to ./new_answer.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github@1.0.0 --output ./new_answer</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># with multiple plugins</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--with github.com/apache/answer-plugins/connector-github \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">--with github.com/apache/answer-plugins/connector-google</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># with local plugins</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ./answer build --with github.com/apache/answer-plugins/connector-github@1.0.0=/my-local-space</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># cross compilation. Build a linux-amd64 binary in macos</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># specify the answer version using ANSWER_MODULE environment variable</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ ANSWER_MODULE=github.com/apache/answer@v1.2.0-RC1 ./answer build --with github.com/apache/answer-plugins/connector-github</span><br></span></code></pre><div class="buttonGroup_6DOT"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_FhaS" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_phi_"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_FfTR"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<!-- --><p>可以根据文档上的提示来选择所需要的插件,打包插件的会重新构建前端静态资源,插件可能有特有的依赖项,所以这里会重新执行依赖安装跟构建。构建成功后会在更目录生成 <!-- --><code>new_answer</code> 二进制文件。<!-- --></p>
<!-- --><p>eg:
<!-- --><img decoding="async" loading="lazy" alt="new answer binary" src="/zh-CN/assets/images/new-answer-b2c9fcfd56a69a0ab8b578772ccbf32a.webp" width="777" height="195" class="img_RAU7"></p>
<!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="21打包单个插件">2.1.打包单个插件<!-- --><a href="#21打包单个插件" class="hash-link" aria-label="2.1.打包单个插件的直接链接" title="2.1.打包单个插件的直接链接"></a></h4>
<!-- --><p><code>./answer build --with github.com/apache/answer-plugins/connector-github</code></p>
<!-- --><p>效果:
<!-- --><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.1.1-a92eeb46ffa1ac4a66f98eedf7e23608.webp" width="1098" height="622" class="img_RAU7"></p>
<!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.1.2-3e5b4a3321b59a9c68e265686ca8f3ce.webp" width="925" height="722" class="img_RAU7"></p>
<!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.1.3-1a9e04459da6e4c32fdecd27a8d01c94.webp" width="1073" height="405" class="img_RAU7"></p>
<!-- --><p>命令验证插件安装 <!-- --><code>./new_answer plugin</code></p>
<!-- --><p><img decoding="async" loading="lazy" alt="confirm result" src="data:image/webp;base64,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" width="621" height="67" class="img_RAU7"></p>
<!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="22使用本地插件代码构建单个插件">2.2.使用本地插件代码构建单个插件<!-- --><a href="#22使用本地插件代码构建单个插件" class="hash-link" aria-label="2.2.使用本地插件代码构建单个插件的直接链接" title="2.2.使用本地插件代码构建单个插件的直接链接"></a></h4>
<!-- --><p>如果需要调整插件的一些信息或者使用自己实现的私有插件来构建,需要使用 <!-- --><code>with local plugins</code> 命令来构建,比如上面提到的 <!-- --><code>editor-formula</code> 插件,并且使用的 Answer 代码版本是小于 1.3.5 的,所以需要调整插件的一些信息,这种情况就需要使用该命令来完成构建。<!-- --></p>
<!-- --><p><code>./answer build --with github.com/apache/answer-plugins/editor-formula@0.0.3=/Users/shuai/answer/plugins/editor-formula</code></p>
<!-- --><p>结果:
<!-- --><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.2.1-edf3d648874ff29768879aa9bcc92625.webp" width="1041" height="703" class="img_RAU7"></p>
<!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.2.2-073d34759862f9bcbfbed4083aeb7677.webp" width="1017" height="702" class="img_RAU7"></p>
<!-- --><p><img decoding="async" loading="lazy" alt="build progress" src="/zh-CN/assets/images/2.2.3-e4729e7ae3983429cf9795556c80d72e.webp" width="1066" height="421" class="img_RAU7"></p>
<!-- --><p>命令验证插件安装 <!-- --><code>./new_answer plugin</code></p>
<!-- --><p><img decoding="async" loading="lazy" alt="confirm result" src="data:image/webp;base64,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" width="730" height="75" class="img_RAU7"></p>
<!-- --><h4 class="anchor anchorWithStickyNavbar_loeA" id="23打包多个插件">2.3.打包多个插件<!-- --><a href="#23打包多个插件" class="hash-link" aria-label="2.3.打包多个插件的直接链接" title="2.3.打包多个插件的直接链接"></a></h4>
<!-- --><p>效果及过程与上面两个类似,请自己实验安装,这里不在展示。</p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="3本地验证插件">3.本地验证插件<!-- --><a href="#3本地验证插件" class="hash-link" aria-label="3.本地验证插件的直接链接" title="3.本地验证插件的直接链接"></a></h3>
<!-- --><p>使用命令行验证只是确保插件已经打进去了,想要查看插件是否能正常运行,可以本地运行生成的二进制文件进行查看,二进制运行<!-- --><a href="https://answer.apache.org/docs/installation" target="_blank" rel="noopener noreferrer">文档</a>
<!-- --><img decoding="async" loading="lazy" alt="installation docs" src="/zh-CN/assets/images/installation-3018c6ed348aead2c16936d590ea0dfe.webp" width="1074" height="463" class="img_RAU7">, 按照文档步骤初始化完信息。注意这里需要运行的是 new_answer 二进制,所以命令行中的 ./answer 需要使用 ./new_answer<!-- --></p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="4本地验证步骤">4.本地验证步骤<!-- --><a href="#4本地验证步骤" class="hash-link" aria-label="4.本地验证步骤的直接链接" title="4.本地验证步骤的直接链接"></a></h3>
<!-- --><ol>
<!-- --><li>完成初始化</li>
<!-- --></ol>
<!-- --><p>例如: <!-- --><code>INSTALL_PORT=80 ./new_answer init -C ./answer-data</code></p>
<!-- --><p><img decoding="async" loading="lazy" alt="local init" src="/zh-CN/assets/images/local-init-03c0b3cc97a3e370b2e25e682487deb6.webp" width="740" height="120" class="img_RAU7"></p>
<!-- --><p>成功后访问 <!-- --><code>http://localhost:80/install/</code>,按照<!-- --><a href="https://answer.apache.org/docs/installation#install-steps" target="_blank" rel="noopener noreferrer">文档</a>完成初始化步骤。<!-- --></p>
<!-- --><ol start="2">
<!-- --><li>运行命令 <!-- --><code>./new_answer upgrade -C ./answer-data/</code> 更新信息<!-- --></li>
<!-- --><li>启动本地网站 <!-- --><code>./new_answer run -C ./answer-data/</code>, 访问 <!-- --><code>http://localhost/</code>,登录进去,访问 <!-- --><code>http://localhost/admin</code> 开启插件,验证插件是否生效。<!-- --></li>
<!-- --></ol>
<!-- --><p>这里使用最后打包的 editor-formula 插件作为示例。</p>
<!-- --><p><img decoding="async" loading="lazy" alt="installed formula" src="/zh-CN/assets/images/installed-formula-e681cb941d80742026a978df02adb08d.webp" width="1496" height="413" class="img_RAU7">
<!-- --><img decoding="async" loading="lazy" alt="image.png" src="data:image/webp;base64,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" width="852" height="487" class="img_RAU7"></p>
<!-- --><p>到这一步就可以确定插件是否正确构建并运行了。</p>
<!-- --><h3 class="anchor anchorWithStickyNavbar_loeA" id="5部署该二进制">5.部署该二进制<!-- --><a href="#5部署该二进制" class="hash-link" aria-label="5.部署该二进制的直接链接" title="5.部署该二进制的直接链接"></a></h3>
<!-- --><p>如果你的网站是使用的二进制进行的部署,那么你现在就可以将该二进制文件进行部署了,如果需要适配不同平台,可以使用文档上面的交叉编译命令来构建二进制文件。</p></div><div class="mt-3"><div class="d-flex align-items-center text-secondary"><span>分享到<!-- --></span><button aria-label="twitter" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-twitter" style="font-size:16px"></i></button><button title="Apache Answer 使用插件详细教程" aria-label="facebook" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-facebook" style="font-size:16px"></i></button><button aria-label="linkedin" class="react-share__ShareButton shareBtn_lEr0" style="background-color:transparent;border:none;padding:0;font:inherit;color:inherit;cursor:pointer"><i class="br bi-linkedin" style="font-size:16px"></i></button></div><div class="mt-4"><a href="https://crowdin.com/project/answer-website/zh-CN" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_N_05" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页<!-- --></a></div></div></article></div><div class="col-lg-2 col-md-12"><div class="tableOfContents_PDf4 thin-scrollbar"><ul class="border-0 p-0 table-of-contents table-of-contents__left-border"><li class="m-0 mb-2"><a href="#开始之前" class="fs-14 text-secondary table-of-contents__link toc-highlight">开始之前</a></li><li class="m-0 mb-2"><a href="#注意" class="fs-14 text-secondary table-of-contents__link toc-highlight">注意</a></li><li class="m-0 mb-2"><a href="#一构建包含插件的镜像" class="fs-14 text-secondary table-of-contents__link toc-highlight">一:构建包含插件的镜像</a><ul class="border-0 p-0 ps-3 mt-2"><li class="m-0 mb-2"><a href="#基于官方基础镜像构建" class="fs-14 text-secondary table-of-contents__link toc-highlight">基于官方基础镜像构建</a></li><li class="m-0 mb-2"><a href="#基于本地代码构建-docker-镜像总体步骤" class="fs-14 text-secondary table-of-contents__link toc-highlight">基于本地代码构建 Docker 镜像总体步骤</a></li><li class="m-0 mb-2"><a href="#1添加所需插件" class="fs-14 text-secondary table-of-contents__link toc-highlight">1.添加所需插件</a></li><li class="m-0 mb-2"><a href="#2构建-docker-镜像" class="fs-14 text-secondary table-of-contents__link toc-highlight">2.构建 Docker 镜像</a></li><li class="m-0 mb-2"><a href="#3本地启动验证插件是否正确运行" class="fs-14 text-secondary table-of-contents__link toc-highlight">3.本地启动,验证插件是否正确运行</a></li></ul></li><li class="m-0 mb-2"><a href="#二构建包含插件的二进制" class="fs-14 text-secondary table-of-contents__link toc-highlight">二:构建包含插件的二进制</a><ul class="border-0 p-0 ps-3 mt-2"><li class="m-0 mb-2"><a href="#二进制总体步骤" class="fs-14 text-secondary table-of-contents__link toc-highlight">二进制总体步骤</a></li><li class="m-0 mb-2"><a href="#1构建基础二进制文件" class="fs-14 text-secondary table-of-contents__link toc-highlight">1.构建基础二进制文件</a></li><li class="m-0 mb-2"><a href="#2利用基础二进制文件构建包含所需插件的二进制文件" class="fs-14 text-secondary table-of-contents__link toc-highlight">2.利用基础二进制文件构建包含所需插件的二进制文件</a></li><li class="m-0 mb-2"><a href="#3本地验证插件" class="fs-14 text-secondary table-of-contents__link toc-highlight">3.本地验证插件</a></li><li class="m-0 mb-2"><a href="#4本地验证步骤" class="fs-14 text-secondary table-of-contents__link toc-highlight">4.本地验证步骤</a></li><li class="m-0 mb-2"><a href="#5部署该二进制" class="fs-14 text-secondary table-of-contents__link toc-highlight">5.部署该二进制</a></li></ul></li></ul></div></div></div></div></div><footer class="footer"><div class="container py-3"><div class="d-flex justify-content-between flex-wrap text-center"><div><div class="mb-3"><a href="https://www.apache.org/" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 103.8" width="180" role="img"><path d="M255.178 30.45a2.7 2.7 0 0 1 .822 1.983 2.77 2.77 0 0 1-.822 2c-.55.567-1.214.83-1.997.83s-1.444-.273-2-.822a2.72 2.72 0 0 1-.815-1.983 2.77 2.77 0 0 1 .822-2c.55-.567 1.2-.83 2-.83a2.71 2.71 0 0 1 1.99.823zm-.237 3.74a2.43 2.43 0 0 0 .718-1.75 2.4 2.4 0 0 0-.711-1.742 2.36 2.36 0 0 0-1.746-.722 2.34 2.34 0 0 0-1.75.726 2.39 2.39 0 0 0-.715 1.75c0 .683.237 1.264.708 1.746a2.34 2.34 0 0 0 1.742.722c.7 0 1.27-.244 1.753-.73zm-.395-2.292c0 .503-.22.82-.66.948l.808 1.095h-.654l-.73-1.016h-.668v1.016h-.528V30.9h1.142c.46 0 .8.08 1 .237s.298.4.298.758zm-.68.427c.108-.086.158-.233.158-.43s-.054-.338-.162-.417-.302-.115-.575-.115h-.647v1.095h.63c.3 0 .492-.047.596-.133zM64.78 17.952v5.58h-.718v-5.58h-2.04v-.7h4.8v.7h-2.05zm10.006 5.58V20.77h-3.778v2.762H70.3v-6.275h.718v2.834h3.778v-2.834h.718v6.275h-.718zm5.718-5.58v2.062h3.164v.7h-3.164v2.148h3.656v.682h-4.375V17.27h4.26v.7h-3.54z" fill="#6d6e71"></path><path d="m56.55 66.532 14.988-35.83h2.877l14.988 35.83h-3.786L80.974 55.33H64.876l-4.594 11.202H56.55zM73.004 34.84l-7.367 17.714h14.535l-7.17-17.714zm20.268 31.692v-35.83h14.837c6.156 0 10.6 5.704 10.6 11.253 0 5.854-4.138 11.353-10.294 11.353h-11.66v13.22H93.27zm3.484-16.353H108.2c4.238 0 6.964-3.886 6.964-8.225 0-4.493-3.33-8.124-7.266-8.124H96.756v16.35zm20 16.353 14.988-35.83h2.877l14.988 35.83h-3.786L141.17 55.33h-16.098l-4.594 11.202h-3.732zM133.2 34.84l-7.367 17.714h14.535L133.2 34.84zm33.357-4.343c6.357 0 11 3.23 13.22 7.823l-2.827 1.717c-2.27-4.745-6.713-6.357-10.6-6.357-8.58 0-13.27 7.672-13.27 14.888 0 7.923 5.804 15.1 13.422 15.1 4.037 0 8.782-2.018 11.052-6.663l2.927 1.512c-2.32 5.348-8.68 8.326-14.18 8.326-9.84 0-16.755-9.385-16.755-18.468.004-8.627 6.2-17.865 17-17.865zm47.115.205v35.83h-3.534V49.777h-21.245v16.755h-3.48v-35.83h3.48V46.65h21.245V30.702h3.534zM245.836 63.4v3.128h-24.07V30.702h23.62v3.128H225.25v12.92h17.563v2.977H225.25v13.677h20.587z" fill="#d22128"></path><path d="M59.895 74.118c.424.126.797.298 1.113.5l-.37.812c-.323-.215-.668-.374-1.038-.48s-.718-.158-1.05-.158c-.488 0-.88.086-1.17.262s-.438.424-.438.743c0 .273.083.503.244.682a1.65 1.65 0 0 0 .61.42c.244.1.578.215 1.006.345l1.246.463a2.14 2.14 0 0 1 .808.639c.223.28.334.654.334 1.113 0 .42-.115.783-.34 1.1s-.55.557-.963.73-.894.26-1.437.26a4.13 4.13 0 0 1-1.577-.312 4.47 4.47 0 0 1-1.315-.84l.384-.776a3.72 3.72 0 0 0 1.196.787c.453.187.9.28 1.322.28.55 0 .98-.108 1.297-.32s.474-.5.474-.858c0-.28-.083-.514-.248-.697s-.37-.323-.614-.427a11.49 11.49 0 0 0-1.006-.345 10.77 10.77 0 0 1-1.243-.438 2.06 2.06 0 0 1-.808-.629c-.22-.277-.33-.643-.33-1.1a1.69 1.69 0 0 1 .323-1.027c.216-.294.524-.524.92-.686s.855-.244 1.372-.244c.442 0 .87.068 1.297.194zm11.225.332c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.715 0 1.376.165 1.983.507zm-3.527.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.07 3.07 0 0 0-1.544.402zm10.94-.372v2.658h3.534v.833h-3.534v3.24h-.866V73.96h4.806v.833h-3.94zm10.968 0v6.73h-.866v-6.73h-2.457v-.833h5.797v.833H89.5zm13.645 6.73-2.04-6.372-2.07 6.372h-.88l-2.532-7.564h.93l2.08 6.562 2.05-6.55.866-.01 2.072 6.562 2.05-6.562h.898l-2.536 7.564h-.9zm7.74-1.9-.844 1.9h-.92l3.4-7.564h.898l3.38 7.564h-.937l-.844-1.9h-4.123zm2.054-4.67-1.684 3.836h3.4l-1.706-3.836zm11.36 4.17-.506.022h-2v2.4h-.862V73.96h2.873c.94 0 1.674.223 2.198.664s.783 1.07.783 1.88c0 .618-.147 1.14-.438 1.555s-.7.718-1.257.898l1.767 2.568h-.98l-1.566-2.4zm1.085-1.26c.37-.302.557-.747.557-1.33 0-.57-.187-1.002-.557-1.293s-.902-.438-1.6-.438h-2v3.513h2c.7 0 1.22-.15 1.6-.453zm7.077-3.06v2.485h3.814v.833h-3.814v2.6h4.4v.823h-5.276V73.96h5.132v.833h-4.267zm16.485-.01v2.658h3.534v.833h-3.534v3.24h-.866V73.96h4.806v.833h-3.94zm13.515-.343c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.718 0 1.38.165 1.983.507zm-3.523.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.05 3.05 0 0 0-1.544.402zm15.426 5.565c-.564.557-1.34.837-2.327.837-.995 0-1.774-.28-2.338-.837s-.848-1.33-.848-2.32v-4.454h.866V78.4c0 .73.208 1.297.62 1.706s.98.614 1.7.614 1.286-.205 1.692-.6.6-.977.6-1.713v-4.454h.866v4.454c.004.995-.277 1.767-.84 2.324zm11.305.794-4.536-6.074v6.074h-.866V73.96h.898l4.536 6.08v-6.08h.855v7.564h-.887zm11.096-7.064c.6.334 1.056.787 1.397 1.36a3.7 3.7 0 0 1 .514 1.922c0 .704-.172 1.35-.514 1.925a3.67 3.67 0 0 1-1.412 1.36c-.6.33-1.264.496-1.993.496h-3.028V73.96h3.06c.73 0 1.386.165 1.975.5zm-4.17 6.242h2.205c.557 0 1.063-.126 1.52-.38s.82-.607 1.085-1.06.4-.952.4-1.508a2.86 2.86 0 0 0-.406-1.505c-.27-.45-.636-.8-1.1-1.063a3.07 3.07 0 0 0-1.53-.391h-2.173v5.908zm11.002-1.1-.844 1.9h-.92l3.4-7.564h.898l3.38 7.564h-.934l-.844-1.9h-4.127zm2.054-4.67-1.684 3.836h3.4l-1.706-3.836zm9.525-.15v6.73h-.862v-6.73h-2.457v-.833h5.797v.833h-2.478zm6.64 6.73V73.96h.866v7.564h-.866zm11.415-7.062c.603.338 1.085.8 1.437 1.38a3.62 3.62 0 0 1 .532 1.914 3.63 3.63 0 0 1-.532 1.925 3.91 3.91 0 0 1-1.437 1.386 3.97 3.97 0 0 1-1.983.514 3.97 3.97 0 0 1-2.001-.514c-.603-.34-1.085-.805-1.437-1.386s-.532-1.225-.532-1.925a3.61 3.61 0 0 1 .532-1.922 3.8 3.8 0 0 1 1.437-1.376 4.063 4.063 0 0 1 2-.503c.718 0 1.38.165 1.983.507zm-3.523.715a3.1 3.1 0 0 0-1.128 1.081c-.28.453-.424.952-.424 1.498s.14 1.052.424 1.508a3.08 3.08 0 0 0 2.669 1.483c.557 0 1.067-.133 1.534-.4a3.05 3.05 0 0 0 1.117-1.085c.277-.456.417-.96.417-1.508a2.82 2.82 0 0 0-.417-1.501 3.06 3.06 0 0 0-1.117-1.078 3.04 3.04 0 0 0-1.53-.402 3.06 3.06 0 0 0-1.544.402zm15.476 6.36-4.536-6.074v6.074h-.866V73.96h.898l4.536 6.08v-6.08h.855v7.564h-.887z" fill="#6d6e71"></path><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="39.134" y1="8.805" x2="60.867" y2="2.762"><stop offset="0" stop-color="#f69923"></stop><stop offset="0.312" stop-color="#f79a23"></stop><stop offset="0.838" stop-color="#e97826"></stop></linearGradient><path d="M44.18.492c-1.627.963-4.332 3.68-7.56 7.625l2.967 5.6c2.083-2.977 4.2-5.657 6.332-7.945l.25-.27-.25.27c-.7.76-2.784 3.204-5.944 8.06 3.042-.15 7.72-.776 11.533-1.426 1.135-6.357-1.113-9.267-1.113-9.267S47.532-1.487 44.18.492z" fill="url(#a)"></path><g fill="#be202e"><path d="m34.214 47.518-1.167.205.6-.093.578-.115z"></path><path d="m34.214 47.518-1.167.205.6-.093.578-.115z" opacity="0.35"></path><path d="m35.2 42.623.18-.03.743-.133-.923.158z"></path><path d="m35.2 42.623.18-.03.743-.133-.923.158z" opacity="0.35"></path></g><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-8.437" y1="106.346" x2="35.767" y2="11.546"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m30.838 28.184 2.737-4.935 2.906-4.838.172-.277 2.93-4.414-2.967-5.603-.675.833-2.654 3.43-3.153 4.37-3 4.443-2.658 4.195 3.86 7.625 2.5-4.83z" fill="url(#b)"></path><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="6.407" y1="99.336" x2="32.749" y2="42.845"><stop offset="0" stop-color="#282662"></stop><stop offset="0.095" stop-color="#662e8d"></stop><stop offset="0.788" stop-color="#9f2064"></stop><stop offset="0.949" stop-color="#cd2032"></stop></linearGradient><path d="m13.253 71.15-1.782 4.978-1.34 3.886c1.14.52 2.05 1.886 2.913 3.434a6.23 6.23 0 0 0-2.02-4.278c5.607.25 10.437-1.164 12.934-5.265a10.68 10.68 0 0 0 .611-1.156c-1.135 1.44-2.543 2.05-5.2 1.904-.007 0-.01 0-.018.01.007 0 .01 0 .018-.01 3.9-1.746 5.858-3.423 7.586-6.2a28.98 28.98 0 0 0 1.214-2.177c-3.408 3.502-7.363 4.5-11.526 3.743l-3.12.34c-.086.262-.183.524-.28.8z" fill="url(#c)"></path><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="-6.838" y1="100.61" x2="37.367" y2="5.81"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m14.7 64.158 2.083-5.287 2.1-5.143 2.198-5.18 2.33-5.262 2.392-5.147.884-1.832 1.548-3.132.086-.165-3.86-7.625-.2.3L21.6 30.2 19 34.93l-2.105 4.1-.406.833-2.288 5-2.065 5.212-1.08 3.14-.772 2.58-1.48 6.045 3.875 7.665 1.58-4.166.453-1.178z" fill="url(#d)"></path><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="-2.331" y1="94.294" x2="20.9" y2="44.474"><stop offset="0" stop-color="#282662"></stop><stop offset="0.095" stop-color="#662e8d"></stop><stop offset="0.788" stop-color="#9f2064"></stop><stop offset="0.949" stop-color="#cd2032"></stop></linearGradient><path d="M8.746 62.115a58.935 58.935 0 0 0-1.006 7.32l-.018.255c-1.2-1.94-4.454-3.836-4.446-3.814 2.32 3.365 4.084 6.706 4.342 9.985-1.243.255-2.945-.115-4.913-.837 2.05 1.886 3.592 2.406 4.2 2.546-1.895.118-3.845 1.4-5.82 2.902 2.9-1.178 5.226-1.645 6.9-1.268C5.32 86.7 2.66 95 0 103.8c.815-.24 1.3-.787 1.577-1.53.474-1.595 3.62-12.054 8.548-25.795l.542-1.512 1.62-4.414.384-1.027.007-.022-3.875-7.66-.057.273z" fill="url(#e)"></path><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="2.974" y1="105.185" x2="47.178" y2="10.385"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m28.935 33.654-.334.686-1.016 2.112-1.124 2.388-.575 1.243-1.756 3.9-2.227 5.13-2.187 5.255-2.13 5.326-1.94 5.032-2.1 5.645 3.12-.34L16.48 70c3.732-.467 8.695-3.254 11.903-6.698 1.476-1.588 2.82-3.46 4.06-5.65.923-1.63 1.8-3.44 2.615-5.44a78.984 78.984 0 0 0 2.083-5.696c-.858.453-1.84.783-2.924 1.013l-.578.1a14.35 14.35 0 0 1-.596.093c3.488-1.34 5.682-3.922 7.277-7.1-.916.625-2.403 1.44-4.188 1.835a9.65 9.65 0 0 1-.743.133l-.187.03h.007c1.207-.507 2.227-1.07 3.1-1.738.2-.144.374-.3.55-.442a10.67 10.67 0 0 0 .772-.736 10.25 10.25 0 0 0 .456-.51c.345-.413.672-.858.973-1.34a13.71 13.71 0 0 0 .273-.453l.334-.657a37.57 37.57 0 0 0 1.185-2.615c.154-.38.3-.736.406-1.067l.133-.38c.122-.366.223-.693.302-.98.12-.43.2-.772.23-1.02-.12.093-.255.187-.406.277-1.052.628-2.855 1.2-4.306 1.465l2.866-.316-2.866.316c-.022 0-.043.01-.065.01l-.438.072c.025-.01.05-.025.075-.036l-9.805 1.074a.405.405 0 0 1-.05.1z" fill="url(#f)"></path><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="-0.255" y1="110.838" x2="43.949" y2="16.039"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m39.972 13.832-2.852 4.58-.162.273-2.812 4.92-2.67 4.992-2.493 4.95 9.805-1.074c2.855-1.315 4.134-2.503 5.373-4.224l.988-1.483 2.877-5.025 2.18-4.795.866-2.597.427-1.943c-3.807.65-8.487 1.275-11.53 1.426z" fill="url(#g)"></path><g fill="#be202e"><path d="m33.636 47.63-.596.093.596-.093z"></path><path d="m33.636 47.63-.596.093.596-.093z" opacity="0.35"></path></g><linearGradient id="h" gradientUnits="userSpaceOnUse" x1="5.892" y1="106.546" x2="50.096" y2="11.746"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m33.636 47.63-.596.093.596-.093z" fill="url(#h)"></path><g fill="#be202e"><path d="m35.198 42.626.187-.03-.187.03z"></path><path d="m35.198 42.626.187-.03-.187.03z" opacity="0.35"></path></g><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="5.558" y1="106.39" x2="49.762" y2="11.59"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="m35.198 42.626.187-.03-.187.03z" fill="url(#i)"></path><g fill="#be202e"><path d="M35.206 42.623z"></path><path d="M35.206 42.623z" opacity="0.35"></path></g><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="30.325" y1="53.101" x2="40.095" y2="32.148"><stop offset="0.323" stop-color="#9e2064"></stop><stop offset="0.63" stop-color="#c92037"></stop><stop offset="0.751" stop-color="#cd2335"></stop><stop offset="1" stop-color="#e97826"></stop></linearGradient><path d="M35.206 42.623z" fill="url(#j)"></path></svg></a></div><div class="fs-14"><div class="my-3"><span>Copyright © 2023 - <!-- -->2025<!-- --> The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<!-- --></span><br><span>Apache, Apache Answer, the feather logo and the Apache Answer logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.</span></div><span>Feature icons by <!-- --> <!-- --><a href="https://www.flaticon.com" class="link-secondary" target="_blank">Freepik</a>.<!-- --></span></div></div></div></div></footer></div>
</body>
</html>