Regal Diskussion:Programmierung: Vorlage:Code

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Vorlagen für das Regal Programmierung[Bearbeiten]

Habe ich nur etwas übersehen oder gibt es wirklich keine einfachen, schönen Vorlagen um Beispielquellcode zu kennzeichnen? Abgesehen von <pre>Code</pre> und <code>Code</code> habe ich bisher nichts entdeckt, was man zum Kennzeichnen von Quellcode benutzen kann und was dem ganzem Regal zur Verfügung steht.

Sehr gut haben mir die Vorlagen beim englischen WikiBooks gefallen, solche einheitlichen Codes wären - finde ich jedenfalls - schonmal ein guter Schritt zu schöneren, und vor allem besser lesbaren, Büchern. ;-) Gibt es eine Möglichkeit diese Vorlagen für das Regal hier zu übernehmen? --Floriam 08:55, 12. Aug 2006 (UTC)

Ja und Nein.
In den Vorlagennamensraum als Vorlage:Code nein.
Bei uns müsste es als
[[Regal:Programmierung:Vorlage:Code]] angelegt werden und als
{{:Regal:Programmierung:Vorlage:Code}} benutzt werden.
Du bist die übrigens schon bewusst, das die Vorlage auf EN auch recht neu ist?
In der Versionengesichte steht 6. Aug 2006 und über die Umsetzung kann diskutiert werden.
Wieso soviele "Dumme" Vorlagen ansteller weniger, Inteligenter?
Im übrigen finde ich den doppel Rahmen der die Vorlage bewirkt nicht gerade schön.
(siehe z.B. en:Programming:PHP:basics)
Naja, ich bin alles andere als überzeugt von der konkretten Umsetzung (wieso ist z.B. das <pre> nicht in der Vorlage selbst?), aber die Idee ist gut.
-- MichaelFrey 09:13, 12. Aug 2006 (UTC)
Das die Vorlagen umbenannt werden müssen war mir schon klar. Das die englischen Vorlagen neu sind zwar nicht, aber das tut ja wenig zur Sache, mir waren diese dort nur positiv aufgefallen.
Bei der Umsetzung der Vorlagen hast du meiner Meinung nach recht, die dreifachen Rahmen sind irgendwie sinnlos und über das Fehler von einem integrierten <pre> habe ich mich auch schon gewundert (ich würde z.B. einfach den inneren div mit einem pre ersetzen). Aber mir ging es nur um die Idee im Allgemeinem. :-)
Welche Vorlagen sind denn deiner Meinung nach sinnlos/dumm? Ich würde nur die folgenden Vorlagen übernehmen:
* Basic (allerdings mit dem Design von Output, ohne das "Output" eben ;-))
* Valid/Error (gut um dem Benutzer zu verdeutlichen: guter,funktionierender Code/schlechter,fehlerhafter Code)
* Output, PHPHTML (für den privat-Bedarf :D)
* Tip (wobei es da vielleicht ein normaler Tipp es auch tun würde)
Die anderen sind entweder doppelt, oder wie du schon sagtest - meiner Meinung nach - sinnlos. ;)
Man könnte theoretisch die Codes natürlich auch aufteilen und praktisch nur die einzelnen Teile (also Code, Output usw.) haben, aber wenn man sich anschaut wie lang die Vorlagen-Namen sind dann finde ich die Idee nicht wirklich schön für die Autoren.
--Floriam 09:50, 12. Aug 2006 (UTC)
Der Mediawiki Syntax erlaubt relativ viele Tricks, ich seh einfach die Anzahl nicht ein.
Vorschlag: Ich mach eine Intelligente Vorlage die mehrere Vorlagen von EN Abdeckt.
(Beginne nach dem Alltäglichen Vandeln kontrolle damit, Resultat kommt hier her)
-- MichaelFrey 07:07, 13. Aug 2006 (UTC)
Eine kleine Vorschau was ich gerade mache:

(verschoben nach Regal Diskussion:Programmierung: Vorlage:Code)

