Laden...

(Projektvorschlag) IDE für Jekyll

Erstellt von mbedded vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.783 Views
M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren
(Projektvorschlag) IDE für Jekyll

Hallo zusammen,

ich habe eine Projektidee, aber noch keine konkrete Umsetzung. Daher möchte ich in diesem Forum (ich hoffe es ist das richtige) kurz meine Ideen vorstellen und vielleicht ein paar Mitstreiter finden.

Wie der Titel es schon sagt, möchte ich gerne eine IDE für Jekyll entwickeln.

- Was ist Jekyll?
JekyllRB ist ein Generator für statische Webseiten. Das Besondere dabei ist, dass die Seiten und Texte mittels Markdown geschrieben werden können. Anhand von Metadaten und erstellten Layouts wird der geschriebene Text mit den Layouts verbunden und eine statische HTML-Seite erstellt.

Mittels Liquid (eine Template-Sprache) ist es möglich, auch komplexe Inhalte wie Listen oder Bedingungen zur Generierung einzubauen. Da Jekyll statische Inhalte erzeugt, können auch andere Dateien wie z.B. JSON, XML, CSV (etc.) erzeugt werden.

- Worin besteht der Vorteil zu einem CMS?
Der größte Vorteil besteht aus verschiedenen Punkten:
*Es muss keine Datenbank für das Hosten der Webseite vorhanden sein, da nur statische HTML (bzw. Markdown)-Dateien erzeugt und gespeichert werden müssen. *Die Performance ist höher, als bei einem CMS (Content Management System), da die Datenbankabfragen entfallen *Für eine Versionierung reicht beispielsweise SVN oder Git.

So viel erstmal zur Theorie. Es gibt einige Vorlagen und Anleitungen, um mit Jekyll zu beginnen. Im Folgenden Links für einen Schnelleinstieg:
http://jekyllthemes.org
http://stefanimhoff.de/2014/rueckkehr-statische-websites/
http://joshualande.com/jekyll-github-pages-poole/

- Idee des Projekts
Ich möchte gerne eine Jekyll IDE erstellen, die den Autor einer Webseite unterstützt. Spontane Features die mir einfallen sind die Folgenden:
*Intellisense für data-attribute *Intellisense für Liquid-Syntax *Angepasster Explorer für die Jekyll Webseite *Intellisense für Querverweise auf andere Artikel *Einbinden von Bildern (inkl. erstellen der korrekten URLs) für die Artikel *Verwaltung der Metadaten (YAML) *Unterstützung der Datei- und Ordnerstrukturen *Datenexport für bestimmte Zwecke(?)

Die IDE könnte (je nach Architektur und Ideen) noch weiter "aufgeblasen" werden, wie beispielsweise ein Dateiupload (FTP) auf den Webserver. Ein Datenabgleich, falls Daten auf dem Server bearbeitet und nicht auf den aktuellen Client heruntergeladen wurden. Integration von Git oder SVN.

Das Projekt möchte ich gerne mit WPF erstellen und (falls eine Plugin-Architektur sinnvoll sein sollte) mittels DependencyInjection (Ninject).

Was haltet ihr von der Idee? Gibt es Personen unter euch, die gerne bei dem Projekt mithelfen möchten? Ich würde das Projekt gerne bei BitBucket oder GitHub unter der MIT Lizenz hosten. Diese Hoster stellen zudem auch ein Issue-Tracking und Wiki zur Verfügung was die gemeinsame Zusammenarbeit erleichtern wird. Mit AppVeyor hätten wir ein Tool, um die Integration von PR (Pull-Requests) vorher zu prüfen.

Wie die Organisation aussieht müsste in einem "HowTo Contribute"-Dokument zusammengefasst werden.

Ich freue mich sehr über konstruktive Kommentare und wenn sich vielleicht der eine oder andere entschließt mitzuhelfen 😃 Vielen Dank.

Viele Grüße
Matthias

16.834 Beiträge seit 2008
vor 8 Jahren

