#!/usr/bin/python
import monkDebug as debug
import sys
import monkTools
import re


##
## @brief Transcode 
## commencez les ligne par ":" comme:
## : 1
## : 2
## ::2.1
## ::2.2
## :::2.2.1
## ::::2.2.1.1
## :::::2.2.1.1.1
## ::2.3
## :3
## resultat:
## 
##  	1
##  	2
##  		2.1
##  		2.2
##  			2.2.1
##  				2.2.1.1
##  		2.3
##  	3
## 
## note: lorsque vous sautez une ligne, la liste sarraite et en recommence une autre...
## 
## Il est possible de mettre des ":" sans ligne appres ce qui genere une ligne vide..
## 
## AND DOT
## **Ma ligne2 star consecutives engendrent des points quelque soit la position dans la ligne...
## 
## Resultat:
## 
## * premiere ligne
## * deusieme ligne
## @param[in] value String to transform.
## @return Transformed string.
##
def transcode(value):
	
	value = re.sub(r'\n:',
	               r'\n:INDENT:',
	               value)
	p = re.compile('((\:INDENT\:(.*?)\n)*)',
	               flags=re.DOTALL)
	value = p.sub(replace_wiki_identation,
	              value)
	
	value = re.sub(r'\*\*(.*?)\n',
	               r'<li>\1</li>',
	               value,
	               flags=re.DOTALL)
	
	return value


def replace_wiki_identation(match):
	if match.group() == "":
		return ""
	#debug.verbose("plop: " + str(match.group()))
	value  = "<ul>"
	value += re.sub(r':INDENT:',
	               r'',
	               match.group())
	value += "</ul>"
	return transcode(value)

#!/usr/bin/python
import monkDebug as debug
import sys
import monkTools
import re


##
## @brief Transcode 
## commencez les ligne par ":" comme:
## : 1
## : 2
## ::2.1
## ::2.2
## :::2.2.1
## ::::2.2.1.1
## :::::2.2.1.1.1
## ::2.3
## :3
## resultat:
## 
##  	1
##  	2
##  		2.1
##  		2.2
##  			2.2.1
##  				2.2.1.1
##  		2.3
##  	3
## 
## note: lorsque vous sautez une ligne, la liste sarraite et en recommence une autre...
## 
## Il est possible de mettre des ":" sans ligne appres ce qui genere une ligne vide..
## 
## AND DOT
## **Ma ligne2 star consecutives engendrent des points quelque soit la position dans la ligne...
## 
## Resultat:
## 
## * premiere ligne
## * deusieme ligne
## @param[in] value String to transform.
## @return Transformed string.
##
def transcode(value):
	
	value = re.sub(r'\n:',
	               r'\n:INDENT:',
	               value)
	p = re.compile('((\:INDENT\:(.*?)\n)*)',
	               flags=re.DOTALL)
	value = p.sub(replace_wiki_identation,
	              value)
	
	value = re.sub(r'\*\*(.*?)\n',
	               r'<li>\1</li>',
	               value,
	               flags=re.DOTALL)
	
	return value


def replace_wiki_identation(match):
	if match.group() == "":
		return ""
	#debug.verbose("plop: " + str(match.group()))
	value  = "<ul>"
	value += re.sub(r':INDENT:',
	               r'',
	               match.group())
	value += "</ul>"
	return transcode(value)

#!/usr/bin/python ## ## @brief Transcode ## commencez les ligne par ":" comme: ## : 1 ## : 2 ## ::2.1 ## ::2.2 ## :::2.2.1 ## ::::2.2.1.1 ## :::::2.2.1.1.1 ## ::2.3 ## :3 ## resultat: ## ##  	1 ##  	2 ##  		2.1 ##  		2.2 ##  			2.2.1 ##  				2.2.1.1 ##  		2.3 ##  	3 ## ## note: lorsque vous sautez une ligne, la liste sarraite et en recommence une autre... ## ## Il est possible de mettre des ":" sans ligne appres ce qui genere une ligne vide.. ## ## AND DOT ## **Ma ligne2 star consecutives engendrent des points quelque soit la position dans la ligne... ## ## Resultat: ## ## * premiere ligne ## * deusieme ligne ## @param[in] value String to transform. ## @return Transformed string. ## #debug.verbose("plop: " + str(match.group()))