latex, expose text color customization
This commit is contained in:
parent
12c7c8909b
commit
a94090a746
@ -18,10 +18,12 @@
|
||||
* `LinkResolverDef` defaults to `https` when a link does not have scheme information ([#75])
|
||||
* add `option` abstraction for `sample` module allowing switching of multiple cases in runtime via menu
|
||||
* non-empty bounds for `AsyncDrawable` when no dimensions are not yet available ([#189])
|
||||
* `JLatexMathPlugin` add text color customization ([#207])
|
||||
|
||||
[#189]: https://github.com/noties/Markwon/issues/189
|
||||
[#75]: https://github.com/noties/Markwon/issues/75
|
||||
[#204]: https://github.com/noties/Markwon/issues/204
|
||||
[#207]: https://github.com/noties/Markwon/issues/207
|
||||
|
||||
|
||||
# 4.2.2
|
||||
|
@ -454,6 +454,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin {
|
||||
|
||||
final JLatexMathTheme.BackgroundProvider backgroundProvider = theme.blockBackgroundProvider();
|
||||
final JLatexMathTheme.Padding padding = theme.blockPadding();
|
||||
final int color = theme.blockTextColor();
|
||||
|
||||
final JLatexMathDrawable.Builder builder = JLatexMathDrawable.builder(latex)
|
||||
.textSize(theme.blockTextSize())
|
||||
@ -468,6 +469,10 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin {
|
||||
builder.padding(padding.left, padding.top, padding.right, padding.bottom);
|
||||
}
|
||||
|
||||
if (color != 0) {
|
||||
builder.color(color);
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@ -479,6 +484,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin {
|
||||
|
||||
final JLatexMathTheme.BackgroundProvider backgroundProvider = theme.inlineBackgroundProvider();
|
||||
final JLatexMathTheme.Padding padding = theme.inlinePadding();
|
||||
final int color = theme.inlineTextColor();
|
||||
|
||||
final JLatexMathDrawable.Builder builder = JLatexMathDrawable.builder(latex)
|
||||
.textSize(theme.inlineTextSize())
|
||||
@ -492,6 +498,10 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin {
|
||||
builder.padding(padding.left, padding.top, padding.right, padding.bottom);
|
||||
}
|
||||
|
||||
if (color != 0) {
|
||||
builder.color(color);
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package io.noties.markwon.ext.latex;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.Px;
|
||||
@ -118,6 +119,11 @@ public abstract class JLatexMathTheme {
|
||||
@Nullable
|
||||
public abstract Padding blockPadding();
|
||||
|
||||
@ColorInt
|
||||
public abstract int inlineTextColor();
|
||||
|
||||
@ColorInt
|
||||
public abstract int blockTextColor();
|
||||
|
||||
public static class Builder {
|
||||
private final float textSize;
|
||||
@ -136,6 +142,10 @@ public abstract class JLatexMathTheme {
|
||||
private Padding inlinePadding;
|
||||
private Padding blockPadding;
|
||||
|
||||
private int textColor = 0xFF000000;
|
||||
private int inlineTextColor;
|
||||
private int blockTextColor;
|
||||
|
||||
Builder(float textSize, float inlineTextSize, float blockTextSize) {
|
||||
this.textSize = textSize;
|
||||
this.inlineTextSize = inlineTextSize;
|
||||
@ -194,6 +204,24 @@ public abstract class JLatexMathTheme {
|
||||
return this;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public Builder textColor(@ColorInt int textColor) {
|
||||
this.textColor = textColor;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public Builder inlineTextColor(@ColorInt int inlineTextColor) {
|
||||
this.inlineTextColor = inlineTextColor;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public Builder blockTextColor(@ColorInt int blockTextColor) {
|
||||
this.blockTextColor = blockTextColor;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public JLatexMathTheme build() {
|
||||
return new Impl(this);
|
||||
@ -218,6 +246,10 @@ public abstract class JLatexMathTheme {
|
||||
private final Padding inlinePadding;
|
||||
private final Padding blockPadding;
|
||||
|
||||
private final int textColor;
|
||||
private final int inlineTextColor;
|
||||
private final int blockTextColor;
|
||||
|
||||
Impl(@NonNull Builder builder) {
|
||||
this.textSize = builder.textSize;
|
||||
this.inlineTextSize = builder.inlineTextSize;
|
||||
@ -230,6 +262,9 @@ public abstract class JLatexMathTheme {
|
||||
this.padding = builder.padding;
|
||||
this.inlinePadding = builder.inlinePadding;
|
||||
this.blockPadding = builder.blockPadding;
|
||||
this.textColor = builder.textColor;
|
||||
this.inlineTextColor = builder.inlineTextColor;
|
||||
this.blockTextColor = builder.blockTextColor;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -293,5 +328,21 @@ public abstract class JLatexMathTheme {
|
||||
}
|
||||
return padding;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int inlineTextColor() {
|
||||
if (inlineTextColor != 0) {
|
||||
return inlineTextColor;
|
||||
}
|
||||
return textColor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int blockTextColor() {
|
||||
if (blockTextColor != 0) {
|
||||
return blockTextColor;
|
||||
}
|
||||
return textColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package io.noties.markwon.sample.latex;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
@ -141,12 +142,11 @@ public class LatexActivity extends ActivityWithMenuOptions {
|
||||
final String md = wrapLatexInSampleMarkdown(LATEX_LONG_DIVISION);
|
||||
final Markwon markwon = Markwon.builder(this)
|
||||
.usePlugin(MarkwonInlineParserPlugin.create())
|
||||
.usePlugin(JLatexMathPlugin.create(textView.getTextSize(), new JLatexMathPlugin.BuilderConfigure() {
|
||||
@Override
|
||||
public void configureBuilder(@NonNull JLatexMathPlugin.Builder builder) {
|
||||
|
||||
}
|
||||
}))
|
||||
.usePlugin(JLatexMathPlugin.create(textView.getTextSize(), builder -> builder.theme()
|
||||
.inlineTextColor(Color.RED)
|
||||
.blockTextColor(Color.GREEN)
|
||||
.inlineBackgroundProvider(() -> new ColorDrawable(Color.YELLOW))
|
||||
.blockBackgroundProvider(() -> new ColorDrawable(Color.GRAY))))
|
||||
.build();
|
||||
markwon.setMarkdown(textView, md);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user