[asterisk-dev] Feedback requested for future 1.6 API documentation

Sam Liddicott sam at liddicott.com
Mon Mar 2 09:00:23 CST 2009


I suggest tbook, which has a very simple XML DTD - and I mean VERY 
simple, it looks a bit like html 0.1 but generates lovely documents as 
latex, pdf, html, ..., ...

http://tbookdtd.sourceforge.net/

I'm using it for production of automated test reports, with graphs and 
charts, etc.

Sam

* Tzafrir Cohen wrote, On 02/03/09 13:44:
> On Sun, Mar 01, 2009 at 11:47:17PM -0600, Jeff Peeler wrote:
>   
>> Last year in May I authored a document detailing all of the API 
>> changes from 1.4 to 1.6.0 (doc/api-1.6.0-changes.odt). At that time 
>> it was thought that we would be able to keep the API frozen for all 
>> releases after 1.6.0. This rigid requirement has turned out to be too 
>> hard to accommodate. The plan now is to continue documenting the API 
>> changes from one release to the next. This decision poses a few 
>> questions:
>>
>>     
>
>   
>> What format should be used? Both the file format and the content 
>> layout should be considered. I originally chose an OpenDocument 
>> text simply because it wasn't planned to ever be updated. I encourage 
>> everybody to take a look at the existing document to get an idea of 
>> what might should be included.
>>     
>
> LaTeX example:
>
>
> %%%%%%%%
> %%%%%%%% Uglyness you shouldn't care about:
> %%%%%%%%
> \documentclass{article}
> \newcommand{\old}{1.4}
> \newcommand{\new}{1.6}
> \newcommand{\oldexheader}{\subsection{\old\ Example}}
> \newcommand{\newexheader}{\subsection{\new\ Example}}
> % Maybe format as a table like in the ODF?
> \newcommand{funcdiff}[6]{%
> \section{#1}%
> \paragraph*{Location}{\tt #2}%
> \paragraph*{\old\ Prototype}{\tt #3}%
> \paragraph*{\new\ Prototype}{\tt #4}%
> \paragraph*{Change Explained}#5%
> \paragraph*{New Types or Variables}#6%
> }
>
> \begin{document}
>
> \tableofcontents
>
> %%%%%%
> %%%%%% The part that actually gets edited:
> %%%%%%
>
> \funcdiff{ast\_agi\_register}
>   {/include/asterisk/agi.h}
>   {int ast\_agi\_register(agi\_command *cmd);}
>   {int ast\_agi\_register(struct ast\_module *mod, agi\_command *cmd);}
>   {module parameter added to keep track which module registered the AGI %
>     command as well as the reference count}
>   {none}
>
> No code examples required.
>
> \funcdiff{ast\_aji\_send}
>   {/include/asterisk/jabber.h}
>   {int ast\_aji\_send(struct aji\_client *client, char *address, %
>     char *message);}
>   {int ast\_aji\_send\_chat(struct aji\_client *client, char *address, %
>     char *message);}
>   {function renamed for clarity}
>   {none}
>
> Note: a new ast\_aji\_send function is in 1.6.0
>
> \oldexheader
> \begin{verbatim}
> tatic int manager\_jabber\_send( struct mansession *s, struct message *m ) 
> { 
>     struct aji\_client *client = NULL; 
>     char *id = astman\_get\_header(m,"ActionID"); 
>     char *jabber = astman\_get\_header(m,"Jabber"); 
>     char *screenname = astman\_get\_header(m,"ScreenName"); 
>     char *message = astman\_get\_header(m,"Message"); 
>     ...
>     if (strchr(screenname, '@') && message){ 
> -->     ast\_aji\_send(client, screenname, message); 
>         if (!ast\_strlen\_zero(id)) 
>             astman\_append(s, "ActionID: %s\r\n",id); 
>         astman\_append(s, "Response: Success\r\n"); 
>         return 0; 
>     } 
>     ...
> \end{verbatim}
>
> \newexheader
> Exactly the same as above, except using the new function name:
>
> \begin{verbatim}
> -->     ast\_aji\_send\_chat(client, screenname, message); 
> \end{verbatim}
>
>
> \end{document}
>
>
>
> So the problems we see:
>
> * '_' (and '#'?) needs escaping
> * Explicit verbatim envirnment around the examples. I can't think of a
>   nice way to wrap this with macros.
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20090302/4be6b7ba/attachment.htm 


More information about the asterisk-dev mailing list