Vorschlag, der Dir bei einer Umsetzung massiv Zeit und Schweiß ersparen wird:
Nimm ne Editor Basis wie Visual Studio Code oder Atom und schreib dafür ne Extension.
Da scheints auch schon was zu geben: https://atom.io/packages/jekyll

Anmerkungen:

Die Performance ist höher, als bei einem CMS (Content Management System), da die Datenbankabfragen entfallen

Moderne CMS Systeme rendern ihre News, Artikel, Beiträge bereits als statisches HTML direkt nach dem erstellen des jeweiligen Beitrags.
Die statischen Seiten liegen dann auf CDN Systemen wie Akamai, Azure, AWS..

Ansonsten bietet jeder Wordpress Blog Caching oder es gibt (kostenfreie) Services wie CloudFlare.
Sehe hier also in Sachen Performance keinen großen Gewinn, wenn man die Alternativen sieht.

Ich persönliche nehme zum "Rendern" von statischen HTML Inhalten mit Hilfe von Templates einfach http://handlebarsjs.com/ - kenne aber Liquid nicht.
Handlebars ist auch relativ weit (vor allem bei HTML Designern bzw. allgemein Agenturen, Angular-Szene) verbreitet.

Ansonsten kann ich GitHub und AppVeyor wärmstens empfehlen!

M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren

Hallo Abt,

vielen Dank für die Infos. Dass die CMS das aktuell so machen, war mir nicht bewusst. Ich war noch auf dem Stand, dass jede Seite erst per DB abgefragt/erstellt wird und dann für eine gewisse Zeit im Cache bleibt.

Visual Studio Code habe ich mal getestet aber der Editor kann garnichts (wenn ich den mit Visual Studio vergleiche). Ist zwar ein hartes Urteil, aber da ich viel mit Visual Studio arbeite und laut Microsoft "Visual Studio Code" u.a. auf dem Mac laufen und viele Features wie Intelligente, Debugging et. haben soll, ist diese IDE noch zu nah an einem reinen Texteditor dran. Trotz der Einstiegsdokumente hat (außer die reine Textbearbeitung wie mit einem Texteditor und Syntax Highlighting) nichts funktioniert. 😦 Vielleicht bin ich auch unfähig dafür..

Die Idee mit ATOM klingt jedoch interessant. Ich habe mir den in der Beta mal angesehen, aber Dateien die größer als 200 Zeilen (oder 1 KB oder MB) waren, wurden nicht unterstützt.. Wäre aber interessant, sich in das Entwickeln einer Extension einzuarbeiten. Dabei müsste ich mal nachsehen, welche Einschränkungen es gibt. Vielleicht macht es teilweise Sinn, einen Split-Screen anzuzeigen (bsp. Metadaten + Text).

HandelbarsJS kannte ich nicht nicht.. Macht auf mich einen guten ersten Eindruck. Vielleicht kann ich das in ein paar Projekten mal einbauen. Wobei unter Verwendung von AngularJS handlebars eigentlich unnötig ist (oder sehe ich das falsch?).

Es geht mir bei Jekyll weniger um das Caching. Der Hauptvorteil ist meiner Meinung nach, dass ich einfach Text schreibe und dafür auch kein Internet o.ä. brauche. Ich führe später einfach eine Synchronisation durch, lasse ein Verzeichnis parsen und habe anschließend meine Dateien für die Homepage.

Ich werde mir ATOM und Extensions durchlesen und evaluieren 😃 Notfalls kann immer noch eine eigene Anwendung entwickelt werden.

Viele Grüße
Matthias

16.834 Beiträge seit 2008
vor 8 Jahren

Er kann nichts? 🤔 Wie bitte?
Sorry, ich kann nicht wirklich ernst nehmen, was Du da schreibst - nicht mal im geringsten.

