MCPcopy Index your code
hub / github.com/Steppschuh/Java-Markdown-Generator

github.com/Steppschuh/Java-Markdown-Generator @1.3.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.3.2 ↗ · + Follow
293 symbols 638 edges 51 files 69 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Java Markdown Generator

Travis JitPack Bintray Maven Central Codecov

Simple to use Java library to generate beautiful markdown.

Screenshot

Usage

Integration

Gradle

You can get snapshot and release builds from JitPack:

repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    compile 'com.github.Steppschuh:Java-Markdown-Generator:master-SNAPSHOT'
}

Alternatively, release builds are also available on Bintray:

repositories {
    maven { url 'http://dl.bintray.com/steppschuh/Markdown-Generator' }
}
dependencies {
    compile 'net.steppschuh.markdowngenerator:markdowngenerator:1.3.2'
}

Maven

<dependency>
  <groupId>net.steppschuh.markdowngenerator</groupId>
  <artifactId>markdowngenerator</artifactId>
  <version>1.3.2</version>
</dependency>

JAR

You can download the latest .jar files from GitHub or Bintray.

Examples

Most Markdown elements have static convenience methods in the Markdown class. You can also use their repesctive constructors, as shown below.

Emphasis

@Test
public void example() throws Exception {
    StringBuilder sb = new StringBuilder()
            .append(new Text("I am normal")).append("\n")
            .append(new BoldText("I am bold")).append("\n")
            .append(new ItalicText("I am italic")).append("\n")
            .append(new StrikeThroughText("I am strike-through"));

    System.out.println(sb);
}

Output:

I am normal
**I am bold**
_I am italic_
~~I am strike-through~~

Headings

@Test
public void example() throws Exception {
    StringBuilder sb = new StringBuilder()
            .append(new Heading("Heading with level 1", 1)).append("\n")
            .append(new Heading("Heading with level 2", 2)).append("\n")
            .append(new Heading("Heading with level 3", 3)).append("\n")
            .append(new Heading("Heading with level 4", 4)).append("\n")
            .append(new Heading("Heading with level 5", 5)).append("\n")
            .append(new Heading("Heading with level 6", 6));

    System.out.println(sb);
}

Output:

Heading with level 1
====================
Heading with level 2
--------------------
### Heading with level 3
#### Heading with level 4
##### Heading with level 5
###### Heading with level 6

Rules

@Test
public void example() throws Exception {
    System.out.println(new HorizontalRule());
    System.out.println(new HorizontalRule(20, HorizontalRule.ASTERISK));
}

Output:

---
********************

Images

@Test
public void example() throws Exception {
    String text = "I am an image";
    String url = "https://dummyimage.com/300";
    System.out.println(new Image(text, url));
}

Output:

![I am an image](https://dummyimage.com/300)

Lists

@Test
public void example() throws Exception {
    List<Object> items = Arrays.asList(
            "Items can be anything",
            new Date(0),
            1337
    );
    System.out.println(new UnorderedList<>(items));
}

Output:

- Items can be anything
- Thu Jan 01 01:00:00 CET 1970
- 1337

Tasks

@Test
public void example() throws Exception {
    List<TaskListItem> items = Arrays.asList(
            new TaskListItem("Task 1", true),
            new TaskListItem("Task 2", false),
            new TaskListItem("Task 3")
    );
    System.out.println(new TaskList(items));
}

Output:

- [x] Task 1
- [ ] Task 2
- [ ] Task 3

Tables

@Test
public void example() throws Exception {
    Table.Builder tableBuilder = new Table.Builder()
            .withAlignments(Table.ALIGN_RIGHT, Table.ALIGN_LEFT)
            .withRowLimit(7)
            .addRow("Index", "Boolean");

    for (int i = 1; i <= 20; i++) {
        tableBuilder.addRow(i, Math.random() > 0.5);
    }

    System.out.println(tableBuilder.build());
}

Output:

| Index | Boolean |
| -----:| ------- |
|     1 | false   |
|     2 | true    |
|     3 | false   |
| ~~~~~ | ~~~~~~~ |
|    18 | false   |
|    19 | true    |
|    20 | false   |

Code

@Test
public void example() throws Exception {
    String code = "// notice this new line\n" +
            "System.out.println(\"Hello\");";
    System.out.println(new CodeBlock(code, "Java"));
}

Output:

    ```Java
    // notice this new line
    System.out.println("Hello");
    ```

Extension points exported contracts — how you extend this code

MarkdownSerializable (Interface)
Created by steppschuh on 07/10/2016. [6 implementers]
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownSerializable.java
MarkdownCascadable (Interface)
MarkdownElements that can be wrapped around other MarkdownElements should implement this interface. [5 implementers]
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownCascadable.java

Core symbols most depended-on inside this repo

append
called by 40
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/list/ListBuilder.java
invalidateSerialized
called by 23
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownElement.java
append
called by 19
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownBuilder.java
toString
called by 19
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownBuilder.java
append
called by 14
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/text/TextBuilder.java
newParagraph
called by 12
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownBuilder.java
text
called by 12
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/Markdown.java
getRows
called by 11
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/table/Table.java

Shape

Method 241
Class 50
Interface 2

Languages

Java100%

Modules by API surface

Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownBuilder.java36 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/table/Table.java27 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/progress/ProgressBar.java27 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/Markdown.java18 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/text/heading/Heading.java9 symbols
Source/MarkdownGenerator/src/test/java/net/steppschuh/markdowngenerator/DummyObject.java8 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/list/UnorderedList.java8 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/text/Text.java7 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/link/Link.java7 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/MarkdownElement.java7 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/util/StringUtil.java6 symbols
Source/MarkdownGenerator/src/main/java/net/steppschuh/markdowngenerator/text/code/CodeBlock.java6 symbols

For agents

$ claude mcp add Java-Markdown-Generator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact