Maven StILi Skin

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.

What is StILi?

StILi stands for (St)atic (I)mport site (Li)berator — and the name says it all:

  • Liberator: Maven generates site content as monolithic HTML pages that are only usable within the Maven theme ecosystem. StILi liberates that content by serialising the page structure and metadata into a machine-readable JSON block, making it accessible to any downstream tool.
  • Static: The intended targets are static site generators — Hugo, Astro, and any other generator for which someone contributes an import script.
  • Import: The mechanism is a set of import scripts that transfer the generated Maven output into the target system.
  • Site: The source is Maven Doxia site output.

The name also deliberately echoes the German word for style (Stil) — a nod to the fact that StILi liberates the content of Maven websites so it can be adapted to match the style of the site where the project is hosted.

Quick Start

Add StILi as the skin in your project's src/site/site.xml:

<project ...>
  <skin>
    <groupId>de.juplo.maven</groupId>
    <artifactId>maven-stili-skin</artifactId>
    <version>1.0.0</version>
  </skin>
  <custom>
    <menuName>Your Main Menu Name</menuName>
  </custom>
  ...
</project>

The <menuName> custom element tells StILi which menu in site.xml is the primary navigation. StILi uses this to determine the page order and hierarchy recorded in the stili-json block.

After running mvn site, the generated output in target/site/ contains the regular HTML files plus the import scripts. Run the appropriate import script from that directory:

cd target/site
./import-in-astro.sh /path/to/your/astro-project --base /projects --archived

See the Architecture page for a detailed explanation of the generated format, and the Hugo and Astro pages for the full import script reference.

Design Principle: Extensible by the Community

StILi is not tied to any specific website or static site generator. The skin itself is completely generator-agnostic — it only ensures that the content and navigation structure are machine-readable.

Generator-specific logic lives in import scripts, which the skin ships as Maven resources and copies into the generated site output:

Script Target
import-in-hugo.sh Hugo
import-in-astro.sh Astro

Anyone who wants to use StILi with a different generator can simply write a new import script, that targets this generator: Contributions are welcome.

License

Maven StILi Skin is licensed under the GNU Lesser General Public License, Version 3.0.