Comment puis-je ajouter une table des matières à une ipython notebook?
De la documentation à http://ipython.org/ipython-doc/stable/interactive/notebook.html dit
Vous pouvez fournir une structure conceptuelle pour votre calcul document dans son ensemble à l'aide de différents niveaux de titres; il y a 6 niveaux disponibles, à partir du niveau 1 (niveau le plus haut) au niveau 6 (paragraphe). Ceux-ci peuvent être utilisés ultérieurement pour la construction de tables des matières, etc.
Cependant, je ne peux pas trouver les instructions de n'importe où sur la façon d'utiliser mon hiérarchique des rubriques pour créer une table des matières. Est-il un moyen de faire cela?
NB: je serais également intéressé par d'autres types de navigation à l'aide de ipython notebook titres, le cas échéant. Par exemple, sauter en arrière et en avant de la position de tête afin de trouver rapidement le début de chaque section, ou de se cacher (pliage) le contenu d'une section entière. C'est mon souhait de la liste, mais tout type de navigation à tous pourrait être d'intérêt. Merci!
- voir @Nikolay 's réponse ci-dessous pour une solution globale qui fonctionne sur toutes les pages web.. c'est une excellente réponse.
Vous devez vous connecter pour publier un commentaire.
Il y a un ipython nbextension qui construit une table des matières pour un ordinateur portable. Elle semble être la seule à fournir des outils de navigation, pas à la section de pliage.
Vous pouvez ajouter une table des matières manuellement avec Démarque et HTML. Voici comment j'ai été d'ajouter:
Créer la table des matières en haut de la Jupyter Portable:
Ajouter des ancres html dans tout le corps:
Il peut ne pas être la meilleure approche, mais il fonctionne. Espérons que cette aide.
<a name="pookie"></a>
pour l'ancre et pour l'utilisation de la connexion:Take me to [pookie](#pookie)
Ici est une option de plus sans trop de JS de tracas: https://github.com/kmahelona/ipython_notebook_goodies
Comment sur l'utilisation d'un plugin de Navigateur qui vous donne un aperçu de n'IMPORTE quelle page html. J'ai essayé ce qui suit:
Ils travaillent tous les deux assez bien pour IPython Notebook. J'étais réticent à utiliser les solutions précédentes comme ils semblent un peu instable et finit par l'utilisation de ces extensions.
Il y a maintenant deux paquets qui peuvent être utilisés pour gérer Jupyter extensions:
jupyter_contrib_nbextensions qui installe des extensions, y compris la table des matières;
jupyter_nbextensions_configurator qui fournit des interfaces utilisateur graphiques pour la configuration nbextensions sont activés (charge automatiquement pour chaque ordinateur portable) et fournit des commandes pour configurer le nbextensions' options.
Mise à JOUR:
À partir de versions récentes de
jupyter_contrib_nbextensions
, au moins avecconda
vous n'avez pas besoin d'installerjupyter_nbextensions_configurator
car il est installé avec ces extensions.J'ai récemment créé une petite extension à Jupyter nommé jupyter-navbar. Il recherche pour les en-têtes écrit en markdown cellules, et affiche des liens dans la barre latérale de façon hiérarchique. La barre latérale est redimensionnable et pliable. Voir la capture d'écran ci-dessous.
Il est facile à installer, et tire parti de la "coutume" de JS et CSS codes qui sont exécutées chaque fois qu'un cahier est ouvert, de sorte que vous n'avez pas besoin de l'exécuter manuellement.
Voici ma démarche, maladroit comme il est, et disponible en github:
Mettre dans le premier cahier de la cellule, l'importation de cellules:
Quelque part après l'importation de cellules, les mettre dans le genTOCEntry cellulaire, mais ne l'exécutez pas encore:
Ci-dessous la genTOCEntry cellulaire, faire une table des matières de la cellule comme un abattement de cellules:
Que l'ordinateur portable est élaboré, mis cette genTOCMarkdownCell avant de commencer une nouvelle section:
Déplacer le genTOCMarkdownCell au point dans votre ordinateur où vous souhaitez commencer une nouvelle section et faire de l'argument de genTOCMarkdownCell la chaîne de titre pour votre nouveau l'article, puis l'exécuter. Ajouter un abattement de cellules de droit et de copier la sortie de genTOCMarkdownCell dans le démarque de la cellule qui commence votre nouvelle section. Ensuite, allez à la genTOCEntry cellule près du haut de votre ordinateur portable et de l'exécuter. Par exemple, si vous faites l'argument de genTOCMarkdownCell comme indiqué ci-dessus et de l'exécuter, vous bénéficiez de cette sortie
pour coller à la première démarque des cellules de votre nouvellement indexée section:
Puis, quand vous allez vers le haut de votre ordinateur portable et de les exécuter genTocEntry, vous obtenez la sortie:
Copier le lien de la chaîne et de le coller dans la table des matières démarque de la cellule comme suit:
Après vous modifiez la table des matières de la cellule d'insérer le lien de la chaîne et puis vous appuyez sur maj-entrée, le lien vers votre nouvel article apparaîtra dans votre ordinateur portable Table des Matières comme un lien web et en cliquant dessus, la position du navigateur de votre nouvel article.
Une chose que j'oublie souvent c'est qu'en cliquant sur une ligne dans la table des matières rend le navigateur sauter à la cellule, mais ne pas le sélectionner. Quelle que soit la cellule est active lorsque nous avons cliqué sur la table des matières lien est toujours actif, et un vers le bas ou flèche haut ou maj-entrée se réfère toujours cellule active, pas la cellule, nous avons obtenu en cliquant sur le COT lien.
Que Ian l'a déjà souligné, il existe une table des matières extension par minrk pour la IPython Notebook. J'ai eu quelques difficultés à le faire fonctionner et fait de ce IPython Notebook qui semi-génère automatiquement les fichiers pour minrk table des matières de l'extension dans Windows. Il n'utilise pas le "curl" -commandes ou des liens, mais écrit l' *.js et *.les fichiers css directement dans votre IPython Notebook-profil-répertoire.
Il y a une section dans le cahier appelé 'Ce que vous devez faire" - suivre et avoir une belle flottant table des matières : )
Ici est une version html qui montre déjà ça:
http://htmlpreview.github.io/?https://github.com/ahambi/140824-TOC/blob/master/A%20floating%20table%20of%20contents.htm
Introduction
Comme @Ian et @Sergey l'ai mentionné, nbextensions est une solution simple. Dans l'élaboration de leur réponse, voici un peu plus d'informations.
Qu'est-ce que nbextensions?
Par exemple, pour ne citer que quelques extensions:
Table des Matières
Pliable en-têtes de
Installer nbextensions
L'installation peut être faite par Conda ou PIP
Copier les fichiers css et js
Pour copier le nbextensions' fichiers javascript et css dans le jupyter du serveur de répertoire de recherche, procédez de la manière suivante:
Bascule extensions
Notez que si vous n'êtes pas familier avec le terminal, il serait préférable d'installer nbextensions configurateur (voir la section suivante)
Vous pouvez activer/désactiver les extensions de votre choix. Comme la documentation mentionne, pour le générique de commande est:
De façon concrète, pour permettre à la Table des Matières (ToC) extension, faire:
L'installation de la Configuration de l'interface (facultatif mais utile)
Que la documentation qui lui dit, nbextensions_configurator fournit config des interfaces pour nbextensions.
Il ressemble à la suivante:
De l'installer si vous utilisez conda:
Si vous n'avez pas Conda ou ne voulez pas l'installer par Conda, puis effectuez les opérations suivantes 2 étapes: