• R/O
  • SSH
  • HTTPS

catalpa: Commit


Commit MetaInfo

Revision88 (tree)
Time2020-05-22 12:14:09
Authorhirukawa_ryo

Log Message

* catalpa 0.8.1
flexmark 0.61.32 に変更しました。(flexmark 0.60以降でAPIの破壊的変更があります。)

Change Summary

Incremental Difference

--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeExtension.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeExtension.java (revision 88)
@@ -4,9 +4,9 @@
44 import com.vladsch.flexmark.html.HtmlRenderer.Builder;
55 import com.vladsch.flexmark.html.renderer.NodeRenderer;
66 import com.vladsch.flexmark.html.renderer.NodeRendererFactory;
7-import com.vladsch.flexmark.util.builder.Extension;
87 import com.vladsch.flexmark.util.data.DataHolder;
98 import com.vladsch.flexmark.util.data.MutableDataHolder;
9+import com.vladsch.flexmark.util.misc.Extension;
1010
1111 public class BasicNodeExtension implements HtmlRenderer.HtmlRendererExtension {
1212
--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeRenderer.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeRenderer.java (revision 88)
@@ -10,7 +10,6 @@
1010 import com.vladsch.flexmark.ast.Paragraph;
1111 import com.vladsch.flexmark.ast.SoftLineBreak;
1212 import com.vladsch.flexmark.ext.attributes.AttributesNode;
13-import com.vladsch.flexmark.html.CustomNodeRenderer;
1413 import com.vladsch.flexmark.html.HtmlWriter;
1514 import com.vladsch.flexmark.html.renderer.NodeRenderer;
1615 import com.vladsch.flexmark.html.renderer.NodeRendererContext;
@@ -26,13 +25,13 @@
2625 @Override
2726 public Set<NodeRenderingHandler<?>> getNodeRenderingHandlers() {
2827 Set<NodeRenderingHandler<?>> set = new HashSet<NodeRenderingHandler<?>>();
29- set.add(new NodeRenderingHandler<Paragraph>(Paragraph.class, new CustomNodeRenderer<Paragraph>() {
28+ set.add(new NodeRenderingHandler<Paragraph>(Paragraph.class, new NodeRenderingHandler.CustomNodeRenderer<Paragraph>() {
3029 @Override
3130 public void render(Paragraph node, NodeRendererContext context, HtmlWriter html) {
3231 BasicNodeRenderer.this.render(node, context, html);
3332 }
3433 }));
35- set.add(new NodeRenderingHandler<Heading>(Heading.class, new CustomNodeRenderer<Heading>() {
34+ set.add(new NodeRenderingHandler<Heading>(Heading.class, new NodeRenderingHandler.CustomNodeRenderer<Heading>() {
3635 @Override
3736 public void render(Heading node, NodeRendererContext context, HtmlWriter html) {
3837 BasicNodeRenderer.this.render(node, context, html);
--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/LineDividableTableExtension.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/LineDividableTableExtension.java (revision 88)
@@ -2,8 +2,8 @@
22
33 import com.vladsch.flexmark.parser.Parser;
44 import com.vladsch.flexmark.parser.Parser.Builder;
5-import com.vladsch.flexmark.util.builder.Extension;
65 import com.vladsch.flexmark.util.data.MutableDataHolder;
6+import com.vladsch.flexmark.util.misc.Extension;
77
88 public class LineDividableTableExtension implements Parser.ParserExtension {
99
--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/LineDividableTablePreProcessor.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/LineDividableTablePreProcessor.java (revision 88)
@@ -90,13 +90,13 @@
9090 public static class Factory implements ParagraphPreProcessorFactory {
9191
9292 @Override
93- public Set<? extends Class<? extends ParagraphPreProcessorFactory>> getAfterDependents() {
93+ public Set<Class<?>> getAfterDependents() {
9494 return null;
9595 }
9696
9797 @Override
98- public Set<? extends Class<? extends ParagraphPreProcessorFactory>> getBeforeDependents() {
99- Set<Class<? extends ParagraphPreProcessorFactory>> set = new HashSet<Class<? extends ParagraphPreProcessorFactory>>();
98+ public Set<Class<?>> getBeforeDependents() {
99+ Set<Class<?>> set = new HashSet<>();
100100 ParagraphPreProcessorFactory pf = TableParagraphPreProcessor.Factory();
101101 set.add(pf.getClass());
102102 return set;
--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/RelativeLinkExtension.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/RelativeLinkExtension.java (revision 88)
@@ -6,10 +6,10 @@
66 import com.vladsch.flexmark.html.LinkResolverFactory;
77 import com.vladsch.flexmark.html.HtmlRenderer.Builder;
88 import com.vladsch.flexmark.html.HtmlRenderer.HtmlRendererExtension;
9-import com.vladsch.flexmark.html.renderer.LinkResolverContext;
10-import com.vladsch.flexmark.util.builder.Extension;
9+import com.vladsch.flexmark.html.renderer.LinkResolverBasicContext;
1110 import com.vladsch.flexmark.util.data.DataKey;
1211 import com.vladsch.flexmark.util.data.MutableDataHolder;
12+import com.vladsch.flexmark.util.misc.Extension;
1313
1414 public class RelativeLinkExtension implements HtmlRendererExtension {
1515 public static final DataKey<String> RELATIVE_URL_PREFIX = new DataKey<String>("RELATIVE_URL_PREFIX", "");
@@ -33,12 +33,12 @@
3333 private static class RelativeLinkResolverFactory implements LinkResolverFactory {
3434
3535 @Override
36- public Set<Class<? extends LinkResolverFactory>> getAfterDependents() {
36+ public Set<Class<?>> getAfterDependents() {
3737 return null;
3838 }
3939
4040 @Override
41- public Set<Class<? extends LinkResolverFactory>> getBeforeDependents() {
41+ public Set<Class<?>> getBeforeDependents() {
4242 return null;
4343 }
4444
@@ -48,7 +48,7 @@
4848 }
4949
5050 @Override
51- public LinkResolver apply(LinkResolverContext context) {
51+ public LinkResolver apply(LinkResolverBasicContext context) {
5252 return new RelativeLinkResolver(context);
5353 }
5454 }
--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/RelativeLinkResolver.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/RelativeLinkResolver.java (revision 88)
@@ -1,20 +1,46 @@
11 package net.osdn.catalpa.flexmark.ext;
22
33 import com.vladsch.flexmark.html.LinkResolver;
4-import com.vladsch.flexmark.html.renderer.LinkResolverContext;
4+import com.vladsch.flexmark.html.renderer.LinkResolverBasicContext;
55 import com.vladsch.flexmark.html.renderer.LinkStatus;
66 import com.vladsch.flexmark.html.renderer.ResolvedLink;
77 import com.vladsch.flexmark.util.ast.Node;
8+import com.vladsch.flexmark.util.data.DataHolder;
9+import com.vladsch.flexmark.util.data.DataValueFactory;
810
911 public class RelativeLinkResolver implements LinkResolver {
10-
12+
13+ private static final DataValueFactory<Object> NULL_VALUE_FACTORY = new DataValueFactory<Object>() {
14+ @Override
15+ public Object apply(DataHolder dataHolder) {
16+ return null;
17+ }
18+ };
19+
1120 private String relativeUrlPrefix;
1221
13- public RelativeLinkResolver(LinkResolverContext context) {
14- relativeUrlPrefix = context.getOptions().get(RelativeLinkExtension.RELATIVE_URL_PREFIX);
22+ public RelativeLinkResolver(LinkResolverBasicContext context) {
23+ relativeUrlPrefix = (String)context.getOptions().getOrCompute(RelativeLinkExtension.RELATIVE_URL_PREFIX, NULL_VALUE_FACTORY);
1524 }
16-
25+
1726 @Override
27+ public ResolvedLink resolveLink(Node node, LinkResolverBasicContext context, ResolvedLink link) {
28+ String url = link.getUrl();
29+ if(url.length() > 0) {
30+ if(url.charAt(0) == '/' || url.indexOf(":/") != -1 || url.startsWith("data:")) {
31+ return link.withStatus(LinkStatus.VALID).withUrl(url);
32+ } else if(relativeUrlPrefix != null) {
33+ return link.withStatus(LinkStatus.VALID).withUrl(relativeUrlPrefix + url);
34+ } else {
35+ return link.withStatus(LinkStatus.VALID).withUrl(url);
36+ }
37+ }
38+ return link;
39+ }
40+
41+
42+ /*
43+ @Override
1844 public ResolvedLink resolveLink(Node node, LinkResolverContext context, ResolvedLink link) {
1945 String url = link.getUrl();
2046 if(url.length() > 0) {
@@ -27,4 +53,5 @@
2753
2854 return link;
2955 }
56+ */
3057 }
--- catalpa/trunk/src/main/java/net/osdn/catalpa/freemarker/MarkdownDirective.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/freemarker/MarkdownDirective.java (revision 88)
@@ -4,11 +4,14 @@
44 import java.io.StringWriter;
55 import java.util.Iterator;
66 import java.util.Map;
7+import java.util.Objects;
78
89 import com.vladsch.flexmark.html.HtmlRenderer;
910 import com.vladsch.flexmark.parser.Parser;
1011 import com.vladsch.flexmark.util.ast.Document;
1112
13+import com.vladsch.flexmark.util.data.DataHolder;
14+import com.vladsch.flexmark.util.data.DataValueFactory;
1215 import com.vladsch.flexmark.util.data.MutableDataSet;
1316 import freemarker.core.Environment;
1417 import freemarker.template.TemplateBooleanModel;
@@ -25,13 +28,21 @@
2528
2629 private static final String PARAM_RELATIVE_URL_PREFIX = "relative_url_prefix";
2730 private static final String PARAM_REPLACE_BACKSLASH_TO_YENSIGN = "replace_backslash_to_yensign";
28-
31+
32+ private static final DataValueFactory<Object> NULL_VALUE_FACTORY = new DataValueFactory<Object>() {
33+ @Override
34+ public Object apply(DataHolder dataHolder) {
35+ return null;
36+ }
37+ };
38+
39+ private MutableDataSet options;
2940 private Parser parser;
3041 private HtmlRenderer renderer;
31-
42+
3243 public MarkdownDirective(MutableDataSet options) {
33- parser = Parser.builder(options).build();
34- renderer = HtmlRenderer.builder(options).build();
44+ this.options = options;
45+ this.parser = Parser.builder(options).build();
3546 }
3647
3748 @Override
@@ -57,19 +68,29 @@
5768 }
5869 }
5970
60- MutableDataSet options = null;
61- if(relativeUrlPrefix != null) {
62- if(options == null) {
63- options = new MutableDataSet();
64- }
65- options.set(RelativeLinkExtension.RELATIVE_URL_PREFIX, relativeUrlPrefix);
66- }
67-
6871 StringWriter input = new StringWriter();
6972 body.render(input);
7073 Document document = parser.parse(input.toString());
71- String output = renderer.withOptions(options).render(document);
74+
75+ String previousRelativeUrlPrefix = null;
76+ if(options.contains(RelativeLinkExtension.RELATIVE_URL_PREFIX)) {
77+ previousRelativeUrlPrefix = (String)options.getOrCompute(RelativeLinkExtension.RELATIVE_URL_PREFIX, NULL_VALUE_FACTORY);
78+ }
79+ if(!Objects.equals(relativeUrlPrefix, previousRelativeUrlPrefix)) {
80+ if(options.contains(RelativeLinkExtension.RELATIVE_URL_PREFIX)) {
81+ options.remove(RelativeLinkExtension.RELATIVE_URL_PREFIX);
82+ }
83+ if(relativeUrlPrefix != null) {
84+ options.set(RelativeLinkExtension.RELATIVE_URL_PREFIX, relativeUrlPrefix);
85+ }
86+ renderer = null;
87+ }
88+ if(renderer == null) {
89+ renderer = HtmlRenderer.builder(options).build();
90+ }
91+ String output = renderer.render(document);
7292 String japaneseTextLayouted = JapaneseTextLayouter.layout(output, isReplaceBackslashToYensign);
7393 env.getOut().write(japaneseTextLayouted);
7494 }
95+
7596 }
--- catalpa/trunk/src/main/java/net/osdn/catalpa/Catalpa.java (revision 87)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/Catalpa.java (revision 88)
@@ -35,8 +35,8 @@
3535 import java.util.stream.Collectors;
3636 import java.util.stream.Stream;
3737
38-import com.vladsch.flexmark.util.builder.Extension;
3938 import com.vladsch.flexmark.util.data.MutableDataSet;
39+import com.vladsch.flexmark.util.misc.Extension;
4040 import org.brotli.wrapper.Brotli;
4141 import org.brotli.wrapper.enc.Encoder;
4242
Show on old repository browser