Comment compiler une fonction qui utilise une annotation cl-annot?Comment utiliser cl-annot dans Slime (pour définir une autre vue dans Lucerne)
utilisation:
Lucerne utilise pour définir les routes:
@route app "/profile/:username"
(defview profile (username)
(let* ((user (utweet.models:find-user username))
;; The user's timeline
(user-tweets (utweet.models:user-tweets user))
;; Is the user viewing his own profile?
(is-self (string= (lucerne-auth:get-userid)
username)))
(render-template (+profile+)
:user user
:tweets (display-tweets user-tweets)
:is-self is-self)))
je l'ai fait travailler avec un point de vue. Mais écrire un second et le compiler avec C-c-c
ne fonctionnerait pas. J'ai installé slime-annot.el
pour emacs, mais je ne reçois que
The variable @ROUTE is unbound. [Condition of type UNBOUND-VARIABLE]
Je ne ai écrit (annot:enable-annot-syntax)
au début.
Donc, ceci est un point de blocage:/Comment pouvons-nous définir de nouvelles choses en utilisant cl-annot?
Merci
ps: related issue
modifier: plus sur la structure du fichier: j'ai créé un projet avec le créateur du projet de Lucerne, voici le début de mon dossier principal:
(in-package :cl-user)
(defpackage lucerne-books
(:use :cl
:lucerne
:cl-arrows
:str)
(:export :app)
(:documentation "Main lucerne-books code."))
(in-package :lucerne-books)
(annot:enable-annot-syntax)
;;; App
(defapp app
:middlewares ((clack.middleware.static:<clack-middleware-static>
:root (asdf:system-relative-pathname :lucerne-books #p"assets/")
:path "/static/")))
;;; Templates
(djula:add-template-directory
(asdf:system-relative-pathname :lucerne-books #p"templates/"))
(defparameter +index+ (djula:compile-template* "index.html"))
;;; Views
@route app "/" ;; first created: it works
(defview index()
(render-template (+index+)
:foo "you"))
@route app "/rst" ;; this view won't work, not accessible
(defview index()
(render-template (+index+)
:foo "rst"))
@route app "/following/:username" ;; this one neither
(defview user-following (username)
(let ((user username))
(render-template (+index+)
:foo user)))
Je ne connais pas Lucrene mais j'ai utilisé cl-annot sans problèmes, récemment. Avez-vous inséré "(annot: enable-annot-syntax)" au début du fichier comme indiqué dans le document? Pourriez-vous fournir plus d'informations sur la structure de votre fichier? –
oui j'ai activé la syntaxe annot. J'ai édité ma question avec plus d'informations sur mon code et la structure du fichier. – Ehvince
cela fonctionne avec '(syntaxe: use-syntax: annot)' que j'ai trouvé sur un projet d'homme des cavernes. Ne fais pas comme moi pourquoi! – Ehvince