/*   -*- coding: utf-8 -*-  */
/***********************************************************************
*
*               Module   : MediaWiki
*               Fichier  : MediaWiki.h
*               Auteur   : Ducloy
*               Date     : Decembre 2013
*
************************************************************************
*
* Copyleft 2013 Jacques Ducloy 
* 
************************************************************************/
#ifndef _DILIB_MEDIA_WIKI_H
#define _DILIB_MEDIA_WIKI_H

#include "Buffer.h"
#include "SxmlNode.h"

struct MediaWikiParser_struct
{
  char listSeparator;
  Buffer *bufTerm;
  Buffer *bufListTag;
  Buffer *bufItemTag;
  char   *nextItem;
};
typedef struct MediaWikiParser_struct MediaWikiParser;

MediaWikiParser *NewMediaWikiParser();
#define MediaWikiListSeparator(x) x->listSeparator
#define MediaWikiSetListSeparator(x,y) x->listSeparator=(y)
#define MediaWikiListTag(x) BufferString(x->bufListTag)
#define MediaWikiItemTag(x) BufferString(x->bufItemTag)
#define MediaWikiSetListTag(x,y) BufferStrcpy(x->bufListTag,(y))

SxmlNode *MediaWikiAppendTextNodeFromList(MediaWikiParser *parser, SxmlNode *colNode, char *str);
SxmlNode *MediaWikiSxmlFromListText(MediaWikiParser *parser, SxmlNode *colNode);
SxmlNode *MediaWikiSxmlFromWicriCell(MediaWikiParser *parser, SxmlNode *colNode);
SxmlNode *MediaWikiSxmlListFromStr(MediaWikiParser *parser, char *str);

char *MediaWikiNameToUrlLink(char *name);

/*                      tools in  MediaWikiExportTools.c */

void MediaWikiExportFileBegin();
void MediaWikiExportFileEnd();
void MediaWikiExportPageBegin(char *title, char *user, char *date);
void MediaWikiExportPageEnd();
void MediaWicriExplorPrintElement(SxmlNode *element);
void MediaWicriExplorPrintElementContent(SxmlNode *element);

#endif /* _DILIB_MEDIA_WIKI_H */

