Ich hab mir die vorherigen Beiträge nicht durch gelesen, daher entschuldigt bitte, wenn sich manche Hinweise wiederholen.
SharpDox habe ich mir nochmal neu herunter geladen und ausprobiert.
Seit der letzten Version, die ich vor Monaten mal gesehen habe, bin ich positiv überrascht.
Ich finde, die GUI sieht klasse aus, die Textboxen mit den farblich verschiedenen Waterproof-Schriften, die Icons dahinter, etc. finde ich toll. ^^
Auch die Web-Ausgabe sieht toll aus.
Ein paar kleine Punkte habe ich aber trotzdem:
Hauptfenster:
- Fehlt eine Eingabe oder gibt es irgendwo einen Fehler, fände ich gut, wenn du zusätzlich zum roten Balken unten das betroffene Feld irgendwie dezent markierst. Dann springt der Fehler ins Auge und ist schnell behoben. WPF hat dazu ja auch Möglichkeiten, die das schon einfach integrieren lassen.
- Wenn ich das Html-DropDown öffne, dann verschwindet das vollständig, weil das Fenster zu klein ist. Da fände ich schön, wenn alles Andere zusammen klappt, automatisch so weit runter scrollt, dass alles gut zu lesen ist, oder sich die Größe des Fensters an den Inhalt anpasst. Ich würde die zweite Variante bevorzugen, dass es automatisch scrollt, kombiniert damit, dass alles ANdere sich schließt. So bleibt dann auch der Überblick, wenn da mal mehr dazukommt.
HTML-Ausgabe:
- Scrolle ich in der Übersicht schnell nach unten und ich lande dabei in dem UML-Diagramm, dann ist das auf einmal ganz klein gezoomt, obwohl ich das gar nicht wollte. Da wäre cool, wenn das erst gezoomt wird, wenn ich mit dem Scrollen beginne, wenn ich die Maus über dem UML-Fenster habe
- Das UML-Fenster in der Größe verstellbar, das wäre klasse. Gerade bei großeren Diagrammen macht es das dann deutlich einfacher.
- Wenn ich das UML-Diagramm ziehe und dabei mit der Maus aus dem Fenster fahre, dann finde ich, sollte das Diagramm weiterhin gezogen werden. Wird in das UML-Fenster geklickt und gehalten, dann lässt sich das DIagramm so weit ziehen, wie man lustig ist, solange die Taste nicht los gelassen wurde. Dabei denke ich auch an größere Diagramme, die man verschieben muss um bestimmte Teile gut im Auge haben zu können.
Ist an sich nur Kleinkram, Verbesserungsideen.
Mehr Zeit zum Testen finde ich leider nicht, aber ich werde es in Zukunft aktiv nutzen, gerade für OpenSource-Projekte ^^
Und noch eine Kleinigkeit habe ich:
In der HTML Ansicht einer Klasse hast du ja oben
[Felder] [Ereignisse] [Methoden] [Eigenschaften]
Wenn ich jetzt z.B. 30-40 Felder oder Methoden oder so habe dann stoßen wir auf das Problem, dass wenn ich da drauf klicke und die Dropdownliste anzeige, dass hier natürlich nicht alle auf den Bildschirm Passen.
Scrolle ich nun nach unten so scrollt aber die Liste nicht mit. Also sehe ich niemals die unteren Einträge.
Ideal wäre es wenn die Dropdownliste hier scrollbar wäre. Das ist aber nicht sooo tragisch weil die Methoden ja auch so nochmal aufgelistet sind.
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
bei SharpDox.Model.Repository.SDType.get_NameWithTypeArguments()
bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei SharpDox.Model.Repository.SDType.GetTypeArgumentText()
bei SharpDox.Model.Repository.SDType.get_NameWithTypeArguments()
bei SharpDox.Model.Repository.SDType.get_Fullname()
bei SharpDox.Build.Parser.TypeParser.AddParsedInterfaces(SDType sdType, IEnumerable`1 implementedInterfaces)
bei SharpDox.Build.Parser.TypeParser.GetParsedType(IType type, Boolean isProjectStranger)
bei SharpDox.Build.Parser.TypeParser.AddParsedNestedTypes(SDType sdType, IEnumerable`1 nestedTypes)
bei SharpDox.Build.Parser.TypeParser.ParseTypeToModel(SDType sdType, IType type)
bei SharpDox.Build.Parser.TypeParser.GetParsedType(IType type, Boolean isProjectStranger)
bei SharpDox.Build.Parser.TypeParser.ParseProjectTypes(CSharpProject project)
bei SharpDox.Build.Context.Step.ParseStep.ParseTypes()
bei SharpDox.Build.Context.Step.ParseStep.ParseSolution(CSharpSolution solution, List`1 excludedIdentifiers)
bei SharpDox.Build.Context.BuildContext.BuildDocumentation()
Erst einmal vielen Dank für die Rückmeldungen! Es freut mich, dass ich Feedback bekomme und, dass das Tool immer mehr Anklang findet :)
@Abt: Die Version des CSS ist die Versionsnummer des HTML-Plugins. Diese ist eine andere als die des Tools selber. Wegen der Verlinkung des Autors werde ich mir was einfallen lassen ;)
@thetruedon: Ich glaube, dass du da direkt zwei Bugs gefunden hast :) Einmal scheint es im Opera tatsächlich ein Problem mit dem JS zu geben. Werde ich für die nächste Version fixen. Das was du da gefunden hast (das mit dem "&") ist noch etwas anderes. Das werde ich mir mal genauer ansehen. Danke für die Analyse!
Die Listen in dem Header werde ich so anpassen, dass diese unabhängig von der Seite selber scrollbar sind.
@Palladin007: Danke auch für dein Feedback und die Verbesserungsvorschläge! Werde schauen was ich davon für die nächste Version schaffe :)
Zu dem Bug: Das scheint ein Problem mit der eingebundenen NRefactory Version zu sein. Wenn ich eine neuere einbinde wird die Dokumentation bei mir korrekt gebaut. Werde die neue Version von sharpDox mit einem NRefactory Update ausliefern.
So, dass war es von meiner Seite. Falls ihr noch weitere Dinge findet oder euch noch etwas auffällt, immer her damit. :)
Die Icons der HTML-Doku beginnen mit Großbuchstaben. Im Quelltext werden sie allerdings komplett kleingeschrieben referenziert, was dazu führt, dass es z. B. bei den github-Pages (oder jedem anderen Linux-Webserver?) ein 404 gibt.
Bei Enums fände ich es schön, wenn man irgendwo den tatsächlichen Wert eines Enum-Members stehen hätte. Ich bin wahrscheinlich der einzige Mensch auf dem Planeten, der das brauchen würde, deshalb würde ich es - wenn du es überhaupt machst - abschaltbar machen.
Bei Enums fände ich es schön, wenn man irgendwo den tatsächlichen Wert eines Enum-Members stehen hätte. Ich bin wahrscheinlich der einzige Mensch auf dem Planeten, der das brauchen würde, deshalb würde ich es - wenn du es überhaupt machst - abschaltbar machen.
nö das wäre auch für mich interessant bzw. für alles Win32 nahes, da hier doch viel mit Hex-Enums gearbeitet wird.
Die Icons der HTML-Doku beginnen mit Großbuchstaben. Im Quelltext werden sie allerdings komplett kleingeschrieben referenziert, was dazu führt, dass es z. B. bei den github-Pages (oder jedem anderen Linux-Webserver?) ein 404 gibt.
Hast du deine Doku mit der neusten Version gebaut? Hatte genau das Problem nämlich in der neusten Version behoben (bei Git musst du die alten Icons erst einmal löschen und dann neu hinzufügen, da er sonst die Änderung bei der Namensgebung der Icons nicht erkennt).
Das andere werde ich mir auch auf die Liste schreiben.
Gruß
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Geaz am .
2014-05-02 09:23:41,360: ERROR – System.InvalidOperationException: Fehler beim Vergleichen von zwei Elementen im Array. ---> System.ArgumentException: Mindestens ein Objekt muss IComparable implementieren.
bei System.Collections.Comparer.Compare(Object a, Object b)
bei System.Collections.Generic.ArraySortHelper`1.InternalBinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
bei System.Collections.Generic.ArraySortHelper`1.BinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Collections.Generic.ArraySortHelper`1.BinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
bei System.Collections.Generic.List`1.BinarySearch(Int32 index, Int32 count, T item, IComparer`1 comparer)
bei SharpDox.Build.Parser.TypeParser.AddParsedTypeParameters(SDType sdType, IEnumerable`1 typeParameters)
bei SharpDox.Build.Parser.TypeParser.ParseTypeToModel(SDType sdType, IType type)
bei SharpDox.Build.Parser.TypeParser.GetParsedType(IType type, Boolean isProjectStranger)
bei SharpDox.Build.Parser.TypeParser.ParseProjectTypes(CSharpProject project)
bei SharpDox.Build.Context.Step.ParseStep.ParseTypes()
bei SharpDox.Build.Context.Step.ParseStep.ParseSolution(CSharpSolution solution, List`1 excludedIdentifiers)
bei SharpDox.Build.Context.BuildContext.BuildDocumentation()
Diesmal habe ich ein eigenes Projekt genommen, das noch recht klein ist.
Hauptsächlich Interfaces, die ich mir in eine Doku legen wollte um den Überblick leichter halten zu können.
Ist es eigentlich gewollt, dass ich wenn ich ein Klassen- oder Sequenzdiagramm per Mausrad "zoome" gleichzeitig auch alle anderen Diagramme mitzoome?
Ich meine es ist jetzt grundsätzlich nicht störend aufgefallen aber sieht irgendwie wie ein ungewollter Seiteneffekt aus.
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
Der Fehler von Palladin007 wird in der nächsten Version behoben sein.
@thetruedon: Der Fehler sollte, wie das mit den Icons, in der letzten Version behoben worden sein. Bitte tausch mal deine komplette Doku aus, damit sowas nicht passiert. Scheint als wäre da noch irgendwo altes JS mit drin.
Aktuell sind die Diagramme nur in der HTML Doku als SVG enthalten. In der kommenden Version
werde ich versuchen eine Funktion zum speichern einzelner Diagramme einzubauen.
Sollte man nicht warten können oder dies nicht ausreichen, ist es in der Tat möglich ein eigenes Plugin zu schreiben, dass z.B. lediglich alle Diagramme in ein Ausgabeverzeichnis speichert.
Ja das wäre schön, wenn das funktionieren würde. Was vielleicht auch sinnvoll ist, wäre die Größenverstellung der einzelnen Bereiche, sodass man die Klassendiagramme größer machen kann und mehr sieht.
btw. super Arbeit und spitzen Programm, danke dafür!
2014-05-02 09:23:41,360: ERROR – System.InvalidOperationException: Fehler beim Vergleichen von zwei Elementen im Array. ---> System.ArgumentException: Mindestens ein Objekt muss IComparable implementieren.
bei System.Collections.Comparer.Compare(Object a, Object b)
bei System.Collections.Generic.ArraySortHelper`1.InternalBinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
bei System.Collections.Generic.ArraySortHelper`1.BinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Collections.Generic.ArraySortHelper`1.BinarySearch(T[] array, Int32 index, Int32 length, T value, IComparer`1 comparer)
bei System.Collections.Generic.List`1.BinarySearch(Int32 index, Int32 count, T item, IComparer`1 comparer)
bei SharpDox.Build.Parser.TypeParser.AddParsedTypeParameters(SDType sdType, IEnumerable`1 typeParameters)
bei SharpDox.Build.Parser.TypeParser.ParseTypeToModel(SDType sdType, IType type)
bei SharpDox.Build.Parser.TypeParser.GetParsedType(IType type, Boolean isProjectStranger)
bei SharpDox.Build.Parser.TypeParser.ParseProjectTypes(CSharpProject project)
bei SharpDox.Build.Context.Step.ParseStep.ParseTypes()
bei SharpDox.Build.Context.Step.ParseStep.ParseSolution(CSharpSolution solution, List`1 excludedIdentifiers)
bei SharpDox.Build.Context.BuildContext.BuildDocumentation()
Diesmal habe ich ein eigenes Projekt genommen, das noch recht klein ist.
Hauptsächlich Interfaces, die ich mir in eine Doku legen wollte um den Überblick leichter halten zu können.
Genau das passiert mir auch bei allen meinen Projekten : (
Version 0.9.8.8 online!
Sollten einige Verbesserungen dabei sein :)
- added token support for descriptions and articles
- added .sdnav as input file (breaking changes with previous .sdnav files - please adjust them - see "advanced tutorial")
- added static/readonly keyword support
- added const values support
- added author and project link in html export
- changed diagram zoom in html export
- made diagram container resizeable
- improved print in html export
- improved svg in html export
- many css and js fixes
Ui, in der Tat. Das ist ein Fehler der durch eine CSS-Änderung enstanden ist.
Falls du möchtest, kannst du einfach die folgende Änderung in die style.css eintragen. Dann sollte es behoben sein:
#sitetitle img {
height: 50px;
}
EDIT:
Kannst dir jetzt auch einfach noch einmal das neue Release runterladen. Habe dort schnell die Änderung eingebaut.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Geaz am .
Was muss ich machen, damit diese in die Doku kommt? Ich habe sie im Solutionordner aber sie taucht nach dem Build nirgends auf.
Kann ich auch mehrere MDs hinzufügen?
Home.md
VersionHistory.md
License.md
....?
Zitat von Geaz
Wenn du mit eigener Summary eine eigene "Startseite" meinst, dann reicht es wenn du im Solutionpfad eine readme.md erstellst und mit Inhalt füllst. Kannst dafür die Markdown-Syntax nutzen.
Kurz:
Wenn du deine Solution-Datei als Input zum Bau der Doku nutzt, muss die Datei nicht mehr "readme.md" heißen, sondern "default.sdpd".
Du kannst auch weitere Seiten hinzufügen (Version History usw.). Damit diese im Menü angezeigt und genutzt werden, musst du eine eigene Navigationsdatei erstellen und diese dann zum Bauen deiner Doku nutzen. (Siehe Punkt "Navigation" im oberen Link).
Falls das deine Fragen nicht beantworten sollte, sag einfach bescheid.
Problem doch gelöst.
Die SDA-Verweise sind offensichtlich Case-Sensitive.
Ursprünglicher Text:
Danke für die Info.
Ich tu mich ehrlich gesagt etwas schwer, da die Beschreibung - für mich - nicht 100% nachvollziehbar ist.
Ich hab mir jedoch mit Hilfe von Deinem Source auf https://github.com/Geaz/sharpDox/tree/master/Documentation angeschaut, wie Du das gemacht hast und das auch nachgebildet.
Ich bekomme jedoch beim Bauen wahrscheinlich einen Fehler.
Jedenfalls wird die Leiste, die unter dem "Bauen"-Button ist, Rot. Ich sehe aber keine Fehlermeldung.
Die Navigation habe ich als Startprojekt gewählt (default.sdnav):
-Home#home
-Version History#versionhistory
-FAQ#faq
-License#license
-Examples
-QuickIO.NET API#QuickIONET.sln
Ein Teil wird offensichtlich doch gebaut, denn ich bekomme den "Home"-Button in der HTML auch mit korrektem Text angezeigt. Aber wie gesagt schlägt das offensichtlich alles fehl.
In Markdown wird ein Zeilenumbruch durch zwei oder mehr Leerzeichen in der vorangegangenen Zeile erstellt. Willst du einen Absatz musst du zwei Zeilenumbrüche machen. Ist bei Wikipedia gut erklärt. Schau mal dort.
Bei den Überschriften gehen ich davon aus, dass es ein CSS Problem ist. Werde ich mir später mal anschauen.
Einen Artikel verlinken kannst du z.B. so:
[License]({{article-link:license}})
ist Dir schon aufgefallen, dass das erzeugte HTML des Markdown nicht kompatibel mit dem IE 10 ist?
- Icons werden nict angezeigt
- Listen-Punkte ebenfalls nicht
- Footer wird bei der Hälfte abgeschnitten
Wenn man die Methoden auflistet, dann kann man ja eine anklicken. Evtl wäre es schön, dass man sieht, dass sich da was aufklappen kann (die Beschreibung der Parameter)
Im Titel, wo Fields() Methods() Properties() steht, sind rechts zwei Buttons.
Da im IE keine Icons angezeigt werden, sehe ich nicht, was die Buttons tun. Das eine wird "Drucken" sein, weil sich der Druckdialog öffnet. Trotzdem wärs schön, wenn die Icons tun und/oder wenigstens ein Tooltip integriert ist.
danke für die Meldung. Ich habe im dev Branch bereits einige Anpassungen für den IE vorgenommen. Diese sollten hoffentlich auch die Probleme im IE10 beheben. Werde das vor dem nächsten Release noch einmal testen.