Dies ist Teil einer kleinen Serie über Middleman, "einen statischen Standortgenerator, der alle Abkürzungen und Werkzeuge in der modernen Webentwicklung verwendet". In den ersten beiden Tutorials werden die Grundlagen behandelt. Anschließend setzen wir das Gelernte in einem praktischen Projekt um. Middleman erfordert die Verwendung von Ruby, aber zögern Sie nicht, weiterzulesen, wenn Ihnen dies fremd ist. Diese Serie ist völlig neu für Anfänger.
Was ist alles in letzter Zeit mit statischen Websites? Sie sind schnell, ziemlich einfach einzurichten und leichtgewichtig. Da Sie nichts mit Datenbanken zu tun haben, sind statische Websites ziemlich zuverlässig und schnell. HTML, CSS und bei Bedarf JS - das ist alles.
Viele Menschen verwenden statische Websites, um ihre Blogs und persönlichen Seiten einzurichten. Landing Pages, die stark vom Verkehr betroffen sind, sind ebenfalls ein guter Kandidat. HealthCare.gov von der Obama-Administration verwendete Jekyll, einen anderen Generator für statische Sites, für ihre Site. Wenn Sie schnell und einfach etwas benötigen, das skalierbar ist, können statische Websites erstaunlich sein. Zumal Sie sie kostenlos auf GitHub Pages oder Heroku hosten können.
Wahrscheinlich begann die ganze statische Site-Hipness vor ein paar Jahren, als Jekyll kam. Statische Sites sind natürlich so alt wie das erste "Hallo Welt!" Von Sir Tim Berners-Lee, aber in den letzten 15 Jahren wurden datenbankgestützte Apps zu "alles, was wichtig war". Vor ein paar Jahren brauchte einer der Mitbegründer von GitHub einen besseren Weg, um Blogs zu schreiben, und er entwickelte Jekyll - diesen hippen statischen Site-Generator für „Bloggen wie ein Hacker“. Ich habe es schon ein paar Mal benutzt und habe nur gute Dinge zu berichten. Das Kernteam ist auch großartig. Jedenfalls waren mein Redakteur und ich einig, dass es interessanter wäre, Middleman zu berichten. Man könnte sagen, dass Middleman etwas weniger "blogbewusst" ist, aber gleichermaßen mächtig und qualitativ hochwertig ist.
Middleman verwendet Ruby und bietet eine Reihe umfangreicher Funktionen zum Erstellen von coolem Material. Wenn Sie Rails oder Sinatra verwendet haben, werden Sie sich wie zu Hause fühlen. Es scheint, als wären Middleman und Jekyll die Wahlmöglichkeiten für statische Websites in der Ruby-Community. Ich habe auch gehört, dass immer mehr Designer argumentieren, dass sie sie gerne zum Prototyping und zum Erstellen eigener persönlicher Seiten verwenden. Was viele dieser statischen Site-Frameworks gemeinsam haben, ist die recht einfache Verwendung.
In diesem Artikel gehe ich davon aus, dass Sie mindestens ein bisschen an Ruby interessiert und haben es auf Ihrem System installiert. Wenn Sie Hilfe benötigen, werfen Sie einen Blick auf Ruby for Newbies: Installieren von Ruby und Erste Schritte von Andrew Burgess.
Es ist auch wichtig zu wissen, wie mit RubyGems umzugehen ist, und wieder hilft Andrew Burgess 'Ruby for Newbies: Die Arbeit mit Edelsteinen wird Ihnen helfen, falls erforderlich, den Anfang zu machen. Ich werde mein Bestes tun, um nicht mit Programmierkonzepten über den Kopf zu gehen, aber ich werde nicht auf Programmiergrundlagen wie Schleifen, Codeblöcke und dergleichen eingehen. Machen Sie sich keine Sorgen, für die Neulinge unter Ihnen hat Middleman nicht so viele bewegliche Teile, und ich werde zeigen, wie einfach es ist, es zu lernen.
Sie haben also Ruby und RubyGems unter Ihrem Gürtel? Toll, dann geht's gut.
Öffne dein Terminal und gib ein:
bash gem Zwischenhändler installieren
Wenn Ihnen die Erlaubnis dazu verweigert wird, müssen Sie den Befehl mit voranstellen Sudo
und geben Sie Ihr Systemadministratorkennwort ein. Nachdem dieser Vorgang abgeschlossen ist, können Sie über die Eingabeaufforderung ein paar praktische Mittlerbefehle verwenden.
Dieser Befehl initiiert ein neues Projekt. Sie müssen den Namen Ihrer App angeben und dann die Eingabetaste drücken.
bash middleman init your_fancy_app
Es sind auch zusätzliche Argumente erforderlich, z. B. mit welcher Vorlage Sie beginnen möchten. Dies macht es sehr praktisch, Ihre Apps von Anfang an mit Vorlagen anzupassen, wodurch sich wiederholende Einrichtungsaufgaben erheblich reduziert werden. In einem späteren Tutorial werden wir mehr über Vorlagen diskutieren.
bash middleman init your_fancy_blog --template = Blog
bash middleman init your_fancy_mobile_app --template = mobile
Middleman wird mit einem lokalen Server für Ihre Entwicklung geliefert. Beim Starten können Sie Ihre Site unter sehen http: // localhost: 4567 / **. Wenn Sie nur ** Zwischenhändler eingeben Ohne zusätzliche Argumente wird dadurch auch Ihr Server hochgefahren. Fahren Sie Ihren Server mit herunter STRG-c.
Sobald Sie etwas haben, können Sie es auf einen Server mit Internetverbindung setzen, den Sie benötigen bauen deine Seite. Dies bedeutet, dass, was auch immer Sie in Ihrer /Quelle Der Ordner wird verarbeitet und die endgültige Ausgabe wird im Ordner ausgegeben /bauen Ordner, den der Zwischenhändler auch für Sie erstellt. Alle Ihre Dateien, die Präprozessor wie Slim, Haml, Sass, CoffeeScript verwenden, werden in ihren jeweiligen Gegenstücken verarbeitet und in Ihrem / build-Verzeichnis abgelegt.
Sobald Ihre Site bereit ist, sich mit dem Internet zu befassen, werden Sie mit diesem Befehl bereitgestellt /bauen Ordner auf Ihrem Webserver. Jedes Update, das Sie vornehmen, durchläuft diesen Prozess.
Tun Sie sich sofort einen Gefallen und aktivieren Sie LiveReload, um Ihre Seiten nach Änderungen an Ihren HTML-, Sass- oder JS-Dateien automatisch zu aktualisieren. Dies ist während der Entwicklung von großem Nutzen - Sie werden es nicht bereuen! Mittlerer bietet diese Tage an LiveReload aus der box-müssen sie nur noch hinzufügen
Rubin-Edelstein "Mittler-Leber-Ladung"
zu deinem Gemfile und kommentieren Sie die folgende Zeile in ein config.rb:
ruby # Lädt den Browser automatisch neu, wenn sich Dateien ändern
Dann bündeln Sie Middleman
bash bundle #oder bundle exec Mittelsmann
Also lass uns anfangen /Quelle und /bauen Ordner. Dazwischen befindet sich die Trennlinie, die Ihre Entwicklungs- und Produktionsabschnitte voneinander trennt. Wenn Sie Ihren lokalen Webserver für die Entwicklung verwenden, wird / source für die Bereitstellung Ihrer App verwendet. Der / build-Ordner wird von Ihren nicht lokalen Servern zur Bereitstellung Ihrer statischen Seiten verwendet. / build wird bei jeder Verwendung erstellt Zwischenhändler bauen
in Ihrer Befehlszeile. Daher sollten Sie darauf achten, dass Sie nicht versehentlich Zeit damit verbringen, in / build zu codieren, da diese Arbeit nach dem Buildprozess verschwindet. Im Allgemeinen soll Ihre gesamte Entwicklung in / source stattfinden.
Beim Erstellungsprozess werden die statischen Sites erstellt, die der Server hostet. Jede Datei in Ihrem /Quelle Ordner wird verarbeitet und dann in gespeichert /bauen. Wie bereits erwähnt, werden Ihre Sass, CoffeeScript, Slim / Haml und Partials zu ihren zuverlässigen Gegenstücken verarbeitet. Alle Layouts werden ebenfalls zusammengesetzt. Wenn Sie die Komprimierung für diese Dateien aktiviert haben, werden sie zu diesem Zeitpunkt ebenfalls "hässlich gemacht". Während dieses gesamten Shabang wird der Ordner / build durch das Entfernen von Dateien, die keinen Bezug mehr in / source haben, verjüngt. Während Zwischenhändler bauen, Alle Änderungen, die Sie an den Dateien in / source vorgenommen haben, führen dazu, dass neue entsprechende statische Dateien für / build neu erstellt werden.
Der Bereitstellungsprozess ist der letzte Schritt. Mit dem /bauen Verzeichnis an Ort und Stelle haben Sie alles, was Sie brauchen, um Ihre App zu veröffentlichen. Meine Empfehlung ist, dies frühzeitig zu tun, um Überraschungen zu vermeiden.
Schauen wir uns die grundlegende Struktur einer Middleman-App an. Die Hauptkomponenten sind:
Wie Sie unten sehen können, geht der meiste Jazz in die /Quelle Mappe. Was ich an Middleman-Apps mag, ist ihre einfache Organisation. Das Navigieren in der Dokumentenstruktur ist selbst für Anfänger einfach.
Wenn Sie mit der Benennung einiger dieser Ordner nicht zufrieden sind, können Sie dies in Ihren Konfigurationen ändern (config.rb). Die gleichen Namen werden für Ihre Fertigstellung verwendet /bauen Mappe.
"ruby set: css_dir, 'custom_folder_name'
set: js_dir, 'custom_folder_name'
set: images_dir, 'custom_folder_name "
Wenn Sie Ihren Server ausgeführt haben, können Sie weitere Optionen zum Konfigurieren von Middleman direkt in Ihrem Browser anzeigen: http: // localhost: 4567 / __ middleman / config /. Nicht alle von ihnen können zu diesem Zeitpunkt sinnvoll sein oder sogar wissen. Werfen Sie einen Blick darauf und ein mentales Lesezeichen ist für den Moment völlig ausreichend.
Einer, den du rennst Zwischenhändler bauen Sie können in das sehen /bauen Mappe. Alle einfachen HTML-, CSS- und JS-Dateien, die Sie für die Bereitstellung Ihrer statischen Website benötigen.
Das ist so ziemlich alles, was Sie wissen müssen, um zu beginnen und sich zu orientieren.
Vorschlag: An diesem Punkt wäre es sehr sinnvoll, wenn Sie selbst eine Test-App zusammenstellen. Schauen Sie sich um und erfahren Sie, wie die Dinge organisiert sind und wie die Teile zusammenpassen.
Der Begriff "Front Matter" stammt aus dem Buchverlag und bezieht sich auf die Informationen an der Vorderseite eines Buches. Bei statischen Website-Dateien handelt es sich um Informationsblöcke, die in YAML gespeichert sind. Auf jeder Seite können Sie Variablen haben, die ganz oben in einem führenden und einem dreifachen Bindestrich gespeichert werden können. Zum Beispiel ist hier der Anfang einer fiktiven Datei mit dem Namen some.html.erb.
Layout: Titel der Anleihe: Name der beliebtesten Bond-Mädchen Datum: 2015-11-09 tags: Bond, 007
some_secret: Ich werde erst gerendert, wenn Sie mich benutzen.
bond_girls: - Strawberry Fields - Jill Masterson - Fall Tiffany
"
Die YAML-Variablen sehen wie ein Hash aus. Sie können auf diese lokalen Daten über die zugreifen aktuelle Seite Objekt:
ruby current_page.data.some_variable
Sie verwenden dies häufig zum Speichern von Tags, Datumsangaben, Titeln und Konfigurationsoptionen, z. B. welches Layout Sie für bestimmte Seiten verwenden möchten. Front Matter ist ein YAML-Speicher für Ihre Variablen. Sie können auch JSON verwenden, wenn Sie dies vorziehen. Stellen Sie sich das als einen Ort vor, an dem Daten abgelegt werden, die sich normalerweise in einer Datenbank befinden könnten. Ich werde die verschiedenen Optionen und Anwendungen auf dem Weg besprechen, wenn sie auftauchen.
Dies ist eine gute Gelegenheit, die ERB kurz zu besprechen. Mit ERB können Sie dynamische Vorlagen erstellen, in die Code eingebettet ist. Ihre Dateinamen müssen eine .erb Erweiterung und Sie müssen Ihren Code in die folgenden zwei "Container" eingeben.
Für Code, der erstellt, aber nicht auf der Seite "gedruckt" wird, verwenden Sie Folgendes:
html <% %>
Betrachten Sie es als "nur Berechnung".
Andernfalls müssen Sie für Rückgabewerte, die auf der Seite als "gedruckt" angezeigt werden sollen, auch ein Gleichheitszeichen hinzufügen. Das ist es.
html <%= %>
Die Konzepte von Layouts und Partials sind eng miteinander verbunden. Lassen Sie mich eine kleine Wirbelwind-Tour machen, falls Sie noch nicht mit Rails, Sinatra oder ähnlichem gespielt haben. Ich denke ich sollte mit anfangen Layouts zuerst.
Layouts bieten Ihnen die Struktur, um gemeinsame Markierungen zwischen verschiedenen Seiten gemeinsam zu nutzen, die zu derselben „Familie“ von Seiten gehören. Es ist ein Werkzeug, um Doppelarbeit zu vermeiden und Ihre Arbeit zu beschleunigen. Anstatt überall dasselbe HTML-Skelett zu schreiben, erstellen Sie Layouts für bestimmte Anwendungsfälle. Beliebte Beispiele sind zwei verschiedene Layouts für einen Administrator und einen „normalen“ Benutzer. Sie haben normalerweise eine ganz andere Erfahrung, wenn sie die gleiche Seite betrachten.
Wenn Sie eine einfache Mittelsmann-App initiieren, erhalten Sie automatisch eine layout.erb Datei in Quelle / Layouts. Beachten Sie, dass diese Datei mit endet .erb und nicht .html.erb. Layouts sollten nicht in HTML gerendert werden, und Middleman gibt einen Fehler aus, wenn Sie Layouts mit der Erweiterung .html erstellen. Wenn Sie eine andere Vorlagensprache wie Slim oder Haml verwenden, können Layouts stattdessen ihre Erweiterungen haben. Wie in der Standardeinstellung vorgeschlagen, sollten Sie alle Ihre Layouts in den Ordner einfügen / Layouts Ordner in Quelle.
Hier ist ein Beispiel für source / layouts / layout.erb:
"html
"
Dieses Standardlayout ist ziemlich barebones, bietet jedoch alles, was Sie zum Einstieg benötigen. Werfen wir einen Blick:
Und von dort können Sie dieses Layout an Ihre Bedürfnisse anpassen. Ein möglicherweise verwirrender Aspekt für Ruby-Neulinge ist der Ausbeute Dieses Keyword bedeutet lediglich, dass es den Rest des von Ihnen erstellten Inhalts durchläuft. Mit anderen Worten, Ausbeute ist ein Platzhalter für Ihre Ansichten, die darin wiedergegeben werden. Wenn dieses Konzept Ihnen völlig fremd ist, denken Sie daran, es momentan nicht zu berühren, oder Ihre App funktioniert möglicherweise nicht wie erwartet. Wann immer Sie Ihre eigenen Layouts erstellen, haben Sie Ausbeute da ist wichtig, sonst wird dein Inhalt nicht angezeigt. Sie bekommen den Dreh raus, versprochen.
Wenn Sie unterschiedliche Layouts erstellt haben, können Sie über die Vorderseite festlegen, welches Layout Sie Seite für Seite verwenden möchten. Angenommen, Sie haben ein spezielles Layout für die Begrüßung der Benutzer, das ein bisschen mehr Umsatz bietet. Hier haben wir welcome.html.erb.
Layout: Umsatz -
"
Alternativ können Sie Layouts in Ihrer config.rb-Datei angeben.
Rubinseite "/welcome.html",: layout => "sales"
Wenn Sie dies für jede Seite manuell vermeiden möchten, können Sie sie an einem Ort sammeln. In config.rb verwenden Sie wieder einen Platzhalter (** \ ***
), um mehrere Seiten zu sammeln, die dasselbe Layout verwenden.
Rubinseite "/ sales / *",: layout => "sales"
Ich persönlich lege diese Layout-Informationen gerne in den Vordergrund. Es ist sehr explizit und nicht zu wiederholend. Wenn ich jedoch eine ganze Reihe davon hätte, würde ich lieber den Wildcard-Ansatz verwenden.
Partials bieten Ihnen die Möglichkeit, View-Code zu kapseln, den Sie jederzeit wiederverwenden können. Sie müssen nur sagen Aussicht wo ein Teil eingefügt wird, und es wird genau dort gerendert. Partials sind eine sehr verbreitete Technik zum DRY-up Ihres Codes.
Sehr häufige Beispiele sind Navigationsleisten, Fußzeilen und Kopfbereiche, die Sie nicht überall kopieren möchten. Dateien für Partials beginnen mit einem Unterstrich. Für den Anfang können Sie sie unterstellen /Quelle. Ihre Layouts sind ein guter Ort, um mit dem Sammeln von Code zu beginnen, um sie in Partials zu extrahieren. Wann immer Sie etwas finden, das Sie wiederverwenden müssen, sind Partials ein praktischer Freund.
Hier ist ein Beispiel von /source/layouts/layout.erb.
"html
<%= partial "head" %> <%= partial "navbar" %> <%= yield %> <%= partial "footer" %>"
Und die partielle Quelle / _head.html.erb:
"html
<%= stylesheet_link_tag “normalize”, “all” %> <%= javascript_include_tag “all” %>"
Manchmal möchten Sie ein Partial extrahieren, nicht nur, um Doppelarbeit zu vermeiden, sondern um Ihre Ansichten lesbarer zu machen. Im Laufe der Zeit sind Kopfabschnitte dafür bekannt, zum Beispiel ziemlich belastet zu werden. In ihnen können Sie haben andere Partials, die nur mit Style- oder JS-Dateien arbeiten.
Sie werden feststellen, wie praktisch Partials sind, sobald Sie Änderungen vornehmen können, die sich in Ihrer gesamten App ausbreiten - wo auch immer Sie den Part aufgenommen haben. Es ist nicht notwendig, eine Reihe von Dateien durchzugehen, um dieselbe Änderung immer und immer wieder anzuwenden.
Helfer sind Methoden, die Sie für viele alltägliche Aufgaben in Ihren Ansichten verwenden können. Ich glaube, dass dies in Rails Land Pionierarbeit leistete und schnell für die moderne Webentwicklung im Web allgegenwärtig wurde. Sie haben bereits Helfer gesehen, die Stylesheets und JavaScript-Dateien enthalten. Es gibt aber noch viel mehr, woher das kommt.
Hier ist wieder unser /source/_head.html.erb partiell:
"html
<%= stylesheet_link_tag "normalize", "all" %> <%= javascript_include_tag "all" %>"
Diese Helfer sollen Ihnen beim Schreiben von sauberem und übersichtlicherem Ansichtscode helfen. In der Helferliste unten findest du eine Menge nützliches Material, das aus der Box kommt. Sie sind jedoch nicht darauf beschränkt. Schreiben Sie Ihre eigenen Hilfsmethoden in config.rb oder sammeln Sie sie separat in einem Modul.
Es funktioniert folgendermaßen: In Ihrer config.rb erstellen Sie eine Helfer
Blockieren Sie und setzen Sie alle Ihre Hilfsmethoden ein. Das ist es. Jetzt haben Ihre Ansichten Zugriff auf sie.
Beispiel: /source/_navbar.erb.
"html
"
Und in config.rb:
"Rubinhelfer tun es
def random_username "# lorem.first_name # lorem.last_name" end
def random_image image_tag “# lorem.image ('30x40',: background_color => '333',: color => 'fff') ende
Ende"
Diese Helfer können hilfreich sein, wenn ich schnell etwas prototypisieren möchte und nicht selbst Dummy-Bilder und Text erstellen möchte. Insgesamt sollten Sie nach Code suchen, den Sie präziser machen möchten oder immer wieder duplizieren möchten. Helfer sind dafür oft ein gutes Zuhause.
In diesen benutzerdefinierten Helfern habe ich andere Middleman-Helfer zum Erstellen verwendet img
Tags durch image_tag
ebenso wie Lorem
Objekt für einige zufällige Benutzernamen und Bildplatzhalter. Diese Lorem-Dingchen können ein bisschen an Ihre Bedürfnisse angepasst werden.
Mit dem Modulansatz benötigen Sie jedoch eine separate Datei für Ihr Modul. Erstellen Sie ein "lib" -Verzeichnis in Ihrem Stammordner (dieselbe Ebene wie "source" und "build") und erstellen Sie eine Datei für Ihre Helfer.
Hier haben wir /lib/helpers.rb:
"Ruby-Modul PrototypingHelpers def random_image image_tag" # lorem.image ('300x400',: background_color => '333',: color => 'fff') ende
def random_username "# lorem.first_name # lorem.last_name" end end "
Dann müssen Sie Ihrer config.rb-Datei mitteilen, dass Sie diese Helfer verwenden möchten:
Ruby erfordert 'lib / helpers' Helfer PrototypingHelpers
Boom! Du bist bereit zu rollen. Im Allgemeinen würde ich sofort mit dem Modul-Ansatz arbeiten. Es fühlt sich für mich viel sauberer an, und Sie vermeiden, Ihre Konfigurationsdatei mit zu viel Material zu verschmutzen.
Ich möchte auch in Ausgabehilfen und content_for
vor allem, da sie für Neulinge etwas verwirrend sein können. Auf diese Weise können Sie eine Reihe von Inhalten erfassen, die Sie anderweitig verwenden oder wiederverwenden können. Es ist eine Art Miniatur. Ich würde die meiste Zeit persönlich mit einem Teil davon abschließen, aber ab und zu, wenn Sie die On-Off-Änderungen operativer anwenden möchten, ist es hilfreich zu wissen:
Hier ist index.html.erb:
"html <% content_for :navigation do %>
<% end %>
… "
Und admin_index.html.erb:
"html <% content_for :admin_navigation do %>
<% end %>
<% content_for :admin_javascript do %> <%= javascript_include_tag “admin” %> <%= javascript_include_tag “some_library” %> <% end %>
… "
Dann in layout.erb:
"html
<% if content_for?(:admin_javascript) %> <%= yield_content :admin_javascript %> <% else %> <%= javascript_include_tag "all" %> <% end %> <%= yield %> <%= partial "footer" %>"
Der Schlüssel verwendet Ertrag_Inhalt
Dies bedeutet, dass Ihre gesammelten Inhalte von der einzelnen Seite in das Layout eingefügt werden. Sie müssen nicht nur nur mit Layouts verwendet werden. Wenn Sie dies etwas komplizierter machen müssen, verwenden Sie content_for?
um nach bestimmten Inhaltsblöcken zu suchen, bevor Sie sie einfügen. Dies ist praktisch, wenn Sie kleine Anpassungen für Abschnitte vornehmen möchten, die sich nur geringfügig unterscheiden. Es ist großartig, dass Sie diesen Inhalt wie eine Konfiguration auf den relevanten Seiten selbst speichern und nur dort aktivieren können, wo er benötigt wird. Sie sollten mit diesen Dingen wahrscheinlich nicht zu schlau werden.
Ein Wort zur Link zu
Helfer, den ich oben verwendet habe. Dies ist wahrscheinlich das, auf das Sie am häufigsten stoßen. Sie geben der Methode im Wesentlichen einen Namen und eine URL oder einen Pfad, auf den dieser Link zeigen soll. Ich habe den letzten Teil aus Platzgründen durch einen Platzhalter ersetzt.
Nachfolgend finden Sie eine Übersicht, welche Helfer zur Verfügung stehen. Ich denke, die Namen sind meistens selbsterklärend und ich sollte nicht darüber nachdenken, womit jeder von ihnen Ihnen helfen kann. Machen Sie ein geistiges Lesezeichen für das, was da draußen ist, und überprüfen Sie die Dokumentation, falls Sie Probleme haben.
Etikett
Link zu
input_tag
favicon_tag
stylesheet_link_tag
javascript_include_tag
content_for
content_for?
capture_html
Ertrag_Inhalt
concat_content
form_tag
label_tag
select_tag
submit_tag
field_set_tag
text_field_tag
check_box_tag
password_field_tag
kürzen
Pluralisieren
Zeilenumbruch
escape_html
einfaches_format
js_escape_html
time_ago_in_words
distance_of_time_in_words
lorem.date
Lorem.Wort
lorem.name
Lorem.email
lorem.bild
Lorem.Wörter
lorem.sentence
lorem.last_name
Lorem.Absatz
lorem.erst_name
lorem.abschnitte
Ich glaube, dies ist eine gute Grundlage, um mit einer Spielzeug-App herumzuspielen. Sie sollten ein gutes Gespür dafür haben, was Middleman anbietet und wie Sie im Rahmen navigieren. Im nächsten Teil dieser Serie gehen wir weiter und tauchen etwas tiefer in das Framework ein. Das Middleman-Team hat wirklich hervorragende Arbeit geleistet, indem es die API entworfen und die Dinge einfach gehalten hat.
Hoffentlich kann man inzwischen erkennen, warum dieses Framework an Popularität gewonnen hat und warum es eine gute Wahl für alle möglichen statischen Projekte ist.