Mavenによるサイトの作成

かなり長い間、プロジェクトを構築するためのツールとしてmavenを使用しています。 このツールは非常に興味深く、ファッショナブルです。 Java開発者の間では特に人気がありますが、他の分野では役立つかもしれません。 そこで、それを使用してサイトを作成する方法についてお話したいと思います。 なぜこれがあなたに役立つのかわかりません。これを使ってプロジェクトのドキュメントを作成します。 この記事では、この記事のテキストを含むhtmlページを作成し、Habrに関する通常の記事のように見せます。









プロジェクトのサイトは、簡単なコマンドを使用して作成されます。

mvn site
      
      







デフォルトでは、このコマンドの結果として、空のプロジェクト用のhtmlページの標準セットが作成されます:index.html、dependencies.html、integration.html ...これらはmaven-project-info-reports-pluginプラグインによって作成されたレポートです。 pom.xmlのレポートセクションを設定することにより、それらを無効にしたり追加したりできます。 ただし、このトピックについては詳しく説明しません。Mavenの別の機能、つまりコンテンツを追加し、作成するサイトの外観をカスタマイズすることについて説明したいからです。



プロジェクトのセットアップ



したがって、開始するには、プロジェクトを作成します。 コンテンツを作成するには、 maven-site-pluginを使用します 。したがって、プロジェクトのビルドセクションに追加し、ニーズに合わせて構成するのが理にかなっています。

 <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>site-example</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Site Example</name> <description> This is an example application that demonstrates creation of site for project using maven </description> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>2.1</version> <configuration> <inputEncoding>UTF-8</inputEncoding> <outputEncoding>UTF-8</outputEncoding> <generateReports>false</generateReports> </configuration> </plugin> </plugins> </build> </project>
      
      







この例では、ソーステキスト( inputEncoding )と結果のページ( outputEncoding )のエンコーディングが明示的に設定され、レポート生成( generateReports )が無効になっています。 設定の完全なリストはここにあります 。 これで、メインパートに移動できます。



コンテンツを追加する



デフォルトでは、サイトを作成するためのソースコードはsrc / siteに保存され、形式に従ってフォルダに分割されます。mavenには3つの部分があります。



一般に、プロジェクトの初期構造は次のようになります。

 +- src/ +- site/ +- resources/ | +- css/ | | +- site.css | | | +- images/ | +- pic1.jpg | +- apt/ | +- index.apt | +- fml/ | +- general.fml | +- faq.fml | +- xdoc/ | +- other.xml | +- site.xml
      
      







結果は次のようになります。

 +- target/ +- site/ +- css/ | +- images/ | +- index.html +- general.html +- faq.html +- other.html
      
      







ご覧のとおり、ソースコードに加えて、site.xmlファイル(サイト記述子とリソースフォルダー)もあります。これについては後で説明しますが、ここではコンテンツの作成に戻りましょう。



APTフォーマット


Wikiのスタイルと非常によく似た、単純なテキスト構成を使用してドキュメントの構造を説明します。 この場合、ソーステキストは通常​​のテキストファイルのように見えます。 仕組みを示すために、この形式を使用してこの記事の説明を検討してください。



まず、タイトルを追加します。 これはオプションの要素であり、存在する場合はドキュメントの先頭に配置する必要があります。 少なくとも前の3つの---で示され、その後にドキュメントのタイトルに対応するテキストが続きます。 次のように閉じることができます-著者と日付に関する追加情報を追加します。 この場合、次のようになります。

  ----     ---- sody ---- 2011-03-15
      
      







ISO-8601形式の日付を使用することをお勧めします。 YYYY-MM-DD



次に、ドキュメントを論理的に関連する小さなコンポーネント、セクションに分割します。 セクションの見出しは、スペースやタブなどを前に付けずに、行頭から始まるプレーンテキストとして指定されます。 それらはいくつかのレベルのネストをサポートし、次の各レベルは1つ、2つなどで開始する必要があります。 文字*。 単純なドキュメントの場合、セクションではなく段落を使用することをお勧めします。

  ----     ---- sody ---- 2011-03-15         *  APT    *    *   *   
      
      







セクションが作成されました。次に、テキストを追加する必要があります。 文書に含まれるテキストは、文書の通常のテキスト、セクションテキスト、リストアイテムなど、段落に分割できます。 段落は、空白行で区切られた一連のテキスト行として指定されます。 また、段落の最初の行の前にはいくつかのスペースが必要です。 スペースの数は重要ではありませんが、2を使用して、これら2つのスペースで段落の各行を開始するのが慣例です。

  ----     ---- sody ---- 2011-03-15           .      .     java         .  ,              .        : mvn site
      
      







リストを使用することが必要になる場合があります。 それらを示すには、要素の名前が*文字で始まり、空の文字列で区切られている必要があります。ネストされたリストの要素の前には、より多くのスペースが必要です。 私たちの場合、フォーマットを説明する部分はリストとして配置できます:

            src/site       ,     3 : * APT Format ("Almost Plain Text").  -     .   ,           . * FML Format ("FAQ Markup Language").         FAQ .    . * XDoc format.    ,   / . []
      
      







