Seit heute ist SemPress ein offizielles WordPress.com Theme ­čÖé

SemPress auf WordPress.com

Eigentlich wollte ich ja nur ein wenig „rumprobieren“ und das Toolbox-Theme an die neuen WordPress Funktionalit├Ąten anpassen aber mittlerweile haben schon knapp 8000 Leute SemPress heruntergeladen, ich habe ├ťbersetzungen f├╝r Russisch und Deutsch bekommen und mein Theme ist auf WordPress.com… GROSSARTIG ­čÖé

Also:

Meet SemPress, an extremely lightweight, responsive theme designed to show off your posts, quotes, and images. SemPress supports multiple post formats, widgets, and the option to upload a custom header image.

So kann es weiter gehen ­čÖé

Viel Spa├č beim ausprobieren und falls ihr Verbesserungsvorschl├Ąge habt… immer her damit!

HTML5 Semantics BadgeBeim „basteln“ an SemPress, meinem ersten WordPress Theme, habe ich das erste Mal praktische Erfahrungen mit Schema.org gesammelt und mir sind vor allem zwei Dinge klar geworden: 1. Warum Schema.org nach einer Art „Vererbungs“-Prinzip aufgebaut ist und 2. Wie Google mit Schema.org umgeht.

The http://schema.org/Thing

Das „einfachste“ Schema ist ein „Thing“ und hat folgende Attribute:

description TEXT A short description of the item.
image URL URL of an image of the item.
name TEXT The name of the item.
url URL URL of the item.

Da alle anderen Objekte auf dem „Thing“ aufbauen, kann man davon ausgehen dass man mind. auf diese vier Eigenschaften zugreifen kann und genau das ist der ganze Sinn hinter dieser Struktur.

Vor allem Google setzt massiv auf Schema.org, sei es beim Einsatz in der Suche (├╝ber die sogenannten Rich-Snippets)…

rich snippets example

…oder beim Anreichern der, ├╝ber Google+ oder den +1 Button geteilten Links.

Google+ Example

Um das Parsen der Webseiten (zumindest f├╝r diese eher einfachen Ausgaben) auf ein Minimum zu reduzieren, ist die Grundstruktur immer gleich und alles dar├╝ber hinaus ist reine K├╝r. Wahrscheinlich werden aber 90% aller Anwendungen mit Titel (name), Beschreibung, Bild und URL auskommen.

Googles Umgang mit Schema.org

Wer seine Seite mit Schema.org auszeichnen m├Âchte, sollte vor allem eines Beachten: Google+ (wahrscheinlich aber auch alle anderen Google Produkte) interpretiert immer das erste im Quellcode verwendete Schema!

Bei meiner ersten Implementierung von Schema.org habe ich mich etwas zu sehr an RSS bzw. Atom orientiert und folgenden Aufbau gew├Ąhlt: Ein umschlie├čendes Objekt um den Blog zu beschreiben und ein oder mehrere referenzierte Artikel.

<body itemscope itemtype="http://schema.org/Blog">
...
  <header id="branding" role="banner">
    <hgroup>
      <h1 id="site-title" itemprop="name"><?php bloginfo( 'name' ); ?></h1>
      <h2 id="site-description" itemprop="description"><?php bloginfo( 'description' ); ?></h2>
    </hgroup>
  </header>
...
  <article itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
  ...
  </article>
  <article itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
  ...
  </article>
...
</body>

Egal ob es jetzt um mehrere Artikel (Startseite) oder nur einen Artikel (Post oder Page) gehandelt hat.

Das hat bei Google+ dazu gef├╝hrt, dass die notizBlog-Links immer mit dem Titel, der Beschreibung und dem Bild des Blogs und nicht mit denen des Artikels verkn├╝pft wurden. Es ist also gerade f├╝r Blogs wichtig, dass das Blog-Schema nur auf den ├ťbersichtsseiten benutzt wird und die Einzelansichten lediglich mit „http://schema.org/BlogPosting“ bzw. „http://schema.org/WebPage“ ausgezeichnet werden.

Eigentlich wollte ich ja nur einen Toolbox Fork erstellen und das Theme um Microdata/Schema.org erweitern und dann hat es doch so viel Spa├č gemacht, dass ein eigenes Theme daraus wurde… Ich pr├Ąsentiere euch SemPress, das hoch semantische HTML5 Theme mit ner Prise Responsiveness und SEO ­čÖé

Das Theme versch├Ânert ├╝brigens das notizBlog und ist aus folgenden Gr├╝nden gro├čartig:

POSH – Plain Old Semantic HTML5

