maven site plugin - Getting doxia-module-markdown to rewrite *.md links -
my goal generate site documentation browsable within github, i've written bunch of markdown pages.
i'm using maven-site-plugin doxia-module-markdown generate project documentation.
the problem i'm running links of form [foo](foo.md) show in generated html <a href="foo.md">foo</a>, not <a href="foo.html">foo</a>.
changing link point foo.html make things unbrowseable github, , seems me .md→.html mapping integral how html generation works, link rewriting should happening here.
below minimal case repro produces following output me
am missing configuration option relative link rewriting apply source file path target file path translation?
the translated html contains .md links.
$ mvn clean site && cat target/site/a.html | grep -i banana ... <p>‘a’ apple, <a href="b.md">‘b’</a> banana.</p> pom.xml
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>foo</groupid> <artifactid>bar</artifactid> <packaging>jar</packaging> <version>1-snapshot</version> <name>foo</name> <description> tests link rewriting using doxia markdown module. </description> <url>https://example.com/</url> <!-- should not affect relative urls --> <build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-site-plugin</artifactid> <version>3.5</version> <dependencies> <dependency> <groupid>org.apache.maven.doxia</groupid> <artifactid>doxia-module-markdown</artifactid> <version>1.7</version> </dependency> </dependencies> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-project-info-reports-plugin</artifactid> <version>2.8.1</version> </plugin> </plugins> </build> </project> site.xml
<?xml version="1.0" encoding="iso-8859-1"?> <project> <skin> <groupid>org.apache.maven.skins</groupid> <artifactid>maven-fluido-skin</artifactid> <version>1.5</version> </skin> <body> <links> </links> <menu name="docs"> <item name="a" href="a.html"/> <item name="b" href="b.html"/> </menu> <menu ref="reports"/> <menu ref="modules"/> <menu ref="parent"/> </body> </project> a.md
# 'a' apple, ['b'](b.md) banana. b.md
# b ['a'](a.md) apple, 'b' banana.
markdown-page-generator-plugin provides transformrelativemarkdownlinks option transform relative url suffix ".md" ".html" if option true. (default: false.)
setup:
- put markdown files processed
doxia-module-markdownin/src/site/markdown/ - put markdown files processed
markdown-page-generator-pluginin differently named folder such/src/site/markdown_/ - put html code added
doxia-module-markdownheader.html,footer.html - configure
markdown-page-generator-pluginincludeheader.html,footer.html - configure
markdown-page-generator-pluginadd add processed file same target folder useddoxia-module-markdown
adapt pom.xml:
<plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-site-plugin</artifactid> <version>3.6</version> <dependencies> <!-- processes ${project.basedir}/src/site/markdown/ --> <dependency> <groupid>org.apache.maven.doxia</groupid> <artifactid>doxia-module-markdown</artifactid> <version>1.7</version> </dependency> </dependencies> </plugin> <plugin> <groupid>com.ruleoftech</groupid> <artifactid>markdown-page-generator-plugin</artifactid> <version>0.10</version> <executions> <execution> <phase>process-sources</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <inputdirectory>${project.basedir}/src/site/markdown_/</inputdirectory> <outputdirectory>${project.build.directory}/site/</outputdirectory> <!-- copy other /markdown_/* directories --> <copydirectories>images_,quickstart_files</copydirectories> <!-- put doxia-module-markdown additional html in these header & footer files --> <headerhtmlfile>${project.basedir}/src/site/markdown_/html/header.html</headerhtmlfile> <footerhtmlfile>${project.basedir}/src/site/markdown_/html/footer.html</footerhtmlfile> <!-- transform relative url suffix ".md" ".html" --> <transformrelativemarkdownlinks>true</transformrelativemarkdownlinks> <pegdownextensions>anchorlinks,hardwraps,autolinks,tables,fenced_code_blocks</pegdownextensions> </configuration> </plugin>
Comments
Post a Comment