-- MichaelFrey 07:47, 13. Aug 2006 (UTC)
-- MichaelFrey 07:59, 13. Aug 2006 (UTC)
Jetzt kann Diskutiert werden, Vorschläge gemacht werden etc. :-)
-- MichaelFrey 08:18, 13. Aug 2006 (UTC)
Bis jetzt sieht das wirklich gut aus, schön Arbeit. :-) Das einzigste was mir jetzt noch negativ aufgefallen ist, ist das doppelte Code + Fehler Symbol. Gibt es da eine Möglichkeit, dass nur noch das Fehler-Symbol angezeigt wird? Ansonsten ist es wie gesagt spitze gelungen, Danke für die Arbeit die du dir da gemacht hast. :-) --Floriam 08:23, 13. Aug 2006 (UTC)
Gute Idee, kommt gleich ;-)
-- MichaelFrey 08:30, 13. Aug 2006 (UTC)
Ist erledigt -- MichaelFrey 08:32, 13. Aug 2006 (UTC)
Perfekt, nun hab ich nichts mehr an der Vorlage auszusetzen. Eventuell wäre eine kurze Erklärung der Parameter ganz sinnvoll. --Floriam 08:42, 13. Aug 2006 (UTC)
Gut, dann Fang ich mal auf Regal Diskussion:Programmierung: Vorlage:Code damit an :-) -- MichaelFrey 09:01, 13. Aug 2006 (UTC)
Danke :-) --Floriam 09:07, 13. Aug 2006 (UTC)
Ich finde die Idee, das ganze auf Vorlage:Code zu erstellen, ganz positiv. Schließlich gibt es auch andere Regale, die eine Code-Vorlage gebrauchen können (vorrangig natürlich EDV, aber auch Mathematik und Konsorten). Außerdem ist es bücherunabhängig und damit IMHO global und gehört in den Vorlagen-Namensraum. Wer sich an Vorlage:Code stört: Man kann's ja auch anders nennen, etwa Vorlage:Prettycode in Anlehnung an Vorlage:Prettytable.
Nun zur Vorlage selber: Bitte bitte, macht es nicht mit <pre>! Dann ist nämlich keine Syntaxhervorhebung, wie in meinem Buch Visual Basic .NET schon größtenteils realisiert, nicht mehr möglich. Ich wäre dafür, statt im Paramater <pre> und </pre> einzufügen, in der Vorlage folgenden Code einzufügen. -- Stefan Majewsky 15:45, 13. Aug 2006 (UTC)
<span style="border: 1px dashed #2F6FAB; background-color: #F9F9F9; font-family: monospace;"><!-- ... --></span>
Auf das <pre> bist du nicht angewisssen, es geht auch anders, weil das pre nicht in der Vorlage ist:

Für Ausgabe von Text wird FOR verwendet:
Crystal Clear app terminal.png Code:  

Dim Kapital As Single = 1000.0 'Startkapital
Dim AnzahlVerzinsungen As Integer 'Zähler muss nicht initialisiert werden
For AnzahlVerzinsungen = 1 To 10
    Kapital += 0.03 * Kapital
Next
MessageBox.Show("Am Ende haben Sie " & Kapital & " Euro.")
Das verschieben in den Vorlagennamensraum überlege ich mir noch.
Das "Problem" ist da nicht der Name, sondern die "Übersichlichkeit" des Vorlagennammensraumes.
-- MichaelFrey 17:08, 14. Aug 2006 (UTC)
Auch wahr. Den <span>-Tag werde ich mir in eine buchspezifische Vorlage packen. Eine Frage noch: Kann ich mir sicher sein, dass die Vorlage immer unter Regal:Programmierung: Vorlage:Code verfügbar ist (man kann sicherlich einen Redirect oder eine Weiterleitungsvorlageneinbindung einrichten)? Wenn ja, würde ich das auf VB.NET testen. -- Stefan Majewsky 18:50, 15. Aug 2006 (UTC)
Wenn jemannd die Vorlage verschiebt, entsteht ein Redirect, alle Einbindungen funktionieren weiterhin.
Vor dem Löschen muss der Admin prüfen ob es keine Links und keine Einbindungen darauf gibt ([1]).
Also keine Angst ;-)
-- MichaelFrey 16:05, 16. Aug 2006 (UTC)
Doku angepasst. -- MichaelFrey 17:27, 14. Aug 2006 (UTC)
Eine Frage: Warum wird das "Code:" mit Code-Logo bei Valid-Boxen nicht angezeigt? -- Stefan Majewsky 19:16, 15. Aug 2006 (UTC)
Ehrlich gesagt, weil's beim Orginal von EN auch so war ;-) Ist geärndert. -- MichaelFrey 16:05, 16. Aug 2006 (UTC)

