def test_freelink_with_spacelink():
    # a freelink followed by a spacelink will get confused
    tiddler = Tiddler('Bar')
    environ = { 'tiddlyweb.config': {
        'markdown.wiki_link_base': '',
        'markdown.interlinker': space_uri,
        'server_host': {
            'scheme': 'http',
            'host': 'tiddlyspace.com',
            'port': '80'
            }
        } }
    tiddler.text = 'I see [[fire]] and [[rain]] business'
    output = render(tiddler, environ)
    assert '>fire<' in output
    assert '>rain<' in output
    assert 'href="fire"' in output
    assert 'href="rain"' in output

    tiddler.text = 'I see [[fire]]@monkey and [[rain]]@monkey business'
    output = render(tiddler, environ)
    assert 'href="http://monkey.tiddlyspace.com/fire"' in output
    assert 'href="http://monkey.tiddlyspace.com/rain"' in output

    tiddler.text = 'I see [[fire]] and [[rain]]@monkey business'
    output = render(tiddler, environ)
    assert '>fire<' in output
    assert 'href="fire"' in output
    assert 'href="http://monkey.tiddlyspace' in output

    tiddler.text = 'I see [[rain]]@monkey and [[fire]] business'
    output = render(tiddler, environ)
    assert '>fire<' in output
    assert 'href="fire"' in output
    assert 'href="http://monkey.tiddlyspace.com/rain"' in output
def test_spaced_target():
    tiddler = Tiddler('Bar')
    environ = {
        'tiddlyweb.config': {
            'markdown.wiki_link_base': '',
            'markdown.interlinker': tank_uri,
            'server_host': {
                'scheme': 'http',
                'host': 'tiddlyspace.com',
                'port': '80'
            }
        }
    }
    tiddler.text = 'I see [[cow fire]]@[[monkey business]] oh hello'
    output = render(tiddler, environ)
    assert '>cow fire<' in output
    assert 'href="http://tiddlyspace.com/tanks/monkey%20business/cow%20fire"' in output
    assert 'fire</a> oh hello' in output

    tiddler.text = 'I see [[fire]]@[[monkey business]]'
    output = render(tiddler, environ)
    assert '>fire<' in output
    assert 'href="http://tiddlyspace.com/tanks/monkey%20business/fire"' in output

    tiddler.text = 'I see @[[monkey business]] inside you'
    output = render(tiddler, environ)
    assert 'href="http://tiddlyspace.com/tanks/monkey%20business"' in output
def test_spacelink_first():
    tiddler = Tiddler('test')
    tiddler.text = '@cdent for more info.'
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/">@cdent</a>' in output

    tiddler.text = '\n\n@cdent for more info.'
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/">@cdent</a>' in output
Exemplo n.º 4
0
def test_no_wiki():
    tiddler = Tiddler('hello')
    tiddler.text = sample

    environ = {}
    output = render(tiddler, environ)
    assert '<h1>' in output
    assert '<li>' in output
    assert 'href' not in output

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)
    assert 'href' in output
def test_no_wiki():
    tiddler = Tiddler('hello')
    tiddler.text = sample

    environ = {}
    output = render(tiddler, environ)
    assert '<h1>' in output
    assert '<li>' in output
    assert 'href' not in output

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)
    assert 'href' in output
def test_spacewiki_first():
    tiddler = Tiddler('test')
    tiddler.text = "WikiLink@cdent"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/WikiLink">WikiLink</a>' in output

    tiddler.text = "Hi WikiLink@cdent."
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/WikiLink">WikiLink</a>' in output

    tiddler.text = "Hi (WikiLink@cdent)"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/WikiLink">WikiLink</a>' in output
def test_instance_extensions():
    tiddler = Tiddler('Foo')
    tiddler.text = "hello world"

    environ = {
        'tiddlyweb.config': {
            'markdown.extensions': (['markdown.foo', 'markdown.bar'],
                    { 'foo': 'lipsum' })
        }
    }
    try:
        render(tiddler, environ)
        assert False
    except ImportError, exc:
        assert 'markdown.foo' in exc.args[0]