HTML5 LogoSemPress basiert, wie schon erw├Ąhnt, auf Toolbox und die HTML5 Struktur wurde auch weitestgehend beibehalten. Ich habe lediglich einige Tags in (meiner Meinung nach) semantisch passendere getauscht. Im Detail:

  • Semantische Tags – Ich habe einfach mal geschaut welche Tags Toolbox noch nicht unterst├╝tzt und sie dann, hoffentlich richtig eingebaut :).
  • HTML5 Input-Types – SemPress unterst├╝tzt einige der neuen Input-Types wie z.B. „search“, „email“ und „url“. Mehr dazu in einem ├Ąlteren Artikel.

Websemantics

Eigentlich hab ich das ganze Projekt (wie schon erw├Ąhnt) ja nur gestartet, damit ich mal wieder was produktives mit Microformats machen und Schema.org lernen kann. Hier also der Semantic Overload:

  • Microformats – Toolbox selbst unterst├╝tz Microformats ja schon von Haus aus und ich musste nur kleine hAtom fixes und die richtigen Profile Header setzen.
  • Microformats v2 – Ich bin zwar kein gro├čer Fan von Microformats 2, aber ich wollte testen wie leicht sich das Theme um neues HTML-Classes erweitern l├Ąsst und wie viel Arbeit es bedeutet. SemPress unterst├╝tzt hCard 2 und hAtom 2.
  • Microdata/Schema.org – ├ähnlich wie bei Microformats v2 wollte ich testen wie schwer es ist, Schema.org einzubauen. Das Theme unterst├╝tzt http://schema.org/Blog, http://schema.org/BlogPosting and http://schema.org/Person.

Was ich noch gerne einbauen will ist hMedia f├╝r alle m├Âglichen Medieninhalte wie z.B. auch WordPress „Images“ und „Galleries“ und nat├╝rlich auch das Schema.org Pendant.

WordPress Features

Neben dem ganzen semantik Ged├Âns, hab ich nat├╝rlich auch ne Menge WordPress-Features eingebaut.

  • Post Thumbnails – SemPress unterst├╝tzt diverse Post-Thumbnail Gr├Â├čen (maximal 600px) und versucht sie bestm├Âglich darzustellen. Alle Bilder kleiner als 480px werden z.B. mit float right in den Text integriert.
  • Post Types – Im Gegensatz zu Toolbox unterst├╝tzt SemPress folgende Post-Types: „aside, status, gallery, video, audio, link, image“ und fast alle haben auch ein individuelles Layout spendiert bekommen.
  • …au├čerdem: Localization, Sidebar-Widgets und die WordPress‘ Navigation Menu.

Mal schauen ob ich noch ein Custom-Header-Image mit rein nehmen werde…

CSS und Design

Zuerst sollte SemPress gar kein Design bekommen, aber man muss ja auch bei CSS und Fonts auf dem Laufenden bleiben! Ich mach das ja schlie├člich nicht zum Spa├č sondern zur Fortbildung :). Da ich aber kein wirklich gro├čer Designer bin, hab ich mir ne Menge Ideen und CSS bei folgenden gro├čartigen Projekten ausgeliehen:

  • Das Basis-CSS hab‘ ich von Toolbox ├╝bernommen.
  • Die Tabellen, Buttons, Input-Felder, Code-Boxen habe ich mir bei Twitters Bootstrap gemopst.
  • Die Icons, die vor einigen Artikeln erscheinen (z.B. die vom Typ Video oder Audio) sind von von Font Awesome.
  • Danke auch an HTML5 Boilerplate f├╝r einige Ideen!

Ein paar weitere Kleinigkeiten (auf die ich auch bissle Stolz bin):

  • Man kann den bei dem <code />-Tag die Programmiersprache mir data-programming-language="PHP" setzen und es wird wie folgend angezeigt:
    <?php echo "Hallo Welt"; ?>
  • Das Theme kommt komplett ohne Bilder aus.

Responsive Design

Das Theme sollte eigentlich und hoffentlich auf jedem Ger├Ąt gut aussehen und unterst├╝tzt drei++ Breiten:

  • Volle Breite + Sidebar rechts
  • Volle Breite + Zweispaltige Sidebar am Ende der Seite
  • Variable Breite (die, f├╝r das Ger├Ąt beste Breite mit einem) + Einspaltige Sidebar am Ende der Seite.

Au├čerdem passt sich das Men├╝ automatisch an die Gr├Â├čen an und das ganz ohne JavaScript! …beim Drop-Down Men├╝ gibt es zwar noch keine M├Âglichkeit das Men├╝ wieder zu schlie├čen, aber wer will das schon ­čśë

Was jetzt noch?

Da mir das themen ne Menge Spa├č gemacht hat werde ich wohl auch weiterhin flei├čig an SemPress weiter basteln und es noch semantischer und WordPressiger machen. Falls ihr irgendwelche Fehler findet oder Dinge besser k├Ânnt wie ich… bitte helft mir und forkt SemPress!