Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Adds post processor to rearrange captions

AuthorDaveJarvis <email>
Date2023-11-26 12:55:30 GMT-0800
Commite9d077aba69b2ae7722bc5fee86615e2ece9274e
Parent94d30aa
Delta33 lines added, 9 lines removed, 24-line increase
src/test/java/com/keenwrite/processors/markdown/extensions/references/CaptionsAndCrossReferencesExtensionTest.java
""",
"""
- <p><tex>$$E=mc^2$$</tex></p>
<p><span class="caption">Caption <a data-type="eqn" name="energy" /></span></p>
+ <p><tex>$$E=mc^2$$</tex></p>
"""
),
""",
"""
+ <p><span class="caption">Source code caption <a data-type="listing" name="haskell1" /></span></p>
<pre><code class="language-haskell">main :: IO ()
</code></pre>
- <p><span class="caption">Source code caption <a data-type="listing" name="haskell1" /></span></p>
"""
),
""",
"""
+ <p><span class="caption">Caption <a data-type="warning" name="sugar" /></span></p>
<div class="warning">
<p>Do not eat processed sugar.</p>
- </div><p><span class="caption">Caption <a data-type="warning" name="sugar" /></span></p>
+ </div>
"""
),
args(
"""
![alt text](tunnel)
:: Caption {#fig:label}
""",
"""
- <p><img src="tunnel" alt="alt text" /></p>
<p><span class="caption">Caption <a data-type="fig" name="label" /></span></p>
+ <p><img src="tunnel" alt="alt text" /></p>
"""
),
args(
"""
![kitteh](placekitten)
:: Caption **bold** {#fig:label} *italics*
""",
"""
- <p><img src="placekitten" alt="kitteh" /></p>
<p><span class="caption">Caption <strong>bold</strong> <a data-type="fig" name="label" /> <em>italics</em></span></p>
+ <p><img src="placekitten" alt="kitteh" /></p>
"""
),
""",
"""
+ <p><span class="caption">Meschiya Lake - Lucky Devil <a data-type="lyrics" name="blues" /></span></p>
<blockquote>
<p>I'd like to be the lucky devil who gets to burn with you.</p>
<p>Well, I'm no angel, my wings have been clipped;</p>
<p>I've traded my halo for horns and a whip.</p>
</blockquote>
- <p><span class="caption">Meschiya Lake - Lucky Devil <a data-type="lyrics" name="blues" /></span></p>
"""
),
""",
"""
+ <p><span class="caption">Caption <a data-type="tbl" name="label" /></span></p>
<table>
<thead>
<tr><th>a</th><th>b</th><th>c</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
</tbody>
</table>
- <p><span class="caption">Caption <a data-type="tbl" name="label" /></span></p>
"""
)
src/main/java/com/keenwrite/processors/markdown/extensions/fences/OpeningDivBlock.java
/**
- * Responsible for helping to generate an opening div element.
+ * Responsible for helping to generate an opening {@code div} element.
*/
-final class OpeningDivBlock extends DivBlock {
+public final class OpeningDivBlock extends DivBlock {
private final List<Attribute> mAttributes = new ArrayList<>();
src/main/java/com/keenwrite/processors/markdown/extensions/captions/CaptionPostProcessorFactory.java
+/* Copyright 2023 White Magic Software, Ltd. -- All rights reserved.
+ *
+ * SPDX-License-Identifier: MIT
+ */
+package com.keenwrite.processors.markdown.extensions.captions;
+
+import com.keenwrite.processors.markdown.extensions.common.MarkdownPostProcessorFactory;
+import com.vladsch.flexmark.parser.block.NodePostProcessor;
+import com.vladsch.flexmark.util.ast.Document;
+
+class CaptionPostProcessorFactory extends MarkdownPostProcessorFactory {
+ CaptionPostProcessorFactory() {
+ // The argument isn't used by the Markdown parsing library.
+ super( false );
+
+ addNodes( CaptionBlock.class );
+ }
+
+ @Override
+ protected NodePostProcessor createPostProcessor( final Document document ) {
+ return new CaptionPostProcessor();
+ }
+}