Fehler wenn <pre> nicht verwendet wird[Bearbeiten]

{{Regal:Programmierung: Vorlage:Code
|kopf=Kopf
|code=&nbsp;
 Code
|output=&nbsp;
 Output
|fuss=Fuss
}}

Kopf
Crystal Clear app terminal.png Code:  

Code

Crystal Clear app kscreensaver.png Output:  

OutputFuss

Das sieht nur wie ein Fehler aus. (Weitere Beispiele auf Visual Basic .NET: Mathematische Operatoren.) -- Stefan Majewsky 15:44, 19. Aug 2006 (UTC)
Nachtrag: Sollten wir diese Disku nicht nach Regal Diskussion:Programmierung: Vorlage:Code auslagern und die dortigen Beschreibungen in den Noinclude-Bereich von Regal:Programmierung: Vorlage:Code verschieben? Das nimmt hier ein bisschen überhand. -- Stefan Majewsky 15:46, 19. Aug 2006 (UTC)

Nein, da es eine Recht komplexe Vorlage ist, würden die Beispiele im Noinclude Bereich nur verwirrung Stiften.
Das Problem ist, wenn du die Vorlage änderst und auf "Vorschau zeigen" klickst, werden die Beispiele nicht mit der Geänderten, sondern mit der Alten Vorlage angezeigt.
-- MichaelFrey 17:59, 19. Aug 2006 (UTC)
Die Beispiele und Beschreibungen könnte man auch auf eine weitere Seite auslagern, z.B. Regal:Programmierung: Vorlage:Code/Syntax. -- Stefan Majewsky 18:45, 21. Aug 2006 (UTC)
Gute Idee :-)
siehe nun also Regal:Programmierung: Vorlage:Code/ Syntax
(Bald brauchen wir für die Diskussion auch noch eine Archiv Seite)
-- MichaelFrey 18:55, 21. Aug 2006 (UTC)

Neue Vorschläge[Bearbeiten]

Ich hätte da noch drei Vorschläge. Erstens: Das "HTML" vor dem "Render" sollte man entfernen und den entsprechenden Parameter in "render" umbenennen. Schließlich gibt es noch andere Renderings. (Mir fiele da spontan z.B. TeX oder Postscript ein, aber auch XML in Kombination mit CSS oder XSL(T).) Da bis jetzt niemand den html-Parameter verwendet (außer der Doku), ist es nicht so schlimm, den Param. umzubenennen. Wer das "HTML" davor haben will, dafür kann ja einen weiteren Parameter benutzen, etwa "rlang".
Zweitens: Zwischen {{{lang}}} und "Code:" bzw. "Output:" gehört IMO und nach den Regeln der deutschen Grammatik ein Bindestrich, also statt "PHP Code" lieber "PHP-Code". Das gleiche gilt für "Render:".
Drittens: Ähnlich den Schaltern "valid" und "error" wäre ich für einen Schalter "deutsch", der die Beschriftungen auf deutsch übersetzt, also "Quelltext" statt "Code", "Ausgabe" statt "Output" und "Darstellung" statt "Render". Überhaupt: Heißt es nicht "Rendering"? -- Stefan Majewsky 13:10, 23. Aug 2006 (UTC)

