1
+ <?php
2
+
3
+ $ file = "3.0.0.md " ;
4
+ $ str = file_get_contents ($ file );
5
+
6
+ $ list = preg_split ("/#### <a name= \"[^ \"]+ \"><\/a>/ " ,$ str , -1 ); // <a name="[^\"]+"></a>OpenAPI Object
7
+ array_shift ($ list );
8
+ array_shift ($ list );
9
+ array_shift ($ list );
10
+ array_shift ($ list );
11
+ array_shift ($ list );
12
+ foreach ($ list as $ item ) {
13
+ $ a = explode ("\n" ,$ item , 2 );
14
+ $ object_label = trim ($ a [0 ]);
15
+
16
+ //echo $object_label.PHP_EOL;
17
+
18
+ // now find the smartapi section
19
+ $ record = false ;
20
+ $ buf = '' ;
21
+ $ a = explode ("\n" ,$ a [1 ]);
22
+ foreach ($ a AS $ b ) {
23
+ // echo "line: $b".PHP_EOL;
24
+
25
+ if ($ record === true ) {
26
+ //if(strlen(trim($b)) == 0) $record = false;
27
+ if (strstr ($ b ,"#### " )) $ record = false ;
28
+ else {
29
+ $ buf .= $ b .PHP_EOL ;
30
+
31
+ if (strstr ($ b ,"<a name= " )) {
32
+ $ cols = explode ("| " ,$ b );
33
+
34
+ $ datatype = str_replace ('` ' ,'' ,$ cols [1 ]);
35
+ if (strstr ($ datatype ,"[[ " )) {
36
+ preg_match ("/\[\[([^\]]+)\]/ " ,$ datatype ,$ m );
37
+ if (isset ($ m [1 ])) $ datatype = $ m [1 ];
38
+ }
39
+ $ desc = $ cols [2 ];
40
+ preg_match ("/a>(.*)/ " ,$ cols [0 ],$ m );
41
+ $ field = trim ($ m [1 ]);
42
+
43
+ // recommendation
44
+ preg_match ('/\*\*([^\*]+)/ ' ,$ desc ,$ m ); //([^*]+)**/',$desc,$m);
45
+ $ rec = '' ;
46
+ if (isset ($ m [1 ])) {
47
+ $ rec = $ m [1 ];
48
+ $ desc = substr ($ desc , strlen ($ rec )+5 );
49
+ }
50
+ $ mylist [$ object_label ][$ field ]['rec ' ] = $ rec ;
51
+ $ mylist [$ object_label ][$ field ]['desc ' ] = trim ($ desc );
52
+ $ mylist [$ object_label ][$ field ]['datatype ' ] = $ datatype ;
53
+ }
54
+ }
55
+ }
56
+ if (strstr ($ b ,"##### smartAPI " ) !== FALSE ) {
57
+ $ record = true ;
58
+ }
59
+ }
60
+
61
+ }
62
+
63
+
64
+ // markdown
65
+ $ file = "smartapi-list.md " ;
66
+ $ fp = fopen ($ file ,"w " );
67
+ fwrite ($ fp ,"Object | Field | Recommendation | Datatype | Description " .PHP_EOL );
68
+ fwrite ($ fp ,"---|:---:|:---:|:---:|--- " .PHP_EOL );
69
+ foreach ($ mylist AS $ object => $ o ) {
70
+ foreach ($ o as $ field => $ field_desc ) {
71
+ fwrite ($ fp ,$ object
72
+ ."| " .$ field
73
+ ."| " .$ field_desc ['rec ' ]
74
+ ."| " .$ field_desc ['datatype ' ]
75
+ ."| " .$ field_desc ['desc ' ]
76
+ .PHP_EOL );
77
+ }
78
+ }
79
+ fclose ($ fp );
80
+
81
+ echo "$ file generated " .PHP_EOL ;
0 commit comments