]> juplo.de Git - website/commitdiff
TMP: Mit StILi generiert und mit import-in-astro.sh importiert
authorKai Moritz <kai@juplo.de>
Thu, 18 Jun 2026 21:39:10 +0000 (23:39 +0200)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Thu, 18 Jun 2026 21:51:44 +0000 (23:51 +0200)
19 files changed:
public/projects/maven-stili-skin/1.0.0-SNAPSHOT/css/site.css [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/_index.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/architecture.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-astro.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-hugo.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/_index.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/licenses.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/plugins.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/summary.html [new file with mode: 0644]
src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/team.html [new file with mode: 0644]
src/pages/maven-stili-plugin/architecture.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/import-in-astro.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/import-in-hugo.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/index.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/licenses.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/plugins.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/project-info.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/summary.html.astro [new file with mode: 0644]
src/pages/maven-stili-plugin/team.html.astro [new file with mode: 0644]

diff --git a/public/projects/maven-stili-skin/1.0.0-SNAPSHOT/css/site.css b/public/projects/maven-stili-skin/1.0.0-SNAPSHOT/css/site.css
new file mode 100644 (file)
index 0000000..055e7e2
--- /dev/null
@@ -0,0 +1 @@
+/* You can override this file with your own styles */
\ No newline at end of file
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/_index.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/_index.html
new file mode 100644 (file)
index 0000000..915df5e
--- /dev/null
@@ -0,0 +1,67 @@
+---
+title: "Maven StILi Skin"
+weight: 0
+url: /maven-stili-plugin/
+params:
+  current: true
+---
+<div id="stili-body">
+<h1>Maven StILi Skin</h1>
+<p>A Maven Doxia skin that liberates the generated site content and its structure for import into arbitrary static site generators. StILi = (St)atic (I)mport site (Li)berator.</p><section>
+<h2><a name="What_is_StILi.3F"></a>What is StILi?</h2>
+<p><b>StILi</b> stands for <b>(St)atic (I)mport site (Li)berator</b> &#x2014; and the name says it all:</p>
+<ul>
+
+<li><b>Liberator</b>: Maven generates site content as monolithic HTML pages that are only usable within the Maven theme ecosystem. StILi <i>liberates</i> that content by serialising the page structure and metadata into a machine-readable JSON block, making it accessible to any downstream tool.</li>
+<li><b>Static</b>: The intended targets are static site generators &#x2014; Hugo, Astro, and any other generator for which someone contributes an import script.</li>
+<li><b>Import</b>: The mechanism is a set of import scripts that transfer the generated Maven output into the target system.</li>
+<li><b>Site</b>: The source is Maven Doxia site output.</li>
+</ul>
+<p>The name also deliberately echoes the German and Italian word for <i>style</i> (<i>Stil</i> / <i>stile</i>) &#x2014; a nod to the fact that StILi liberates Maven site content in a stylish way.</p></section><section>
+<h2><a name="Quick_Start"></a>Quick Start</h2>
+<p>Add StILi as the skin in your project's <code>src/site/site.xml</code>:</p>
+
+<div class="source">
+<pre><code class="language-xml">&lt;project ...&gt;
+  &lt;skin&gt;
+    &lt;groupId&gt;de.juplo.maven&lt;/groupId&gt;
+    &lt;artifactId&gt;maven-stili-skin&lt;/artifactId&gt;
+    &lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;
+  &lt;/skin&gt;
+  &lt;custom&gt;
+    &lt;menuName&gt;Your Main Menu Name&lt;/menuName&gt;
+  &lt;/custom&gt;
+  ...
+&lt;/project&gt;
+</code></pre></div>
+<p>The <code>&lt;menuName&gt;</code> custom element tells StILi which menu in <code>site.xml</code> is the primary navigation. StILi uses this to determine the page order and hierarchy recorded in the <code>stili-json</code> block.</p>
+<p>After running <code>mvn site</code>, the generated output in <code>target/site/</code> contains the regular HTML files plus the import scripts. Run the appropriate import script from that directory:</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-astro.sh /path/to/your/astro-project --base /projects --archived
+</code></pre></div>
+<p>See the <a href="architecture.html">Architecture</a> page for a detailed explanation of the generated format, and the <a href="import-in-hugo.html">Hugo</a> and <a href="import-in-astro.html">Astro</a> pages for the full import script reference.</p></section><section>
+<h2><a name="Design_Principle:_Extensible_by_the_Community"></a>Design Principle: Extensible by the Community</h2>
+<p>StILi is not tied to any specific website or static site generator. The skin itself is completely generator-agnostic &#x2014; it only ensures that the content and navigation structure are machine-readable.</p>
+<p>Generator-specific logic lives in import scripts, which the skin ships as Maven resources and copies into the generated site output:</p>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Script</th>
+<th>Target</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>import-in-hugo.sh</code></td>
+<td>Hugo</td></tr>
+<tr class="a">
+<td align="left"><code>import-in-astro.sh</code></td>
+<td>Astro</td></tr>
+</tbody>
+</table>
+<p>Anyone who wants to use StILi with a different generator writes a new import script. Contributions are welcome.</p></section><section>
+<h2><a name="License"></a>License</h2>
+<p>Maven StILi Skin is licensed under the <a href="licenses.html">GNU Lesser General Public License, Version 3.0</a>.</p></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/architecture.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/architecture.html
new file mode 100644 (file)
index 0000000..8309af8
--- /dev/null
@@ -0,0 +1,145 @@
+---
+title: "Architecture"
+weight: 6
+url: /maven-stili-plugin/architecture.html
+params:
+  current: true
+---
+<div id="stili-body">
+<h1>Architecture</h1><section>
+<h2><a name="How_site.vm_Works"></a>How <code>site.vm</code> Works</h2>
+<p>The Velocity template <code>src/main/resources/META-INF/maven/site.vm</code> is the core of StILi. It renders every Maven page in the following structure:</p>
+
+<div class="source">
+<pre><code class="language-html">&lt;h1 id=&quot;stili-title&quot;&gt;Page Title&lt;/h1&gt;
+&lt;div id=&quot;stili-body&quot;&gt;
+  $bodyContent
+&lt;/div&gt;
+</code></pre></div>
+<p><b>For <code>index.html</code> only</b>, a JSON metadata block is appended after the body:</p>
+
+<div class="source">
+<pre><code class="language-html">&lt;script id=&quot;stili-json&quot; type=&quot;application/json&quot;&gt;
+{
+  &quot;project&quot;: &quot;Project Name&quot;,
+  &quot;groupId&quot;: &quot;de.juplo&quot;,
+  &quot;artifactId&quot;: &quot;my-project&quot;,
+  &quot;version&quot;: &quot;1.0.0&quot;,
+  &quot;pages&quot;: [ ... ]
+}
+&lt;/script&gt;
+</code></pre></div>
+<p>This block is the machine-readable interface between StILi and the import scripts. It appears only in <code>index.html</code> so that the import scripts have a single, predictable location for the full site metadata.</p></section><section>
+<h2><a name="The_stili-json_Format"></a>The <code>stili-json</code> Format</h2>
+<p>The top-level fields mirror the Maven project coordinates:</p>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Field</th>
+<th>Source</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>project</code></td>
+<td>Display name from POM <code>&lt;name&gt;</code></td></tr>
+<tr class="a">
+<td align="left"><code>groupId</code></td>
+<td>POM <code>&lt;groupId&gt;</code></td></tr>
+<tr class="b">
+<td align="left"><code>artifactId</code></td>
+<td>POM <code>&lt;artifactId&gt;</code></td></tr>
+<tr class="a">
+<td align="left"><code>version</code></td>
+<td>POM <code>&lt;version&gt;</code></td></tr>
+<tr class="b">
+<td align="left"><code>generator</code></td>
+<td>Maven Doxia Site Renderer version</td></tr>
+<tr class="a">
+<td align="left"><code>generated</code></td>
+<td>ISO-8601 timestamp of generation</td></tr>
+<tr class="b">
+<td align="left"><code>pages</code></td>
+<td>Array of all pages (see below)</td></tr>
+</tbody>
+</table><section>
+<h3><a name="The_pages_Array"></a>The <code>pages</code> Array</h3>
+<p>The <code>pages</code> array contains every page of the Maven site in the order they appear in the configured navigation menu. Array position serves as the <code>weight</code> for navigation sorting in the target system.</p>
+<p>Each entry:</p>
+
+<div class="source">
+<pre><code class="language-json">{
+  &quot;name&quot;: &quot;Project Reports&quot;,
+  &quot;href&quot;: &quot;project-reports.html&quot;,
+  &quot;childs&quot;: [&quot;plugin-info.html&quot;],
+  &quot;crumbs&quot;: [],
+  &quot;path&quot;: &quot;&quot;
+}
+</code></pre></div>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Field</th>
+<th>Meaning</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>name</code></td>
+<td>Display name of the page</td></tr>
+<tr class="a">
+<td align="left"><code>href</code></td>
+<td>Filename relative to the site root (e.g. <code>project-reports.html</code>; for generated directories e.g. <code>apidocs/index.html</code>)</td></tr>
+<tr class="b">
+<td align="left"><code>childs</code></td>
+<td>Direct children in the menu tree (their <code>href</code> values)</td></tr>
+<tr class="a">
+<td align="left"><code>crumbs</code></td>
+<td>Ancestor pages from the root, excluding <code>index.html</code> (e.g. <code>[&quot;project-reports.html&quot;]</code>)</td></tr>
+<tr class="b">
+<td align="left"><code>path</code></td>
+<td>Ancestors as a directory path &#x2014; <code>crumbs</code> with <code>.html</code> replaced by <code>/</code> (e.g. <code>&quot;project-reports/&quot;</code>)</td></tr>
+</tbody>
+</table></section></section><section>
+<h2><a name="Page_Types"></a>Page Types</h2>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Type</th>
+<th>Example</th>
+<th>Detection</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left">Root</td>
+<td><code>index.html</code></td>
+<td><code>href == &quot;index.html&quot;</code></td></tr>
+<tr class="a">
+<td align="left">Section node (has children)</td>
+<td><code>project-reports.html</code></td>
+<td><code>childs.length &gt; 0</code></td></tr>
+<tr class="b">
+<td align="left">Leaf page</td>
+<td><code>configuration.html</code></td>
+<td><code>childs.length == 0</code></td></tr>
+<tr class="a">
+<td align="left">Generated content</td>
+<td><code>apidocs/</code>, <code>xref/</code> etc.</td>
+<td>Subdirectory, not an HTML file</td></tr>
+</tbody>
+</table>
+<p>Generated content (JavaDocs, cross-references, etc.) appears as a subdirectory in the Maven site output and has a <code>pages</code> entry with an <code>href</code> like <code>apidocs/index.html</code>.</p></section><section>
+<h2><a name="Body_Extraction"></a>Body Extraction</h2>
+<p>Import scripts extract the page body from each HTML file using this pattern:</p>
+
+<div class="source">
+<pre><code class="language-bash">sed -n '/&lt;script id=&quot;stili-json&quot; type=&quot;application\/json&quot;&gt;/q;p' &quot;$SOURCE&quot; \
+  | tail -n +2
+</code></pre></div>
+<ul>
+
+<li><code>sed</code> outputs all lines before the JSON block (and stops). For non-<code>index.html</code> files there is no JSON block, so all content is output.</li>
+<li><code>tail -n +2</code> drops the first line (<code>&lt;h1 id=&quot;stili-title&quot;&gt;...&lt;/h1&gt;</code>), leaving only the <code>&lt;div id=&quot;stili-body&quot;&gt;</code> and its content.</li>
+</ul></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-astro.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-astro.html
new file mode 100644 (file)
index 0000000..8cc01ca
--- /dev/null
@@ -0,0 +1,168 @@
+---
+title: "Astro"
+weight: 9
+url: /maven-stili-plugin/import-in-astro.html
+params:
+  current: true
+---
+<div id="stili-body">
+<h1>Import Script: Astro</h1>
+<p><code>import-in-astro.sh</code> imports a Maven site generated with the StILi skin into an Astro project.</p><section>
+<h2><a name="Prerequisites"></a>Prerequisites</h2>
+<ul>
+
+<li><code>bash</code></li>
+<li><code>jq</code> (JSON processor)</li>
+</ul></section><section>
+<h2><a name="Usage"></a>Usage</h2>
+<p>Run the script from the Maven site output directory (<code>target/site/</code>):</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-astro.sh &lt;ASTRO_ROOT&gt; [OPTIONS]
+</code></pre></div>
+<p>The script checks for <code>package.json</code> in <code>&lt;ASTRO_ROOT&gt;</code> to verify that the path points to an Astro project.</p></section><section>
+<h2><a name="Parameters"></a>Parameters</h2>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Parameter</th>
+<th>Description</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>&lt;ASTRO_ROOT&gt;</code></td>
+<td>Path to the Astro project root (required).</td></tr>
+<tr class="a">
+<td align="left"><code>--base &lt;path&gt;</code></td>
+<td>URL and routing path prefix. The project name is always appended; for <code>--archived</code> the version is appended as well. Default: none (project at root).</td></tr>
+<tr class="b">
+<td align="left"><code>--project &lt;name&gt;</code></td>
+<td>Overrides the project name derived from <code>artifactId</code>.</td></tr>
+<tr class="a">
+<td align="left"><code>--current [&lt;url&gt;]</code></td>
+<td><i>(Default)</i> Marks this version as the current (visible) release. If <code>&lt;url&gt;</code> is given, it overrides the computed URL base.</td></tr>
+<tr class="b">
+<td align="left"><code>--archived [&lt;url&gt;]</code></td>
+<td>Marks this version as archived. <code>params.canonical</code> points to the corresponding current-version page. If <code>&lt;url&gt;</code> is given, it overrides the computed URL base.</td></tr>
+<tr class="a">
+<td align="left"><code>--canonical &lt;url&gt;</code></td>
+<td>Explicitly sets the canonical URL base. Only valid with <code>--archived</code>. Default: <code>&lt;base&gt;/&lt;project&gt;</code>.</td></tr>
+</tbody>
+</table>
+<p>Only one of <code>--current</code> and <code>--archived</code> may be specified.</p></section><section>
+<h2><a name="What_the_Script_Produces"></a>What the Script Produces</h2><section>
+<h3><a name="Content_files"></a>Content files</h3>
+<p>Each HTML page becomes a content file with YAML frontmatter at:</p>
+
+<div class="source">
+<pre><code>src/content/projects/&lt;project&gt;/&lt;version&gt;/&lt;page-path&gt;
+</code></pre></div>
+<p>Frontmatter fields: <code>title</code>, <code>weight</code>, <code>url</code>, <code>params.current</code>, and (for archived) <code>params.canonical</code>. The HTML body follows the frontmatter delimiter.</p>
+<p>Section nodes (pages with children) become <code>_index.html</code> files in a subdirectory; leaf pages keep their <code>.html</code> filename:</p>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Maven output</th>
+<th>Content path</th>
+<th>URL (current, no <code>--base</code>)</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>index.html</code></td>
+<td><code>_index.html</code></td>
+<td><code>/&lt;project&gt;/</code></td></tr>
+<tr class="a">
+<td align="left"><code>project-reports.html</code> (has children)</td>
+<td><code>project-reports/_index.html</code></td>
+<td><code>/&lt;project&gt;/project-reports.html</code></td></tr>
+<tr class="b">
+<td align="left"><code>configuration.html</code> (leaf)</td>
+<td><code>configuration.html</code></td>
+<td><code>/&lt;project&gt;/configuration.html</code></td></tr>
+</tbody>
+</table>
+<p>URLs are always <b>flat</b> (no URL nesting matching the content hierarchy), reflecting Maven's own flat site structure.</p></section><section>
+<h3><a name="Routing_files"></a>Routing files</h3>
+<p>For each content file a minimal Astro routing file is created at the path corresponding to the page URL:</p>
+
+<div class="source">
+<pre><code>src/pages/&lt;base&gt;/&lt;project&gt;/index.astro               (current, root page)
+src/pages/&lt;base&gt;/&lt;project&gt;/configuration.html.astro  (current, leaf page)
+src/pages/&lt;base&gt;/&lt;project&gt;/&lt;version&gt;/index.astro     (archived, root page)
+</code></pre></div>
+<p>The import depth (number of <code>../</code> segments in the <code>ProjectPage.astro</code> import) is computed dynamically from the actual URL depth, so <code>--base</code> values of any nesting level are handled correctly.</p></section><section>
+<h3><a name="Static_files_.28generated_content.29"></a>Static files (generated content)</h3>
+<p>Generated content directories (<code>apidocs/</code>, <code>xref/</code>, etc.) are copied to:</p>
+
+<div class="source">
+<pre><code>public/projects/&lt;project&gt;/&lt;version&gt;/&lt;directory&gt;/
+</code></pre></div>
+<p>This path is always fixed regardless of <code>--base</code>, because the generated content is served at <code>/projects/&lt;project&gt;/&lt;version&gt;/</code> independently of where the content pages appear in the URL space.</p>
+<p>Relative links inside content pages that point to generated directories (e.g. <code>href=&quot;apidocs/&quot;</code>) are rewritten to absolute URLs with an explicit <code>index.html</code> (e.g. <code>href=&quot;/projects/&lt;project&gt;/&lt;version&gt;/apidocs/index.html&quot;</code>). This is necessary because the same content page may be served at different URL prefixes (visible vs. archived) while the generated docs always live at the same fixed path.</p></section></section><section>
+<h2><a name="Known_Generated_Content_Directories"></a>Known Generated Content Directories</h2>
+<p>The following directories are recognised as generated content (defined by <code>GENERATED_DOC_NAMES</code> in the consuming Astro project):</p>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Directory</th>
+<th>Typical content</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>apidocs/</code></td>
+<td>JavaDocs</td></tr>
+<tr class="a">
+<td align="left"><code>testapidocs/</code></td>
+<td>Test JavaDocs</td></tr>
+<tr class="b">
+<td align="left"><code>xref/</code></td>
+<td>Source cross-reference</td></tr>
+<tr class="a">
+<td align="left"><code>xref-test/</code></td>
+<td>Test source cross-reference</td></tr>
+</tbody>
+</table></section><section>
+<h2><a name="URL_Defaults"></a>URL Defaults</h2>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Mode</th>
+<th>URL Base</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>--current</code>, no <code>--base</code></td>
+<td><code>/&lt;project&gt;/</code></td></tr>
+<tr class="a">
+<td align="left"><code>--current --base /path</code></td>
+<td><code>/path/&lt;project&gt;/</code></td></tr>
+<tr class="b">
+<td align="left"><code>--archived</code>, no <code>--base</code></td>
+<td><code>/&lt;project&gt;/&lt;version&gt;/</code></td></tr>
+<tr class="a">
+<td align="left"><code>--archived --base /path</code></td>
+<td><code>/path/&lt;project&gt;/&lt;version&gt;/</code></td></tr>
+</tbody>
+</table></section><section>
+<h2><a name="Examples"></a>Examples</h2>
+<p>Import the current release directly under the site root:</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-astro.sh /path/to/astro-project
+</code></pre></div>
+<p>Import an archived version under <code>/projects/</code>:</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-astro.sh /path/to/astro-project \
+    --base /projects \
+    --archived \
+    --canonical /my-project
+</code></pre></div></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-hugo.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/import-in-hugo.html
new file mode 100644 (file)
index 0000000..5358cde
--- /dev/null
@@ -0,0 +1,112 @@
+---
+title: "Hugo"
+weight: 8
+url: /maven-stili-plugin/import-in-hugo.html
+params:
+  current: true
+---
+<div id="stili-body">
+<h1>Import Script: Hugo</h1>
+<p><code>import-in-hugo.sh</code> imports a Maven site generated with the StILi skin into a Hugo project.</p><section>
+<h2><a name="Prerequisites"></a>Prerequisites</h2>
+<ul>
+
+<li><code>bash</code></li>
+<li><code>jq</code> (JSON processor)</li>
+<li><code>perl</code> with <code>HTML::Entities</code> module (for <code>&lt;pre&gt;</code> block conversion)</li>
+</ul></section><section>
+<h2><a name="Usage"></a>Usage</h2>
+<p>Run the script from the Maven site output directory (<code>target/site/</code>):</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-hugo.sh &lt;HUGO_ROOT&gt; [OPTIONS]
+</code></pre></div></section><section>
+<h2><a name="Parameters"></a>Parameters</h2>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Parameter</th>
+<th>Description</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>&lt;HUGO_ROOT&gt;</code></td>
+<td>Path to the Hugo project root (required).</td></tr>
+<tr class="a">
+<td align="left"><code>--base &lt;path&gt;</code></td>
+<td>URL and content path prefix. The project name and version are always appended. Default: none (project at root).</td></tr>
+<tr class="b">
+<td align="left"><code>--project &lt;name&gt;</code></td>
+<td>Overrides the project name derived from <code>artifactId</code>.</td></tr>
+<tr class="a">
+<td align="left"><code>--current [&lt;url&gt;]</code></td>
+<td><i>(Default)</i> Marks this version as the current (visible) release. If <code>&lt;url&gt;</code> is given, it overrides the computed URL base.</td></tr>
+<tr class="b">
+<td align="left"><code>--archived [&lt;url&gt;]</code></td>
+<td>Marks this version as archived. <code>params.canonical</code> points to the corresponding current-version page. If <code>&lt;url&gt;</code> is given, it overrides the computed URL base.</td></tr>
+<tr class="a">
+<td align="left"><code>--canonical &lt;url&gt;</code></td>
+<td>Explicitly sets the canonical URL base. Only valid with <code>--archived</code>. Default: <code>&lt;base&gt;/&lt;project&gt;</code>.</td></tr>
+</tbody>
+</table>
+<p>Only one of <code>--current</code> and <code>--archived</code> may be specified.</p></section><section>
+<h2><a name="What_the_Script_Produces"></a>What the Script Produces</h2><section>
+<h3><a name="Content_files"></a>Content files</h3>
+<p>Each HTML page becomes a Hugo content file at:</p>
+
+<div class="source">
+<pre><code>content/&lt;base&gt;/&lt;project&gt;/&lt;version&gt;/&lt;page-path&gt;
+</code></pre></div>
+<p>Content files have YAML frontmatter with <code>title</code>, <code>weight</code>, <code>outputs: [html]</code>, <code>url</code>, <code>layout: article</code>, and <code>params.current</code> / <code>params.canonical</code>.</p>
+<p>Section nodes (pages with children) become <code>_index.html</code> files in a subdirectory. Leaf pages keep their <code>.html</code> filename.</p></section><section>
+<h3><a name="Static_files"></a>Static files</h3>
+<p>Generated content directories (<code>apidocs/</code>, <code>xref/</code>, etc.) are copied to:</p>
+
+<div class="source">
+<pre><code>static/&lt;url-base&gt;/&lt;directory&gt;/
+</code></pre></div>
+<p>For each directory that also has a <code>pages</code> entry in <code>stili-json</code>, a redirect page is created in the content tree so that the nav link works correctly.</p></section><section>
+<h3><a name="a.3Cpre.3E_block_conversion"></a><code>&lt;pre&gt;</code> block conversion</h3>
+<p><code>&lt;pre&gt;</code> blocks in the HTML body are converted to Hugo <code>{{&lt; highlight guess &gt;}}</code> shortcodes via <code>perl</code>. This ensures syntax-highlighted rendering in Hugo.</p></section></section><section>
+<h2><a name="URL_Defaults"></a>URL Defaults</h2>
+<table border="0" class="bodyTable">
+<thead>
+
+<tr class="a">
+<th>Mode</th>
+<th>URL Base</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td align="left"><code>--current</code>, no <code>--base</code></td>
+<td><code>/&lt;project&gt;/</code></td></tr>
+<tr class="a">
+<td align="left"><code>--current --base /path</code></td>
+<td><code>/path/&lt;project&gt;/</code></td></tr>
+<tr class="b">
+<td align="left"><code>--archived</code>, no <code>--base</code></td>
+<td><code>/&lt;project&gt;/&lt;version&gt;/</code></td></tr>
+<tr class="a">
+<td align="left"><code>--archived --base /path</code></td>
+<td><code>/path/&lt;project&gt;/&lt;version&gt;/</code></td></tr>
+</tbody>
+</table></section><section>
+<h2><a name="Examples"></a>Examples</h2>
+<p>Import the current release directly under the site root:</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-hugo.sh /path/to/hugo-project
+</code></pre></div>
+<p>Import an archived version under <code>/projects/</code>:</p>
+
+<div class="source">
+<pre><code>cd target/site
+./import-in-hugo.sh /path/to/hugo-project \
+    --base /projects \
+    --archived \
+    --canonical /my-project
+</code></pre></div></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/_index.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/_index.html
new file mode 100644 (file)
index 0000000..f8f2ca2
--- /dev/null
@@ -0,0 +1,32 @@
+---
+title: "Project Information"
+weight: 1
+url: /maven-stili-plugin/project-info.html
+params:
+  current: true
+---
+<div id="stili-body">
+<section>
+<h2><a name="Project_Information"></a>Project Information</h2>
+<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p><section>
+<h3><a name="Overview"></a>Overview</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Document</th>
+<th>Description</th></tr>
+<tr class="b">
+<td align="left"><a href="index.html">About</a></td>
+<td align="left">A Maven Doxia skin that liberates the generated site content and its structure for import into arbitrary static site generators. StILi = (St)atic (I)mport site (Li)berator.</td></tr>
+<tr class="a">
+<td align="left"><a href="summary.html">Summary</a></td>
+<td align="left">This document lists other related information of this project</td></tr>
+<tr class="b">
+<td align="left"><a href="licenses.html">Licenses</a></td>
+<td align="left">This document lists the project license(s).</td></tr>
+<tr class="a">
+<td align="left"><a href="team.html">Team</a></td>
+<td align="left">This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr>
+<tr class="b">
+<td align="left"><a href="plugins.html">Plugins</a></td>
+<td align="left">This document lists the build plugins and the report plugins used by this project.</td></tr></table></section></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/licenses.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/licenses.html
new file mode 100644 (file)
index 0000000..ed29cb7
--- /dev/null
@@ -0,0 +1,14 @@
+---
+title: "Licenses"
+weight: 3
+url: /maven-stili-plugin/licenses.html
+params:
+  current: true
+---
+<div id="stili-body">
+<section><a name="Overview"></a>
+<h2><a name="Overview"></a>Overview</h2>
+<p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p></section><section><a name="Project_Licenses"></a>
+<h2><a name="Project_Licenses"></a>Project Licenses</h2><section><a name="GNU_Lesser_General_Public_License_Version_3.0"></a>
+<h3><a name="GNU_Lesser_General_Public_License.2C_Version_3.0"></a>GNU Lesser General Public License, Version 3.0</h3><a class="externalLink" href="http://www.gnu.org/licenses/lgpl-3.0.en.html">http://www.gnu.org/licenses/lgpl-3.0.en.html</a></section></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/plugins.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/plugins.html
new file mode 100644 (file)
index 0000000..9c110d6
--- /dev/null
@@ -0,0 +1,62 @@
+---
+title: "Plugins"
+weight: 5
+url: /maven-stili-plugin/plugins.html
+params:
+  current: true
+---
+<div id="stili-body">
+<section><a name="Project_Build_Plugins"></a>
+<h2><a name="Project_Build_Plugins"></a>Project Build Plugins</h2>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>GroupId</th>
+<th>ArtifactId</th>
+<th>Version</th></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-clean-plugin/">maven-clean-plugin</a></td>
+<td>3.3.2</td></tr>
+<tr class="a">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-compiler-plugin/">maven-compiler-plugin</a></td>
+<td>3.13.0</td></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-deploy-plugin/">maven-deploy-plugin</a></td>
+<td>3.1.1</td></tr>
+<tr class="a">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="http://maven.apache.org/enforcer/maven-enforcer-plugin">maven-enforcer-plugin</a></td>
+<td>1.2</td></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-install-plugin/">maven-install-plugin</a></td>
+<td>3.1.1</td></tr>
+<tr class="a">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-jar-plugin/">maven-jar-plugin</a></td>
+<td>3.3.0</td></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-resources-plugin/">maven-resources-plugin</a></td>
+<td>3.3.1</td></tr>
+<tr class="a">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-site-plugin/">maven-site-plugin</a></td>
+<td>3.12.1</td></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="http://maven.apache.org/surefire/maven-surefire-plugin">maven-surefire-plugin</a></td>
+<td>2.12.4</td></tr></table></section><section><a name="Project_Report_Plugins"></a>
+<h2><a name="Project_Report_Plugins"></a>Project Report Plugins</h2>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>GroupId</th>
+<th>ArtifactId</th>
+<th>Version</th></tr>
+<tr class="b">
+<td>org.apache.maven.plugins</td>
+<td><a class="externalLink" href="https://maven.apache.org/plugins/maven-project-info-reports-plugin/">maven-project-info-reports-plugin</a></td>
+<td>3.7.0</td></tr></table></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/summary.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/summary.html
new file mode 100644 (file)
index 0000000..e70427c
--- /dev/null
@@ -0,0 +1,56 @@
+---
+title: "Summary"
+weight: 2
+url: /maven-stili-plugin/summary.html
+params:
+  current: true
+---
+<div id="stili-body">
+<section><a name="Project_Summary"></a>
+<h2><a name="Project_Summary"></a>Project Summary</h2><section><a name="Project_Information"></a>
+<h3><a name="Project_Information"></a>Project Information</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Field</th>
+<th>Value</th></tr>
+<tr class="b">
+<td>Name</td>
+<td>Maven StILi Skin</td></tr>
+<tr class="a">
+<td>Description</td>
+<td>A Maven Doxia skin that liberates the generated site content and its structure for import into arbitrary static site generators. StILi = (St)atic (I)mport site (Li)berator.</td></tr>
+<tr class="b">
+<td>Homepage</td>
+<td><a class="externalLink" href="https://juplo.github.io/maven-stili-skin/">https://juplo.github.io/maven-stili-skin/</a></td></tr></table></section><section><a name="Project_Organization"></a>
+<h3><a name="Project_Organization"></a>Project Organization</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Field</th>
+<th>Value</th></tr>
+<tr class="b">
+<td>Name</td>
+<td>juplo</td></tr>
+<tr class="a">
+<td>URL</td>
+<td><a class="externalLink" href="http://juplo.de">http://juplo.de</a></td></tr></table></section><section><a name="Build_Information"></a>
+<h3><a name="Build_Information"></a>Build Information</h3>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Field</th>
+<th>Value</th></tr>
+<tr class="b">
+<td>GroupId</td>
+<td>de.juplo.maven</td></tr>
+<tr class="a">
+<td>ArtifactId</td>
+<td>maven-stili-skin</td></tr>
+<tr class="b">
+<td>Version</td>
+<td>1.0.0-SNAPSHOT</td></tr>
+<tr class="a">
+<td>Type</td>
+<td>jar</td></tr>
+<tr class="b">
+<td>Java Version</td>
+<td>-</td></tr></table></section></section>
+</div>
diff --git a/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/team.html b/src/content/projects/maven-stili-skin/1.0.0-SNAPSHOT/project-info/team.html
new file mode 100644 (file)
index 0000000..d9fe79b
--- /dev/null
@@ -0,0 +1,28 @@
+---
+title: "Team"
+weight: 4
+url: /maven-stili-plugin/team.html
+params:
+  current: true
+---
+<div id="stili-body">
+<section><a name="Project_Team"></a>
+<h2><a name="Project_Team"></a>Project Team</h2>
+<p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
+<p>The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p><section><a name="Members"></a>
+<h3><a name="Members"></a>Members</h3>
+<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
+<table border="0" class="bodyTable">
+<tr class="a">
+<th>Image</th>
+<th>Id</th>
+<th>Name</th>
+<th>Email</th></tr>
+<tr class="b">
+<td><figure><img src="https://www.gravatar.com/avatar/ffd81035609a093991a5b231c16b52fd?d=mm&amp;s=60" alt="" /></figure></td>
+<td><a id="kai"></a>kai</td>
+<td>Kai Moritz</td>
+<td><a class="externalLink" href="mailto:kai@juplo.de">kai@juplo.de</a></td></tr></table></section><section><a name="Contributors"></a>
+<h3><a name="Contributors"></a>Contributors</h3>
+<p>There are no contributors listed for this project. Please check back again later.</p></section></section>
+</div>
diff --git a/src/pages/maven-stili-plugin/architecture.html.astro b/src/pages/maven-stili-plugin/architecture.html.astro
new file mode 100644 (file)
index 0000000..5cb7436
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/architecture.html" />
diff --git a/src/pages/maven-stili-plugin/import-in-astro.html.astro b/src/pages/maven-stili-plugin/import-in-astro.html.astro
new file mode 100644 (file)
index 0000000..a6a565b
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/import-in-astro.html" />
diff --git a/src/pages/maven-stili-plugin/import-in-hugo.html.astro b/src/pages/maven-stili-plugin/import-in-hugo.html.astro
new file mode 100644 (file)
index 0000000..3df6011
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/import-in-hugo.html" />
diff --git a/src/pages/maven-stili-plugin/index.astro b/src/pages/maven-stili-plugin/index.astro
new file mode 100644 (file)
index 0000000..bdb467b
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/_index.html" />
diff --git a/src/pages/maven-stili-plugin/licenses.html.astro b/src/pages/maven-stili-plugin/licenses.html.astro
new file mode 100644 (file)
index 0000000..e7e1eb3
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/project-info/licenses.html" />
diff --git a/src/pages/maven-stili-plugin/plugins.html.astro b/src/pages/maven-stili-plugin/plugins.html.astro
new file mode 100644 (file)
index 0000000..597affe
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/project-info/plugins.html" />
diff --git a/src/pages/maven-stili-plugin/project-info.html.astro b/src/pages/maven-stili-plugin/project-info.html.astro
new file mode 100644 (file)
index 0000000..75ab129
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/project-info/_index.html" />
diff --git a/src/pages/maven-stili-plugin/summary.html.astro b/src/pages/maven-stili-plugin/summary.html.astro
new file mode 100644 (file)
index 0000000..03aa0c8
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/project-info/summary.html" />
diff --git a/src/pages/maven-stili-plugin/team.html.astro b/src/pages/maven-stili-plugin/team.html.astro
new file mode 100644 (file)
index 0000000..6464ab2
--- /dev/null
@@ -0,0 +1,4 @@
+---
+import ProjectPage from '../../components/ProjectPage.astro';
+---
+<ProjectPage entryId="maven-stili-skin/1.0.0-SNAPSHOT/project-info/team.html" />