Skip to content

Commit 955ab11

Browse files
committed
[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.
1 parent 427a6e0 commit 955ab11

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

docs/search.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,30 @@ search: exclude
77
[
88
{% for page in site.pages %}
99
{% unless page.search == "exclude" %}
10+
11+
{% if page.permalink contains "pmd_rules_" and page.keywords %}
12+
{% assign rules = page.keywords | split: ", " %}
13+
{% for rule in rules %}
14+
{
15+
"title": "{{ rule | escape }} ({{page.language}}, {{page.title}})",
16+
"tags": "{{ page.tags }}",
17+
"keywords": "{{rule}}",
18+
"url": "{{ page.url | remove: "/"}}#{{ rule | downcase }}",
19+
"summary": "{{page.summary | strip }}"
20+
}
21+
{% unless forloop.last %},{% endunless %}
22+
{% endfor %}
23+
{% else %}
1024
{
1125
"title": "{{ page.title | escape }}",
1226
"tags": "{{ page.tags }}",
1327
"keywords": "{{page.keywords}}",
1428
"url": "{{ page.url | remove: "/"}}",
1529
"summary": "{{page.summary | strip }}"
1630
}
31+
{% endif %}
32+
33+
1734
{% unless forloop.last and site.posts.size < 1 %},{% endunless %}
1835
{% endunless %}
1936
{% endfor %}

pmd-doc/src/main/java/net/sourceforge/pmd/docs/RuleDocGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,9 @@ private static List<String> toLines(String s) {
314314
*/
315315
private void generateRuleSetIndex(Map<Language, List<RuleSet>> rulesets) throws IOException {
316316
for (Map.Entry<Language, List<RuleSet>> entry : rulesets.entrySet()) {
317-
String languageTersename = entry.getKey().getTerseName();
317+
Language language = entry.getKey();
318+
String languageTersename = language.getTerseName();
319+
String languageName = language.getName();
318320
for (RuleSet ruleset : entry.getValue()) {
319321
String rulesetFilename = RuleSetUtils.getRuleSetFilename(ruleset);
320322
String filename = RULESET_INDEX_FILENAME_PATTERN
@@ -336,6 +338,7 @@ private void generateRuleSetIndex(Map<Language, List<RuleSet>> rulesets) throws
336338
lines.add("sidebaractiveurl: /" + LANGUAGE_INDEX_PERMALINK_PATTERN.replace("${language.tersename}", languageTersename));
337339
lines.add("editmepath: ../" + getRuleSetSourceFilepath(ruleset));
338340
lines.add("keywords: " + getRuleSetKeywords(ruleset));
341+
lines.add("language: " + languageName);
339342
lines.add("---");
340343

341344
for (Rule rule : getSortedRules(ruleset)) {

pmd-doc/src/test/resources/expected/sample.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ folder: pmd/rules/java
66
sidebaractiveurl: /pmd_rules_java.html
77
editmepath: ../rulesets/ruledoctest/sample.xml
88
keywords: Sample, OverrideBothEqualsAndHashcode, JumbledIncrementer, DeprecatedSample, RenamedRule, MovedRule
9+
language: Java
910
---
1011
## DeprecatedSample
1112

0 commit comments

Comments
 (0)