@arrdem ist veraltet grimoire und Umleitung zu clojure docs. Jetzt ergibt cider-grimoire
Folgendes:
Ich habe ein paar Minuten damit verbracht, mir Clojuredocs anzusehen, um zu sehen, ob es eine API gibt, und ich glaube nicht, dass es eine gibt. Wir müssen entweder zu Clojuredocs wechseln oder diese Funktion entfernen.
Ich würde hoffen, dass es sich in Richtung Clojure-Dokumente bewegt. @ cursive-ide macht das und es ist sehr schlau. Ich mag die In-Editor-Dokumente sehr und ich werde die Früchte von
Es scheint, dass es eine API gibt, da es einen alten Client dafür gibt - https://github.com/dakrone/clojuredocs-client/blob/master/src/cd_client/core.clj Ich bin mir nicht sicher, ob das noch funktioniert, aber ich denke, es könnte sein Eine gute Idee, eine Middleware für den Umgang mit ClojureDocs zu erstellen, wenn wir uns dafür entscheiden, sie zu unterstützen. Dies würde es uns auch ermöglichen, Beispiele in Dokumenten usw. zu zeigen.
Ich glaube nicht, dass es eine API gibt, aber es gibt ein Archiv unter: https://clojuredocs.org/clojuredocs-export.json. Ich fordere den Benutzer beim Start auf, das herunterzuladen, und überprüfe dann, ob es vorhanden ist, wenn das Dokument angezeigt wird. Ich denke, das Archiv wird täglich aktualisiert.
Danke @ cursive-ide! Ich habe mich gefragt, wie du es gemacht hast. Ihre Implementierung ist sehr geschickt und bequem.
Es wurde ein Kommentar zu einer vorhandenen Anforderung für eine API hinzugefügt, um zu sehen, welche Berechtigungen für diese Daten erteilt / benötigt werden. Scheint ungefähr 3 MB groß zu sein, also könnte man es vielleicht einfach in eine EDN-Datei werfen und mit Obstgarten oder Cider-Nrepl verteilen?
@dpsutton Ich stimme zu. Das haben wir für see-also.edn
in Orchard gemacht - es ist nur ein Export von Clojuredocs, die wir von Zeit zu Zeit aktualisieren. Wir müssen nur ein paar Lein / Make-Aufgaben hinzufügen, um diese Exporte zu vereinfachen.
Siehe auch https://github.com/clojure-emacs/orchard/issues/60, das darauf verweist, wie wir in der Vergangenheit see-also.edn
aus ClojureDocs extrahiert haben.
Ich winke traurig
@bbatsov Ich
https://github.com/liquidz/iced-nrepl/blob/feature/clojuredocs/src/iced/nrepl/document.clj
In meiner Implementierung versuche ich, json-path
zu empfangen und die JSON-Daten zwischenzuspeichern, da sie sich im Gegensatz zu see-also.edn
häufig zu ändern scheinen.
Ich kann diese Codes zu Obstgarten oder Apfelwein-Nrepl beitragen. Was halten Sie von dieser Implementierung?
@liquidz Die Implementierung erscheint mir vernünftig, es ist nur ein bisschen enttäuschend, dass es keinen EDN-Export gibt und jetzt brauchen wir eine Drittanbieter-Dep, um den JSON zu analysieren. Dies bedeutet, dass wir dies in cider-nrepl
tun müssen, nicht in orchard
, da Orchard idealerweise frei von Deps bleiben sollte (außerhalb von Clojure / ClojureScript).
Wie auch immer, ich denke, das ist vorerst gut genug. Vielen Dank für Ihr Angebot!
@bbatsov Danke!
Ich bestätige, dass das EDN-Format in Clojuredocs exportiert wird.
Wenn nicht geplant ist, Daten im EDN-Format zu exportieren, erstelle ich eine PR für das Repository cider-nrepl
.
Groß!
Wenn nicht geplant ist, Daten im EDN-Format zu exportieren, erstelle ich eine PR für das Cider-Nrepl-Repository.
Übrigens habe ich gedacht, dass wir dies auch selbst erreichen könnten, denn alles, was wir brauchen, ist ein trivialer Webdienst, der für Heroku (oder was auch immer) bereitgestellt wird und der den täglichen JSON-Export abruft und ihn in EDN konvertiert. Trotzdem hoffe ich, dass @zk uns bei einigen EDN-Exporten direkt aus der Quelle helfen kann.
@bbatsov
Übrigens habe ich gedacht, dass wir dies auch selbst erreichen könnten, denn alles, was wir brauchen, ist ein trivialer Webdienst, der für Heroku (oder was auch immer) bereitgestellt wird und der den täglichen JSON-Export abruft und ihn in EDN konvertiert.
Wie wäre es mit Netlify?
Ich habe ein einfaches Projekt als Test erstellt, um die konvertierte EDN-Datei täglich in Netlify umzuwandeln.
schedule
in CircleCI@liquidz Super ! Genau das hatte ich mir vorgestellt.
Jetzt können Sie die Funktionalität direkt zu Orchard hinzufügen, und cider-nrepl enthält nur einen Think Wrapper.
@liquidz Ich habe endlich angefangen, daran zu arbeiten, und mir ist aufgefallen, dass der Export ein wenig optimiert werden kann, um bequemer zu sein. Er zeichnet alle von allen vorgenommenen Änderungen auf und ich denke, wir müssen diese Informationen einfach verwerfen und Dinge wie :see-alsos
, :notes
und :examples
als Schlüssel der obersten Ebene jedes Symbols, das einem Vektor zugeordnet ist. Wir können den Export roh halten und die Daten von Obstgärten massieren lassen, aber es scheint mir, dass wir den Export direkt bereinigen können (dies wird auch den Download erheblich verkleinern).
@bbatsov Ich bin nicht sicher, welche Struktur Sie erwarten.
Können Sie mir das konkrete Beispiel nennen?
@liquidz Sicher!
Hier würde ich zum Beispiel alle Autoreninformationen darüber ablegen, wie etwas erstellt / bearbeitet wurde:
:vars [{:ns "clojure.core", :name "def", :type "var", :see-alsos [{:created-at 1289040035000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"}, :to-var {:ns "clojure.core", :name "defn", :library-url "https://github.com/clojure/clojure"}, :_id "542692eaf6e94c6970521b15"} {:created-at 1289040039000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"}, :to-var {:ns "clojure.core", :name "fn", :library-url "https://github.com/clojure/clojure"}, :_id "542692eaf6e94c6970521b16"} {:created-at 1289040051000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"},
Diese Art von Daten ist für ClojureDocs selbst wichtig, aber nicht wichtig, wenn Sie nur einige Daten in einem Editor anzeigen möchten. Wie gesagt - es ist keine große Sache für mich, die Datenverarbeitung in Orchard zu optimieren, aber ich bin mir ziemlich sicher, dass wir diese Art von Daten niemals benötigen werden, daher ist es möglicherweise besser, den Export kompakter zu gestalten. Grundsätzlich ist so etwas ideal:
{:var {:ns ... :name ... :type ... :see-alsos [just a list of vars] :notes [just a list of notes] :examples just a list of examples}
Sinnt dieser Name?
@bbatsov Danke!
Es scheint mir auch gut zu sein.
Ich werde versuchen, Beispieldaten an https://clojuredocs-edn.netlify.com/ zu
@bbatsov Ich habe die kompakte Version hier bereitgestellt.
https://clojuredocs-edn.netlify.com/export.compact.edn
Wie wäre es mit diesen Beispieldaten?
@liquidz Super ! Genau das hatte ich mir vorgestellt! Ich denke, wir können Orchard / Cider-Nrepl aktualisieren, um stattdessen diese Daten zu verwenden.
@bbatsov Ich fing an, den Code in cider-clojuredocs
zu verstehen, und ich bemerkte etwas mit den Daten, die Sie von Obstgarten / Apfelwein-Nrepl erhalten.
Dies ist die Diktatausgabe beim Nachschlagen des Symbols def
:
(dict "status" ("done") "doc" "Creates and interns a global var with the name
of symbol in the current namespace (*ns*) or locates such a var if
it already exists. If init is supplied, it is evaluated, and the
root binding of the var is set to the resulting value. If init is
not supplied, the root binding of the var is unaffected." "forms-str" "(def symbol doc-string? init?)" "id" "56" "name" "def" "see-also" ("clojure.core/defn" "clojure.core/fn" "clojure.core/defmacro" "clojure.core/defmulti" "clojure.core/defonce" "clojure.core/ns-unmap") "session" "e7babf3b-fe95-49dc-999d-8565bbf9ab72" "special-form" "true" "url" "https://clojure.org/special_forms#def")
Es fehlt der Schlüssel ns
der vom Code erwartet wird, um die Anfrage über browse-url
. Ich denke, die Lösung für diese Situationen wäre am Ursprung dieser Daten besser. Können Sie einige Anweisungen zum weiteren Debuggen geben?
Den Code finden Sie hier https://github.com/clojure-emacs/orchard/blob/master/src/orchard/clojuredocs.clj
Ich gehe davon aus, dass dies aus irgendeinem Grund nicht Teil des ClojureDocs-Exports ist, was ein bisschen seltsam erscheint, aber es wird nicht schwer sein, das, was wir daraus erhalten, leicht zu optimieren.
@wandersoncferreira @bbatsov
"Sonderform" "wahr"
ClojureDocs-Exportdaten scheinen keinen ns
-Schlüssel für spezielle Formulare zu haben.
https://clojure.org/reference/special_forms
Nun, ich denke, wir können das Fehlen von ns
einfach als clojure.core
. Oder optimieren Sie die Daten im Exporteurservice etwas mehr.
Diese Annahme ist gut genug, aber ich denke, es wäre gut, den Datenexporter so zu optimieren, dass er den Namespace clojure.core
und die aktuelle Implementierung auf cider-clojuredocs
unverändert zu lassen.
Es ist einfach, Exporteur zu optimieren :)
https://github.com/liquidz/clojuredocs-export-edn
@wandersoncferreira @bbatsov
Oh, ich habe es falsch verstanden! Es tut uns leid!
Es ist info
op, das für ein spezielles Formular keinen ns
Schlüssel zurückgibt.
Dies ist die Diktatausgabe beim Nachschlagen des Symbols def:
Ich denke, dies ist eine Antwort von info
op.
Also sollten wir info
op optimieren oder das Fehlen von ns
als clojure.core
.
Ja, wir sollten.
Ich kann am Donnerstag daran arbeiten. Wir sponsern das Clojure South Event hier in Brasilien und ich bin sehr damit beschäftigt, all die Dinge zu organisieren, die wir zum Event bringen werden. Ich hoffe wir sehen uns dort
@wandersoncferreira Ebenso!
@liquidz Ein kleiner Hinweis zum Export - es wäre wirklich schön, wenn Sie die Export-Edns hübsch drucken würden, damit sie für Menschen etwas einfacher zu navigieren sind. Ganz zu schweigen davon, dass Emacs sehr schlecht mit super langen Schlangen umgeht. : D.
@bbatsov OK! Ich habe die Export-EDN-Datei behoben.
https://clojuredocs-edn.netlify.com/export.compact.edn
Eine nicht hübsch gedruckte Version bleibt hier .
Groß! Dankeschön! 🙇
Hilfreichster Kommentar
@bbatsov OK! Ich habe die Export-EDN-Datei behoben.
https://clojuredocs-edn.netlify.com/export.compact.edn
Eine nicht hübsch gedruckte Version bleibt hier .