Skip to content

Commit

Permalink
Improve generated json by JSONGenerator (#7633)
Browse files Browse the repository at this point in the history
* init commit

* Standardize

* add cancellable to events

* fix reviews

* add event-values

* make EventValueInfo public

* reviews

* oops

* forgot to add

* fix error on generate

* made convertToJsonArray return null if strings is empty, not null

* use getClassInfoName

* add semver

* add keywords, deprecated

* add cleaning patterns

* escape html

* fix links in patterns

* fix generating test-only functions

* add doc

* fix function parameters getting removed

* add times to event-values, remove duplicates

* remove eventvalues with empty name

* remove test elements from docs

* switch to class NoDoc check

* i forgor 💀

* fix method

* Delete .github/workflows/release-docs2.yml

* revert to using TestMode.ENABLED (oops)

* remove unnecessary testmode checks

* Update src/main/java/ch/njol/skript/test/runner/TestMode.java

Co-authored-by: sovdee <[email protected]>

---------

Co-authored-by: sovdee <[email protected]>
  • Loading branch information
Efnilite and sovdeeth authored Feb 28, 2025
1 parent 2e50409 commit 8bde953
Show file tree
Hide file tree
Showing 7 changed files with 259 additions and 68 deletions.
18 changes: 10 additions & 8 deletions src/main/java/ch/njol/skript/SkriptCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -382,19 +382,21 @@ public boolean onCommand(CommandSender sender, Command command, String label, St

} else if (args[0].equalsIgnoreCase("gen-docs")) {
File templateDir = Documentation.getDocsTemplateDirectory();
File outputDir = Documentation.getDocsOutputDirectory();
outputDir.mkdirs();

Skript.info(sender, "Generating docs...");
JSONGenerator jsonGenerator = new JSONGenerator(templateDir, outputDir);
jsonGenerator.generate();

if (!templateDir.exists()) {
Skript.error(sender, "Cannot generate docs! Documentation templates not found at '" + Documentation.getDocsTemplateDirectory().getPath() + "'");
TestMode.docsFailed = true;
Skript.info(sender, "JSON-only documentation generated!");
return true;
}
File outputDir = Documentation.getDocsOutputDirectory();
outputDir.mkdirs();

HTMLGenerator htmlGenerator = new HTMLGenerator(templateDir, outputDir);
JSONGenerator jsonGenerator = new JSONGenerator(templateDir, outputDir);
Skript.info(sender, "Generating docs...");
htmlGenerator.generate(); // Try to generate docs... hopefully
jsonGenerator.generate();
Skript.info(sender, "Documentation generated!");
Skript.info(sender, "All documentation generated!");
} else if (args[0].equalsIgnoreCase("test") && TestMode.DEV_MODE) {
File scriptFile;
if (args.length == 1) {
Expand Down
10 changes: 9 additions & 1 deletion src/main/java/ch/njol/skript/doc/Documentation.java
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ protected static String cleanPatterns(final String patterns) {
}

protected static String cleanPatterns(String patterns, boolean escapeHTML) {
return cleanPatterns(patterns, escapeHTML, true);
}

protected static String cleanPatterns(String patterns, boolean escapeHTML, boolean useLinks) {
String cleanedPatterns = escapeHTML ? escapeHTML(patterns) : patterns;

cleanedPatterns = CP_PARSE_MARKS_PATTERN.matcher(cleanedPatterns).replaceAll(""); // Remove marks
Expand Down Expand Up @@ -268,8 +271,13 @@ protected static String cleanPatterns(String patterns, boolean escapeHTML) {
first = false;
final NonNullPair<String, Boolean> p = Utils.getEnglishPlural(c);
final ClassInfo<?> ci = Classes.getClassInfoNoError(p.getFirst());

if (ci != null && ci.hasDocs()) { // equals method throws null error when doc name is null
b.append("<a href='./classes.html#").append(p.getFirst()).append("'>").append(ci.getName().toString(p.getSecond())).append("</a>");
if (useLinks) {
b.append("<a href='./classes.html#").append(p.getFirst()).append("'>").append(ci.getName().toString(p.getSecond())).append("</a>");
} else {
b.append(ci.getName().toString(p.getSecond()));
}
} else {
b.append(c);
if (ci != null && ci.hasDocs())
Expand Down
Loading

0 comments on commit 8bde953

Please sign in to comment.