Die Vorschläge geh ich gleich genaur durch.
-- MichaelFrey 15:38, 23. Aug 2006 (UTC)
Zu PHP-Quelltext statt PHP Quelltext:
Der Einbau ist recht auf wendig, weil geprüft werden muss ob die Programmiersprache und Deutsch gesetz sind.
Die sowieso schon verschlungenen Bedingungen würden also weiter wachsen.
-- MichaelFrey 16:15, 23. Aug 2006 (UTC)
Aktuell:
{{{lang|}}} {{#if: {{{deutsch|}}}|Quelltext|Code}}:
Variante 1 (immer Bindestrich):
{{{lang|}}}-{{#if: {{{deutsch|}}}|Quelltext|Code}}:
Variante 2 (Bindestrich bei Parameter, find ich aber blöd, da die Parameter langsam überhand nehmen):
{{{lang|}}}{{#if {{{lang|}}}|{{#if {{{bindestrich|}}}|-|&nbsp;}}|&nbsp;}}{{#if: {{{deutsch|}}}|Quelltext|Code}}:
Variante 3 (Bindestrich nur bei deutschen Texten):
{{#if: {{{deutsch|}}}|{{#if: {{{lang|}}}|{{{lang|}}}-Quelltext|Quelltext}}|{{{lang|}}} Code}}}}:
Sieht mir nicht so kompliziert aus. -- Stefan Majewsky 18:40, 23. Aug 2006 (UTC)
Eine Alternative wäre ja wenn du z.B. renderlang=HTML- und lang=PHP- einsetzt.
Es zwar im Prinzip wirklich simpel deine Variante 3 einzubauen, aber die Vorlage wird damit noch komplizierter.
Wenn irgendjemannd die Vorlage vom Aufbau her verstehen will, ist es schon Komplex genug.
Was ich einfach meine, das für einen einfachen Bindestrich es zu viel Code ist.
Ich überlege mir mal was, vielleicht gibt es eine Schöne Lösung.
-- MichaelFrey 18:52, 23. Aug 2006 (UTC)
Mit einem kleinen Cleanup kannst du es einbauen, ich find keine Bessere Lösung:
{{#if: {{{deutsch|}}}|{{#if: {{{lang|}}}|{{{lang}}}-}}Quelltext|{{{lang|}}} Code}}:
(du sollst es eintragen, es ist ja deine Idee und dein Code liegt zu Grunde ;-)
-- MichaelFrey 19:35, 23. Aug 2006 (UTC)
Geschehen. Funktioniert alles. (Vielleicht brauchen wir ne Dokumentation zum Code der Vorlage. *lol*) -- Stefan Majewsky 19:36, 24. Aug 2006 (UTC)
Die Idee hat ich auch schon ;-)
Das Pflegen der Doku bei einer kleinen Änderung am Code wäre aber zu gross ;-)
Ich bin gespannt, ob die Vorlage irgendwann mal "um die Welt geht" also auch von anderen Projekten verwendent wird.
-- MichaelFrey 19:40, 24. Aug 2006 (UTC)

Beschreibungsseite[Bearbeiten]

Nachdem ich den noinclude-Bereich der Vorlage ein bisschen ausgebaut habe, habe ich nun die Beschreibungsseite komplett überarbeitet. Was haltet Ihr davon? (Die Kommentare im Syntaxhervorhebungsbeispiel sind rausgeflogen, weil es sonst zu breit wäre.) -- Stefan Majewsky 13:02, 23. Aug 2006 (UTC)

Danke für den Umbau :-)
-- MichaelFrey 16:15, 23. Aug 2006 (UTC)

Dualcode[Bearbeiten]

Für zweisprachige Bücher, also Bücher, deren Codebeispiele in zwei Programmiersprachen verfasst sind, habe ich von Regal:Programmierung: Vorlage:Code die Vorlage Regal:Programmierung: Vorlage:Dualcode abgeleitet. Das ist vor allem für .NET gedacht, aber es gibt sicher viele andere Bibliotheken und Frameworks, die in mehr als nur einer Sprache programmiert werden können. (Natürlich hätte ich auch die Funktionalität der Ursprungsvorlage erweitern können, aber die ist schon aufgebläht genug.) -- Stefan Majewsky 16:12, 4. Sep 2006 (CEST)

Syntax hervorheben[Bearbeiten]

Unter source-Tag Rahmen habe ich eine Zusatzfrage gestellt, die auch hier passt: Wie kann ich für den Code den inneren weißen Rahmen mit Syntax-Hervorhebung erreichen? Juetho 12:54, 12. Jul. 2009 (CEST)

Dort gibt es inzwischen eine Antwort. --Juetho 12:31, 13. Jul. 2009 (CEST)
Von Prog gibt es inzwischen die Lösung mit der zusätzlichen Option "coderahmen=1". Danke! -- Juetho 09:02, 14. Jul. 2009 (CEST)