繁体   English   中英

在Maven网站(Fluido)的Markdown中突出显示语法

[英]Have Syntax Highlighting in Markdown for Maven Site (Fluido)

我在Maven项目中尝试了以下方法:

  • 添加带有内容的markdown文件content.md
```java
int a = 4;
```

src/main/site/markdown

  • 用内容写一个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.7</version> </skin> <body> <menu name="Dokumentation"> <item name="Benutzerhandbuch" href="content.html" /> </menu> <menu ref="reports" /> </body> </project> 
  • 用写一个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>de.continentale.testsvn</groupId> <artifactId>site-test</artifactId> <version>0.0.1-SNAPSHOT</version> <build> <plugins> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> <dependencies> <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav-jackrabbit</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-xhtml</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-module-markdown</artifactId> <version>1.8</version> </dependency> </dependencies> </plugin> </plugins> </build> </project> 

现在我从mvn site获得文件content.html 在此文件中, int a = 4 突出显示语法。

在此处输入图片说明

我需要怎么做才能突出显示语法?

我也无法使其与Maven一起使用,但是我找到了一种解决方法:使用highligh.js在Javascript中突出显示客户端。

下载highlight.js并将其放置在src/site/resources/highlightjs.pack.js以及CSS主题下,例如src/site/resources/styles/atom-one-light.css

在您的网站描述符中:

<project>
  <body>
    <head>
      <![CDATA[
      <link rel="stylesheet" href="styles/foundation.css" />
      <script src="highlight.pack.js"></script>
      <script>
          document.addEventListener('DOMContentLoaded', (event) => {
            document.querySelectorAll('pre.source').forEach((block) => {
              hljs.highlightBlock(block);
            });
          });
      </script>
      ]]>
    </head>
  </body>
</project>

Maven为代码块生成<pre class="source" />块,因此我们需要将其标记为Highlight.js。 不幸的是,Maven并没有放置与该语言相对应的类名(在您的示例中为Java),但是Highlight.js会自动检测语言,并且在大多数情况下都可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM