Einträge zu Tag: HTML/CSS

Markdown-Files unter Linux im Terminal darstellen

Erstellt: 13.03.2018 09:16

Des Oefteren liegen bei Sourcecode Markdown-Files bei, zum Beispiel für das traditionelle README (readme.md). Da diese Dateien unformatiert nicht unbedingt lesefreundlich sind hilft ein Converter weiter. pandoc ist ein solcher Converter welcher ohne weitere Optionen HTML ausgibt. Dies kann nun an einen Text-Browser übergeben werden welcher aus stdin Daten entgegen nehmen kann.
Es eignen sich dafür unter anderem w3m und lynx.

$ pandoc readme.md | lynx -stdin

Das ganze kann jetzt noch als Funktion in der ~/.bashrc hinterlegt werden:

function readmd { pandoc "$1" | lynx -stdin; }
export -f readmd

Dies ermöglicht einen schnellen Zugriff:

$ readmd readme.md



Tagged: Bash HTML/CSS Linux Tools

Kommentar verfassen | Nach oben

Mit PHP auf ganze Worte oder ganze Sätze kürzen

Erstellt: 05.07.2011 10:59

Es kann mal sein, dass man den Anfang eines Textes braucht. In diesem Fall leistet "substr()" alleine zwar grundsätzlich den Dienst, dass es den String kürzt, jedoch meistens unschön zwischen Wörtern oder Sätzen.

Das einfachste ist es, mit "substr()" ein wenig mehr Zeichen dazu zu geben und danach mit "preg_replace()" den Rest abzuschneiden bis zum Wortende oder Satzende.

Hierzu zwei Beispiele:

200 Zeichen vom String nehmen und bis zum nächsten Wortende abschneiden. (Annahme: Jedes Wort wird getrennt von einem Leerzeichen.)

$string = preg_replace("/[^ ]*$/", '', substr($string, 0, 200));

400 Zeichen vom String nehmen und bis zum nächsten Satz abschneiden. (Annahme: Jeder Punkt trennt einen Satz.)

$string = preg_replace("/[^.]*$/", '', substr($string, 0, 400));

Diese Lösung ist hat einen kleinen Haken, ist ein Wort oder Satz länger als die Stringlänge bekommt man einen leeren String zurück.
In den meisten Fällen, sollte es jedoch seinen Dienst tun.



Tagged: HTML/CSS PHP Regex

1 Kommentar | Nach oben

In Bash einen String aus HTML/XML-Tags extrahieren

Erstellt: 21.01.2011 15:30

Will man diverse Files auswerten welche man z.B. über "wget" oder anderes aus dem Web besorgt hat, ist es immer mal wieder nötig Werte zu bekommen, welche zwischen zwei HTML- oder XML-Tags liegen. Um diesen Wert zwischen diesen zwei Tags zu extrahieren, leistet "sed" gute Dienste.

Hier die Beispieldatei "xmlfile" aus welchem der Wert "WAHTiNEED" der zwischen den beiden Tags "<key></key>" liegt herausgefiltert werden soll:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<LoginResponse xmlns="urn:internalvim25"><returnval><key>WHATiNEED</key><userName>username</userName><fullName>username</fullName><loginTime>1970-06-25T13:51:06.256885+01:00</loginTime><lastActiveTime>1970-06-25T13:51:06.256885+01:00</lastActiveTime><locale>en</locale><messageLocale>en</messageLocale></returnval></LoginResponse>
</soapenv:Body>
</soapenv:Envelope>

...und hier der sed-String:

sed -n -e 's/.*<key>\(.*\)<\/key>.*/\1/p' Filename

...welcher "WHATiNEED" erfolgreich filtert:

$ sed -n -e 's/.*<key>\(.*\)<\/key>.*/\1/p' xmlfile
WHATiNEED



Tagged: Bash HTML/CSS Linux Regex

Kommentar verfassen | Nach oben

Submit-Verhalten des Internet-Explorers bei Enter

Erstellt: 29.03.2010 00:11

Füllt man ein Formular im Browser aus, kann man jenes absenden mit dem Drücken der Enter-Taste.

Dies ist zumindest die Gewohnheit, welche man kennt von Opera, Firefox und Co und welche man - oder zumindest ich - auch praktisch findet, da man nicht extra zur Maus greifen muss.

Internet-Explorer 6-8 weisen dieses Verhalten unter gewissen Umständen nicht auf. Ich habe gelesen, dass dieses Verhalten vom Internet-Explorer richtiger sein soll als das der Anderen, da der Browser ja nicht weiss, welcher Submit-Button gedrückt werden soll, wenn es mehrere Submit-Buttons gibt.
Das Verhalten des Internet-Explorers tritt jedoch nur dann auf, wenn sich im Formular nur ein einziges Textfeld befindet und sonst nichts. Diese Konstellation gibt es zum Beispiel öfters bei Suchfeldern.

