Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. CMS
Code

Erstellen eines CMS: RubyPress  

by
Difficulty:IntermediateLength:LongLanguages:

German (Deutsch) translation by Wilhelm Wolf (you can also view the original English article)

Nach dem erstellen eines content-management-system (CMS) Basis-Struktur, und den eigentlichen server mit Gehen und Node.js Sie sind bereit, zu versuchen, Ihre hand auf eine andere Sprache. 

Dieses mal bin ich mit der Ruby-Sprache, den server zu erstellen. Ich habe festgestellt, dass durch die Schaffung der gleichen-Programm in mehreren Sprachen, Sie beginnen, um neue Erkenntnisse über bessere Möglichkeiten, um die Umsetzung des Programms.  Sie sehen auch mehr Möglichkeiten zum hinzufügen von Funktionalität in das Programm. Lassen Sie uns begonnen erhalten. 

 Setup und Laden der Bibliotheken

 Programmieren in Ruby, müssen Sie die neueste version auf Ihrem system installiert. Viele Betriebssysteme kommen vorinstalliert mit Ruby in diesen Tagen (Linux und OS X), aber Sie haben in der Regel eine ältere version. Dieses tutorial geht davon aus, dass Ruby version 2.4. 

 Der einfachste Weg, um ein upgrade auf die neueste version von ruby ist die Verwendung von RVM. Installieren RVM auf Linux oder Mac OS X, geben Sie den folgenden in einem terminal:

 Dies schafft eine sichere Verbindung zu herunterladen und installieren RVM. Dies installiert die neueste stabile Version von Ruby ebenso. Sie haben, um neu zu laden Sie Ihre Schale, um die installation abzuschließen. 

Für Windows können Sie die Windows-Ruby Installer. Derzeit, dieses Paket ist bis zu Ruby 2.2.2, das ist gut zu laufen, die Bibliotheken und Skripte in diesem tutorial. 

Sobald der Ruby-Sprache ist korrekt installiert, Sie können nun installieren Sie die Bibliotheken. Ruby, genau wie Sie Gehen und-Knoten, ein Paket-manager für die Installation von Drittanbieter-Bibliotheken. In dem terminal, geben Sie den folgenden: 

 Dies installiert die Sinatra, Ruby LENKER, Kramdown, Schlank und Bibliotheken. Sinatra ist ein web application framework. Ruby LENKER implementiert die LENKER-Template-engine in Ruby.  Kramdown ist ein Markdown-zu-HTML-Konverter. Slim ist eine Jade-ähnliche Bibliothek, aber es hat nicht Jade makro-Definitionen. Also, die Makros verwendet, in der News-und Blog-post-Indizes sind jetzt normale Jade.

 Erstellen der rubyPress.rb-Datei

 Im obersten Verzeichnis, erstellen Sie die Datei rubyPress.rb und fügen Sie den folgenden code. Ich werde zu jedem Abschnitt, wie es der Datei Hinzugefügt.

 Das erste, was zu tun ist, laden Sie die Bibliotheken. Im Gegensatz zu mit Node.js diese sind nicht geladen, in eine variable. Ruby Bibliotheken Ihre Funktionen zum Programm-Umfang.

Die LENKER-Bibliothek wird initialisiert mit den verschiedenen Hilfsfunktionen definiert. Die Hilfsfunktionen definiert sind date, cdate, und speichern. 

 Das Datum helper-Funktion das aktuelle Datum und die Uhrzeit und formatiert Sie entsprechend dem format-string, der an die Helfer. cdate ist ähnlich, außer für die übergabe des Datums zuerst.  Die save-helper können Sie angeben, einen Namen und einen Wert. Es schafft einen neuen Helfer mit dem Namen name aus und übergibt wieder den Wert.  Dadurch können Sie Variablen erstellen, werden einmal angegeben und auf viele Standorte. Diese Funktion nimmt auch die Go-version, die erwartet einen string mit dem Namen, '|' als Trennzeichen, und Wert. 

Der nächste Teil von dem code für das laden der cacheable Elemente der web-site. Dies ist alles im Stile und layout für Ihr Thema, und die Elemente, die in den teilen sub-directory.  Eine Globale variable, $Teile ist, wird zuerst vom server geladen.json-Datei. Diese Informationen werden dann verwendet, um laden Sie die richtigen Elemente für das layout und Thema angegeben. Der LENKER template-engine verwendet diese Informationen zum ausfüllen der Vorlagen. 

 Der nächste Abschnitt enthält die Definitionen für alle Routen. Sinatra ist eine vollständige REST-konforme server. Aber für das CMS, ich werde nur das get-verb.  Jede route führt die Elemente aus die route zum pass, um die Funktionen für die Herstellung der richtigen Seite. Im Sinatra, ein name mit einem vorangestellten Doppelpunkt gibt einen Abschnitt der route zu passieren, um die route-handler. Diese Elemente sind in einem params-hash-Tabelle.

 Die Seite, die Funktion erhält den Namen einer Seite, von der route und übergibt das layout in der $parts-variable zusammen mit den vollständigen Pfad zu der Seite, die Datei wird benötigt für die Funktion processPage.  Die processPage Funktion nimmt diese Informationen und erstellt die richtige Seite, die es dann gibt. In Ruby, der Ausgang der letzten Funktion ist der Rückgabewert für die Funktion.

 Die post-Funktion ist ebenso wie die-Seite-Funktion, außer, dass es funktioniert für alle post-Typ-Seiten. Diese Funktion erwartet, dass die post-Typ, post-Kategorie, und die post selbst. Diese erstellen die Adresse für die richtige Seite angezeigt wird.

 Die figurePage-Funktion verwendet die processPage-Funktion zum Lesen der Inhalte auf der Seite aus dem Datei-system. Diese Funktion erhält den vollständigen Pfad zu der Datei ohne die Erweiterung. figurePage dann tests für eine Datei mit dem angegebenen Namen mit der html-Erweiterung für das Lesen einer HTML-Datei. Die zweite Wahl ist, für eine md-Erweiterung für eine Markdown-Datei. 

 Schließlich prüft es, für ein amber-Erweiterung für Jade-Datei. Denken Sie daran: Amber ist der name der Bibliothek für die Verarbeitung von Jade syntax-Dateien in Go.  Ich hielt es gleich für inter-Funktionalität. Eine HTML-Datei ist einfach wieder vergangen, während alle Markdown-und Jade-Dateien in HTML umgewandelt, bevor die übergabe zurück.

 Wenn eine Datei nicht gefunden, erhält der Benutzer die 404-Seite. Auf diese Weise werden Ihre "Seite nicht gefunden" - Seite sieht genauso aus wie alle anderen Seiten mit Ausnahme der Inhalte.

 Die processPage Funktion führt alle template-Erweiterungen auf der Seite Daten. Es beginnt mit dem Aufruf der figurePage-Funktion, um die Seite Inhalte. Dann verarbeitet es das layout übergeben, um es mit LENKER, erweitern Sie die Vorlage.

