mirror of
https://github.com/YMFE/yapi.git
synced 2025-02-23 13:59:28 +08:00
fix: 修改导出html数据的格式
This commit is contained in:
parent
22b3de9aa7
commit
b77383a9ad
@ -80,7 +80,24 @@ class exportController extends baseController{
|
|||||||
markdown.use(markdownItTableOfContents,{
|
markdown.use(markdownItTableOfContents,{
|
||||||
markerPattern: /^\[toc\]/im
|
markerPattern: /^\[toc\]/im
|
||||||
});
|
});
|
||||||
let tp = defaultTheme + unescape(markdown.render(md));
|
|
||||||
|
let tp = defaultTheme + `<style>.table-of-contents:before{
|
||||||
|
content: "项目名:${curProject.name}";
|
||||||
|
font-size: 20px;
|
||||||
|
padding: 10px 0px;
|
||||||
|
display: block;
|
||||||
|
line-height: 25px;
|
||||||
|
color:black;
|
||||||
|
font-weight: bolder;
|
||||||
|
}</style>`+ `<style>.table-of-contents ul:before{
|
||||||
|
content: "项目描述: ${curProject.desc}";
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 10px 0px;
|
||||||
|
padding-right:15px;
|
||||||
|
display: block;
|
||||||
|
line-height: 20px;
|
||||||
|
color:gray;
|
||||||
|
}</style>` + unescape(markdown.render(md));
|
||||||
tp = createHtml5(tp);
|
tp = createHtml5(tp);
|
||||||
return tp;
|
return tp;
|
||||||
}
|
}
|
||||||
@ -100,18 +117,20 @@ class exportController extends baseController{
|
|||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
function createBaseMessage(inter){
|
function createBaseMessage(inter){
|
||||||
// 基本信息
|
// 基本信息
|
||||||
let baseMessage = `### 基本信息\n\n**接口描述:**\n\n${inter.desc?escape(inter.desc):""}\n\n**接口名称:** ${inter.title}\n\n**接口路径:** ${curProject.basepath + inter.path}\n\n`;
|
let baseMessage = `### 基本信息\n\n**接口名称:** ${inter.title}\n\n**接口路径:** ${curProject.basepath + inter.path}\n\n**接口描述:**\n${inter.desc?escape(inter.desc):""}\n`;
|
||||||
return baseMessage;
|
return baseMessage;
|
||||||
}
|
}
|
||||||
|
function replaceBr(str){
|
||||||
|
return str.replace("\n",escape("<br/>"));
|
||||||
|
}
|
||||||
function createReqHeaders(req_headers){
|
function createReqHeaders(req_headers){
|
||||||
// Request-headers
|
// Request-headers
|
||||||
if(req_headers&&req_headers.length){
|
if(req_headers&&req_headers.length){
|
||||||
let headersTable = `**Headers:**\n\n`;
|
let headersTable = `**Headers:**\n\n`;
|
||||||
headersTable += `| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`;
|
headersTable += `| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`;
|
||||||
for(let j = 0;j<req_headers.length;j++){
|
for(let j = 0;j<req_headers.length;j++){
|
||||||
headersTable += `| ${escape(req_headers[j].name||"")||""} | ${escape(req_headers[j].value||"")||""} | ${req_headers[j].required?"是":"否"} | ${escape(req_headers[j].example||"")||""} | ${escape(req_headers[j].desc||"")||""} |\n`;
|
headersTable += `| ${replaceBr(req_headers[j].name||"")||""} | ${replaceBr(req_headers[j].value||"")||""} | ${req_headers[j].required?"是":"否"} | ${replaceBr(req_headers[j].example||"")||""} | ${replaceBr(req_headers[j].desc||"")||""} |\n`;
|
||||||
}
|
}
|
||||||
return headersTable;
|
return headersTable;
|
||||||
}
|
}
|
||||||
@ -123,7 +142,7 @@ class exportController extends baseController{
|
|||||||
let paramsTable = `**路径参数**\n`;
|
let paramsTable = `**路径参数**\n`;
|
||||||
paramsTable += `| 参数名称 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`;
|
paramsTable += `| 参数名称 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`;
|
||||||
for(let j = 0;j<req_params.length;j++){
|
for(let j = 0;j<req_params.length;j++){
|
||||||
paramsTable += `| ${escape(req_params[j].name||"") || ""} | ${escape(req_params[j].example||"") || ""} | ${escape(req_params[j].desc||"")||""} |\n`;
|
paramsTable += `| ${replaceBr(req_params[j].name||"") || ""} | ${replaceBr(req_params[j].example||"") || ""} | ${replaceBr(req_params[j].desc||"")||""} |\n`;
|
||||||
}
|
}
|
||||||
return paramsTable;
|
return paramsTable;
|
||||||
}
|
}
|
||||||
@ -135,7 +154,7 @@ class exportController extends baseController{
|
|||||||
let headersTable = `**Query**\n\n`;
|
let headersTable = `**Query**\n\n`;
|
||||||
headersTable += `| 参数名称 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ |\n`;
|
headersTable += `| 参数名称 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ |\n`;
|
||||||
for(let j = 0;j<req_query.length;j++){
|
for(let j = 0;j<req_query.length;j++){
|
||||||
headersTable += `| ${escape(req_query[j].name||"") || ""} | ${req_query[j].required?"是":"否"} | ${escape(req_query[j].example||"") || ""} | ${escape(req_query[j].desc||"")||""} |\n`;
|
headersTable += `| ${replaceBr(req_query[j].name||"") || ""} | ${req_query[j].required?"是":"否"} | ${replaceBr(req_query[j].example||"") || ""} | ${replaceBr(req_query[j].desc||"")||""} |\n`;
|
||||||
}
|
}
|
||||||
return headersTable;
|
return headersTable;
|
||||||
}
|
}
|
||||||
@ -147,7 +166,7 @@ class exportController extends baseController{
|
|||||||
let bodyTable = `**Body:**\n\n`
|
let bodyTable = `**Body:**\n\n`
|
||||||
bodyTable += `| 参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`; let req_body = req_body_form;
|
bodyTable += `| 参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |\n| ------------ | ------------ | ------------ | ------------ | ------------ |\n`; let req_body = req_body_form;
|
||||||
for(let j = 0;j<req_body.length;j++){
|
for(let j = 0;j<req_body.length;j++){
|
||||||
bodyTable += `| ${escape(req_body[j].name||"") || ""} | ${req_body[j].type || ""} | ${req_body[j].required?"是":"否"} | ${escape(req_body[j].example||"")||""} | ${escape(req_body[j].desc||"")||""} |\n`;
|
bodyTable += `| ${replaceBr(req_body[j].name||"") || ""} | ${req_body[j].type || ""} | ${req_body[j].required?"是":"否"} | ${replaceBr(req_body[j].example||"")||""} | ${replaceBr(req_body[j].desc||"")||""} |\n`;
|
||||||
}
|
}
|
||||||
return `${bodyTable}\n\n`;
|
return `${bodyTable}\n\n`;
|
||||||
}else if(req_body_other){//other
|
}else if(req_body_other){//other
|
||||||
@ -167,7 +186,7 @@ class exportController extends baseController{
|
|||||||
async function createMarkdown(pid,isToc){//拼接markdown
|
async function createMarkdown(pid,isToc){//拼接markdown
|
||||||
//模板
|
//模板
|
||||||
let mdTemplate = ``;
|
let mdTemplate = ``;
|
||||||
const toc = `**目录 (Table of Contents)**\n\n[TOC]\n\n`;
|
const toc = `[TOC]\n\n`;
|
||||||
if(isToc){
|
if(isToc){
|
||||||
mdTemplate += toc;
|
mdTemplate += toc;
|
||||||
}
|
}
|
||||||
@ -175,7 +194,7 @@ class exportController extends baseController{
|
|||||||
const interList = await this.interModel.listByPid(pid);
|
const interList = await this.interModel.listByPid(pid);
|
||||||
for(let i = 0;i<interList.length;i++){//循环拼接 接口
|
for(let i = 0;i<interList.length;i++){//循环拼接 接口
|
||||||
// 接口名称
|
// 接口名称
|
||||||
mdTemplate += `\n## ${interList[i].title}\n`;
|
mdTemplate += `\n## ${escape(`${interList[i].title}\n<a id=${interList[i].title}> </a>`)}\n`;
|
||||||
// 基本信息
|
// 基本信息
|
||||||
mdTemplate += createBaseMessage(interList[i]);
|
mdTemplate += createBaseMessage(interList[i]);
|
||||||
// Request
|
// Request
|
||||||
|
@ -145,4 +145,73 @@ sup {
|
|||||||
page-break-inside: avoid;
|
page-break-inside: avoid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
html,body{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.table-of-contents{
|
||||||
|
float: left;
|
||||||
|
width: 240px;
|
||||||
|
overflow: auto;
|
||||||
|
margin-left: -240px;
|
||||||
|
position: fixed;
|
||||||
|
padding-right: 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
/* left: 0px; */
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents ul{
|
||||||
|
overflow: auto;
|
||||||
|
margin: 0px;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0px 0px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
}
|
||||||
|
.table-of-contents ul li{
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
.table-of-contents ul:before{
|
||||||
|
content: "目录";
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 10px 0px;
|
||||||
|
display: block;
|
||||||
|
line-height: 25px;
|
||||||
|
color:black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents a{
|
||||||
|
padding: 2px 0px;
|
||||||
|
display: block;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
body>h2{
|
||||||
|
font-size: 30px;
|
||||||
|
padding: 10px 0px;
|
||||||
|
}
|
||||||
|
body>p{
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
body>table{
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
body>pre{
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
.curProject{
|
||||||
|
position: fixed;
|
||||||
|
top:20px;
|
||||||
|
font-size:25px;
|
||||||
|
color:black;
|
||||||
|
margin-left:-240px;
|
||||||
|
width:240px;
|
||||||
|
padding:5px;
|
||||||
|
line-height:25px;
|
||||||
|
box-sizing:border-box;
|
||||||
|
}
|
||||||
|
|
||||||
</style>`
|
</style>`
|
Loading…
Reference in New Issue
Block a user