Nun habe ich schon verschiedene Lösungen gesehen. Unter Anderem welche mit Javascript, was ich eher unschön fand.
Am einfachsten und schönsten fand ich die Lösung, welche ich bei www.e-treu.de fand.

Das Formularfeld wird einfach um ein zweites, verstecktes Input-Feld erweitert... und schon reagiert der Internet-Explorer gleich wie andere Browser. (Toll und logisch, nicht?)

Das ganze sieht dann wie folgt aus:

<form method="post" action="ziel.php" name="suche">
<p><label for="suchbegriff">Suchbegriff:</label>
<input type="text" name="suchbegriff">
<input type="text" style="display:none">
<input type="submit" name="action" value="Suchen"></p>
</form>

Mit style="display:none" wird das zweite Textfeld versteckt. Und Tada! Der Internet-Explorer versendet Submits auf einmal per Enter-Taste.

Eventuell ist es sinnvoll, dass zweite Feld noch mit disabled="disabled" zu deaktivieren, falls jemand CSS nicht aktiviert hat, sein eigenes Style-Sheet verwendet oder gar einen Textbrowser am Start hat.
Alternativ oder zusätzlich, kann man das zweite Textfeld auch mit <!--[if IE]><![endif]--> verstecken. Das ganze sieht dann so aus:

<form method="post" action="ziel.php" name="suche">
<p><label for="suchbegriff">Suchbegriff:</label>
<input type="text" name="suchbegriff">
<!--[if IE]>
<input type="text" style="display:none" disabled="disabled">
<![endif]-->
<input type="submit" name="action" value="Suchen"></p>
</form>

So wird das zweite Textfeld definitiv von keinem Browser mehr angezeigt und es erfüllt den Nutzen im Internet-Explorer Submits per Enter zu versenden.



Tagged: Browser HTML/CSS Windows

Kommentar verfassen | Nach oben

Wie ich den RSS-Feed erstelle

Erstellt: 19.07.2007 05:13

Seit heute habe ich als kleine Spielerei einen RSS-Feed für meinen Blog erstellt mit der Hilfe von php. Da eine Datei mit der Endung php nicht unbedingt als RSS-Feed-Datei erkannt wird, musste ich eine Umleitung per .htacces verwirklichen. So wird dem Browser weisgemacht, dass es sich, in diesem Fall, um eine Datei mit der Endung .rss handelt:

RewriteEngine On
RewriteRule ^feed.rss$ feed.php

Mit diesem Eintrag aktiviere ich das Weiterleiten von der Datei feed.rss welche nur sichtlich besteht zu der reellen Datei feed.php.

Damit der Feed auch von den Browsern erkannt wird, braucht es einen Eintrag in dem Haeder-Bereich von jeder Seite welche den Feed anbieten soll:

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.r0ot.ch/feed.rss">

Zu beachten ist, dass ich hier den vorgetäuschten Dateinamen feed.rss nutzte.
Jetzt sieht man in jedem RSS-Feed fähigen Browser das Typische orange Symbol in der nähe der Adresszeile.

In der RSS-Feed Datei steht folgender Aufbau welcher ich dynamisch mit Hilfe von php immer aktuell halte (da der Inhalt beim Abruf der Seite erstellt wird):

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<rss version="2.0">
<channel>

<title>r0ot.ch</title>
<link>http://www.r0ot.ch</link>
<description>Blogpage r0ot.ch</description>
<language>de-CH</language>
<copyright>(c) 2007 r0ot.ch</copyright>
<pubDate>19.07.2007</pubDate>
<image>
<url>http://www.r0ot.ch/img/logo.png</url>
<title>r0ot.ch</title>
<link>http://www.r0ot.ch</link>
</image>
INHALT
</channel>
</rss>

Dies ist der Grundaufbau, dort wo jetzt noch INHALT steht, kommt das Wort INHALT natürlich weg und folgendes für jede Neuigkeit hinein:

<item>
<title>Titel des ersten Artikels</title>
<description>Eine kurze Zusammenfassung des Artikels</description>
<pubDate>Sat, 07 Sep 2002 0:00:01 GMT</pubDate>
<link>Adresse zur Gesamtansicht des Artikels</link>
<author>Autor des Artikels <E-Mail-Adresse></author>
<guid>Eindeutige Nummer des Artikels, muss für jeden Eintrag anders sein</guid>
</item>

Hier dürfte noch wichtig sein, dass man bei <pubDate> das Datum und die Zeit genau nach diesem Format einträgt, damit es von den RSS-Feed-Readern verarbeitet werden kann.
Das wäre schon der ganze Zauber gewesen. zwinkert



Tagged: HTML/CSS Internet Sonstiges

Kommentar verfassen | Nach oben