def test_fragments():
    tiddler = Tiddler('Foo')
    tiddler.text = 'oh [[hi#cow]] bye'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert 'a class="wikilink" href="hi#cow">hi#cow</a>' in output

    tiddler = Tiddler('Foo')
    tiddler.text = 'oh [[what|hi#cow]] bye'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert 'a class="wikilink" href="hi#cow">what</a>' in output
def test_simple_fence():
    tiddler = Tiddler('Foo')

    tiddler.text = """
Crikey
======

There was a problem in the system so we decided to make
some changes to the config:

```
True = False
```

We did not get the desired results:

```
the cow    died
```
"""

    output = render(tiddler, environ)

    assert """config:</p>
<pre><code>True = False
</code></pre>""" in output

    # see those 4 spaces
    assert """</p>
<pre><code>the cow    died
</code></pre>""" in output
def test_simple_spacelink():
    tiddler = Tiddler('test')
    tiddler.text = '# Hi\nVisit @cdent for more info.'

    output = render(tiddler, environ)

    assert '<a href="http://cdent.tiddlyspace.org:8080/">@cdent</a>' in output
def test_disallowed():
    environ['tiddlyweb.config']['markdown.safe_mode'] = 'monkey'
    output = render(tiddler, environ)

    assert '<h1 id="h1-header">h1 header</h1>' in output
    assert '<h3' not in output
    assert '<p>&lt;h3' in output
def test_remove():
    environ['tiddlyweb.config']['markdown.safe_mode'] = 'remove'
    output = render(tiddler, environ)

    assert '<h1 id="h1-header">h1 header</h1>' in output
    assert '<h3' not in output
    assert '<p>&lt;h3' not in output
    assert 'h3 header' not in output
def test_false():
    environ['tiddlyweb.config']['markdown.safe_mode'] = False
    output = render(tiddler, environ)

    assert '<h1 id="h1-header">h1 header</h1>' in output
    assert '<h3>h3 header</h3>' in output
    assert '<p>&lt;h3' not in output
    assert '<p>[HTML_REMOVED]</p>' not in output
def test_spacefree_link():
    tiddler = Tiddler('test')

    tiddler.text = "[[Free Link]]@cdent"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/Free%20Link">Free Link</a>' in output
    tiddler.text = "lorem\n[[Free Link]]@cdent\nipsum"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/Free%20Link">Free Link</a>' in output

    tiddler.text = "This is [[Free Link]]@cdent"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/Free%20Link">Free Link</a>' in output

    tiddler.text = "This is [[Free Link]]@cdent: lorem ipsum"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/Free%20Link">Free Link</a>' in output
def test_double_render_transclude():
    tiddlerA = store.get(Tiddler('tiddler a', 'bag'))
    tiddlerA.type = 'text/x-markdown'
    store.put(tiddlerA)

    output = render(tiddlerB, environ)

    assert 'I am <em>tiddler</em>' in output
    assert 'You wish' in output
def test_labeled_freelinks():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello world|Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a class="wikilink" href="Foo">' in output
    assert '>hello world</a>' in output
    assert '[[hello world|Foo]]' not in output
    assert output == '<p>lorem <a class="wikilink" href="Foo">hello world</a> ipsum</p>'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello [] world|Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[hello [] world|Foo]]' in output
def test_simple_freelinks():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a class="wikilink" href="Foo">' in output
    assert '>Foo</a>' in output
    assert '[[Foo]]' not in output
    assert output == '<p>lorem <a class="wikilink" href="Foo">Foo</a> ipsum</p>'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[Foo [] Bar]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[Foo [] Bar]]' in output
def test_precedence():
    tiddler = Tiddler('cow')
    tiddler.text = """
* [Pry](http://www.philaquilina.com/2012/05/17/tossing-out-irb-for-pry/)
* [Rails console](http://37signals.com/svn/posts/3176-three-quick-rails-console-tips)
"""

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)

    assert "http://<a href" not in output