Dann die processShortCode Funktion finden und verarbeiten alle shortcodes in die Seite. Die Ergebnisse werden dann an LENKER ein zweites mal zu verarbeiten, keine Makros, Links durch die Kurzwahlnummern. Der Benutzer erhält die endgültigen Ergebnisse. 

Die processShortCodes Funktion nimmt den text gegeben, findet jeder shortcode, und führt die angegebene Kurzwahlnummer mit den Argumenten und Inhalt der Kurzwahlnummer. Ich nutze den shortcode routine zum verarbeiten der Inhalte für die Kurzwahlnummern sowie.  

Ein shortcode ist eine HTML-ähnliche Tags verwendet -[ und ] -, um die öffnung tag-und -[/ und ]- die schließenden Tags. Das öffnende tag enthält die Parameter für den shortcode auch. Also, ein Beispiel shortcode wäre: 

Dieser shortcode definiert die box shortcode ohne Parameter mit dem Inhalt von Dies ist in einem Karton..   Die box shortcode umschließt den Inhalt in die entsprechenden HTML zu produzieren, ein Feld um den text mit der text zentriert in der box.  Wenn Sie später ändern möchten, wie das Feld gerendert wird, müssen Sie nur ändern Sie die definition der shortcode. Das spart eine Menge Arbeit.

 Das Letzte, was in der Datei ist die $Kurzwahlnummern hash-Tabelle mit der shortcode-Routinen. Dies sind einfache shortcodes, aber Sie können erstellen Sie weitere Kurzwahlnummern zu sein, so Komplex wie Sie möchten.

 Alle Kurzwahlnummern haben zu akzeptieren zwei Parameter: Argumente und Inhalte. Diese strings enthalten die Parameter, die Kurzwahlnummer und die Inhalte der Kurzwahlnummern umgeben. Da die Kurzwahlnummern sind innerhalb einer hash-Tabelle habe ich eine lambda-Funktion zu definieren. Eine lambda-Funktion ist eine Funktion ohne Namen. Der einzige Weg, um diese Funktionen auszuführen ist, aus dem hash-array.   

Läuft der Server 

Sobald Sie erstellt haben, die rubyPress.rb-Datei mit dem obigen Inhalt, Sie können führen Sie den server mit:  

Da das Sinatra-framework arbeitet mit dem Ruby on Rails-Rack-Struktur, die Sie verwenden können, Pow den server zu starten.  Pow richten Sie Ihre system-host-Dateien für den Betrieb Ihrer server lokal die gleiche, wie es wäre, von einer gehosteten Website. Sie installieren können, mit Pow-Pulver mit den folgenden Befehlen in der Kommandozeile: 

 Pulver ist ein command-line-routine für die Verwaltung von Pow-sites auf Ihrem computer. Um Pow zu sehen, Ihre Website, müssen Sie einen soft-link zu Ihrem Projekt-Verzeichnis in die ~/.pow-Verzeichnis.  Wenn der server in /Users/test/Documents/rubyPress-Verzeichnis, führen Sie die folgenden Befehle ein:

 Ln -s erstellt einen soft-link auf das angegebene Verzeichnis erste, die mit dem angegebenen Namen zweitens. Pow wird dann eingerichtet, eine domain auf Ihrem system mit dem Namen des soft-link.  In dem obigen Beispiel, gehen Sie zu der web-site http://rubyPress.dev im browser lädt die Seite aus dem server.

 Um den server zu starten, geben Sie den folgenden nach der Erstellung die soft-link:

 Das nachladen der server nach einigen änderungen im code, geben Sie den folgenden:

rubyPress Main Page
rubyPress Hauptseite 

Werde die website im browser wird das Ergebnis im Bild oben. Pow wird die Einrichtung der Website an http://rubyPress.dev. Egal welche Methode Sie verwenden, um den Start der Website, Sie werden sehen, die gleichen sich Seite. 

 Fazit

Gut, Sie haben es getan. Einem anderen CMS, aber dieses mal in Ruby. Diese version ist die kürzeste version der CMS erstellt in dieser Serie. Experimentieren Sie mit dem code und sehen Sie, wie Sie erweitern dieses Basis-framework. 

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.