In dieser Woche implementierte ich ein kleines Feature, das die geschätzte Lesezeit eines Blogartikels anzeigt.
In einem ersten Schritt benutze ich mein BlogStory Modell um an die Inhalte zu kommen. Mittels Razor ging ich wie folgt vor:
- Es werden die Leerzeichen gezählt, und eine 1 hinzuaddiert. Dadurch wissen wir nun, wie viele Wörter der Artikel hat.
- Die meisten Menschen lesen zwischen 200 und 250 Wörter in der Minute. Daher teilen wir die Wortanzahl durch 250. Dadurch wissen wir nun die Minutenanzahl.
- Jetzt wird ein Modulo mit einer Division kombiniert um die Sekunden zu erhalten.
@{
var word_count = @Model.Body;
var counts = word_count.Count(ch => ch == ' ') + 1;
var minutes = counts / 250;
var seconds = counts % 250 / (250 / 60);
var str_minutes = (minutes == 1) ? "Minute " : "Minutes ";
var str_seconds = (seconds == 1) ? "Second " : "Seconds ";
}
Nun platzieren wir an der Stelle, an dem dies angezeigt werden soll, den folgenden Code:
@minutes @str_minutes @seconds @str_seconds
Zur Zeit wird dies Clientseitig ausgeführt. Künftig ist eine Implementierung zur Serverseite vorgesehen.
This work by Sascha Manns is
licensed under a
Attribution-ShareAlike 3.0 Germany License (CC BY-SA 3.0 DE).
Based on a work at saschamanns.de.
Based on a work at saschamanns.de.