Exemplo n.º 19
0
def test_no_wiki():
    tiddler = Tiddler('hello')
    tiddler.text = sample

    environ = {}
    output = render(tiddler, environ)
    assert '<h1>' in output
    assert '<li>' in output
    assert 'href' not in output

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)
    assert 'href' in output
    assert '<a href="WikiLink">' in output
    assert '>WikiLink</a>' in output

    tiddler.text = sample_linked
    output = render(tiddler, environ)
    assert '"NotLink"' not in output
    assert '<a href="http://example.org/CamelCase">label</a>' in output
Exemplo n.º 20
0
def test_no_wiki():
    tiddler = Tiddler('hello')
    tiddler.text = sample

    environ = {}
    output = render(tiddler, environ)
    assert '<h1>' in output
    assert '<li>' in output
    assert 'href' not in output

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)
    assert 'href' in output
    assert '<a href="WikiLink">' in output
    assert '>WikiLink</a>' in output

    tiddler.text = sample_linked
    output = render(tiddler, environ)
    assert '"NotLink"' not in output
    assert '<a href="http://example.org/CamelCase">label</a>' in output
Exemplo n.º 21
0
def test_labeled_freelinks():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello world|Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a href="Foo">' in output
    assert '>hello world</a>' in output
    assert '[[hello world|Foo]]' not in output
    assert output == '<p>lorem <a href="Foo">hello world</a> ipsum</p>\n'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello [] world|Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[hello [] world|Foo]]' not in output
    assert '<a href="Foo">hello [] world</a>' in output
    assert output == '<p>lorem <a href="Foo">hello [] world</a> ipsum</p>\n'
def test_urlification():
    tiddler = Tiddler('blah')
    tiddler.text = """
lorem ipsum http://example.org dolor sit amet
... http://www.example.com/foo/bar ...
     """

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)

    for url in ["http://example.org", "http://www.example.com/foo/bar"]:
        assert '<a href="%(url)s">%(url)s</a>' % { "url": url } in output
Exemplo n.º 23
0
def test_simple_freelinks():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a href="Foo">' in output
    assert '>Foo</a>' in output
    assert '[[Foo]]' not in output
    assert output == '<p>lorem <a href="Foo">Foo</a> ipsum</p>\n'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[Foo [] Bar]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[Foo [] Bar]]' not in output
    assert '<a href="Foo [] Bar">Foo [] Bar</a>' in output
    assert output == '<p>lorem <a href="Foo [] Bar">Foo [] Bar</a> ipsum</p>\n'
def test_precedence():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello FooBar world]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[hello FooBar world]]' not in output
    assert '<a class="wikilink" href="FooBar">FooBar</a>' not in output
    assert '<a class="wikilink" href="hello%20FooBar%20world">hello FooBar world</a>' in output
    assert output == '<p>lorem <a class="wikilink" href="hello%20FooBar%20world">hello FooBar world</a> ipsum</p>'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[...|hello FooBar world]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[...|hello FooBar world]]' not in output
    assert '<a class="wikilink" href="FooBar">FooBar</a>' not in output
    assert '<a class="wikilink" href="hello%20FooBar%20world">...</a>' in output
    assert output == '<p>lorem <a class="wikilink" href="hello%20FooBar%20world">...</a> ipsum</p>'
