Cider: Grimoire-Säuberung

Erstellt am 27. Juni 2019  ·  32Kommentare  ·  Quelle: clojure-emacs/cider

@arrdem ist veraltet grimoire und Umleitung zu clojure docs. Jetzt ergibt cider-grimoire Folgendes:

image

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

help wanted

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 .

Alle 32 Kommentare

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.

@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?

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! 🙇

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen