• R/O
  • SSH
  • HTTPS

catalpa: Commit


Commit MetaInfo

Revisão113 (tree)
Hora2022-09-15 15:35:33
Autorhirukawa_ryo

Mensagem de Log

* catalpa 0.9
定義リストの定義名を省略した場合、DL に "has-term" クラス属性が追加されるようになりました。

Mudança Sumário

Diff

--- catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeRenderer.java (revision 112)
+++ catalpa/trunk/src/main/java/net/osdn/catalpa/flexmark/ext/BasicNodeRenderer.java (revision 113)
@@ -9,7 +9,10 @@
99 import com.vladsch.flexmark.ast.ImageRef;
1010 import com.vladsch.flexmark.ast.Paragraph;
1111 import com.vladsch.flexmark.ast.SoftLineBreak;
12+import com.vladsch.flexmark.ast.Text;
1213 import com.vladsch.flexmark.ext.attributes.AttributesNode;
14+import com.vladsch.flexmark.ext.definition.DefinitionList;
15+import com.vladsch.flexmark.ext.definition.DefinitionTerm;
1316 import com.vladsch.flexmark.html.HtmlWriter;
1417 import com.vladsch.flexmark.html.renderer.NodeRenderer;
1518 import com.vladsch.flexmark.html.renderer.NodeRendererContext;
@@ -16,6 +19,7 @@
1619 import com.vladsch.flexmark.html.renderer.NodeRenderingHandler;
1720 import com.vladsch.flexmark.util.ast.Node;
1821 import com.vladsch.flexmark.util.data.DataHolder;
22+import org.jetbrains.annotations.NotNull;
1923
2024 public class BasicNodeRenderer implements NodeRenderer {
2125
@@ -37,6 +41,12 @@
3741 BasicNodeRenderer.this.render(node, context, html);
3842 }
3943 }));
44+ set.add(new NodeRenderingHandler<DefinitionList>(DefinitionList.class, new NodeRenderingHandler.CustomNodeRenderer<DefinitionList>() {
45+ @Override
46+ public void render(@NotNull DefinitionList node, @NotNull NodeRendererContext context, @NotNull HtmlWriter html) {
47+ BasicNodeRenderer.this.render(node, context, html);
48+ }
49+ }));
4050 return set;
4151 }
4252
@@ -85,4 +95,22 @@
8595 }
8696 context.delegateRender();
8797 }
98+
99+ protected void render(DefinitionList node, NodeRendererContext context, HtmlWriter html) {
100+ // 定義リストの定義名を省略した場合は DefinitionTerm の子孫に Text ノードが存在しません。
101+ // 定義名が空ではない場合、DL に "has-term" クラス属性を追加します。
102+ if(node.hasChildren() && node.getFirstChild() instanceof DefinitionTerm) {
103+ String term = null;
104+ for(Node descendant : node.getFirstChild().getDescendants()) {
105+ if(descendant instanceof Text) {
106+ term = descendant.getChars().toString();
107+ break;
108+ }
109+ }
110+ if(term != null) {
111+ html.attr("class", "has-term");
112+ }
113+ }
114+ context.delegateRender();
115+ }
88116 }
Show on old repository browser