Exemplo n.º 25
0
def test_precedence():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[hello FooBar world]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[hello FooBar world]]' not in output
    assert '<a href="FooBar">FooBar</a>' not in output
    assert '<a href="hello FooBar world">hello FooBar world</a>' in output
    assert output == '<p>lorem <a href="hello FooBar world">hello FooBar world</a> ipsum</p>\n'

    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem [[...|hello FooBar world]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '[[...|hello FooBar world]]' not in output
    assert '<a href="FooBar">FooBar</a>' not in output
    assert '<a href="hello FooBar world">...</a>' in output
    assert output == '<p>lorem <a href="hello FooBar world">...</a> ipsum</p>\n'
def test_space_include():
    tiddlerB.text = '''
Hey There

{{tiddler a}}@recipe

We called that from outside, yo
'''

    output = render(tiddlerB, environ)

    assert '<article class="transclusion" data-title="tiddler a" ' \
            'data-bag="bag"><p>I am <em>tiddler</em></p>\n</article>' in output
    assert 'We called that from outside,' in output
def test_simple_def_list():
    tiddler = Tiddler('Foo')

    tiddler.text = """
Apple
:   Pomaceous fruit of plants of the genus Malus in 
    the family Rosaceae.

Orange
:   The fruit of an evergreen tree of the genus Citrus.
"""

    output = render(tiddler, environ)

    assert """<dt>Apple</dt>
<dd>Pomaceous fruit of plants of the genus Malus in 
the family Rosaceae.</dd>
<dt>Orange</dt>
<dd>The fruit of an evergreen tree of the genus Citrus.</dd>
</dl>""" in output

    # Note: the single space after the : is _required_
    tiddler.text = """
Apple
: Pomaceous fruit of plants of the genus Malus in 
the family Rosaceae.

Orange
: The fruit of an evergreen tree of the genus Citrus.
"""
    output = render(tiddler, environ)
    assert """<dt>Apple</dt>
<dd>Pomaceous fruit of plants of the genus Malus in 
the family Rosaceae.</dd>
<dt>Orange</dt>
<dd>The fruit of an evergreen tree of the genus Citrus.</dd>
</dl>""" in output
def test_footnote_linked():
    tiddler = Tiddler('Foo')
    tiddler.text = """
Welcome
=======

I want to make a footnote[^1] for all the world to see.

And it will be glorious.

[^1]: http://example.com/
"""

    output = render(tiddler, environ)
    assert '&#160;">http' not in output
def test_no_wiki():
    tiddler = Tiddler('hello')
    tiddler.text = sample

    environ = {}
    output = render(tiddler, environ)
    assert '<h1 id="hello">' in output
    assert '<li>' in output
    assert 'href' not in output

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)
    assert 'href' in output
    assert '<a class="wikilink" href="WikiLink">' in output
    assert '>WikiLink</a>' in output
    assert 'is not WikiLink because we escaped' in output

    tiddler.text = sample_linked
    output = render(tiddler, environ)
    assert '"NotLink"' not in output
    assert '<a href="http://example.org/CamelCase">label</a>' in output

    assert '(<a class="wikilink" href="HtmlJavascript">HtmlJavascript</a> in parens)' in output
    assert '(parens around <a class="wikilink" href="HtmlJavascript">HtmlJavascript</a>)' in output
def test_spacing():
    tiddler = Tiddler('Foo')
    tiddler.text = 'lorem[[Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert 'lorem[[Foo]]' in output

    tiddler = Tiddler('Foo')
    tiddler.text = '[[Foo]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a class="wikilink" href="Foo">Foo</a>' in output

    tiddler = Tiddler('Foo')
    tiddler.text = '[[Foo|Bar Zoom]] ipsum'

    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    output = render(tiddler, environ)

    assert '<a class="wikilink" href="Bar%20Zoom">Foo</a>' in output
def test_urlification():
    tiddler = Tiddler('blah')
    tiddler.text = """
lorem ipsum http://example.org dolor sit amet
... http://www.example.com/foo/bar ... and <http://example.com>
don't forget about http://www.example.com/search?q=tag:hello or goodbye
and you know this too http://example.com/tiddlers?select=tag:monkey;sort=-modified
so much stuff! and http://example.com/tiddlers?q=tag:@cdent wow
and how could we have forgotten http://example.com/~cdent of hyplan fame!
     """

    environ = {'tiddlyweb.config': {'markdown.wiki_link_base': ''}}
    output = render(tiddler, environ)

    for url in ["http://example.org", "http://www.example.com/foo/bar",
            'http://example.com', 'http://www.example.com/search?q=tag:hello',
            'http://example.com/tiddlers?select=tag:monkey;sort=-modified',
            'http://example.com/tiddlers?q=tag:@cdent',
            'http://example.com/~cdent']:
        assert '<a href="%(url)s">%(url)s</a>' % { "url": url } in output