上位のリスト項目とセクション名は、現在のリストを自動的に終了します。 リストを手動で閉じる必要がある場合は、[]記号を使用できます。



また、何らかの方法でテキストを選択するか、フォーマットせずにそのままにしておく必要があります。 プログラミングでは、これはソースコードを強調表示するのに役立ちます。 少なくとも3文字が指定に使用されます-前のスペースはありません。

     : +----+ +- target/ +- site/ +- css/ | +- images/ | +- index.html +- general.html +- faq.html +- other.html +----+
      
      







+記号を追加すると、そのようなテキストはフレーム化されます。



さて、写真のないどのようなドキュメントですか? 画像を示すには、ファイルへのパスを文字[]で囲む必要があります。文字の前にはスペースを入れないでください。その後に画像の名前が続く場合があります。

 [images/sample-site.jpg] Example Site
      
      







テーブルが必要な場合は、次の構文を使用できます。

 *----------*--------------*----------------* ||  ||  ||  | *----------*--------------*----------------* |  |  |  | *----------*--------------*----------------* |  |  |  | *----------*--------------*----------------* |  |  |  | *----------*--------------*----------------* 
      
      







または:

 *----------------:--------------+ ||  |  .. | *----------------:--------------+ ||   | 26.03.1989 | *----------------:--------------+ ||  | 651003 | *----------------:--------------+  
      
      







テーブルは行*で始まる必要があります-前のスペースなしで、テーブルの行は同じ行で区切られる必要があります*-。 また、次の文字を使用してテキストを揃えることができます。



列見出しは、二重文字|で示すことができます。



次に、このページの他のリソース/ページ/セクションへのリンクをテキストに追加しましょう。 セクションへのリンクを作成する機能を追加するには、アンカーが使用されます。 単一の文字{}は、それらを示すために使用されます。 それらの間の結論に従って、アンカーが生成されます。 生成は、スペースをアンダースコアに置き換えることで発生することに注意してください。 リンクの参照には同じ文字が使用されますが、{{}}が2回使用されます。 それらの間には、アンカーの名前、このリソースの別のページへの相対リンク、または別のリソースへの見慣れたリンクがあります。 また、すべてを二重{{}} +に入れて無題リンクを別の{}に入れることで、リンクの名前を変更することもできます。

            src/site       ,     3 : * {{{http://maven.apache.org/doxia/references/apt-format.html}APT Format}} ("Almost Plain Text").  -     .   ,           . * {{{http://maven.apache.org/doxia/references/fml-format.html}FML Format}} ("FAQ Markup Language").         FAQ .    . * {{{http://maven.apache.org/doxia/references/xdoc-format.html}XDoc format}}.    ,   / . []
      
      







結論として、フォントを変更できます。 単一文字<>は斜体、二重<< >>-太字、三重<<< >>>-等幅を示します。

  ,       ISO-8601, .. <<YYYY-MM-DD>>.
      
      







その結果、次のような結果が得られます。







さらにページを追加すると、外観のカスタマイズに進むことができます。



詳細はこちら



外観のカスタマイズ



外観をカスタマイズするには、次の3つのことを実行できます。







スタイルのカスタマイズ


できる最も簡単なことは、CSSスタイルを必要なものにオーバーライドすることです。 必要なのは、site.cssファイルを作成し、誰がそれを行うかだけです。 私の例では、ハブのスタイルに似たスタイルを基本としました。



サイト記述子の設定


サイト記述子ファイル(site.xml)をプロジェクトに追加します。

 <project xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd"> <body> <menu name=""> <item name="" href="index.html"/> <item name=" 0" href="sample0.html"/> <item name=" 1" href="sample1.html"/> <item name=" 2" href="sample2.html"/> <item name=" 4" href="sample3.html"/> </menu> </body> </project>
      
      







この例では、サイドメニューが構成されます。サイドメニューはArticlesセクションで構成され、ArticlesセクションとArticle 0-4から構成されています。 いくつかのセクションに分割できます。

 <project xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd"> <body> <menu name=""> <item name="" href="index.html"/> </menu> <menu name=""> <item name=" 0" href="sample0.html"/> <item name=" 1" href="sample1.html"/> <item name=" 2" href="sample2.html"/> <item name=" 4" href="sample3.html"/> </menu> </body> </project>
      
      







メニューに加えて、バージョン、発行日、バナー、ナビゲーションバーなどの他の要素を制御することもできます。

  <version position="none"/> <publishDate position="navigation-bottom" format="yyyy-MM-dd"/>
      
      







これらの行を追加すると、プロジェクトのバージョンは表示されず、公開日は指定された形式でメニューの下に表示されます。 説明したすべてに加えて、サイトに別のスキンを適用できます。

  <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-classic-skin</artifactId> <version>1.0</version> </skin>
      
      







その結果、サイトの外観は次のように変わります。







設定の詳細についてはこちらをご覧ください



サイトテンプレートのセットアップ


サイトテンプレートは、テキストを結果の形式(この場合はhtml)に変換する速度に関するスクリプトです。 多くのニュアンスがあるので、この記事ではそれを検討しません。得られた結果のみを表示します。







ソースコードはgithubにあります。



All Articles