1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-16 23:22:20 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

导出markdown接口基本功能完成

This commit is contained in:
2022-04-19 16:52:08 +08:00
parent b7a593e98e
commit fb9db00b3a
3 changed files with 137 additions and 34 deletions

View File

@@ -13,6 +13,7 @@ public class MarkdownTable {
this.format = format;
}
@Override
public String toString() {
return format;
}
@@ -30,11 +31,22 @@ public class MarkdownTable {
// 表格的样式
private Alignment[] alignments;
private MarkdownTable(Integer numOfColumns) {
// 表格为空时是否输出
private Boolean notExportWhenEmpty = true;
public MarkdownTable doNotExportWhenEmpty(Boolean notExportWhenEmpty) {
this.notExportWhenEmpty = notExportWhenEmpty;
return this;
}
private MarkdownTable() {
}
private void init(Integer numOfColumns) {
this.numOfColumns = numOfColumns;
headers = new String[numOfColumns];
alignments = new Alignment[numOfColumns];
rows = new ArrayList<>();
this.headers = new String[numOfColumns];
this.alignments = new Alignment[numOfColumns];
this.rows = new ArrayList<>();
}
/**
@@ -48,7 +60,15 @@ public class MarkdownTable {
* @return
*/
public static MarkdownTable create(Integer numOfColumns) {
return new MarkdownTable(numOfColumns);
MarkdownTable markdownTable = new MarkdownTable();
if (numOfColumns > 0) {
markdownTable.init(numOfColumns);
}
return markdownTable;
}
public static MarkdownTable create() {
return new MarkdownTable();
}
/**
@@ -57,14 +77,17 @@ public class MarkdownTable {
* @param header
* @return
*/
public MarkdownTable setHeader(Object... header) {
public MarkdownTable setHeader(String... header) {
if (numOfColumns == 0) {
init(header.length);
}
if (header.length != numOfColumns) {
throw new IllegalArgumentException("表格的列数不匹配");
}
int i = 0;
for (Object o : header) {
headers[i++] = o.toString();
for (String o : header) {
this.headers[i++] = o;
}
return this;
}
@@ -76,6 +99,9 @@ public class MarkdownTable {
* @return
*/
public MarkdownTable setAlignment(Alignment... alignments) {
if (numOfColumns == 0) {
init(alignments.length);
}
if (alignments.length != numOfColumns) {
throw new IllegalArgumentException("表格的列数不匹配");
}
@@ -97,6 +123,9 @@ public class MarkdownTable {
* @return
*/
public MarkdownTable addRow(String... row) {
if (numOfColumns == 0) {
init(row.length);
}
if (row.length != numOfColumns) {
throw new IllegalArgumentException("表格的列数不匹配");
}
@@ -109,12 +138,11 @@ public class MarkdownTable {
*
* @return
*/
@Override
public String toString() {
return toStringBuilder().toString();
}
public String getMarkdown() {
if (notExportWhenEmpty && rows.size() == 0) {
return "";
}
public StringBuilder toStringBuilder() {
StringBuilder stringBuilder = new StringBuilder();
// 表头
@@ -140,6 +168,7 @@ public class MarkdownTable {
// stringBuilder.append(" |\n");
for (String o : row) {
if (o == null) o = "";
stringBuilder.append(" ");
stringBuilder.append(o.replace("\n", "<br>")
.replace("|", "\\|"));
@@ -150,6 +179,6 @@ public class MarkdownTable {
// 删除最后一个换行符
stringBuilder.deleteCharAt(stringBuilder.lastIndexOf("\n"));
return stringBuilder;
return stringBuilder.toString();
}
}