void generatePipelineElementReferenceContent(final ScanResult scanResult) {
        final String generatedContent = scanResult.getClassesImplementing(Element.class.getName())
                .parallelStream()
                .map(GeneratePipelineElementsDoc::mapClassInfo)
                .filter(Objects::nonNull)
                .filter(elementInfo -> !Category.INTERNAL.equals(elementInfo.category))
                .sequential()
                .collect(Collectors.groupingBy(ElementInfo::category))
                .entrySet()
                .stream()
                .sorted(Entry.comparingByKey())
                .map(GeneratePipelineElementsDoc::mapCategoryGroup)
                .collect(Collectors.joining("\n"));

        final Path file = StroomDocsUtil.resolveStroomDocsFile(ELEMENENT_REFERENCE_SUB_PATH);

        final boolean didReplace = StroomDocsUtil.replaceGeneratedContent(file, generatedContent);

        if (didReplace) {
            LOGGER.info("Replaced generated content in file: {}", file);
        } else {
            LOGGER.warn("No change made to file: {}", file);
        }
    }
This will modify the content of the file
{@code [this repo]/../stroom-docs/content/en/docs/user-guide/pipelines/element-reference.md}
stroom-app/src/test/java/stroom/app/docs/GeneratePipelineElementsDoc.java