Sample app, first real sample
This commit is contained in:
parent
bea6d6aeec
commit
dc139319a0
@ -1,45 +1,14 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"javaClassName": "io.noties.markwon.app.samples.nested.ThirdSample",
|
"javaClassName": "io.noties.markwon.app.samples.basics.Simple",
|
||||||
"id": "202006177155827",
|
"id": "202006178152255",
|
||||||
"title": "Third sample",
|
"title": "Simple",
|
||||||
"description": "\u003e yo! \n\n```\nfinal int i \u003d 0;\n```",
|
"description": "The most primitive and simple way to apply markdown to a `TextView`",
|
||||||
"artifacts": [
|
|
||||||
"EDITOR",
|
|
||||||
"SIMPLE_EXT"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"a",
|
|
||||||
"c",
|
|
||||||
"test"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"javaClassName": "io.noties.markwon.app.samples.nested.SecondSample",
|
|
||||||
"id": "202006177155656",
|
|
||||||
"title": "Second sample",
|
|
||||||
"description": "# Hey hey hey",
|
|
||||||
"artifacts": [
|
|
||||||
"CORE",
|
|
||||||
"RECYCLER"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"a",
|
|
||||||
"b",
|
|
||||||
"c",
|
|
||||||
"test"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"javaClassName": "io.noties.markwon.app.samples.FirstSample",
|
|
||||||
"id": "202006164150023",
|
|
||||||
"title": "First Sample",
|
|
||||||
"description": "This **is** _the first_ sample",
|
|
||||||
"artifacts": [
|
"artifacts": [
|
||||||
"CORE"
|
"CORE"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"test"
|
"basics"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -0,0 +1,5 @@
|
|||||||
|
package io.noties.markwon.app.sample
|
||||||
|
|
||||||
|
object Tags {
|
||||||
|
const val basics = "basics"
|
||||||
|
}
|
@ -1,30 +0,0 @@
|
|||||||
package io.noties.markwon.app.samples
|
|
||||||
|
|
||||||
import io.noties.markwon.Markwon
|
|
||||||
import io.noties.markwon.app.sample.ui.MarkwonTextViewSample
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonArtifact
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonSampleInfo
|
|
||||||
|
|
||||||
@MarkwonSampleInfo(
|
|
||||||
id = "202006164150023",
|
|
||||||
title = "First Sample",
|
|
||||||
description = "This **is** _the first_ sample",
|
|
||||||
artifacts = [MarkwonArtifact.CORE],
|
|
||||||
tags = ["test"]
|
|
||||||
)
|
|
||||||
class FirstSample : MarkwonTextViewSample() {
|
|
||||||
|
|
||||||
override fun render() {
|
|
||||||
|
|
||||||
val md = """
|
|
||||||
# Hello there!
|
|
||||||
> How are you?
|
|
||||||
|
|
||||||
**bold** and _italic_ and **bold _italic bold_ just bold**
|
|
||||||
""".trimIndent()
|
|
||||||
|
|
||||||
val markwon: Markwon = Markwon.create(context)
|
|
||||||
|
|
||||||
markwon.setMarkdown(textView, md)
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,33 @@
|
|||||||
|
package io.noties.markwon.app.samples.basics
|
||||||
|
|
||||||
|
import io.noties.markwon.Markwon
|
||||||
|
import io.noties.markwon.app.sample.Tags
|
||||||
|
import io.noties.markwon.app.sample.ui.MarkwonTextViewSample
|
||||||
|
import io.noties.markwon.sample.annotations.MarkwonArtifact
|
||||||
|
import io.noties.markwon.sample.annotations.MarkwonSampleInfo
|
||||||
|
|
||||||
|
@MarkwonSampleInfo(
|
||||||
|
id = "202006178152255",
|
||||||
|
title = "Simple",
|
||||||
|
description = "The most primitive and simple way to apply markdown to a `TextView`",
|
||||||
|
artifacts = [MarkwonArtifact.CORE],
|
||||||
|
tags = [Tags.basics]
|
||||||
|
)
|
||||||
|
class Simple : MarkwonTextViewSample() {
|
||||||
|
override fun render() {
|
||||||
|
// markdown input
|
||||||
|
val md = """
|
||||||
|
# Heading
|
||||||
|
|
||||||
|
> A quote
|
||||||
|
|
||||||
|
**bold _italic_ bold**
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
|
// markwon instance
|
||||||
|
val markwon = Markwon.create(context)
|
||||||
|
|
||||||
|
// apply raw markdown (internally parsed and rendered)
|
||||||
|
markwon.setMarkdown(textView, md)
|
||||||
|
}
|
||||||
|
}
|
@ -1,65 +0,0 @@
|
|||||||
package io.noties.markwon.app.samples.nested
|
|
||||||
|
|
||||||
import io.noties.markwon.Markwon
|
|
||||||
import io.noties.markwon.app.sample.ui.MarkwonTextViewSample
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonArtifact
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonSampleInfo
|
|
||||||
|
|
||||||
@MarkwonSampleInfo(
|
|
||||||
id = "202006177155656",
|
|
||||||
title = "Second sample",
|
|
||||||
description = "# Hey hey hey",
|
|
||||||
artifacts = [MarkwonArtifact.CORE, MarkwonArtifact.RECYCLER],
|
|
||||||
tags = ["b", "c", "a", "test"]
|
|
||||||
)
|
|
||||||
class SecondSample : MarkwonTextViewSample() {
|
|
||||||
override fun render() {
|
|
||||||
val md = """
|
|
||||||
# Hello second
|
|
||||||
|
|
||||||
```java
|
|
||||||
final int i = 0;
|
|
||||||
```
|
|
||||||
""".trimIndent()
|
|
||||||
|
|
||||||
val markwon = Markwon.create(context)
|
|
||||||
markwon.setMarkdown(textView, md)
|
|
||||||
}
|
|
||||||
|
|
||||||
val _mock: String
|
|
||||||
get() = """
|
|
||||||
a
|
|
||||||
b
|
|
||||||
d
|
|
||||||
s
|
|
||||||
as
|
|
||||||
sd
|
|
||||||
ds
|
|
||||||
sd
|
|
||||||
s
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
ds
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
ds
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
|
|
||||||
s
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
|
|
||||||
ds
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
sd
|
|
||||||
""".trimIndent()
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
package io.noties.markwon.app.samples.nested;
|
|
||||||
|
|
||||||
import io.noties.markwon.Markwon;
|
|
||||||
import io.noties.markwon.app.sample.ui.MarkwonTextViewSample;
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonArtifact;
|
|
||||||
import io.noties.markwon.sample.annotations.MarkwonSampleInfo;
|
|
||||||
|
|
||||||
@MarkwonSampleInfo(
|
|
||||||
id = "202006177155827",
|
|
||||||
title = "Third sample",
|
|
||||||
description = "> yo! \n\n```\nfinal int i = 0;\n```",
|
|
||||||
artifacts = {MarkwonArtifact.SIMPLE_EXT, MarkwonArtifact.EDITOR},
|
|
||||||
tags = {"a", "c", "test"}
|
|
||||||
)
|
|
||||||
public class ThirdSample extends MarkwonTextViewSample {
|
|
||||||
@Override
|
|
||||||
public void render() {
|
|
||||||
final String md = "# Hello!";
|
|
||||||
final Markwon markwon = Markwon.create(context);
|
|
||||||
markwon.setMarkdown(textView, md);
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,6 +5,7 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
// NB! if class was just removed if won't be removed from samples.json
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@Target(ElementType.TYPE)
|
@Target(ElementType.TYPE)
|
||||||
public @interface MarkwonSampleInfo {
|
public @interface MarkwonSampleInfo {
|
||||||
@ -22,7 +23,7 @@ public @interface MarkwonSampleInfo {
|
|||||||
|
|
||||||
String title();
|
String title();
|
||||||
|
|
||||||
String description();
|
String description() default "";
|
||||||
|
|
||||||
MarkwonArtifact[] artifacts();
|
MarkwonArtifact[] artifacts();
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@ -87,16 +88,22 @@ public class MarkwonSampleProcessor extends AbstractProcessor {
|
|||||||
if (!roundEnvironment.processingOver()) {
|
if (!roundEnvironment.processingOver()) {
|
||||||
final long begin = System.currentTimeMillis();
|
final long begin = System.currentTimeMillis();
|
||||||
final Set<? extends Element> elements = roundEnvironment.getElementsAnnotatedWith(MarkwonSampleInfo.class);
|
final Set<? extends Element> elements = roundEnvironment.getElementsAnnotatedWith(MarkwonSampleInfo.class);
|
||||||
if (elements != null) {
|
// we should not have zero samples
|
||||||
|
if (elements != null && elements.size() > 0) {
|
||||||
|
|
||||||
|
final HashSet<MarkwonSample> markwonSamples = new HashSet<>();
|
||||||
for (Element element : elements) {
|
for (Element element : elements) {
|
||||||
process(element);
|
try {
|
||||||
|
markwonSamples.add(parse((TypeElement) element));
|
||||||
|
} catch (Throwable t) {
|
||||||
|
throw new RuntimeException(t);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (samplesUpdated) {
|
if (!markwonSamples.equals(new HashSet<>(samples))) {
|
||||||
logger.info("samples updated, writing at path: %s", samplesFilePath);
|
logger.info("samples updated, writing at path: %s", samplesFilePath);
|
||||||
try {
|
try {
|
||||||
writeSamples(samplesFilePath, samples);
|
writeSamples(samplesFilePath, markwonSamples);
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
logger.error(t.getMessage());
|
logger.error(t.getMessage());
|
||||||
throw new RuntimeException(t);
|
throw new RuntimeException(t);
|
||||||
@ -145,7 +152,7 @@ public class MarkwonSampleProcessor extends AbstractProcessor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void writeSamples(@NonNull String path, @NonNull List<MarkwonSample> samples) throws Throwable {
|
private static void writeSamples(@NonNull String path, @NonNull Set<MarkwonSample> markwonSamples) throws Throwable {
|
||||||
|
|
||||||
final File file = new File(path);
|
final File file = new File(path);
|
||||||
|
|
||||||
@ -159,6 +166,8 @@ public class MarkwonSampleProcessor extends AbstractProcessor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final List<MarkwonSample> samples = new ArrayList<>(markwonSamples);
|
||||||
|
|
||||||
// sort based on id (it is date)
|
// sort based on id (it is date)
|
||||||
// new items come first (DESC order)
|
// new items come first (DESC order)
|
||||||
Collections.sort(samples, (lhs, rhs) -> rhs.id.compareTo(lhs.id));
|
Collections.sort(samples, (lhs, rhs) -> rhs.id.compareTo(lhs.id));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user