Du findest ATOM interessant, aber VSCode nicht.
Atom ist aber nichts anderes als VSCode - es sind beides Editoren, keine IDE. VSCode ist sogar an vielen Stellen bereits Leistungsfähiger als ATOM. Es gibt aber zB für ATOM um längen mehr Extensions.
Das eine verteufelst Du also, das andere findest Du interessant. Mir scheint, dass Du hier nicht ordentlich genau recherchiert hast und Äpfel mit Birnen verglichen hast 😉
Anders kann ich Deine Aussagen hier leider nicht werten. 🙁

VSCode ist zwar noch im Beta Zustand bzw. in einer 0.*er Version zu haben, aber dass er "nichts" kann ist einfach falsch, unwahr und unangebracht.

VSCode ist wie gesagt keine IDE, sondern ein Editor mit erweiterter Funktionalität. Es ist eine Ergänzung zu VS und kein Ersatz.
Wenn Du vor hast ein Visual Studio für Jekyll zu programmieren, dann plan mal ein paar Jahre ein 😉 Davon abgesehen beschreibst Du eher die Funktionalität eines Editors als einer IDE bzw. erwähnst Du keine einzige Funktionalität, die ein moderner Editor wie Atom oder VSCode nicht abdeckt. 😉

Und die Anforderungen wie Debugging und IntelliSense erfüllt VSCode vollständig - selbst Xamarin und Code mit entsprechenden Emulatoren kann VSCode.
Man muss sich den Editor nur mal genauer anschauen statt nur oberflächlich dran zu kratzen. 😉
Den Split-Screen kann VSCode ebenfalls bei allen möglichen Dateiformaten, zB Markdown - das nutze ich sehr oft.

Such mal nach Anders Hejlsberg oder Amanda Silver und Connect 2015 und schau Dir ihre Präsentationen zu VSCode an.
Vielleicht verstehst Du dann besser, was VSCode ist und was man damit machen kann. 🙂

Edit, weil ich so nen netter Kerl bin 🙂:
Connect 2015: The Future of Microsoft Tools and Services for the New Role of Developers
Minute 34 ist Anders Hejlsberg, der VSCode an für sich zeigt und 1h:26min Amanda Silver über VSCode auf dem Mac mit Mobile Development.

M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren

Er kann nichts? 🤔 Wie bitte?
Sorry, ich kann nicht wirklich ernst nehmen, was Du da schreibst - nicht mal im geringsten.

Du findest ATOM interessant, aber VSCode nicht.
Atom ist aber nichts anderes als VSCode - es sind beides Editoren, keine IDE. VSCode ist sogar an vielen Stellen bereits Leistungsfähiger als ATOM. Es gibt aber zB für ATOM um längen mehr Extensions.
Das eine verteufelst Du also, das andere findest Du interessant. Mir scheint, dass Du hier nicht ordentlich genau recherchiert hast und Äpfel mit Birnen verglichen hast 😉
Anders kann ich Deine Aussagen hier leider nicht werten.

Die Aussage kann ich nachvollziehen ich neige gerne zu Superlativen. Atom habe ich mir in einer der aller ersten Versionen angeschaut als es noch relativ neu war und machte eine gute Figur als Alternative zu Notepad++ oder Sublime. Mir ist klar, dass Atom "nur" ein Editor ist.

VSCode habe ich installiert (anhand der Tutorials und Dokumente auf der Microsoft-Homepage). Allerdings kann ich damit weder Webanwendungen entwickeln noch debuggen. Und daher habe ich (aufgrund zwei fehlender Kernfunktionen) VSCode direkt wieder gelöscht und nicht wieder angefasst. An der Stelle hast du Recht, dass ich die Anwendung nicht weiter untersucht habe.
Ich habe dann lieber eine VM auf meinem Laptop laufen und nutze VS im Windows 🙂 Aufgrund der Dokumente und Ankündigungen zu VSCode habe ich das so verstanden, dass VSCode prinzipiell eine Visual Studio IDE für Linux/Mac ist mit einer etwas anderen Struktur. Vielleicht habe ich das an der Stelle falsch aufgefasst.

