@@ -18,7 +18,22 @@ const { event } = Astro.props;
18
18
19
19
const eventType = event .data .type ;
20
20
const eventPath = path .dirname (event .filePath ?? " " );
21
- let eventExamples = event .data .examples
21
+ let eventExamples = event .data .examples ;
22
+
23
+ let parametersCode = " " ;
24
+ // Build parameters code syntax e.g. "int param1, string param2"
25
+ if (event .data .parameters .length > 0 ) {
26
+ parametersCode = event .data .parameters .map ((param : any ) => {
27
+ return param .type + " " + param .name ;
28
+ }).join (" , " );
29
+ }
30
+
31
+ let eventHandlerExample = {
32
+ funcName: " handle" + event .id .charAt (0 ).toUpperCase () + event .id .slice (1 ),
33
+ funcParams: event .data .parameters .map ((param : any ) => {
34
+ return param .name ;
35
+ }).join (" , " ),
36
+ }
22
37
23
38
if ( eventExamples .length > 0 ){
24
39
eventExamples = eventExamples .map ((example : any ) => {
@@ -44,20 +59,33 @@ if ( eventExamples.length > 0 ){
44
59
<Fragment set:html ={ marked (event .data .description )} />
45
60
46
61
<h4 >Parameters</h4 >
62
+ <!-- Looks better with C syntax instead of Lua
63
+ to separate the type from the param name visually -->
64
+ { parametersCode !== " " && <Code code = { parametersCode } lang = " c" />}
47
65
{ event .data .parameters .length > 0 && event .data .parameters .map ((param : any ) => (
48
66
<ul >
49
- <li set :html = { param . type + " " + param .name + " : " + param .description } />
67
+ <li set :html = { " <strong> " + param .name + " </strong> : " + param .description } />
50
68
</ul >
51
69
))}
52
70
53
71
<h4 >Source</h4 >
54
- <p set:html ={ event .data .source_element .type + " : " + event .data .source_element .description } />
72
+ <p set:html ={ " <strong>" + event .data .source_element .type + " </strong>: " + event .data .source_element .description } />
73
+
74
+ <h4 >Handler Example</h4 >
75
+ <Code code ={
76
+ ` local function ${eventHandlerExample .funcName }(${eventHandlerExample .funcParams })\n ` +
77
+ ` -- Your code here\n ` +
78
+ ` end\n ` +
79
+ ` \n ` +
80
+ ` -- Register the event handler\n ` +
81
+ ` addEventHandler("${event .id }", elementAttachedTo, ${eventHandlerExample .funcName }) `
82
+ } lang =" lua" />
55
83
56
- <h4 >Examples</h4 >
84
+ <h4 >Code Examples</h4 >
57
85
{ eventExamples .length > 0 && eventExamples .map ((example : any ) => (
58
86
<div >
59
87
<p set :html = { marked (example .description )} ></p >
60
- <Code code = { example .luaCode } lang = " lua" title = { path . basename ( example . path ) } />
88
+ <Code code = { example .luaCode } lang = " lua" } />
61
89
</div >
62
90
))}
63
91
</StarlightPage >
0 commit comments