-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
/
MetaGeneratorProcessor.java
35 lines (29 loc) · 1.21 KB
/
MetaGeneratorProcessor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package run.halo.app.theme.dialect;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.info.BuildProperties;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.thymeleaf.context.ITemplateContext;
import org.thymeleaf.model.IModel;
import org.thymeleaf.processor.element.IElementModelStructureHandler;
import reactor.core.publisher.Mono;
@Order()
@Component
public class MetaGeneratorProcessor implements TemplateHeadProcessor {
private final String generatorValue;
public MetaGeneratorProcessor(ObjectProvider<BuildProperties> buildProperties) {
this.generatorValue = "Halo " + buildProperties.stream().findFirst()
.map(BuildProperties::getVersion)
.orElse("Unknown");
}
@Override
public Mono<Void> process(ITemplateContext context, IModel model,
IElementModelStructureHandler structureHandler) {
return Mono.fromRunnable(() -> {
var modelFactory = context.getModelFactory();
var generatorMeta =
modelFactory.createStandaloneElementTag("meta", "generator", generatorValue);
model.add(generatorMeta);
});
}
}