com.hn.robot.dingtalk.domain.Markdown Maven / Gradle / Ivy
package com.hn.robot.dingtalk.domain;
/**
* 描述: markdown类型
* 标题
* # 一级标题
* ## 二级标题
* ### 三级标题
* #### 四级标题
* ##### 五级标题
* ###### 六级标题
*
* 引用
*
* 文字加粗、斜体
* **bold**
* *italic*
*
* 链接
* [this is a link](http://name.com)
*
* 图片
* ![](http://name.com/pic.jpg)
*
* 无序列表
* - item1
* - item2
*
* 有序列表
* 1. item1
* 2. item2
*
* @author fei
*/
public class Markdown {
/**
* 标题
*/
private String title;
/**
* 文本内容
*/
private StringBuilder text;
public Markdown(String title) {
this.title = title;
this.text = new StringBuilder();
}
public String getTitle() {
return title;
}
public StringBuilder getText() {
return text;
}
/**
* 标题
* # 一级标题
* ## 二级标题
* ### 三级标题
* #### 四级标题
* ##### 五级标题
* ###### 六级标题
*
* @param level 标题级别
* @param title 标题名称
* @return Markdown
*/
public Markdown title(int level, String title) {
if (level == 0) {
level = 1;
}
for (int i = 0; i < level; i++) {
text.append("#");
}
text.append(" ");
text.append(title);
ln();
return this;
}
/**
* 普通文本
*
* @param content 内容
* @return Markdown
*/
public Markdown text(String content) {
text.append(content);
return this;
}
/**
* 引用
*
* @param content 内容
* @return Markdown
*/
public Markdown quote(String content) {
text.append("> ").append(content);
return this;
}
/**
* 文字加粗
*
* @param content 内容
* @return Markdown
*/
public Markdown bold(String content) {
text.append("**").append(content).append("**");
return this;
}
/**
* 斜体
*
* @param content 内容
* @return Markdown
*/
public Markdown italic(String content) {
text.append("*").append(content).append("*");
return this;
}
/**
* 链接
* [this is a link](http://name.com)
*
* @param content 链接名称
* @param link 链接地址
* @return Markdown
*/
public Markdown link(String content, String link) {
text.append("[").append(content).append("](").append(link).append(")");
return this;
}
/**
* 图片
* ![](http://name.com/pic.jpg)
*
* @param imgUrl 图片链接
* @return Markdown
*/
public Markdown image(String imgUrl) {
text.append("![](").append(imgUrl).append(")");
return this;
}
/**
* 无序列表
* - item1
* - item2
*
* @param content 内容
* @return Markdown
*/
public Markdown item(String content) {
text.append("-").append(" ").append(content);
return this;
}
/**
* 换行
*
* @return Markdown
*/
public Markdown ln() {
text.append("\n");
return this;
}
private int i = 0;
/**
* 有序列表
* 1. item1
* 2. item2
*
* @param content 内容
* @return Markdown
*/
public Markdown itemNum(String content) {
i++;
text.append(i).append(".").append(" ").append(content);
return this;
}
}