@@ -18,7 +18,22 @@ const { event } = Astro.props;
1818
1919const eventType = event .data .type ;
2020const 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+ }
2237
2338if ( eventExamples .length > 0 ){
2439 eventExamples = eventExamples .map ((example : any ) => {
@@ -44,20 +59,33 @@ if ( eventExamples.length > 0 ){
4459 <Fragment set:html ={ marked (event .data .description )} />
4560
4661 <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" />}
4765 { event .data .parameters .length > 0 && event .data .parameters .map ((param : any ) => (
4866 <ul >
49- <li set :html = { param . type + " " + param .name + " : " + param .description } />
67+ <li set :html = { " <strong> " + param .name + " </strong> : " + param .description } />
5068 </ul >
5169 ))}
5270
5371 <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" />
5583
56- <h4 >Examples</h4 >
84+ <h4 >Code Examples</h4 >
5785 { eventExamples .length > 0 && eventExamples .map ((example : any ) => (
5886 <div >
5987 <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" } />
6189 </div >
6290 ))}
6391 </StarlightPage >
0 commit comments