Skip to content

Commit eacccf6

Browse files
committed
Generate multiple examples for the same operations.
1 parent 2a03451 commit eacccf6

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

plain/generate_docs.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,41 @@ function getRequestTitle($request)
100100
$log = json_decode(file_get_contents('execution.log'), true);
101101
$examples = [];
102102
$menu = [];
103+
$contentHashes = [];
103104

104105
foreach ($log as $record) {
105106
$trace = join(';', array_column($record['trace'], 'file'));
106107
if (preg_match('/ApiClientTest\.php/', $trace)) {
107108
continue;
108109
}
109110

110-
$title = getRequestTitle($record['request']);
111-
$name = str_replace(' > ', '-', $title);
111+
$origTitle = $title = getRequestTitle($record['request']);
112+
$origName = $name = str_replace(' > ', '-', $title);
112113

113-
if (array_key_exists($name, $examples)) {
114+
$index = 2;
115+
while (array_key_exists($name, $examples)) {
116+
$title = $origTitle . " ($index)";
117+
$name = $origName . '-' . $index++;
118+
}
119+
120+
$contentHash = md5(preg_replace('/>([^<]+?)</', '><', $record['request']));
121+
if (array_key_exists($contentHash, $contentHashes)) {
114122
continue;
123+
} else {
124+
$contentHashes[$contentHash] = true;
115125
}
116126

117-
$titleParts = explode(' > ', $title);
127+
$examples[$name] = [
128+
'title' => $title,
129+
'request' => $record['request'],
130+
'response' => $record['response'],
131+
];
132+
}
133+
134+
ksort($examples);
135+
136+
foreach ($examples as $name => $example) {
137+
$titleParts = explode(' > ', $example['title']);
118138
$operator = $titleParts[0];
119139
$menuItem = [
120140
'subTitle' => join(' > ', array_slice($titleParts, 1)),
@@ -126,12 +146,6 @@ function getRequestTitle($request)
126146
} else {
127147
$menu[$operator][] = $menuItem;
128148
}
129-
130-
$examples[$name] = [
131-
'title' => $title,
132-
'request' => $record['request'],
133-
'response' => $record['response'],
134-
];
135149
}
136150

137151
$title = 'Plesk XML-RPC Examples';

0 commit comments

Comments
 (0)