[doc] Use the rule names for the search index, include language

This provides better user experience for the search box on the
documentation page. The search results show now the rule name,
the language and the ruleset name.
This commit is contained in:
Andreas Dangel
2018-04-09 11:36:25 +02:00
parent 427a6e041e
commit 955ab11922
3 changed files with 22 additions and 1 deletions

View File

@@ -7,6 +7,20 @@ search: exclude
[ [
{% for page in site.pages %} {% for page in site.pages %}
{% unless page.search == "exclude" %} {% unless page.search == "exclude" %}
{% if page.permalink contains "pmd_rules_" and page.keywords %}
{% assign rules = page.keywords | split: ", " %}
{% for rule in rules %}
{
"title": "{{ rule | escape }} ({{page.language}}, {{page.title}})",
"tags": "{{ page.tags }}",
"keywords": "{{rule}}",
"url": "{{ page.url | remove: "/"}}#{{ rule | downcase }}",
"summary": "{{page.summary | strip }}"
}
{% unless forloop.last %},{% endunless %}
{% endfor %}
{% else %}
{ {
"title": "{{ page.title | escape }}", "title": "{{ page.title | escape }}",
"tags": "{{ page.tags }}", "tags": "{{ page.tags }}",
@@ -14,6 +28,9 @@ search: exclude
"url": "{{ page.url | remove: "/"}}", "url": "{{ page.url | remove: "/"}}",
"summary": "{{page.summary | strip }}" "summary": "{{page.summary | strip }}"
} }
{% endif %}
{% unless forloop.last and site.posts.size < 1 %},{% endunless %} {% unless forloop.last and site.posts.size < 1 %},{% endunless %}
{% endunless %} {% endunless %}
{% endfor %} {% endfor %}

View File

@@ -314,7 +314,9 @@ public class RuleDocGenerator {
*/ */
private void generateRuleSetIndex(Map<Language, List<RuleSet>> rulesets) throws IOException { private void generateRuleSetIndex(Map<Language, List<RuleSet>> rulesets) throws IOException {
for (Map.Entry<Language, List<RuleSet>> entry : rulesets.entrySet()) { for (Map.Entry<Language, List<RuleSet>> entry : rulesets.entrySet()) {
String languageTersename = entry.getKey().getTerseName(); Language language = entry.getKey();
String languageTersename = language.getTerseName();
String languageName = language.getName();
for (RuleSet ruleset : entry.getValue()) { for (RuleSet ruleset : entry.getValue()) {
String rulesetFilename = RuleSetUtils.getRuleSetFilename(ruleset); String rulesetFilename = RuleSetUtils.getRuleSetFilename(ruleset);
String filename = RULESET_INDEX_FILENAME_PATTERN String filename = RULESET_INDEX_FILENAME_PATTERN
@@ -336,6 +338,7 @@ public class RuleDocGenerator {
lines.add("sidebaractiveurl: /" + LANGUAGE_INDEX_PERMALINK_PATTERN.replace("${language.tersename}", languageTersename)); lines.add("sidebaractiveurl: /" + LANGUAGE_INDEX_PERMALINK_PATTERN.replace("${language.tersename}", languageTersename));
lines.add("editmepath: ../" + getRuleSetSourceFilepath(ruleset)); lines.add("editmepath: ../" + getRuleSetSourceFilepath(ruleset));
lines.add("keywords: " + getRuleSetKeywords(ruleset)); lines.add("keywords: " + getRuleSetKeywords(ruleset));
lines.add("language: " + languageName);
lines.add("---"); lines.add("---");
for (Rule rule : getSortedRules(ruleset)) { for (Rule rule : getSortedRules(ruleset)) {

View File

@@ -6,6 +6,7 @@ folder: pmd/rules/java
sidebaractiveurl: /pmd_rules_java.html sidebaractiveurl: /pmd_rules_java.html
editmepath: ../rulesets/ruledoctest/sample.xml editmepath: ../rulesets/ruledoctest/sample.xml
keywords: Sample, OverrideBothEqualsAndHashcode, JumbledIncrementer, DeprecatedSample, RenamedRule, MovedRule keywords: Sample, OverrideBothEqualsAndHashcode, JumbledIncrementer, DeprecatedSample, RenamedRule, MovedRule
language: Java
--- ---
## DeprecatedSample ## DeprecatedSample