Static site generators like Jekyll, Hugo, and Docusaurus expect Markdown files with YAML front matter. GroupDocs.Markdown can automatically generate front matter from document metadata.
importcom.groupdocs.markdown.*;importjava.io.File;importjava.util.Arrays;importjava.util.List;publicclassSsgBatchHugo{privatestaticfinalList<String>EXTENSIONS=Arrays.asList(".docx",".pdf",".xlsx",".epub");publicstaticvoidmain(String[]args){StringinputDir="documents";StringoutputDir="content/docs";DocumentConvertOptionsoptions=newDocumentConvertOptions();options.setIncludeFrontMatter(true);options.setHeadingLevelOffset(1);options.setImageExportStrategy(newSkipImagesStrategy());// or file system
File[]files=newFile(inputDir).listFiles();if(files==null){files=newFile[0];}for(Filefile:files){if(!EXTENSIONS.contains(extension(file.getName()))){continue;}try{StringoutputPath=newFile(outputDir,baseName(file.getName())+".md").getPath();MarkdownConverter.toFile(file.getPath(),outputPath,options);System.out.println("Converted: "+file.getName());}catch(Exceptione){System.out.println("Skipped: "+file.getName()+" — "+e.getMessage());}}}privatestaticStringextension(StringfileName){intdot=fileName.lastIndexOf('.');returndot<0?"":fileName.substring(dot).toLowerCase();}privatestaticStringbaseName(StringfileName){intdot=fileName.lastIndexOf('.');returndot<0?fileName:fileName.substring(0,dot);}}