Wenn Du vor hast ein Visual Studio für Jekyll zu programmieren, dann plan mal ein paar Jahre ein 😉 Davon abgesehen beschreibst Du eher die Funktionalität eines Editors als einer IDE.

Die Jekyll "IDE" soll vor allem Intellisense und Auto-Vervollständigung bieten, damit man die verschiedenen Variablen wie "site.date" intuitiver nutzen kann, anstatt alles nachschlagen zu müssen 🙂 Es gibt ja bereits verschiedene Editoren, welche eingebunden werden können und eine Schnittstelle für ein angepasstes Intellisense oder Syntax-Highlighting anbieten. Vor allem ein Feature für eine Bildverwaltung für Artikel und deren Einbindung wäre echt Gold wert.

Danke für den Link für die Connect 2015. Werde ich mir am Wochenende ansehen, da ich die Woche über im Hotel bin und das Internet nicht das schnellste ist..

Viele Grüße
Matthias

16.834 Beiträge seit 2008
vor 8 Jahren

VSCode kann jede Art von Textdokumenten verwenden.

Auch kann VSCode ASP.NET, DNX Projekte und Co verstehen. Es führt Gulp/Grunt-Tasks aus, kann LESS und SASS Rendern und Co - mache ich selbst.
JavaScript, TypeScript und Co funktioniert ebenfalls einwandfrei. Angular 2 wird vom Google Team in Zusammenarbeit mit Microsoft mit Hilfe von Visual Studio Code und TypeScript programmiert - nur mal als Sideinfo.
Debugging und Refactoring funktioniert mit allen Webtechnologien, egal ob C#-Bereiche, JavaScript, TypeScript.....

Weiß also nicht ganz genau, was bei der Webprogrammierung in dem Bereich nicht gehen soll 😉
Beispiel evtl.?

Die Jekyll "IDE" soll vor allem Intellisense und Auto-Vervollständigung bieten, damit man die verschiedenen Variablen wie "site.date" intuitiver nutzen kann, anstatt alles nachschlagen zu müssen

Auch das kann VSCode schon heute oder kann mit Erweiterungen für eigene Sprachen selbst hinzugefügt werden.

Ich hab ja nichts gegen Kritik an einem Produkt oder einer Sache - sofern diese auch den Tatsachen entsprechen.

M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren

Weiß also nicht ganz genau, was bei der Webprogrammierung in dem Bereich nicht gehen soll 😉

Also was nicht hingehauen hat ist die Bearbeitung und Ausführung einer ASP MVC Webanwendung. Egal, ob eine Standardanwendung erstellt oder eine Bestehende, aus einem Visual Studio heraus, verwendet werden sollte.
Ich hatte es mir nämlich so gedacht, dass ich eine Browseranwendung "normal" (als Vergleich: Visual Studio) erstellen kann und diese sowohl von zuhause (Windows) als auch unterwegs (Mac) entwickeln kann. Mit Github beispielsweise ist das einfach möglich.

Aber da das einfache Bearbeiten, Kompilieren, Starten und Debuggen einer Anwendung (Visual Studio: nur F5) nicht funktioniert haben wurde VSCode uninteressant für mich.. Aufgrund deiner Anmerkungen werde ich mir mal ansehen, ob sich bei der Doku etwas getan hat und die Tutorials für den Einstieg nochmals durcharbeiten. Ich freue mich immer über Anregungen und Infos 😃

Dass das Angular-Team zu TypeScript gewechselt ist, habe ich gelesen 😃

Viele Grüße
Matthias

16.834 Beiträge seit 2008
vor 8 Jahren

Ab ASP.NET 5 ändert sich sowieso einiges, das kann auch VSCode vollständig abdecken und tut es schon heute.
Alle ASP.NET Versionen davor werden nur zum Teil unterstützt.

