complete search

This commit is contained in:
oppofind 2020-12-19 18:18:30 +08:00
parent 41d4f7f435
commit c81b57b7b3
14 changed files with 104 additions and 65 deletions

View File

@ -40,7 +40,7 @@ import java.util.Map;
import java.util.Objects;
import static com.power.doc.constants.DocGlobalConstants.FILE_SEPARATOR;
import static com.power.doc.constants.DocGlobalConstants.SEARCH_JS;
import static com.power.doc.constants.DocGlobalConstants.SEARCH_JS_OUT;
/**
* @author yu 2019/9/26.
@ -186,7 +186,7 @@ public class DocBuilderTemplate extends BaseDocBuilderTemplate {
apiDoc1.setList(methodDocs);
apiDocs.add(apiDoc1);
tpl.binding(TemplateVariable.API_DOC_LIST.getVariable(), apiDocs);
FileUtil.nioWriteFile(tpl.render(), config.getOutPath() + FILE_SEPARATOR + SEARCH_JS);
FileUtil.nioWriteFile(tpl.render(), config.getOutPath() + FILE_SEPARATOR + SEARCH_JS_OUT);
}

View File

@ -45,10 +45,12 @@ public class HtmlApiDocBuilder {
private static long now = System.currentTimeMillis();
private static final String STR_TIME = DateTimeUtil.long2Str(now, DateTimeUtil.DATE_FORMAT_SECOND);
private static String INDEX_HTML = "index.html";
private static final String ERROR_CODE_HTML = "error.html";
private static final String DICT_HTML = "dict.html";
/**
* build controller api
@ -81,28 +83,28 @@ public class HtmlApiDocBuilder {
}
if (config.isCreateDebugPage()) {
builderTemplate.buildAllInOne(apiDocList, config, javaProjectBuilder, DEBUG_PAGE_ALL_TPL, DEBUG_PAGE_ALL_TPL);
Template mockJs = BeetlTemplateUtil.getByName("js/mock.js");
FileUtil.nioWriteFile(mockJs.render(), config.getOutPath() + FILE_SEPARATOR + "mock.js");
Template mockJs = BeetlTemplateUtil.getByName(DEBUG_JS_TPL);
FileUtil.nioWriteFile(mockJs.render(), config.getOutPath() + FILE_SEPARATOR + DEBUG_JS_OUT);
} else {
builderTemplate.buildAllInOne(apiDocList, config, javaProjectBuilder, ALL_IN_ONE_HTML_TPL, INDEX_HTML);
}
builderTemplate.buildSearchJs(config, javaProjectBuilder, apiDocList, "js/search_all.js.btl");
builderTemplate.buildSearchJs(config, javaProjectBuilder, apiDocList, SEARCH_ALL_JS_TPL);
} else {
String indexAlias;
if (config.isCreateDebugPage()) {
indexAlias = "mock";
indexAlias = "debug";
buildDoc(builderTemplate, apiDocList, config, javaProjectBuilder, DEBUG_PAGE_SINGLE_TPL, indexAlias);
Template mockJs = BeetlTemplateUtil.getByName("js/mock.js");
FileUtil.nioWriteFile(mockJs.render(), config.getOutPath() + FILE_SEPARATOR + "mock.js");
Template mockJs = BeetlTemplateUtil.getByName(DEBUG_JS_TPL);
FileUtil.nioWriteFile(mockJs.render(), config.getOutPath() + FILE_SEPARATOR + DEBUG_JS_OUT);
} else {
indexAlias = "api";
buildDoc(builderTemplate, apiDocList, config, javaProjectBuilder, SINGLE_INDEX_HTML_TPL, indexAlias);
}
builderTemplate.buildErrorCodeDoc(config, javaProjectBuilder, apiDocList, SINGLE_ERROR_HTML_TPL,
"error.html", indexAlias);
ERROR_CODE_HTML, indexAlias);
builderTemplate.buildDirectoryDataDoc(config, javaProjectBuilder, apiDocList,
SINGLE_DICT_HTML_TPL, "dict.html", indexAlias);
builderTemplate.buildSearchJs(config, javaProjectBuilder, apiDocList, "js/search.js.btl");
SINGLE_DICT_HTML_TPL, DICT_HTML, indexAlias);
builderTemplate.buildSearchJs(config, javaProjectBuilder, apiDocList, SEARCH_JS_TPL);
}
}

View File

@ -45,6 +45,7 @@ import java.util.Map;
import java.util.Objects;
import static com.power.doc.constants.DocGlobalConstants.FILE_SEPARATOR;
import static com.power.doc.constants.DocGlobalConstants.RPC_OUT_DIR;
/**
* @author yu 2020/5/16.
@ -55,6 +56,12 @@ public class RpcDocBuilderTemplate extends BaseDocBuilderTemplate {
private static final String DEPENDENCY_TITLE = "Add dependency";
public void checkAndInit(ApiConfig config) {
super.checkAndInit(config);
config.setOutPath(config.getOutPath() + FILE_SEPARATOR + RPC_OUT_DIR);
}
/**
* Generate api documentation for all controllers.
*
@ -106,7 +113,7 @@ public class RpcDocBuilderTemplate extends BaseDocBuilderTemplate {
tpl.binding(TemplateVariable.CREATE_TIME.getVariable(), strTime);
tpl.binding(TemplateVariable.PROJECT_NAME.getVariable(), config.getProjectName());
tpl.binding(TemplateVariable.RPC_CONSUMER_CONFIG.getVariable(), rpcConfigConfigContent);
setDirectoryLanguageVariable(config, tpl);
FileUtil.nioWriteFile(tpl.render(), outPath + FILE_SEPARATOR + outPutFileName);
}

View File

@ -67,7 +67,6 @@ public class RpcHtmlBuilder {
config.setShowJavaType(true);
RpcDocBuilderTemplate builderTemplate = new RpcDocBuilderTemplate();
builderTemplate.checkAndInit(config);
builderTemplate.checkAndInit(config);
ProjectDocConfigBuilder configBuilder = new ProjectDocConfigBuilder(config, javaProjectBuilder);
RpcDocBuildTemplate docBuildTemplate = new RpcDocBuildTemplate();
List<RpcApiDoc> apiDocList = docBuildTemplate.getApiData(configBuilder);

View File

@ -6,6 +6,7 @@ package com.power.doc.constants;
public interface DocGlobalConstants {
int API_ORDER = 0;
String FILE_SEPARATOR = System.getProperty("file.separator");
String HTML_DOC_OUT_PATH = "src/main/resources/static/doc";
@ -46,20 +47,21 @@ public interface DocGlobalConstants {
String DICT_LIST_ADOC_TPL = "Dictionary.btl";
String INDEX_TPL = "Index.btl";
String SEARCH_ALL_JS_TPL = "js/search_all.js.btl";
String INDEX_CSS_TPL = "index.css";
String SEARCH_JS_TPL = "js/search.js.btl";
String MARKDOWN_CSS_TPL = "markdown.css";
String SEARCH_JS_OUT = "search.js";
String SEARCH_JS = "search.js";
String DEBUG_JS_TPL = "js/debug.js";
String DEBUG_JS_OUT = "debug.js";
String DEBUG_PAGE_TPL = "mock.html";
String DEBUG_PAGE_ALL_TPL = "debug-all.html";
String DEBUG_PAGE_ALL_TPL = "mock-all.html";
String DEBUG_PAGE_SINGLE_TPL = "html/mock.html";
String DEBUG_PAGE_SINGLE_TPL = "html/debug.html";
String SINGLE_INDEX_HTML_TPL = "html/index.html";
@ -69,6 +71,8 @@ public interface DocGlobalConstants {
String ALL_IN_ONE_CSS = "AllInOne.css";
String RPC_OUT_DIR = "rpc";
String RPC_API_DOC_ADOC_TPL = "dubbo/Dubbo.adoc";
String RPC_ALL_IN_ONE_ADOC_TPL = "dubbo/DubboAllInOne.adoc";
@ -168,6 +172,8 @@ public interface DocGlobalConstants {
String EMPTY = "";
String ENUM = "enum";
String YAPI_RESULT_TPL = "yapiJson.btl";
String YAPI_JSON="/yapi.json";
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@ api[${apiLP.dataIndex}].list.push({
<%}%>
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
const theEvent = e || window.event;
const theEvent = e;
const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
const search = document.getElementById('search');
@ -56,11 +56,14 @@ function keyDownSearch(e) {
}
let html;
if (searchValue == '') {
html = buildAccordion(api);
console.log(html);
const liClass = "";
const display = "display: none";
html = buildAccordion(api,liClass,display);
document.getElementById('accordion').innerHTML = html;
} else {
html = buildAccordion(searchArr);
const liClass = "open";
const display = "display: block";
html = buildAccordion(searchArr,liClass,display);
document.getElementById('accordion').innerHTML = html;
}
const Accordion = function (el, multiple) {
@ -87,9 +90,9 @@ function buildAccordion(apiData) {
let doc;
if (apiData.length > 0) {
for (let j = 0; j < apiData.length; j++) {
html += '<li class="open">';
html += '<li>';
html += ' <a class="dd" href="#_' + apiData[j].link + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
html += ' <ul class="sectlevel2" style="display: block">';
html += ' <ul class="sectlevel2" style="display: none">';
doc = apiData[j].list;
for (let m = 0; m < doc.length; m++) {
html += '<li><a href="#_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + doc[m].desc + '</a> </li>';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@ api[${apiLP.dataIndex}].list.push({
<%}%>
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
const theEvent = e || window.event;
const theEvent = e;
const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
const search = document.getElementById('search');
@ -58,11 +58,14 @@ function keyDownSearch(e) {
}
let html;
if (searchValue == '') {
html = buildAccordion(api);
console.log(html);
const liClass = "";
const display = "display: none";
html = buildAccordion(api,liClass,display);
document.getElementById('accordion').innerHTML = html;
} else {
html = buildAccordion(searchArr);
const liClass = "open";
const display = "display: block";
html = buildAccordion(searchArr,liClass,display);
document.getElementById('accordion').innerHTML = html;
}
const Accordion = function (el, multiple) {
@ -84,16 +87,16 @@ function keyDownSearch(e) {
}
}
function buildAccordion(apiData) {
function buildAccordion(apiData, liClass, display) {
let html = "";
let doc;
if (apiData.length > 0) {
for (let j = 0; j < apiData.length; j++) {
html += '<li class="open">';
html += '<li class="'+liClass+'">';
html += ' <a class="dd" href="' + apiData[j].alias + '.html#header">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
html += ' <ul class="sectlevel2" style="display: block">';
html += ' <ul class="sectlevel2" style="'+display+'">';
doc = apiData[j].list;
for (m = 0; m < doc.length; m++) {
for (let m = 0; m < doc.length; m++) {
html += '<li><a href="' + apiData[j].alias + '.html#_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + doc[m].desc + '</a> </li>';
}
html += '</ul>';

View File

@ -16,7 +16,7 @@ api[${apiLP.dataIndex}].list.push({
<%}%>
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
const theEvent = e || window.event;
const theEvent = e;
const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
const search = document.getElementById('search');
@ -56,11 +56,14 @@ function keyDownSearch(e) {
}
let html;
if (searchValue == '') {
html = buildAccordion(api);
console.log(html);
const liClass = "";
const display = "display: none";
html = buildAccordion(api,liClass,display);
document.getElementById('accordion').innerHTML = html;
} else {
html = buildAccordion(searchArr);
const liClass = "open";
const display = "display: block";
html = buildAccordion(searchArr,liClass,display);
document.getElementById('accordion').innerHTML = html;
}
const Accordion = function (el, multiple) {
@ -82,14 +85,14 @@ function keyDownSearch(e) {
}
}
function buildAccordion(apiData) {
function buildAccordion(apiData, liClass, display) {
let html = "";
let doc;
if (apiData.length > 0) {
for (let j = 0; j < apiData.length; j++) {
html += '<li class="open">';
html += '<li class="'+liClass+'">';
html += ' <a class="dd" href="#_' + apiData[j].link + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
html += ' <ul class="sectlevel2" style="display: block">';
html += ' <ul class="sectlevel2" style="'+display+'">';
doc = apiData[j].list;
for (let m = 0; m < doc.length; m++) {
html += '<li><a href="#_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + doc[m].desc + '</a> </li>';