Schrift
[thread]10547[/thread]

HTC und Textile

Leser: 2


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Froschpopo
 2007-10-09 20:46
#100574 #100574
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich kack gleich am Stock:
Code: (dl )
1
2
3
4
5
6
7
h1. Aktuelles

* _kursiv_

<TMPL_LOOP NAME=NEWS>
* _kursiv_
</TMPL_LOOP>


Ergebnis:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<h1>Aktuelles</h1>

<ul>
<li><em>kursiv</em></li>
</ul>

<p><br />
* <em>kursiv</em><br />
<br />
* <em>kursiv</em><br />
<br />
* <em>kursiv</em><br />

<br />
* <em>kursiv</em><br />
</p>


Problem: Innerhalb des LOOP wird * nicht durch ein Listenblock ersetzt.
Komischerweise aber wird der Text wie gewollt kursiv dargestellt.
Außerderhalb des LOOP funktioniert derselbe Text ebenfalls einwandfrei, also kann es nur an diesem LOOP liegen!!
Wieso packt er die Dinger in einen Absatz anstatt in eine Liste???
Froschpopo
 2007-10-09 21:33
#100575 #100575
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich weiss mittlerweile, dass ich vor jeder Zeile eine Leerzeile machen muss.
Ich vermute aber, dass irgendetwas mit dem quoting nicht stimmt.
Code: (dl )
* "Hier geht's zur alten Seite":http://<TMPL_VAR NAME=ID>


Das ergibt dann am Ende:
<a href="http:///">Hier gehts zur alten Seite</a>...
Konkret bedeutet das: <TMPL_VAR... beendet sofort den Link.
Muss man hier irgendwie etwas quoten oder wie?
pq
 2007-10-09 21:45
#100576 #100576
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
machst du erst das textile-parsing und dann HTC oder umgekehrt?
wenn ersteres, ist es klar - wie soll textile aus "Hier geht's zur alten Seite":http:///<TMPL_VAR NAME=ID> einen link erkennen? klar, es schneidet ihn nach TMPL_VAR ab.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2007-10-09 21:47
#100577 #100577
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Froschpopo+2007-10-09 18:46:21--
Problem: Innerhalb des LOOP wird * nicht durch ein Listenblock ersetzt.

ohne ein bisschen code wird dir kaum einer helfen können...
ich vermute aber, es sind die zeilenumbrueche. wenn die zeilen mit dem * nicht
direkt untereinander stehen, erkennt textile keine zusammenhängende liste.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2007-10-09 21:53
#100578 #100578
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
das Problem sind die < und > die werden nicht gequotet!
Sie müssen erst durch Textile durch bevor sie an HTC übergeben werden.

teste mal:
"test":<TMPL_VAR NAME=TEST>

Ablauf:
Code: (dl )
1
2
3
4
5
6
my $text = ' "Klick hier":http://<TMPL_VAR NAME=ID>';

my $textile = new Text::Textile;
$text = $textile->process($text);

$tmpl->param(CONTENT => $text);


In HTC greife ich dann mittels TMPL_INCLUDE_STRING auf CONTENT zu.
pq
 2007-10-09 22:16
#100580 #100580
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Froschpopo+2007-10-09 19:53:27--
Code: (dl )
1
2
3
4
5
6
my $text = ' "Klick hier":http://<TMPL_VAR NAME=ID>';

my $textile = new Text::Textile;
$text = $textile->process($text);

$tmpl->param(CONTENT => $text);

wie schon gesagt, so wird das nicht gehen. ich wiederhole mich, aber wie soll textile
erkennen, dass der link nicht nach TMPL_VAR zu ende ist?
du musst erst HTC drüberlaufen lassen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2007-10-09 22:24
#100581 #100581
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Wie soll ich denn erst HTC drüberlaufen lassen?
Geht doch garnicht wenn $text schon an HTC als Parameter ausgeliefert wurde:
Code: (dl )
1
2
3
4
5
6
my $text = ' "Klick hier":http://<TMPL_VAR NAME=ID>';

$tmpl->param(CONTENT => $text);

my $textile = new Text::Textile;
$text = $textile->process($text);
pq
 2007-10-09 22:34
#100582 #100582
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du musst textile ueber den template-output laufen lassen. anders wirds nicht gehn.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2007-10-09 22:38
#100583 #100583
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
JAAAA hAHAHA geile Idee!
Dickes Danke!
Froschpopo
 2007-10-09 22:46
#100585 #100585
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Das war doch eine blöde Idee, denn jetzt parst Textile den gesamten Quelltext und ersetzt z.B. alle Newlines durch <br /> usw.

Bsp:
Code: (dl )
1
2
3
4
<html><br />
<head><br />
<title>Test</title><br />
usw.


Da fällt mir eine Funktion für HTC ein:
man müsste irgendwie Strings auch ohne Templatefile füttern können:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
my $text = ' "Klick hier":http://<TMPL_VAR NAME=ID>';

my $tmpl = HTML::Template::Compiled->new(filename=>'...');

$text = $tmpl->parse($text, \%params);

my $textile = new Text::Textile;
$text = $textile->process($text);

$tmpl->param(CONTENT => $text);
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2007-10-09 20:46.