def test_space_include():
    from tiddlywebplugins.markdown.transclusion import tiddlyspace_target_resolver
    from tiddlywebplugins.tiddlyspace.fixups import web_tiddler_url as tu
    def tiddler_url(environ, tiddler):
        return tu(environ, tiddler, friendly=True)
    environ['tiddlyweb.config']['markdown.transclude_url'] = tiddler_url
    environ['tiddlyweb.config']['markdown.target_resolver'] = tiddlyspace_target_resolver
    tiddlerB.text = '''
Hey There

{{tiddler a}}@recipe

We called that from outside, yo, and we'll call it again.

{{tiddler a}}@recipe
'''

    output = render(tiddlerB, environ)

# Note: the URI here is funkity because of the above config settings
    assert '<article id="t-tiddler-a" class="transclusion" data-uri="http://bag.tiddlyspace.com/tiddler%20a" data-title="tiddler a" ' \
            'data-bag="bag_public"><p>I am <em>tiddler</em></p></article>' in output
    assert 'We called that from outside,' in output
def test_spaced_target_include():
    def target_resolver(environ, target, interior_tiddler):
        interior_tiddler.bag = target
    environ['tiddlyweb.config']['markdown.transclude_url'] = tiddler_url
    environ['tiddlyweb.config']['markdown.target_resolver'] = target_resolver
    tiddlerB.text = '''
Hey There

{{tiddler x}}@[[spaced bag]]

We called that from outside, yo, and we'll call it again.

{{tiddler x}}@[[spaced bag]]

{{tiddler a}}@bag_public
'''

    output = render(tiddlerB, environ)

# Note: the URI here is funkity because of the above config settings
    assert '<article id="t-tiddler-x" class="transclusion" data-uri="http://tiddlyspace.com/bags/spaced%20bag/tiddlers/tiddler%20x" data-title="tiddler x" ' \
            'data-bag="spaced bag"><p>X is not Y</p></article>' in output
    assert 'We called that from outside,' in output
    assert 'I am <em>tiddler</em>' in output
def test_simple_footnote():
    tiddler = Tiddler('Foo')

    tiddler.text = """
Oh Now
======

We always talked[^1] about how much this should
happen, but chose the wrong tools. We should have
known[^inevitable].

[^1]: Asynch, of course.
[^inevitable]: Time. Flows.
"""

    output = render(tiddler, environ)

    #  slip in a headerid test
    assert '<h1 id="oh-now">Oh Now</h1>' in output

    # check footnotes get in there
    assert 'talked<sup id="fnref-1"><a class="footnote-ref" href="#fn-1">1</a></sup> about' in output
    assert '<li id="fn-1">' in output
    assert '<a class="footnote-backref" href="#fnref-1" title="Jump back to footnote 1 in the text">&#8617;</a>' in output
def test_spacewiki_link():
    tiddler = Tiddler('test')
    tiddler.text = "This is WikiLink@cdent"
    output = render(tiddler, environ)
    assert '<a href="http://cdent.tiddlyspace.org:8080/WikiLink">WikiLink</a>' in output
    assert 'This is <a' in output
Exemplo n.º 36
0
def test_precedence_in_markdown_link():
    tiddler = Tiddler('Foo')
    environ = { 'tiddlyweb.config': { 'markdown.wiki_link_base': '' } }
    tiddler.text = 'I see [foo LoremIpsum bar](http://example.org) you'
    output = render(tiddler, environ)
    assert output == '<p>I see <a href="http://example.org">foo LoremIpsum bar</a>you</p>'