<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=JSwikiparser</id>
	<title>JSwikiparser - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=JSwikiparser"/>
	<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=JSwikiparser&amp;action=history"/>
	<updated>2026-05-06T07:41:05Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>http://wiki.kint.ru/index.php?title=JSwikiparser&amp;diff=21544&amp;oldid=prev</id>
		<title>Павел Лазарев: Новая страница: «Категория: Примеры кода 1С  Источник: http://www.ivan.fomichev.name/2008/04/javascript-creole-10-wiki-markup-parser.html  {{cite|htt...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=JSwikiparser&amp;diff=21544&amp;oldid=prev"/>
		<updated>2010-10-07T05:51:30Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%BA%D0%BE%D0%B4%D0%B0_1%D0%A1&quot; title=&quot;Категория:Примеры кода 1С&quot;&gt;Категория: Примеры кода 1С&lt;/a&gt;  Источник: http://www.ivan.fomichev.name/2008/04/javascript-creole-10-wiki-markup-parser.html  {{cite|htt...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория: Примеры кода 1С]]&lt;br /&gt;
&lt;br /&gt;
Источник: http://www.ivan.fomichev.name/2008/04/javascript-creole-10-wiki-markup-parser.html&lt;br /&gt;
&lt;br /&gt;
{{cite|http://www.ivan.fomichev.name/2008/04/javascript-creole-10-wiki-markup-parser.html|&lt;br /&gt;
What you see is a live demonstration of [http://www.wikicreole.org/wiki/Creole1.0 Creole 1.0] parser, written entirely in [http://en.wikipedia.org/wiki/JavaScript JavaScript]. Creole is a wiki markup language, intended to be a cross standard for various wiki markup dialects. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=js&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2008 Ivan Fomichev&lt;br /&gt;
 *&lt;br /&gt;
 * Portions Copyright (c) 2007 Chris Purcell&lt;br /&gt;
 *&lt;br /&gt;
 * Permission is hereby granted, free of charge, to any person obtaining a&lt;br /&gt;
 * copy of this software and associated documentation files (the &amp;quot;Software&amp;quot;),&lt;br /&gt;
 * to deal in the Software without restriction, including without limitation&lt;br /&gt;
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,&lt;br /&gt;
 * and/or sell copies of the Software, and to permit persons to whom the&lt;br /&gt;
 * Software is furnished to do so, subject to the following conditions:&lt;br /&gt;
 *&lt;br /&gt;
 * The above copyright notice and this permission notice shall be included&lt;br /&gt;
 * in all copies or substantial portions of the Software.&lt;br /&gt;
 *&lt;br /&gt;
 * THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL&lt;br /&gt;
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING&lt;br /&gt;
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER&lt;br /&gt;
 * DEALINGS IN THE SOFTWARE.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
if (!Parse) { var Parse = {}; }&lt;br /&gt;
if (!Parse.Simple) { Parse.Simple = {}; }&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base = function(root, options) {&lt;br /&gt;
    if (!arguments.length) { return; }&lt;br /&gt;
&lt;br /&gt;
    this.root = new this.ruleConstructor(root);&lt;br /&gt;
    this.options = options;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.prototype = {&lt;br /&gt;
    ruleConstructor: null,&lt;br /&gt;
    root: null,&lt;br /&gt;
    options: null,&lt;br /&gt;
&lt;br /&gt;
    parse: function(node, data, options) {&lt;br /&gt;
        if (options) {&lt;br /&gt;
            for (i in this.options) {&lt;br /&gt;
                if (typeof options[i] == 'undefined') { options[i] = this.options[i]; }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            options = this.options;&lt;br /&gt;
        }&lt;br /&gt;
        this.root.apply(node, data, options);&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.prototype.constructor = Parse.Simple.Base;&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.Rule = function(params) {&lt;br /&gt;
    if (!arguments.length) { return; }&lt;br /&gt;
&lt;br /&gt;
    for (var p in params) { this[p] = params[p]; }&lt;br /&gt;
    if (!this.children) { this.children = []; }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.prototype.ruleConstructor = Parse.Simple.Base.Rule;&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.Rule.prototype = {&lt;br /&gt;
    regex: null,&lt;br /&gt;
    capture: null,&lt;br /&gt;
    replaceRegex: null,&lt;br /&gt;
    replaceString: null,&lt;br /&gt;
    tag: null,&lt;br /&gt;
    attrs: null,&lt;br /&gt;
    children: null,&lt;br /&gt;
&lt;br /&gt;
    match: function(data, options) {&lt;br /&gt;
        return data.match(this.regex);&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    build: function(node, r, options) {&lt;br /&gt;
        var data;&lt;br /&gt;
        if (this.capture !== null) {&lt;br /&gt;
            data = r[this.capture];&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var target;&lt;br /&gt;
        if (this.tag) {&lt;br /&gt;
            target = document.createElement(this.tag);&lt;br /&gt;
            node.appendChild(target);&lt;br /&gt;
        }&lt;br /&gt;
        else { target = node; }&lt;br /&gt;
&lt;br /&gt;
        if (data) {&lt;br /&gt;
            if (this.replaceRegex) {&lt;br /&gt;
                data = data.replace(this.replaceRegex, this.replaceString);&lt;br /&gt;
            }&lt;br /&gt;
            this.apply(target, data, options);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (this.attrs) {&lt;br /&gt;
            for (var i in this.attrs) {&lt;br /&gt;
                target.setAttribute(i, this.attrs[i]);&lt;br /&gt;
                if (i == 'class') { target.className = this.attrs[i]; } // for IE&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return this;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    apply: function(node, data, options) {&lt;br /&gt;
        var tail = '' + data;&lt;br /&gt;
        var matches = [];&lt;br /&gt;
&lt;br /&gt;
        if (!this.fallback.apply) {&lt;br /&gt;
            this.fallback = new this.constructor(this.fallback);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        while (true) {&lt;br /&gt;
            var best = false;&lt;br /&gt;
            var rule  = false;&lt;br /&gt;
            for (var i = 0; i &amp;lt; this.children.length; i++) {&lt;br /&gt;
                if (typeof matches[i] == 'undefined') {&lt;br /&gt;
                    if (!this.children[i].match) {&lt;br /&gt;
                        this.children[i] = new this.constructor(this.children[i]);&lt;br /&gt;
                    }&lt;br /&gt;
                    matches[i] = this.children[i].match(tail, options);&lt;br /&gt;
                }&lt;br /&gt;
                if (matches[i] &amp;amp;&amp;amp; (!best || best.index &amp;gt; matches[i].index)) {&lt;br /&gt;
                    best = matches[i];&lt;br /&gt;
                    rule = this.children[i];&lt;br /&gt;
                    if (best.index == 0) { break; }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
                &lt;br /&gt;
            var pos = best ? best.index : tail.length;&lt;br /&gt;
            if (pos &amp;gt; 0) {&lt;br /&gt;
                this.fallback.apply(node, tail.substring(0, pos), options);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (!best) { break; }&lt;br /&gt;
&lt;br /&gt;
            if (!rule.build) { rule = new this.constructor(rule); }&lt;br /&gt;
            rule.build(node, best, options);&lt;br /&gt;
&lt;br /&gt;
            var chopped = best.index + best[0].length;&lt;br /&gt;
            tail = tail.substring(chopped);&lt;br /&gt;
            for (var i = 0; i &amp;lt; this.children.length; i++) {&lt;br /&gt;
                if (matches[i]) {&lt;br /&gt;
                    if (matches[i].index &amp;gt;= chopped) {&lt;br /&gt;
                        matches[i].index -= chopped;&lt;br /&gt;
                    }&lt;br /&gt;
                    else {&lt;br /&gt;
                        matches[i] = void 0;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return this;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    fallback: {&lt;br /&gt;
        apply: function(node, data, options) {&lt;br /&gt;
            node.appendChild(document.createTextNode(data));&lt;br /&gt;
        }&lt;br /&gt;
    }    &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Base.Rule.prototype.constructor = Parse.Simple.Base.Rule;&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Creole = function(options) {&lt;br /&gt;
    var rx = {};&lt;br /&gt;
    rx.link = '[^\\]|~\\n]*(?:(?:\\](?!\\])|~.)[^\\]|~\\n]*)*';&lt;br /&gt;
    rx.linkText = '[^\\]~\\n]*(?:(?:\\](?!\\])|~.)[^\\]~\\n]*)*';&lt;br /&gt;
    rx.uriPrefix = '\\b(?:(?:https?|ftp)://|mailto:)';&lt;br /&gt;
    rx.uri = rx.uriPrefix + rx.link;&lt;br /&gt;
    rx.rawUri = rx.uriPrefix + '\\S*[^\\s!&amp;quot;\',.:;?]';&lt;br /&gt;
    rx.interwikiPrefix = '[\\w.]+:';&lt;br /&gt;
    rx.interwikiLink = rx.interwikiPrefix + rx.link;&lt;br /&gt;
&lt;br /&gt;
    var formatLink = function(link, format) {&lt;br /&gt;
        format = format instanceof Array ? format : [ format ];&lt;br /&gt;
        if (typeof format[1] == 'undefined') { format[1] = ''; }&lt;br /&gt;
        return format[0] + link + format[1];&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var g = {&lt;br /&gt;
        hr: { tag: 'hr', regex: /(^|\n)\s*----\s*(\n|$)/ },&lt;br /&gt;
&lt;br /&gt;
        br: { tag: 'br', regex: /\\\\/ },&lt;br /&gt;
        &lt;br /&gt;
        preBlock: { tag: 'pre', capture: 2,&lt;br /&gt;
            regex: /(^|\n)\{\{\{\n((.*\n)*?)\}\}\}(\n|$)/,&lt;br /&gt;
            replaceRegex: /^ ([ \t]*\}\}\})/gm,&lt;br /&gt;
            replaceString: '$1' },&lt;br /&gt;
        tt: { tag: 'tt',&lt;br /&gt;
            regex: /\{\{\{(.*?\}\}\}+)/, capture: 1,&lt;br /&gt;
            replaceRegex: /\}\}\}$/, replaceString: '' },&lt;br /&gt;
&lt;br /&gt;
        ulist: { tag: 'ul', capture: 0,&lt;br /&gt;
            regex: /(^|\n)([ \t]*\*[^*#].*(\n|$)([ \t]*[^\s*#].*(\n|$))*([ \t]*[*#]{2}.*(\n|$))*)+/ },&lt;br /&gt;
        olist: { tag: 'ol', capture: 0,&lt;br /&gt;
            regex: /(^|\n)([ \t]*#[^*#].*(\n|$)([ \t]*[^\s*#].*(\n|$))*([ \t]*[*#]{2}.*(\n|$))*)+/ },&lt;br /&gt;
        li: { tag: 'li', capture: 0,&lt;br /&gt;
            regex: /[ \t]*([*#]).+(\n[ \t]*[^*#\s].*)*(\n[ \t]*\1[*#].+)*/,&lt;br /&gt;
            replaceRegex: /(^|\n)[ \t]*[*#]/g, replaceString: '$1' },&lt;br /&gt;
&lt;br /&gt;
        table: { tag: 'table', capture: 0,&lt;br /&gt;
            regex: /(^|\n)(\|.*?[ \t]*(\n|$))+/ },&lt;br /&gt;
        tr: { tag: 'tr', capture: 2, regex: /(^|\n)(\|.*?)\|?[ \t]*(\n|$)/ },&lt;br /&gt;
        th: { tag: 'th', regex: /\|+=([^|]*)/, capture: 1 },&lt;br /&gt;
        td: { tag: 'td', capture: 1,&lt;br /&gt;
            regex: /\|+([^|~]*(~(.|(?=\n)|$)[^|~]*)*)/ },&lt;br /&gt;
&lt;br /&gt;
        singleLine: { regex: /.+/, capture: 0 },&lt;br /&gt;
        paragraph: { tag: 'p', capture: 0,&lt;br /&gt;
            regex: /(^|\n)([ \t]*\S.*(\n|$))+/ },&lt;br /&gt;
        text: { capture: 0, regex: /(^|\n)([ \t]*[^\s].*(\n|$))+/ },&lt;br /&gt;
&lt;br /&gt;
        strong: { tag: 'strong', capture: 1,&lt;br /&gt;
            regex: /\*\*([^*~]*((\*(?!\*)|~(.|(?=\n)|$))[^*~]*)*)(\*\*|\n|$)/ },&lt;br /&gt;
        em: { tag: 'em', capture: 1,&lt;br /&gt;
            regex: '\\/\\/(((?!' + rx.uriPrefix + ')[^\\/~])*' +&lt;br /&gt;
                   '((' + rx.rawUri + '|\\/(?!\\/)|~(.|(?=\\n)|$))' +&lt;br /&gt;
                   '((?!' + rx.uriPrefix + ')[^\\/~])*)*)(\\/\\/|\\n|$)' },&lt;br /&gt;
&lt;br /&gt;
        img: { regex: '\\{\\{((?!\\{)[^|}\\n]*(?:}(?!})[^|}\\n]*)*)\\|' +&lt;br /&gt;
                      '([^}~\\n]*((}(?!})|~.)[^}~\\n]*)*)}}',&lt;br /&gt;
            build: function(node, r, options) {&lt;br /&gt;
                var img = document.createElement('img');&lt;br /&gt;
                img.src = r[1];&lt;br /&gt;
                img.alt = r[2].replace(/~(.)/g, '$1');&lt;br /&gt;
                node.appendChild(img);&lt;br /&gt;
            } },&lt;br /&gt;
&lt;br /&gt;
        namedUri: { regex: '\\[\\[(' + rx.uri + ')\\|(' + rx.linkText + ')\\]\\]',&lt;br /&gt;
            build: function(node, r, options) {&lt;br /&gt;
                var link = document.createElement('a');&lt;br /&gt;
                link.href = r[1];&lt;br /&gt;
                if (options &amp;amp;&amp;amp; options.isPlainUri) {&lt;br /&gt;
                    link.appendChild(document.createTextNode(r[2]));&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    this.apply(link, r[2], options);&lt;br /&gt;
                }&lt;br /&gt;
                node.appendChild(link);&lt;br /&gt;
            } },&lt;br /&gt;
&lt;br /&gt;
        namedLink: { regex: '\\[\\[(' + rx.link + ')\\|(' + rx.linkText + ')\\]\\]',&lt;br /&gt;
            build: function(node, r, options) {&lt;br /&gt;
                var link = document.createElement('a');&lt;br /&gt;
                &lt;br /&gt;
                link.href = options &amp;amp;&amp;amp; options.linkFormat&lt;br /&gt;
                    ? formatLink(r[1].replace(/~(.)/g, '$1'), options.linkFormat)&lt;br /&gt;
                    : r[1].replace(/~(.)/g, '$1');&lt;br /&gt;
                this.apply(link, r[2], options);&lt;br /&gt;
                &lt;br /&gt;
                node.appendChild(link);&lt;br /&gt;
            } },&lt;br /&gt;
&lt;br /&gt;
        unnamedUri: { regex: '\\[\\[(' + rx.uri + ')\\]\\]',&lt;br /&gt;
            build: 'dummy' },&lt;br /&gt;
        unnamedLink: { regex: '\\[\\[(' + rx.link + ')\\]\\]',&lt;br /&gt;
            build: 'dummy' },&lt;br /&gt;
        unnamedInterwikiLink: { regex: '\\[\\[(' + rx.interwikiLink + ')\\]\\]',&lt;br /&gt;
            build: 'dummy' },&lt;br /&gt;
&lt;br /&gt;
        rawUri: { regex: '(' + rx.rawUri + ')',&lt;br /&gt;
            build: 'dummy' },&lt;br /&gt;
&lt;br /&gt;
        escapedSequence: { regex: '~(' + rx.rawUri + '|.)', capture: 1,&lt;br /&gt;
            tag: 'span', attrs: { 'class': 'escaped' } },&lt;br /&gt;
        escapedSymbol: { regex: /~(.)/, capture: 1,&lt;br /&gt;
            tag: 'span', attrs: { 'class': 'escaped' } }&lt;br /&gt;
    };&lt;br /&gt;
    g.unnamedUri.build = g.rawUri.build = function(node, r, options) {&lt;br /&gt;
        if (!options) { options = {}; }&lt;br /&gt;
        options.isPlainUri = true;&lt;br /&gt;
        g.namedUri.build.call(this, node, Array(r[0], r[1], r[1]), options);&lt;br /&gt;
    };&lt;br /&gt;
    g.unnamedLink.build = function(node, r, options) {&lt;br /&gt;
        g.namedLink.build.call(this, node, Array(r[0], r[1], r[1]), options);&lt;br /&gt;
    };&lt;br /&gt;
    g.namedInterwikiLink = { regex: '\\[\\[(' + rx.interwikiLink + ')\\|(' + rx.linkText + ')\\]\\]',&lt;br /&gt;
        build: function(node, r, options) {&lt;br /&gt;
                var link = document.createElement('a');&lt;br /&gt;
                &lt;br /&gt;
                var m, f;&lt;br /&gt;
                if (options &amp;amp;&amp;amp; options.interwiki) {&lt;br /&gt;
                m = r[1].match(/(.*?):(.*)/);&lt;br /&gt;
                f = options.interwiki[m[1]];&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (typeof f == 'undefined') {&lt;br /&gt;
                if (!g.namedLink.apply) {&lt;br /&gt;
                    g.namedLink = new this.constructor(g.namedLink);&lt;br /&gt;
                }&lt;br /&gt;
                return g.namedLink.build.call(g.namedLink, node, r, options);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            link.href = formatLink(m[2].replace(/~(.)/g, '$1'), f);&lt;br /&gt;
            &lt;br /&gt;
            this.apply(link, r[2], options);&lt;br /&gt;
            &lt;br /&gt;
            node.appendChild(link);&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
    g.unnamedInterwikiLink.build = function(node, r, options) {&lt;br /&gt;
        g.namedInterwikiLink.build.call(this, node, Array(r[0], r[1], r[1]), options);&lt;br /&gt;
    };&lt;br /&gt;
    g.namedUri.children = g.unnamedUri.children = g.rawUri.children =&lt;br /&gt;
            g.namedLink.children = g.unnamedLink.children =&lt;br /&gt;
            g.namedInterwikiLink.children = g.unnamedInterwikiLink.children =&lt;br /&gt;
        [ g.escapedSymbol, g.img ];&lt;br /&gt;
&lt;br /&gt;
    for (var i = 1; i &amp;lt;= 6; i++) {&lt;br /&gt;
        g['h' + i] = { tag: 'h' + i, capture: 2,&lt;br /&gt;
            regex: '(^|\\n)[ \\t]*={' + i + '}[ \\t]' +&lt;br /&gt;
                   '([^~]*?(~(.|(?=\\n)|$))*)[ \\t]*=*\\s*(\\n|$)'&lt;br /&gt;
        };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    g.ulist.children = g.olist.children = [ g.li ];&lt;br /&gt;
    g.li.children = [ g.ulist, g.olist ];&lt;br /&gt;
    g.li.fallback = g.text;&lt;br /&gt;
&lt;br /&gt;
    g.table.children = [ g.tr ];&lt;br /&gt;
    g.tr.children = [ g.th, g.td ];&lt;br /&gt;
    g.td.children = [ g.singleLine ];&lt;br /&gt;
    g.th.children = [ g.singleLine ];&lt;br /&gt;
&lt;br /&gt;
    g.h1.children = g.h2.children = g.h3.children =&lt;br /&gt;
            g.h4.children = g.h5.children = g.h6.children =&lt;br /&gt;
            g.singleLine.children = g.paragraph.children =&lt;br /&gt;
            g.text.children = g.strong.children = g.em.children =&lt;br /&gt;
        [ g.escapedSequence, g.strong, g.em, g.br, g.rawUri,&lt;br /&gt;
            g.namedUri, g.namedInterwikiLink, g.namedLink,&lt;br /&gt;
            g.unnamedUri, g.unnamedInterwikiLink, g.unnamedLink,&lt;br /&gt;
            g.tt, g.img ];&lt;br /&gt;
&lt;br /&gt;
    g.root = {&lt;br /&gt;
        children: [ g.h1, g.h2, g.h3, g.h4, g.h5, g.h6,&lt;br /&gt;
            g.hr, g.ulist, g.olist, g.preBlock, g.table ],&lt;br /&gt;
        fallback: { children: [ g.paragraph ] }&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    Parse.Simple.Base.call(this, g.root, options);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Creole.prototype = new Parse.Simple.Base();&lt;br /&gt;
&lt;br /&gt;
Parse.Simple.Creole.prototype.constructor = Parse.Simple.Creole;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Павел Лазарев</name></author>
		
	</entry>
</feed>