Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
67e389f
update flexmark from 0.42.14 to 0.64.8
guanglinn Aug 4, 2024
2034ec2
fix deprecated warnings in build.gradle(app)
guanglinn Aug 4, 2024
3e01737
update recyclerview from 1.2.1 to 1.3.2
guanglinn Aug 4, 2024
73ba7a3
update commons-io from 2.7 to 2.13.0
guanglinn Aug 4, 2024
d272dbc
update browser from 1.4.0 to 1.8.0
guanglinn Aug 4, 2024
22ab527
update preference from 1.2.0 to 1.2.1
guanglinn Aug 4, 2024
268b2a4
update material from 1.6.1 to 1.12.0
guanglinn Aug 4, 2024
dc0c00c
update appcompat from 1.4.2 to 1.7.0
guanglinn Aug 4, 2024
45d4a81
Merge branch 'master' into libraries_update
gsantner Sep 16, 2024
51481c0
Merge branch 'master' into libraries_update
gsantner Sep 16, 2024
168e3c4
Merge branch 'master' into libraries_update
gsantner Sep 16, 2024
ffd2fb4
Merge branch 'master' into libraries_update
gsantner Sep 24, 2024
97f0336
Merge branch 'master' into libraries_update
gsantner Sep 24, 2024
6e6503a
Merge branch 'master' into libraries_update
gsantner Oct 26, 2024
89716a1
Merge branch 'master' into libraries_update
guanglinn Nov 16, 2024
5d7b413
Merge branch 'master' into libraries_update
guanglinn Dec 13, 2024
4ec813b
Merge branch 'master' into libraries_update
gsantner Dec 22, 2024
a6fa12e
Merge branch 'master' into libraries_update
gsantner Jan 2, 2025
887dea7
Merge branch 'master' into libraries_update
guanglinn Jan 3, 2025
3a081fc
Merge branch 'master' into libraries_update
gsantner Mar 20, 2025
20ac7a6
Merge branch 'master' into libraries_update
gsantner Apr 14, 2025
d919fdf
Merge branch 'master' into libraries_update
gsantner Jun 13, 2025
9c8569e
Merge branch 'master' into libraries_update
guanglinn Sep 24, 2025
99320e6
Merge branch 'master' into libraries_update
guanglinn Oct 23, 2025
4d50f00
Merge branch 'master' into libraries_update
gsantner Jan 8, 2026
b65bc64
Merge branch 'master' into libraries_update
guanglinn Jan 8, 2026
ab0d60a
Merge branch 'master' into libraries_update
gsantner Jan 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 10 additions & 11 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@ if (enable_plugin_kotlin) {
apply plugin: 'kotlin-kapt'
}

rootProject.ext.version_minSdk = 18
rootProject.ext.version_minSdk = 21

// https://github.com/vsch/flexmark-java/releases
ext.version_library_flexmark = "0.42.14"
ext.version_library_flexmark = "0.64.8"

