Lieber renee,
Herzlichen Dank für die Antwort. Das hat schon einmal sehr geholfen. Auf diese Weise kann ich die Dateien einlesen, allerdings führt dies zum Folgeproblem, dass die Umlaute falsch dargestellt werden, obwohl ich im layout im head <meta charset="UTF-8"> gesetzt habe. Hat hier vlt. jemand eine Idee?
Anbei schicke ich den stark vereinfachten Code.
Vlt. reichen meine Kenntnisse auch einfach noch nicht aus, um so ein professionelles Framework bedienen zu können...
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
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env perl
use Mojolicious::Lite;
use Mojo::Util qw/files/;
my $datadir;
get "/" => sub {
my $c = shift;
$datadir = $c->app->home . "/public/data";
my @entrys=files $datadir;
chomp @entrys;
my $story = story(@entrys);
$c->stash( story => $story );
$c->render("index");
};
# FUNCTION STORY
# Die Funktion story bereitet den dynamisch zu erzeugenden Inhalt auf, d.h. sortiert die jeweils anzuzeigenden Beiträge
#(hier um die komplizierte Sortierung gekürzt)
# Hierzu muss eine Liste mit den Dateinamen auf die Blogeinträge übergeben werden
sub story {
# erhalte die Dateinamen
my @entrys = @_;
# erstelle eine lokale Variable, die am Schluss übergeben wird
my $story;
foreach my $entry (@entrys) {
open ENTRY, "$entry";
# TITELANGABE
# Die erste Zeile enthält idR. den Titel
my $firstline = <ENTRY>;
chomp $firstline;
my $title = "<h1> $firstline </h1>";
my $content;
# die übrigen Zeilen enthalten einen ganz normalen Absatz
while (my $line=<ENTRY>) {
$content = $content . $line . "\n";
}
close ENTRY;
$story = $story."$title \n $content <hr size=\"1\" />";
}
# Übergebe die Story
return $story;
}
app->start;
__DATA__
@@ index.html.ep
% layout "default";
% title "Blog";
<%== $story %>
@@ layouts/default.html.ep
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><%= title %></title>
</head>
<body><%= content %></body>
</html>