Thread Text::Markdown: Markdown+HTML-Mix Probleme vermeiden (5 answers)
Opened by GwenDragon at 2010-12-18 20:00

GwenDragon
 2011-01-07 23:43
#144246 #144246
User since
2005-01-17
14774 Artikel
Admin1
[Homepage]
user image
Derzeitige schnelle Lösung (Testcase) für eine korrekte HTML-Ausgabe von defektem HTML.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl

use strict;
use warnings;

use Text::Markdown 'markdown';
use HTML::TreeBuilder;

my @a = <DATA>;

my $html;
$html = markdown("@a");
print "=========\n", $html;

my $tree = HTML::TreeBuilder->new;
$tree->parse($html);
my ($b) = $tree->look_down( '_tag', 'body' );
my @body = $b->content_list;    # Kindknoten

print "=========\n";
print $_->as_XML for @body;

$tree->delete;                  # clear memory!

__DATA__
# Test

<a href="a">

<?asd>

</?>

<cde>

   <script>

<http://as>

<ftp://www.test.de>

<http://example.org>

_Das_ ist das *lalala* [_t_](/)!

**Das ist <strong>**

<a>

    // Test für Code
    int test;
    int teta (int z) {
      return z*2;
    }


//EDIT:
führt zur Ausgabe von Markdowns HTML vor und nach "Reinigung":

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
=========
<h1>Test</h1>

<p><a href="a"></p>

<?asd>

</?>

<p><cde></p>

<pre><code>&lt;script&gt;
</code></pre>

<p><a href="http://as">http://as</a></p>

<p><a href="ftp://www.test.de">ftp://www.test.de</a></p>

<p><a href="http://example.org">http://example.org</a></p>

<p><em>Das</em> ist das <em>lalala</em> <a href="/"><em>t</em></a>!</p>

<p><strong>Das ist <strong></strong></p>

<p><a></p>

<pre><code> // Test f³r Code
int test;
int teta (int z) {
return z*2;
}
</code></pre>
=========
<h1>Test</h1>
<p><a href="a"></a></p>
<p></p>
<pre><code>&lt;script&gt;
</code></pre>
<p><a href="http://as">http://as</a></p>
<p><a href="ftp://www.test.de">ftp://www.test.de</a></p>
<p><a href="http://example.org">http://example.org</a></p>
<p><em>Das</em> ist das <em>lalala</em> <a href="/"><em>t</em></a>!</p>
<p><strong>Das ist <strong></strong></strong></p>
<p><a></a></p>
<pre><code> // Test f³r Code
int test;
int teta (int z) {
return z*2;
}
</code></pre>


In jedem Fall ist das HTML etwas sauberer. Ich müsste eigentlich noch die Elternelemente ohne Kinder löschen.
Kommt noch.
Last edited: 2011-01-07 23:50:16 +0100 (CET)

View full thread Text::Markdown: Markdown+HTML-Mix Probleme vermeiden