android {
buildToolsVersion rootProject.ext.version_buildTools
compileSdkVersion rootProject.ext.version_compileSdk

defaultConfig {
resValue "string", "manifest_package_id", "net.gsantner.markor"
Expand All @@ -31,6 +29,7 @@ android {
multiDexEnabled true
minSdkVersion rootProject.ext.version_minSdk
targetSdkVersion rootProject.ext.version_compileSdk
compileSdk rootProject.ext.version_compileSdk
buildConfigField "boolean", "IS_TEST_BUILD", "false"
buildConfigField "boolean", "IS_GPLAY_BUILD", "false"
buildConfigField "String[]", "DETECTED_ANDROID_LOCALES", "${findUsedAndroidLocales()}"
Expand All @@ -40,7 +39,7 @@ android {
setProperty("archivesBaseName", applicationId + "-v" + versionCode + "-" + versionName)
}

flavorDimensions "default"
flavorDimensions = ["default"]
productFlavors {
flavorAtest {
applicationId "net.gsantner.markor_test"
Expand Down Expand Up @@ -98,13 +97,13 @@ dependencies {

// Android standard libs
implementation "androidx.multidex:multidex:2.0.1"
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.preference:preference:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.browser:browser:1.4.0'
implementation 'androidx.browser:browser:1.8.0'

// Markdown convertor (Flexmark)
implementation "com.vladsch.flexmark:flexmark:${version_library_flexmark}"
Expand Down Expand Up @@ -143,7 +142,7 @@ dependencies {

// Tool libraries
//noinspection AnnotationProcessorOnCompilePath
implementation 'commons-io:commons-io:2.7'
implementation 'commons-io:commons-io:2.13.0'
if (enable_plugin_kotlin) {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${version_plugin_kotlin}"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.vladsch.flexmark.ext.ins.InsExtension;
import com.vladsch.flexmark.ext.jekyll.front.matter.JekyllFrontMatterExtension;
import com.vladsch.flexmark.ext.jekyll.tag.JekyllTagExtension;
import com.vladsch.flexmark.ext.superscript.SuperscriptExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.ext.toc.SimTocExtension;
import com.vladsch.flexmark.ext.toc.TocExtension;
Expand All @@ -36,19 +37,21 @@
import com.vladsch.flexmark.html.renderer.AttributablePart;
import com.vladsch.flexmark.html.renderer.LinkResolverContext;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.superscript.SuperscriptExtension;
import com.vladsch.flexmark.util.ast.Document;
import com.vladsch.flexmark.util.ast.Node;
import com.vladsch.flexmark.util.builder.Extension;
import com.vladsch.flexmark.util.html.Attributes;
import com.vladsch.flexmark.util.options.MutableDataHolder;
import com.vladsch.flexmark.util.options.MutableDataSet;
import com.vladsch.flexmark.util.data.MutableDataHolder;
import com.vladsch.flexmark.util.data.MutableDataSet;
import com.vladsch.flexmark.util.html.MutableAttributes;
import com.vladsch.flexmark.util.misc.Extension;

import net.gsantner.markor.R;
import net.gsantner.markor.format.TextConverterBase;
import net.gsantner.markor.model.AppSettings;
import net.gsantner.opoc.util.GsContextUtils;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -321,7 +324,7 @@ public String convertMarkup(String markup, Context context, boolean lightMode, b
////////////
// Markup parsing - afterwards = HTML
Document document = flexmarkParser.parse(markup);
converted = fmaText + flexmarkRenderer.withOptions(options).render(document);
converted = fmaText + flexmarkRenderer.builder(options).build().render(document);

// After render changes: Fixes for Footnotes (converter creates footnote + <br> + ref#(click) --> remove line break)
if (converted.contains("footnote-")) {
Expand Down Expand Up @@ -453,7 +456,7 @@ private String replaceTokens(final String markup, final Map<String, List<String>

private static class LineNumberIdProvider implements AttributeProvider {
@Override
public void setAttributes(Node node, AttributablePart part, Attributes attributes) {
public void setAttributes(@NotNull Node node, @NotNull AttributablePart part, @NotNull MutableAttributes attributes) {
final Document document = node.getDocument();
final int lineNumber = document.getLineNumber(node.getStartOffset());
attributes.addValue("line", "" + lineNumber);
Expand All @@ -463,12 +466,12 @@ public void setAttributes(Node node, AttributablePart part, Attributes attribute
private static class LineNumberIdProviderFactory implements AttributeProviderFactory {

@Override
public Set<Class<? extends AttributeProviderFactory>> getAfterDependents() {
public @Nullable Set<Class<?>> getAfterDependents() {
return null;
}

@Override
public Set<Class<? extends AttributeProviderFactory>> getBeforeDependents() {
public @Nullable Set<Class<?>> getBeforeDependents() {
return null;
}

Expand All @@ -478,7 +481,7 @@ public boolean affectsGlobalScope() {
}

@Override
public AttributeProvider create(LinkResolverContext context) {
public @NotNull AttributeProvider apply(@NotNull LinkResolverContext context) {
return new LineNumberIdProvider();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@

package other.com.vladsch.flexmark.ext.katex;

import com.vladsch.flexmark.ast.DelimitedNode;
import com.vladsch.flexmark.ast.util.ReferenceRepository;
import com.vladsch.flexmark.html.CustomNodeRenderer;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.html.HtmlWriter;
import com.vladsch.flexmark.html.renderer.NodeRenderer;
Expand All @@ -43,18 +41,23 @@
import com.vladsch.flexmark.parser.InlineParser;
import com.vladsch.flexmark.parser.InlineParserExtension;
import com.vladsch.flexmark.parser.InlineParserExtensionFactory;
import com.vladsch.flexmark.parser.LightInlineParser;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.DelimitedNode;
import com.vladsch.flexmark.util.ast.Node;
import com.vladsch.flexmark.util.ast.VisitHandler;
import com.vladsch.flexmark.util.ast.Visitor;
import com.vladsch.flexmark.util.builder.Extension;
import com.vladsch.flexmark.util.data.DataHolder;
import com.vladsch.flexmark.util.data.DataKey;
import com.vladsch.flexmark.util.data.MutableDataHolder;
import com.vladsch.flexmark.util.data.MutableDataSetter;
import com.vladsch.flexmark.util.html.Attribute;
import com.vladsch.flexmark.util.options.DataHolder;
import com.vladsch.flexmark.util.options.DataKey;
import com.vladsch.flexmark.util.options.MutableDataHolder;
import com.vladsch.flexmark.util.options.MutableDataSetter;
import com.vladsch.flexmark.util.misc.Extension;
import com.vladsch.flexmark.util.sequence.BasedSequence;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
Expand Down Expand Up @@ -260,7 +263,7 @@ public static class KatexDisplayMathParser implements InlineParserExtension {
private final KatexOptions options;
Pattern MATH_PATTERN = Pattern.compile("\\$\\$((?:.|\n)+?)\\$\\$");

public KatexDisplayMathParser(final InlineParser inlineParser) {
public KatexDisplayMathParser(final LightInlineParser inlineParser) {
options = new KatexOptions(inlineParser.getDocument());
}

Expand All @@ -273,7 +276,7 @@ public void finalizeBlock(final InlineParser inlineParser) {
}

@Override
public boolean parse(final InlineParser inlineParser) {
public boolean parse(@NotNull LightInlineParser inlineParser) {
if (inlineParser.peek(1) == '$') {
BasedSequence input = inlineParser.getInput();
Matcher matcher = inlineParser.matcher(MATH_PATTERN);
Expand All @@ -292,7 +295,7 @@ public boolean parse(final InlineParser inlineParser) {

public static class Factory implements InlineParserExtensionFactory {
@Override
public Set<Class<? extends InlineParserExtensionFactory>> getAfterDependents() {
public @Nullable Set<Class<?>> getAfterDependents() {
return null;
}

Expand All @@ -302,12 +305,12 @@ public CharSequence getCharacters() {
}

@Override
public Set<Class<? extends InlineParserExtensionFactory>> getBeforeDependents() {
public @Nullable Set<Class<?>> getBeforeDependents() {
return null;
}

@Override
public InlineParserExtension create(final InlineParser inlineParser) {
public @NotNull InlineParserExtension apply(@NotNull LightInlineParser inlineParser) {
return new KatexDisplayMathParser(inlineParser);
}

Expand All @@ -322,7 +325,7 @@ public static class KatexInlineMathParser implements InlineParserExtension {
private final KatexOptions options;
Pattern MATH_PATTERN = Pattern.compile("(?<!\\$)\\$((?:.|\n)+?)\\$(?!\\$)");

public KatexInlineMathParser(final InlineParser inlineParser) {
public KatexInlineMathParser(final LightInlineParser inlineParser) {
options = new KatexOptions(inlineParser.getDocument());
}

Expand All @@ -335,7 +338,7 @@ public void finalizeBlock(final InlineParser inlineParser) {
}

@Override
public boolean parse(final InlineParser inlineParser) {
public boolean parse(@NotNull LightInlineParser inlineParser) {
if (inlineParser.peek(1) != '$') {
BasedSequence input = inlineParser.getInput();
Matcher matcher = inlineParser.matcher(MATH_PATTERN);
Expand All @@ -354,7 +357,7 @@ public boolean parse(final InlineParser inlineParser) {

public static class Factory implements InlineParserExtensionFactory {
@Override
public Set<Class<? extends InlineParserExtensionFactory>> getAfterDependents() {
public @Nullable Set<Class<?>> getAfterDependents() {
return null;
}

Expand All @@ -364,12 +367,12 @@ public CharSequence getCharacters() {
}

@Override
public Set<Class<? extends InlineParserExtensionFactory>> getBeforeDependents() {
public @Nullable Set<Class<?>> getBeforeDependents() {
return null;
}

@Override
public InlineParserExtension create(final InlineParser inlineParser) {
public @NotNull InlineParserExtension apply(@NotNull LightInlineParser inlineParser) {
return new KatexInlineMathParser(inlineParser);
}

Expand All @@ -395,13 +398,13 @@ public KatexNodeRenderer(DataHolder options) {
public Set<NodeRenderingHandler<?>> getNodeRenderingHandlers() {
Set<NodeRenderingHandler<?>> set = new HashSet<NodeRenderingHandler<?>>();
// @formatter:off
set.add(new NodeRenderingHandler<KatexInlineMath>(KatexInlineMath.class, new CustomNodeRenderer<KatexInlineMath>() {
set.add(new NodeRenderingHandler<KatexInlineMath>(KatexInlineMath.class, new NodeRenderingHandler.CustomNodeRenderer<KatexInlineMath>() {
@Override
public void render(KatexInlineMath node, NodeRendererContext context, HtmlWriter html) {
KatexNodeRenderer.this.render(node, context, html);
}
}));
set.add(new NodeRenderingHandler<KatexDisplayMath>(KatexDisplayMath.class, new CustomNodeRenderer<KatexDisplayMath>() {
set.add(new NodeRenderingHandler<KatexDisplayMath>(KatexDisplayMath.class, new NodeRenderingHandler.CustomNodeRenderer<KatexDisplayMath>() {
@Override
public void render(KatexDisplayMath node, NodeRendererContext context, HtmlWriter html) {
KatexNodeRenderer.this.render(node, context, html);
Expand All @@ -425,7 +428,7 @@ private void render(final KatexDisplayMath node, final NodeRendererContext conte

public static class Factory implements NodeRendererFactory {
@Override
public NodeRenderer create(final DataHolder options) {
public @NotNull NodeRenderer apply(@NotNull DataHolder options) {
return new KatexNodeRenderer(options);
}
}
Expand Down