Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b80aeff1 authored by Stefan Niedermann's avatar Stefan Niedermann
Browse files

Move removeMarkdown() util method to MarkdownUtil

parent d7f30f44
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import it.niedermann.android.markdown.MarkdownUtil;
import it.niedermann.owncloud.notes.shared.util.NoteUtil;

/**
@@ -46,7 +47,7 @@ public class CloudNote implements Serializable {
    }

    public void setTitle(String title) {
        this.title = NoteUtil.removeMarkDown(title);
        this.title = MarkdownUtil.removeMarkdown(title);
    }

    public Calendar getModified() {
+8 −35
Original line number Diff line number Diff line
@@ -7,10 +7,10 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.regex.Pattern;

import it.niedermann.owncloud.notes.R;

import static it.niedermann.android.markdown.MarkdownUtil.removeMarkdown;

/**
 * Provides basic functionality for Note operations.
 * Created by stefan on 06.10.15.
@@ -18,39 +18,12 @@ import it.niedermann.owncloud.notes.R;
@SuppressWarnings("WeakerAccess")
public class NoteUtil {

    private static final Pattern pLists = Pattern.compile("^\\s*[*+-]\\s+", Pattern.MULTILINE);
    private static final Pattern pHeadings = Pattern.compile("^#+\\s+(.*?)\\s*#*$", Pattern.MULTILINE);
    private static final Pattern pHeadingLine = Pattern.compile("^(?:=*|-*)$", Pattern.MULTILINE);
    private static final Pattern pEmphasis = Pattern.compile("(\\*+|_+)(.*?)\\1", Pattern.MULTILINE);
    private static final Pattern pSpace1 = Pattern.compile("^\\s+", Pattern.MULTILINE);
    private static final Pattern pSpace2 = Pattern.compile("\\s+$", Pattern.MULTILINE);

    public static final String EXCERPT_LINE_SEPARATOR = "   ";

    private NoteUtil() {

    }

    /**
     * Strips all MarkDown from the given String
     *
     * @param s String - MarkDown
     * @return Plain Text-String
     */
    @NonNull
    public static String removeMarkDown(@Nullable String s) {
        if (s == null)
            return "";
        String result = s;
        result = pLists.matcher(result).replaceAll("");
        result = pHeadings.matcher(result).replaceAll("$1");
        result = pHeadingLine.matcher(result).replaceAll("");
        result = pEmphasis.matcher(result).replaceAll("$2");
        result = pSpace1.matcher(result).replaceAll("");
        result = pSpace2.matcher(result).replaceAll("");
        return result;
    }

    /**
     * Checks if a line is empty.
     * <pre>
@@ -65,7 +38,7 @@ public class NoteUtil {
     * @return boolean isEmpty
     */
    public static boolean isEmptyLine(@Nullable String line) {
        return removeMarkDown(line).trim().length() == 0;
        return removeMarkdown(line).trim().length() == 0;
    }

    /**
@@ -90,12 +63,12 @@ public class NoteUtil {
     */
    @NonNull
    public static String generateNoteExcerpt(@NonNull String content, @Nullable String title) {
        content = removeMarkDown(content.trim());
        content = removeMarkdown(content.trim());
        if(TextUtils.isEmpty(content)) {
            return "";
        }
        if (!TextUtils.isEmpty(title)) {
            final String trimmedTitle = removeMarkDown(title.trim());
            final String trimmedTitle = removeMarkdown(title.trim());
            if (content.startsWith(trimmedTitle)) {
                content = content.substring(trimmedTitle.length());
            }
@@ -120,7 +93,7 @@ public class NoteUtil {
     */
    @NonNull
    public static String generateNoteTitle(@NonNull String content) {
        return getLineWithoutMarkDown(content, 0);
        return getLineWithoutMarkdown(content, 0);
    }

    /**
@@ -131,7 +104,7 @@ public class NoteUtil {
     * @return lineContent String
     */
    @NonNull
    public static String getLineWithoutMarkDown(@NonNull String content, int lineNumber) {
    public static String getLineWithoutMarkdown(@NonNull String content, int lineNumber) {
        String line = "";
        if (content.contains("\n")) {
            String[] lines = content.split("\n");
@@ -140,7 +113,7 @@ public class NoteUtil {
                currentLine++;
            }
            if (currentLine < lines.length) {
                line = NoteUtil.removeMarkDown(lines[currentLine]);
                line = removeMarkdown(lines[currentLine]);
            }
        } else {
            line = content;
+0 −17
Original line number Diff line number Diff line
package it.niedermann.owncloud.notes.shared.model;

import junit.framework.TestCase;

import it.niedermann.owncloud.notes.shared.util.NoteUtil;

/**
 * Tests the Note Model
 * Created by stefan on 06.10.15.
 */
public class NoteTest extends TestCase {

    public void testMarkDownStrip() {
        assertEquals("Title", NoteUtil.removeMarkDown("# Title"));
        assertEquals("Aufzählung", NoteUtil.removeMarkDown("* Aufzählung"));
    }
}
+4 −34
Original line number Diff line number Diff line
@@ -7,36 +7,6 @@ import junit.framework.TestCase;
 * Created by stefan on 06.10.15.
 */
public class NoteUtilTest extends TestCase {
    public void testRemoveMarkDown() {
        assertEquals("Test", NoteUtil.removeMarkDown("Test"));
        assertEquals("Foo\nBar", NoteUtil.removeMarkDown("Foo\nBar"));
        assertEquals("Foo\nBar", NoteUtil.removeMarkDown("Foo\n  Bar"));
        assertEquals("Foo\nBar", NoteUtil.removeMarkDown("Foo   \nBar"));
        assertEquals("Foo-Bar", NoteUtil.removeMarkDown("Foo-Bar"));
        assertEquals("Foo*Bar", NoteUtil.removeMarkDown("Foo*Bar"));
        assertEquals("Foo/Bar", NoteUtil.removeMarkDown("Foo/Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo*Test*Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo**Test**Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo***Test***Bar"));
        assertEquals("FooTest*Bar", NoteUtil.removeMarkDown("Foo*Test**Bar"));
        assertEquals("Foo*TestBar", NoteUtil.removeMarkDown("Foo***Test**Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo_Test_Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo__Test__Bar"));
        assertEquals("FooTestBar", NoteUtil.removeMarkDown("Foo___Test___Bar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\n# Header\nBar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\n### Header\nBar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\n# Header #\nBar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\n## Header ####\nBar"));
        assertEquals("Foo\nNo Header #\nBar", NoteUtil.removeMarkDown("Foo\nNo Header #\nBar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\nHeader\n=\nBar"));
        assertEquals("Foo\nHeader\nBar", NoteUtil.removeMarkDown("Foo\nHeader\n-----\nBar"));
        assertEquals("Foo\nHeader\n--=--\nBar", NoteUtil.removeMarkDown("Foo\nHeader\n--=--\nBar"));
        assertEquals("Foo\nAufzählung\nBar", NoteUtil.removeMarkDown("Foo\n* Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", NoteUtil.removeMarkDown("Foo\n+ Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", NoteUtil.removeMarkDown("Foo\n- Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", NoteUtil.removeMarkDown("Foo\n    - Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung *\nBar", NoteUtil.removeMarkDown("Foo\n* Aufzählung *\nBar"));
    }

    public void testIsEmptyLine() {
        assertTrue(NoteUtil.isEmptyLine(" "));
@@ -48,10 +18,10 @@ public class NoteUtilTest extends TestCase {
    }

    public void testGetLineWithoutMarkDown() {
        assertEquals("Test", NoteUtil.getLineWithoutMarkDown("Test", 0));
        assertEquals("Test", NoteUtil.getLineWithoutMarkDown("\nTest", 0));
        assertEquals("Foo", NoteUtil.getLineWithoutMarkDown("Foo\nBar", 0));
        assertEquals("Bar", NoteUtil.getLineWithoutMarkDown("Foo\nBar", 1));
        assertEquals("Test", NoteUtil.getLineWithoutMarkdown("Test", 0));
        assertEquals("Test", NoteUtil.getLineWithoutMarkdown("\nTest", 0));
        assertEquals("Foo", NoteUtil.getLineWithoutMarkdown("Foo\nBar", 0));
        assertEquals("Bar", NoteUtil.getLineWithoutMarkdown("Foo\nBar", 1));
    }

    public void testGenerateNoteTitle() {
+35 −0
Original line number Diff line number Diff line
@@ -626,4 +626,39 @@ public class MarkdownUtilTest extends TestCase {
            e.printStackTrace();
        }
    }

    @Test
    public void testRemoveMarkDown() {
        assertEquals("Test", MarkdownUtil.removeMarkdown("Test"));
        assertEquals("Foo\nBar", MarkdownUtil.removeMarkdown("Foo\nBar"));
        assertEquals("Foo\nBar", MarkdownUtil.removeMarkdown("Foo\n  Bar"));
        assertEquals("Foo\nBar", MarkdownUtil.removeMarkdown("Foo   \nBar"));
        assertEquals("Foo-Bar", MarkdownUtil.removeMarkdown("Foo-Bar"));
        assertEquals("Foo*Bar", MarkdownUtil.removeMarkdown("Foo*Bar"));
        assertEquals("Foo/Bar", MarkdownUtil.removeMarkdown("Foo/Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo*Test*Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo**Test**Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo***Test***Bar"));
        assertEquals("FooTest*Bar", MarkdownUtil.removeMarkdown("Foo*Test**Bar"));
        assertEquals("Foo*TestBar", MarkdownUtil.removeMarkdown("Foo***Test**Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo_Test_Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo__Test__Bar"));
        assertEquals("FooTestBar", MarkdownUtil.removeMarkdown("Foo___Test___Bar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\n# Header\nBar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\n### Header\nBar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\n# Header #\nBar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\n## Header ####\nBar"));
        assertEquals("Foo\nNo Header #\nBar", MarkdownUtil.removeMarkdown("Foo\nNo Header #\nBar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\nHeader\n=\nBar"));
        assertEquals("Foo\nHeader\nBar", MarkdownUtil.removeMarkdown("Foo\nHeader\n-----\nBar"));
        assertEquals("Foo\nHeader\n--=--\nBar", MarkdownUtil.removeMarkdown("Foo\nHeader\n--=--\nBar"));
        assertEquals("Foo\nAufzählung\nBar", MarkdownUtil.removeMarkdown("Foo\n* Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", MarkdownUtil.removeMarkdown("Foo\n+ Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", MarkdownUtil.removeMarkdown("Foo\n- Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung\nBar", MarkdownUtil.removeMarkdown("Foo\n    - Aufzählung\nBar"));
        assertEquals("Foo\nAufzählung *\nBar", MarkdownUtil.removeMarkdown("Foo\n* Aufzählung *\nBar"));
        assertEquals("Title", MarkdownUtil.removeMarkdown("# Title"));
        assertEquals("Aufzählung", MarkdownUtil.removeMarkdown("* Aufzählung"));
//        assertEquals("Foo Link Bar", MarkdownUtil.removeMarkdown("Foo [Link](https://example.com) Bar"));
    }
}
 No newline at end of file
Loading