Nicolas (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-wikitohtml-niv into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-wikitohtml-niv/+merge/123556
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-wikitohtml-niv/+merge/123556
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-wikitohtml-niv.
=== modified file 'document_page/__openerp__.py'
--- document_page/__openerp__.py	2012-08-22 13:02:32 +0000
+++ document_page/__openerp__.py	2012-09-10 14:26:26 +0000
@@ -44,10 +44,6 @@
     'auto_install': False,
     'certificate': '0086363630317',
     'images': [],
-    'js': [
-        'static/src/lib/wiky/wiky.js', 
-        'static/src/js/document_page.js'
-    ],
     'css' : ['static/src/css/document_page.css'],
 }
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== modified file 'document_page/document_page_demo.xml'
--- document_page/document_page_demo.xml	2012-08-11 18:56:10 +0000
+++ document_page/document_page_demo.xml	2012-09-10 14:26:26 +0000
@@ -24,24 +24,28 @@
             <field name="name">OpenERP 6.1. Functional Demo</field>
             <field name="parent_id" ref="demo_category1"/>
             <field name="content">
-
-The news is out, OpenERP's latest version 6.1. is here.  It's more
-user-friendly, even more business oriented and efficient to manage your company
-
-How to discover the latest version 6.1.?
-
-Demo : [http://demo.openerp.com]
-Online: [http://openerp.com/online]
-Download: [http://openerp.com/downloads]
-
-We have also put together a functional demo that presents 6.1. Watch this video
-to learn directly from us what OpenERP 6.1. can do for you. Share it in your
-company, with your clients and implement it now for your business.
-
-==Watch on Youtube!==
-
-[[Video:http://www.youtube.com/embed/7jES2jxKMso ]]
-
+<![CDATA[
+<br>
+<br>
+The news is out, OpenERP's latest version 6.1. is here.  It's more<br>
+user-friendly, even more business oriented and efficient to manage your company<br>
+<br>
+How to discover the latest version 6.1.?<br>
+<br>
+Demo : <a target="http://demo.openerp.com"; href="http://demo.openerp.com"; style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
+Online: <a target="http://openerp.com/online"; href="http://openerp.com/online"; style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
+Download: <a target="http://openerp.com/downloads"; href="http://openerp.com/downloads"; style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
+<br>
+We have also put together a functional demo that presents 6.1. Watch this video<br>
+to learn directly from us what OpenERP 6.1. can do for you. Share it in your<br>
+company, with your clients and implement it now for your business.<br>
+<br>
+<h3>Watch on Youtube!</h3><br>
+<br>
+<iframe width="480" height="390" src="http://www.youtube.com/embed/7jES2jxKMso " frameborder="0" allowfullscreen=""></iframe><br>
+<br>
+<br>
+]]>
 </field>
         </record>
 
@@ -49,36 +53,40 @@
             <field name="name">Personalise Dashboards</field>
             <field name="parent_id" ref="demo_category1"/>
             <field name="content">
-You like OpenERP, but feel like you want to personalise it more? Now, OpenERP
-goes a step further and lets you customize your dashboard.  Thanks to a new
-feature that allows you to customize your dashboard by adding new boards of any
-search view.
-
-==How is it done?==
-
-Step 1: access one search view 
-
-Step 2: apply the filter you want to see at each connection to the application
-(eg. on sales, manufacturing, etc)
-
-Step 3: add it into the dashboard in the same space where you can save the filter
-
-Step 4: choose the application you want it visible on and the name of the array
-
-Look at this simple example below from Purchase, where I want to put on the
-application's dashboard "Purchases to Approve". After I access the search view
-and apply the filter for "Purchases to Approve", I can add it immediately to my
-Purchase dashboard.
-
-[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png ]]
-
-In less than a minute, the search view is visible on the dashboard
-
-[[File:http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png ]]
-
-Of course, you are free to delete what you don't need or like, but just in case
-you change your mind there is a reset button to return to the default view.
-
+<![CDATA[
+<br>
+You like OpenERP, but feel like you want to personalise it more? Now, OpenERP<br>
+goes a step further and lets you customize your dashboard.  Thanks to a new<br>
+feature that allows you to customize your dashboard by adding new boards of any<br>
+search view.<br>
+<br>
+<h3>How is it done?</h3><br>
+<br>
+Step 1: access one search view <br>
+<br>
+Step 2: apply the filter you want to see at each connection to the application<br>
+(eg. on sales, manufacturing, etc)<br>
+<br>
+Step 3: add it into the dashboard in the same space where you can save the filter<br>
+<br>
+Step 4: choose the application you want it visible on and the name of the array<br>
+<br>
+Look at this simple example below from Purchase, where I want to put on the<br>
+application's dashboard "Purchases to Approve". After I access the search view<br>
+and apply the filter for "Purchases to Approve", I can add it immediately to my<br>
+Purchase dashboard.<br>
+<br>
+<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png" alt=""><br>
+<br>
+In less than a minute, the search view is visible on the dashboard<br>
+<br>
+<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png"; alt=""><br>
+<br>
+Of course, you are free to delete what you don't need or like, but just in case<br>
+you change your mind there is a reset button to return to the default view.<br>
+<br>
+<br>
+]]>
 </field>
         </record>
 
@@ -86,36 +94,36 @@
             <field name="name">Touchscreen Point of Sale</field>
             <field name="parent_id" ref="demo_category1"/>
             <field name="content">
-The brand new OpenERP touchscreen point of sale available with 6.1 allows you
-to manage your shop sales very easily.  It's fully web based so that you don't
-have to install or deploy any software and all the sales shops can be easily
-consolidated.  It works in connected and disconnected modes so that you can
-continue to sell if you lose your internet connection.
-
-[[File:http://www.openerp.com/sites/default/files/fileattach/POS(2).png ]]
-
-==Here's a summary of its main features and benefits:==
-
-100% WEB based
-
-* available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)
-* no installation required
-* no synchronization needed, completely integrated
-* continue working even when your connection is down if you close your browser, data won't be lost
-* fully web based with a clean interface smart interface
-
-You have different options to select your products. You can do it through the
-barcode reader, just browse through the categories you have put in place (ie.
-drinks, snacks, meals, etc.), or text search in case neither of the other
-options work for you.  If you need to use the POS for your restaurant, for
-example, your employees can record at the same time multiple tickets without
-having to wait to do one transaction at a time. Along, to facilitate payment,
-the application allows multiple payment methods.
-
-The POS application is so simple and accessible to use that your shop or
-restaurant will never need any other tool to manage orders. Due to its smart
-and user-friendly interface you don't need any training to learn how to use it.
-Think of it as an out-of-the-box solution to boost your business' productivity.
+<![CDATA[
+<br>
+The brand new OpenERP touchscreen point of sale available with 6.1 allows you<br>
+to manage your shop sales very easily.  It's fully web based so that you don't<br>
+have to install or deploy any software and all the sales shops can be easily<br>
+consolidated.  It works in connected and disconnected modes so that you can<br>
+continue to sell if you lose your internet connection.<br>
+<br>
+<img src="http://www.openerp.com/sites/default/files/fileattach/POS(2).png" alt=""><br>
+<br>
+<h3>Here's a summary of its main features and benefits:</h3><br>
+<br>
+100% WEB based<br>
+<br>
+<ul><li>available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)</li><li>no installation required</li><li>no synchronization needed, completely integrated</li><li>continue working even when your connection is down if you close your browser, data won't be lost</li><li>fully web based with a clean interface smart interface</li></ul><br>
+<br>
+You have different options to select your products. You can do it through the<br>
+barcode reader, just browse through the categories you have put in place (ie.<br>
+drinks, snacks, meals, etc.), or text search in case neither of the other<br>
+options work for you.  If you need to use the POS for your restaurant, for<br>
+example, your employees can record at the same time multiple tickets without<br>
+having to wait to do one transaction at a time. Along, to facilitate payment,<br>
+the application allows multiple payment methods.<br>
+<br>
+The POS application is so simple and accessible to use that your shop or<br>
+restaurant will never need any other tool to manage orders. Due to its smart<br>
+and user-friendly interface you don't need any training to learn how to use it.<br>
+Think of it as an out-of-the-box solution to boost your business' productivity.<br>
+<br>
+]]>
 </field>
         </record>
 

=== modified file 'document_page/document_page_view.xml'
--- document_page/document_page_view.xml	2012-09-09 10:43:40 +0000
+++ document_page/document_page_view.xml	2012-09-10 14:26:26 +0000
@@ -55,7 +55,7 @@
                     </div>
                     <field name="content" placeholder="e.g. Once upon a time..." class="oe_edit_only"/>
                     <div class="oe_document_page">
-                        <field name="display_content" widget="text_wiki" class="oe_view_only"/>
+                        <field name="display_content" widget="html" class="oe_view_only" options='{"safe": true}'/>
                     </div>
                 </form>
             </field>

=== removed directory 'document_page/static/src/js'
=== removed file 'document_page/static/src/js/document_page.js'
--- document_page/static/src/js/document_page.js	2012-08-24 18:27:43 +0000
+++ document_page/static/src/js/document_page.js	1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-openerp.document_page = function (openerp) {
-    openerp.web.form.widgets.add('text_wiki', 'openerp.web.form.FieldTextWiki');
-
-    openerp.web.form.FieldTextWiki = openerp.web.form.FieldText.extend({
-        render_value: function() {
-            var show_value = openerp.web.format_value(this.get('value'), this, '');
-            if (!this.get("effective_readonly")) {
-                this.$textarea.val(show_value);
-                if (show_value && this.view.options.resize_textareas) {
-                    this.do_resize(this.view.options.resize_textareas);
-                }
-            } else {
-                var wiki_value = wiky.process(show_value || '');
-                this.$el.html(wiki_value);
-            }
-        },
-    });
-};

=== removed directory 'document_page/static/src/lib'
=== removed directory 'document_page/static/src/lib/wiky'
=== removed file 'document_page/static/src/lib/wiky/Readme.md'
--- document_page/static/src/lib/wiky/Readme.md	2012-01-17 11:22:46 +0000
+++ document_page/static/src/lib/wiky/Readme.md	1970-01-01 00:00:00 +0000
@@ -1,41 +0,0 @@
-Wiky.js - a javascript library to convert Wiki Markup language to HTML.
-=======================
-
-(It is buggy, please use with care)
-
-Wiky.js is a javascript library that converts Wiki Markup language to HTML.
-
-
-How to use it
--------------------
-Include wiki.js into your HTML file. Wiky.js has only one function, which is wiky.process(wikitext).
-
-Please see index.html for an example.
-
-*wiky.js does not depend on jQuery, which is included for testing purpose.
-
-
-
-Supported Syntax
--------------------
-* == Heading ==
-* === Subheading ===
-* [http://www.url.com Name of URLs]
-* [[File:http://www.url.com/image.png Alternative Text]]
-* -------------------- (Horizontal line)
-* : (Indentation)
-* # Ordered bullet point
-* * Unordered bullet point
-
-
-
-License
-------------------
-Creative Commons 3.0
-
-
-
-Contributors
--------------------
-Tanin Na Nakorn
-Tanun Niyomjit (Designer)
\ No newline at end of file

=== removed file 'document_page/static/src/lib/wiky/index.html'
--- document_page/static/src/lib/wiky/index.html	2012-01-17 11:22:46 +0000
+++ document_page/static/src/lib/wiky/index.html	1970-01-01 00:00:00 +0000
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd";>
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
-		<script type="text/javascript" src="wiky.js"></script>
-		<title>Untitled Document</title>
-	<link href="wiky.css" rel="stylesheet" type="text/css">
-	</head>
-	<body>
-		<textarea id="textarea" onchange="$('#preview').html(wiky.process($(this).val()));" cols="60" rows="20">=== Heading ===
-Some content
-I would like to add another line
-
-== Subheading ==
-Some more content
-Some more lines1
-:A line with indent
-:: A 2-indented line
-:: more
-:back to 1-indented line
-
-This is Taeyeon.
-[[File:http://www.oknation.net/blog/home/blog_data/12/2012/images/ty4.jpg Taeyeon]]
-Taeyeon is so cute.
-
-This is a link:[http://www.google.com Google].
-This is a bold link:'''[http://www.google.com Google]'''.
-This is a bold-italic link:'''''[http://www.google.com Google]'''''.
-This is '''bold''', '''''bold-italic''''', and ''italic''
-
-[[Video:http://www.youtube.com/embed/ovVfLancwys]]
-# First
-# secon
-## Second-First
-*** First Point
-*** Second Point
-#### z
-#### y
-#### x
-*** Third Point
-## Second-Second [ftp://www.facebook.com FacebookFTP]
-## Second-Third [http://www.google.com Google Here] 
-# third
-
-</textarea>
-		<br/>
-		<span style="display:block;width:600px;border:1px solid #999999;">
-			<span style="display:block;margin:10px 10px 10px 10px;" class="wiky_preview_area" id="preview">
-			</span>
-		</span>
-	</body>
-</html>
-<script language="javascript">
-	$('#preview').html(wiky.process($('#textarea').val()));
-</script>

=== removed file 'document_page/static/src/lib/wiky/input_complete'
--- document_page/static/src/lib/wiky/input_complete	2012-01-17 11:22:46 +0000
+++ document_page/static/src/lib/wiky/input_complete	1970-01-01 00:00:00 +0000
@@ -1,35 +0,0 @@
-=== Heading ===
-Some content
-I would like to add another line
-
-== Subheading ==
-Some more content
-Some more lines1
-:A line with indent
-:: A 2-indented line
-:: more
-:back to 1-indented line
-
-This is Taeyeon.
-[[File:http://www.oknation.net/blog/home/blog_data/12/2012/images/ty4.jpg Taeyeon]]
-Taeyeon is so cute.
-
-This is a link:[http://www.google.com Google].
-This is a bold link:'''[http://www.google.com Google]'''.
-This is a bold-italic link:'''''[http://www.google.com Google]'''''.
-This is '''bold''', '''''bold-italic''''', and ''italic''
-
-
-# First
-# second
-## Second-First
-*** First Point
-*** Second Point
-#### z
-#### y
-#### x
-*** Third Point
-## Second-Second [ftp://www.facebook.com FacebookFTP]
-## Second-Third [http://www.google.com Google Here] 
-# third
-

=== removed file 'document_page/static/src/lib/wiky/wiky.css'
--- document_page/static/src/lib/wiky/wiky.css	2012-01-17 11:22:46 +0000
+++ document_page/static/src/lib/wiky/wiky.css	1970-01-01 00:00:00 +0000
@@ -1,79 +0,0 @@
-@charset "UTF-8";
-.wiky_preview_area {
-	font-family: "Helvetica Neue", Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;
-	font-size: 13px;
-	line-height: 1.5em;
-	color: #666;
-	font-weight:350;
-	width:600px;
-	display:block;
-}
-.wiky_preview_area h2{
-	font-size:24px;
-	color:#333;
-	font-weight:400;
-	
-	text-shadow:0 1px 0 rgba(000, 000, 000, .4);
-}
-.wiky_preview_area h3{
-	font-size:18px;
-	color:#555;
-	font-weight:400;
-	
-	text-shadow:0 1px 0 rgba(000, 000, 000, .4);
-}
-.wiky_preview_area img{
-	background-repeat: repeat;
-	width: 400px;
-	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
-	border-radius: 10px;
-	-webkit-box-shadow:0 1px  3px rgba(0, 0, 0, .8);
-	-moz-box-shadow:0 1px  3px rgba(0, 0, 0, .8);
-	box-shadow:0 1px  3px rgba(0, 0, 0, .8);
-}
-.wiky_preview_area a{
-	padding:5px;
-	font-weight:400;
-	
-	background: #999; /* for non-css3 browsers */
-
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#000000'); /* for IE */
-	background: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#000)); /* for webkit browsers */
-	background: -moz-linear-gradient(top,  #ccc,  #000); /* for firefox 3.6+ */ 
-	
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-
-	-webkit-box-shadow:none;
-	-moz-box-shadow:none;
-	box-shadow:none;
-
-	text-shadow:0 1px 0 rgba(255, 255, 255, 1);
-}
-
-.wiky_preview_area a:hover{
-	color:#333;
-	padding:5px;
-	font-weight:400;
-	text-decoration:none;
-	
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-
-	-webkit-box-shadow:0 1px  3px rgba(0, 0, 0, .3);
-	-moz-box-shadow:0 1px  3px rgba(0, 0, 0, .3);
-	box-shadow:0 1px  3px rgba(0, 0, 0, .3);
-
-	text-shadow:0 1px 0 rgba(255, 255, 255, 1);
-}
-
-
-.wiky_preview_area > ol, 
-.wiky_preview_area > ul, 
-.wiky_preview_area > ul > li,
-.wiky_preview_area > ol > li {
-	list-style: disc inside none;
-}
\ No newline at end of file

=== removed file 'document_page/static/src/lib/wiky/wiky.js'
--- document_page/static/src/lib/wiky/wiky.js	2012-01-17 11:22:46 +0000
+++ document_page/static/src/lib/wiky/wiky.js	1970-01-01 00:00:00 +0000
@@ -1,303 +0,0 @@
-/**
- * Wiky.js - Javascript library to converts Wiki MarkUp language to HTML.
- * You can do whatever with it. Please give me some credits (Apache License)
- * - Tanin Na Nakorn 
- */
-
-var wiky = {};
-
-
-wiky.process = function(wikitext) {
-	var lines = wikitext.split(/\r?\n/);
-	var start;
-	var html = "";
-	
-	for (var i=0;i<lines.length;i++)
-	{
-		var line = lines[i];
-		if (line.match(/^===/)!=null && line.match(/===$/)!=null)
-		{
-			html += "<h2>"+line.substring(3,line.length-3)+"</h2>";
-		}
-		else if (line.match(/^==/)!=null && line.match(/==$/)!=null)
-		{
-			html += "<h3>"+line.substring(2,line.length-2)+"</h3>";
-		}
-		else if (line.match(/^:+/)!=null)
-		{
-			// find start line and ending line
-			start = i;
-			while (i < lines.length && lines[i].match(/^:+/)!=null) i++;
-			i--;
-			
-			html += wiky.process_indent(lines,start,i);
-		}
-		else if (line.match(/^----+(\s*)$/)!=null)
-		{
-			html += "<hr/>";
-		}
-		else if (line.match(/^(\*+) /)!=null)
-		{
-			// find start line and ending line
-			start = i;
-			while (i < lines.length && lines[i].match(/^(\*+|##+):? /)!=null) i++;
-			i--;
-			
-			html += wiky.process_bullet_point(lines,start,i);
-		}
-		else if (line.match(/^(#+) /)!=null)
-		{
-			// find start line and ending line
-			start = i;
-			while (i < lines.length && lines[i].match(/^(#+|\*\*+):? /)!=null) i++;
-			i--;
-			
-			html += wiky.process_bullet_point(lines,start,i);
-		}
-		else 
-		{
-			html += wiky.process_normal(line);
-		}
-		
-		html += "<br/>\n";
-	}
-	
-	return html;
-};
-
-wiky.process_indent = function(lines,start,end) {
-	var html = "<dl>";
-	
-	for(var i=start;i<=end;i++) {
-		
-		html += "<dd>";
-		
-		var this_count = lines[i].match(/^(:+)/)[1].length;
-		
-		html += wiky.process_normal(lines[i].substring(this_count));
-		
-		var nested_end = i;
-		for (var j=i+1;j<=end;j++) {
-			var nested_count = lines[j].match(/^(:+)/)[1].length;
-			if (nested_count <= this_count) break;
-			else nested_end = j;
-		}
-		
-		if (nested_end > i) {
-			html += wiky.process_indent(lines,i+1,nested_end);
-			i = nested_end;
-		}
-		
-		html += "</dd>";
-	}
-	
-	html += "</dl>";
-	return html;
-};
-
-wiky.process_bullet_point = function(lines,start,end) {
-	var html = (lines[start].charAt(0)=='*')?"<ul>":"<ol>";
-	
-	for(var i=start;i<=end;i++) {
-		
-		html += "<li>";
-		
-		var this_count = lines[i].match(/^(\*+|#+) /)[1].length;
-		
-		html += wiky.process_normal(lines[i].substring(this_count+1));
-		
-		// continue previous with #:
-		{
-			var nested_end = i;
-			for (var j = i + 1; j <= end; j++) {
-				var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
-				
-				if (nested_count < this_count) 
-					break;
-				else {
-					if (lines[j].charAt(nested_count) == ':') {
-						html += "<br/>" + wiky.process_normal(lines[j].substring(nested_count + 2));
-						nested_end = j;
-					} else {
-						break;
-					}
-				}
-					
-			}
-			
-			i = nested_end;
-		}
-		
-		// nested bullet point
-		{
-			var nested_end = i;
-			for (var j = i + 1; j <= end; j++) {
-				var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
-				if (nested_count <= this_count) 
-					break;
-				else 
-					nested_end = j;
-			}
-			
-			if (nested_end > i) {
-				html += wiky.process_bullet_point(lines, i + 1, nested_end);
-				i = nested_end;
-			}
-		}
-		
-		// continue previous with #:
-		{
-			var nested_end = i;
-			for (var j = i + 1; j <= end; j++) {
-				var nested_count = lines[j].match(/^(\*+|#+):? /)[1].length;
-				
-				if (nested_count < this_count) 
-					break;
-				else {
-					if (lines[j].charAt(nested_count) == ':') {
-						html += wiky.process_normal(lines[j].substring(nested_count + 2));
-						nested_end = j;
-					} else {
-						break;
-					}
-				}
-					
-			}
-			
-			i = nested_end;
-		}
-		
-		html += "</li>";
-	}
-	
-	html += (lines[start].charAt(0)=='*')?"</ul>":"</ol>";
-	return html;
-};
-
-wiky.process_url = function(txt) {
-	
-	var index = txt.indexOf(" ");
-	
-	if (index == -1) 
-	{
-		return "<a target='"+txt+"' href='"+txt+"' style='background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC\") no-repeat scroll right center transparent;padding-right: 13px;'></a>";
-	}
-	else
-	{
-		var url = txt.substring(0,index);
-		var label = txt.substring(index+1);
-		return "<a target='"+url+"' href='"+url+"' style='background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC\") no-repeat scroll right center transparent;padding-right: 13px;'>"+label+"</a>";
-	}
-};
-
-wiky.process_image = function(txt) {
-	var index = txt.indexOf(" ");
-	var url = txt;
-	var label = "";
-	
-	if (index > -1) 
-	{
-		url = txt.substring(0,index);
-		label = txt.substring(index+1);
-	}
-	
-	
-	return "<img src='"+url+"' alt=\""+label+"\" />";
-};
-
-wiky.process_video = function(url) {
-
-	if (url.match(/^(https?:\/\/)?(www.)?youtube.com\//) == null)
-	{
-		return "<b>"+url+" is an invalid YouTube URL</b>";
-	}
-	var result;
-	if ((result = url.match(/^(https?:\/\/)?(www.)?youtube.com\/watch\?(.*)v=([^&]+)/)) != null)
-	{
-		url = "http://www.youtube.com/embed/"+result[4];
-	}
-	
-	
-	return '<iframe width="480" height="390" src="'+url+'" frameborder="0" allowfullscreen></iframe>';
-};
-
-wiky.process_normal = function(wikitext) {
-	
-	// Image
-	{
-		var index = wikitext.indexOf("[[File:");
-		var end_index = wikitext.indexOf("]]", index + 7);
-		while (index > -1 && end_index > -1) {
-			
-			wikitext = wikitext.substring(0,index) 
-						+ wiky.process_image(wikitext.substring(index+7,end_index)) 
-						+ wikitext.substring(end_index+2);
-		
-			index = wikitext.indexOf("[[File:");
-			end_index = wikitext.indexOf("]]", index + 7);
-		}
-	}
-	
-	// Video
-	{
-		var index = wikitext.indexOf("[[Video:");
-		var end_index = wikitext.indexOf("]]", index + 8);
-		while (index > -1 && end_index > -1) {
-			
-			wikitext = wikitext.substring(0,index) 
-						+ wiky.process_video(wikitext.substring(index+8,end_index)) 
-						+ wikitext.substring(end_index+2);
-		
-			index = wikitext.indexOf("[[Video:");
-			end_index = wikitext.indexOf("]]", index + 8);
-		}
-	}
-	
-	
-	// URL
-	var protocols = ["http","ftp","news"];
-	
-	for (var i=0;i<protocols.length;i++)
-	{
-		var index = wikitext.indexOf("["+protocols[i]+"://");
-		var end_index = wikitext.indexOf("]", index + 1);
-		while (index > -1 && end_index > -1) {
-		
-			wikitext = wikitext.substring(0,index) 
-						+ wiky.process_url(wikitext.substring(index+1,end_index)) 
-						+ wikitext.substring(end_index+1);
-		
-			index = wikitext.indexOf("["+protocols[i]+"://",end_index+1);
-			end_index = wikitext.indexOf("]", index + 1);
-			
-		}
-	}
-	
-	var count_b = 0;
-	var index = wikitext.indexOf("'''");
-	while(index > -1) {
-		
-		if ((count_b%2)==0) wikitext = wikitext.replace(/'''/,"<b>");
-		else wikitext = wikitext.replace(/'''/,"</b>");
-		
-		count_b++;
-		
-		index = wikitext.indexOf("'''",index);
-	}
-	
-	var count_i = 0;
-	var index = wikitext.indexOf("''");
-	while(index > -1) {
-		
-		if ((count_i%2)==0) wikitext = wikitext.replace(/''/,"<i>");
-		else wikitext = wikitext.replace(/''/,"</i>");
-		
-		count_i++;
-		
-		index = wikitext.indexOf("''",index);
-	}
-	
-	wikitext = wikitext.replace(/<\/b><\/i>/g,"</i></b>");
-	
-	return wikitext;
-};

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to