Ich habe versucht, eine Formel in Javadoc einzubetten

Einführung

Ich verwende Doxygen seit vielen Jahren, weil ich Formeln in die API-Dokumentation von Java einbetten wollte, aber Javadoc scheint auch in der Lage zu sein, Formeln mit MathJax einzubetten, also habe ich es versucht.

Umgebung

POM-Einstellungen

Wenn Sie mit dem Apache Maven Javadoc-Plugin das CDN von MathJax zum Header hinzufügen, sollten Sie in der Lage sein, Formeln in die API-Dokumentation von Javadoc einzubetten, aber eine Fehlermeldung besagt, dass Sie JavaScript nicht in Kommentare einbetten können. Anscheinend ist es seit Java 8 strenger geworden. Daher funktioniert es nicht, `--allow-script-in-comment``` als Option mit` `anzugeben. Nach weiteren Untersuchungen änderte das Javadoc Plugin 3.0.0 die Optionsspezifikation von "<additionalparam>" in "<additionalOptions>". Übrigens habe ich ein Doclet hinzugefügt, das Markdown verwenden kann, damit Markdown verwendet werden kann. Die endgültigen Einstellungen für die POM-Datei lauten wie folgt. ( <build> <plugins> ... </ plugins> </ build> `)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <additionalOptions>
            <additionalOption>--allow-script-in-comments</additionalOption>
        </additionalOptions>
    <header>
        <![CDATA[
        <script type="text/javascript"
        src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
        </script>
        ]]>
    </header>
    <doclet>ch.raffael.mddoclet.MarkdownDoclet</doclet>
    <docletArtifact>
        <groupId>ch.raffael.markdown-doclet</groupId>
        <artifactId>markdown-doclet</artifactId>
        <version>1.4</version>
    </docletArtifact>
    <useStandardDocletOptions>true</useStandardDocletOptions>

Formelprobe

Als Test habe ich das folgende Formelbeispiel in Javadoc eingebettet.

/**
 * 
 * @author hoge
 * 
 * MathJax Samples
 * ===
 * 
 * This javadoc API document is configured to use MathJax's CommonHTML mode with
 * web fonts to display the equations, which produces uniform layout and 
 * typesetting across browsers. But MathJax can also be configured to use 
 * HTML-CSS (for legacy browsers), SVG, and native MathML rendering when 
 * available in a browser. You can try the various output modes using the 
 * MathJax context Menu (which you access by ctrl+clicking / alt-clicking an 
 * equation) or the button below. 
 * 
 * - The Quadratic Formula
 * $$ x = {-b \pm \sqrt{b^2-4ac} \over 2a} $$
 * 
 * - Cauchy's Integral Formula
 * 
 * $$ f(a) = \frac{1}{2\pi i} \oint\frac{f(z)}{z-a}dz $$
 * 
 * - Double angle formula for Cosines
 * 
 * $$ \cos(\theta+\phi)=\cos(\theta)\cos(\phi)−\sin(\theta)\sin(\phi) $$
 * 
 * 
 */
public class Main {
    
}

Die folgende Abbildung ist ein API-Dokument, das automatisch aus dem obigen Javadoc generiert wird. Die Formel wird übersichtlich angezeigt. Ich konnte bestätigen, dass ich Formeln in Javadoc einbetten konnte, ohne mir die Mühe machen zu müssen, Doxygen zu verwenden.

Zusammenfassung

Ich habe Doxygen verwendet, um Formeln in die API-Dokumentation einzubetten, aber ich habe bestätigt, dass Javadoc auch hübsche Formeln verarbeiten kann. Javadoc ist ein Standardtool, das HTML-API-Spezifikationen aus Java-Quellcode generiert. Daher ist es ein großer Vorteil, von Doxygen nach Javadoc migrieren zu können. Doxygen verwendete den Javadoc-Stil, daher scheint die Migration auch nicht so schwierig zu sein. Dieses Mal kann das neu eingeführte Doclet, das Markdown verwenden kann, auch automatisch UML generieren. Daher wird erwartet, dass der Ausdruck von API-Dokumenten vielfältiger wird.

Referenzmaterial

Recommended Posts

Ich habe versucht, eine Formel in Javadoc einzubetten
Ich habe versucht, eine Formel in Javadoc einzubetten
Ich habe ein Kalenderproblem mit Ruby versucht
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe versucht, Metaprogrammierung mit Java
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, eine Webanwendung voller Fehler mit Kotlin zu implementieren
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe ein PDF mit Java erstellt.
Ich habe ein wenig digdags docker.run_options ausprobiert
Ich habe versucht, Domino11 in CentOS7 zu integrieren
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
Ich habe versucht, CentOS-7 einfach in einen PC zu integrieren, den ich nicht mehr benötige
[Für Anfänger] Ich habe versucht, DBUnit mit Eclipse zu verwenden
Ich habe versucht, polymorph in Nogizaka zu implementieren.
[Für Anfänger] Ich habe versucht, JUnit 5 mit Eclipse zu verwenden
Ich habe versucht, die Sitzung in Rails zu organisieren
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe ein Programm zur Beurteilung von Primzahlen in Java geschrieben
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Ich habe es mit Spring versucht.
Ich habe versucht, Tomcat zu setzen
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten
Ich habe versucht, ein Remote-Repository für Maven einzurichten
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe ein Primfaktorisierungsprogramm in Java geschrieben
Ich habe versucht, eine Website zu entwickeln, um Ausgaben zu erfassen.
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, Java in einem Mac-Terminal auszuführen
Ich habe JHipster 5.1 ausprobiert
Ich bin gestolpert, als ich versucht habe, neo4j in der jenv-Umgebung zu verwenden. Machen Sie sich also eine Notiz
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Versuchte Mastodons Toot- und Streaming-API in Java
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
Ich habe versucht, eine Ramen-Shop-Sharing-Website zu entwickeln.
# 2 [Anmerkung] Ich habe versucht, neunundneunzig mit Java zu berechnen.