9
votes

Comportement ressemblant à des vignettes à l'aide de l'attribut cible de la directive sur l'image

J'utilise Sphinx pour générer des documents. J'ai un document restructurétextText et j'aimerais y mettre une image. Le cas est que l'image doit être cliquée de manière à ce que, après qu'un utilisateur clique sur l'image, il faut afficher cette image en pleine taille. J'utilise la directive image et son option cible comme ceci: xxx

Le problème est que dans la page rendue, je reçois: xxx

Il y a correctement src à partir de la directive sur l'image, mais un attribut incorrect href de l'hyperlien.

questions:

  • Y a-t-il un moyen de générer des liens dans la manière dont la directive de l'image le fait? Je veux dire par rapport au document.

  • Y a-t-il une autre manière (intégrée) d'avoir "Thumbnail-> Click -> Big IMAGE" Comportement?


0 commentaires

4 Réponses :


3
votes

Lorsque vous utilisez la directive image à partir de Sphinx, Sphinx effectue une manipulation spéciale pour trouver le fichier image et le copier dans votre projet (comme votre _Images ), puis rend le HTML à pointer vers cet endroit.

Mais l'option cible prend simplement une URL comme paramètre. Cela ne sait rien à propos de votre projet Sphinx ou de la manière dont vos images sont aménagées et ne tentent pas de deviner.

Si vous souhaitez que cela veuille indiquer une version plus grande du même fichier, vous devez probablement faire quelques étapes manuelles (comme peut-être copier le fichier à un emplacement spécifique) ou peut-être fournir une URL relative au grand fichier. , plutôt que l'URL absolue que vous avez dans votre exemple.

Si vous voulez passer une manière complètement différente, vous pouvez également essayer de remplacer et de modifier les modèles HTML pour votre projet pour ajouter du JavaScript pour obtenir l'effet d'image click-to-plus grand que vous souhaitez.


1 commentaires

N'y a-t-il vraiment pas d'autre moyen? C'est le genre de fonctionnalité que l'on pourrait s'attendre à être pris en charge hors de la boîte.



10
votes

Utilisez simplement l'option d'échelle:

.. image:: large_image.png
    :scale: 20%


2 commentaires

Bien que cela fonctionne, cela signifie que vous n'êtes pas automatique à l'échelle automatique (avec thème Sphinx 1.3 et RTD au moins)


Oui, cela goudrait mon image horizontalement. EDIT: J'ai trouvé que CSS fonctionne autour de celui-ci: img {hauteur: auto! IMPORTANT; }



1
votes

On dirait qu'il y a une extension Sphinx qui le fait maintenant et assez bien à cela, sphinxcontribe -fancybox 0.3.2 . Installez avec pip code>, ajoutez-le à vos extensions dans Conf.py et utilisez la directive FANCYBOX CODE>:

.. fancybox:: images/image.png


2 commentaires

Vient de l'essayer. C'est encore une sorte de rugueux autour des bords. La légende ne montre que sur une image de taille réelle qui est malheureusement un disjoncteur pour moi. J'en ai besoin de faire le contraire. Montrez la légende uniquement sur la vignette.


Ce que je fais pour l'instant est de définir une largeur / hauteur pour ma taille de vignette. Ensuite, lorsque je clique sur l'image, il envoie le navigateur à l'URL de l'image. C'est la même chose que d'utiliser échelle . Si je peux obtenir le navigateur pour ouvrir une nouvelle fenêtre / onglet, je pourrais vivre avec ça.



0
votes

Les liens relatifs semblent fonctionner. Pour la configuration DOCSERVER , si une image est placée dans le répertoire , un lien relatif que vous trouverez dans le code suivant fonctionne dans ma construction locale. Voici un exemple en utilisant Figure (le soulignement ("_") avant "Images" dans la cible Cible est nécessaire): XXX


0 commentaires