Zu einer IDE gehört zum Beispiel, dass es Projekttemplates gibt. Alle ASP.NET Versionen vor Version 5 basieren auch (leider zwingend) auf Templates.
Daher kann VSCode kein ASP.NET 4 / MVC 5 Projekt erstellen.
Du kannst aber Problemlos mit VSCode zB. den kompletten JavaScript-Part abdecken, oder C# und CSHTML-Dateien bearbeiten. Debugging geht aber nur teilweise.

ASP.NET 5 hat bzw- braucht aber kein Projekt-Template mehr sondern basiert vollständig auf project.json.
Das kann VSCode vollständig abdecken.

Ich zB. erstelle mit VS2015 das Projekt; bearbeite es dann aber oft mit VSCode.
Debugging dann wieder in VS2015. Ich verwende also ein Mix - und das sehr gerne.

M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren

Die von dir geschrieben Infos hatte ich auch.. Daher ging ich davon aus, dass ich ein bestehendes Projekt öffnen, bearbeiten, erstellen und debuggen kann.
In der Doku für die Installation von den Komponenten (Mono, DNX, DNVM, Kestrel ...) hieß es für mich, dass zumindest das Weiterentwickeln einer bestehenden Anwendung funktionieren würde. Das initiale Anlegen ist weniger das Problem (vielleicht störend aber wie oft legt man ein neues Projekt an).

Die neue Struktur, welche mit MVC 6 eingeführt wird kenn ich bisher nur aus der Theorie und Vorträgen (habe mich noch nicht mit einem MVC 6 Projekt auseinandergesetzt). Da wird sich bestimmt etwas getan haben, sodass VSCode vielleicht eine gute Alternative zur virtuellen Maschine in diesem Bereich wird.

EDIT:

Ich zB. erstelle mit VS2015 das Projekt; bearbeite es dann aber oft mit VSCode. Debugging dann wieder in VS2015. Ich verwende also ein Mix - und das sehr gerne.

Das ist ja möglich. Wenn ich aber OS X nutze, ist das Wechseln in dem Falle zwischen VSCode und VS sehr ungünstig (klar, man kann einen share-Ordner anlegen, der von der VM automatisch eingebunden wird). Daher wäre ein integrierter Debugger Gold wert.

Viele Grüße
Matthias

16.834 Beiträge seit 2008
vor 8 Jahren

... der wechsel auf einen Cross-Platform-Editor ist ja nahezu irrelevant, wenn der Quellcode gar nicht Cross-Platform-Fähige ist.

Mit DNX kommt das aber, ASP.NET 5 kann es und VSCode auch.
Mit .NET Framework, ASP.NET 4/MVC5 geht es halt nicht.
Sehe hier also gar keinen Technologiebruch.

Das initiale Anlegen ist weniger das Problem (vielleicht störend aber wie oft legt man ein neues Projekt an).

Du hast bei VSCode keinen direkten Zugriff auf die Projektdatei. Es wird aber nur das kompiliert, was in der Projektdatei referenziert ist.
Bei DNX Projekten hingegen wird alles kompiliert, das sich im Ordner befindet. Es gibt keine Projektdatei mehr.

Trotzdem:
Unterm Strich sehe ich immer noch nichts, was gegen VSCode spricht.

16.834 Beiträge seit 2008
vor 8 Jahren

Passend dazu gestern auch 04 | Debugging in Visual Studio Code inklusive Extensions und Co.

M
mbedded Themenstarter:in
8 Beiträge seit 2016
vor 8 Jahren

Hallo Abt,

tut mir leid, dass ich mich erst jetzt melde..
Unabhängig von den Entwicklungsfeatures wie Debugging etc. habe ich mich mal in die Entwicklung einer Erweiterung für VS Code eingelesen.
Ich muss mich da mal reinlesen und ein "Hallo Welt" Programme erstellen. Dann sehe ich ja, wie gut mich der Editor meine Ideen umsetzen lässt 😃
Damit habe ich einen Grund etwas Neues zu lernen. Je nachdem, wie ich zeitlich voran komme, werde ich da was im Projekte-Forum posten.
Nochmals vielen Dank für die Infos und verschiedenen Links.

Viele Grüße
Matthias