From 035e3d48385d05d9c2206aee323faf21428b0842 Mon Sep 17 00:00:00 2001 From: codejava Date: Mon, 13 Apr 2026 10:45:43 +0300 Subject: [PATCH] Upload files to "java/md2html" --- java/md2html/BlockCreator.java | 67 ++++++++++++++++++++++++++++++++++ java/md2html/Code.java | 11 ++++++ java/md2html/Del.java | 11 ++++++ java/md2html/Header.java | 11 ++++++ java/md2html/Ins.java | 11 ++++++ 5 files changed, 111 insertions(+) create mode 100644 java/md2html/BlockCreator.java create mode 100644 java/md2html/Code.java create mode 100644 java/md2html/Del.java create mode 100644 java/md2html/Header.java create mode 100644 java/md2html/Ins.java diff --git a/java/md2html/BlockCreator.java b/java/md2html/BlockCreator.java new file mode 100644 index 0000000..e9afaa8 --- /dev/null +++ b/java/md2html/BlockCreator.java @@ -0,0 +1,67 @@ +package md2html; + +import java.util.ArrayList; +import java.util.List; + +public class BlockCreator { + + private final String text; + private final List blocks; + + public BlockCreator(String text) { + this.text = text; + blocks = new ArrayList<>(); + } + + public List divideByBlocks() { + StringBuilder sb = new StringBuilder(); + int i = 0; + while (i < text.length()) { + if (isNewLine(text.charAt(i))) { + i = newLine(i); + if (i < text.length() && isNewLine(text.charAt(i))) { + i = newLine(i); + addToBlock(sb); + } else if (i < text.length()) { + if (!sb.isEmpty()) { + sb.append(System.lineSeparator()); + } + sb.append(text.charAt(i++)); + } + } else { + sb.append(text.charAt(i++)); + } + } + addToBlock(sb); + return blocks; + } + + private void addToBlock(StringBuilder item) { + if (!item.isEmpty()) { + blocks.add(item.toString()); + item.setLength(0); + } + } + + private int newLine(int i) { + if (i < text.length() && text.charAt(i) == '\r') { + i++; + if (i < text.length() && text.charAt(i) == '\n') { + i++; + } + } else { + i++; + } + return i; + } + + private static boolean isNewLine(char ch) { + return ( + (ch == '\u2028') || + (ch == '\u2029') || + (ch == '\u0085') || + (ch == '\n') || + (ch == '\r') + ); + } +} diff --git a/java/md2html/Code.java b/java/md2html/Code.java new file mode 100644 index 0000000..7fac999 --- /dev/null +++ b/java/md2html/Code.java @@ -0,0 +1,11 @@ +package md2html; + +import java.util.List; +import markup.*; + +public class Code extends AbstractMarkup implements PartOfParagraph { + + public Code(List items) { + super(items, "'", "code", "", ""); + } +} diff --git a/java/md2html/Del.java b/java/md2html/Del.java new file mode 100644 index 0000000..a3baeb5 --- /dev/null +++ b/java/md2html/Del.java @@ -0,0 +1,11 @@ +package md2html; + +import java.util.List; +import markup.*; + +public class Del extends AbstractMarkup implements PartOfParagraph { + + public Del(List items) { + super(items, "}}", "del", "", ""); + } +} diff --git a/java/md2html/Header.java b/java/md2html/Header.java new file mode 100644 index 0000000..c87ccd7 --- /dev/null +++ b/java/md2html/Header.java @@ -0,0 +1,11 @@ +package md2html; + +import java.util.List; +import markup.*; + +public class Header extends AbstractMarkup implements PrimePart { + + public Header(List items, int level) { + super(items, "#".repeat(level), "h" + level, "", ""); + } +} diff --git a/java/md2html/Ins.java b/java/md2html/Ins.java new file mode 100644 index 0000000..126ce00 --- /dev/null +++ b/java/md2html/Ins.java @@ -0,0 +1,11 @@ +package md2html; + +import java.util.List; +import markup.*; + +public class Ins extends AbstractMarkup implements PartOfParagraph { + + public Ins(List items) { + super(items, "<<", "ins", "", ""); + } +}