Est-il possible de générer une table des matières automatique en utilisant Github Flavored Markdown ?
Réponses
Trop de publicités?J'ai créé deux options pour générer une table des matières pour github-saveur-markdown:
DocToc Outil de Ligne de Commande (source) exige node.js
Installation:
npm install -g doctoc
Utilisation:
doctoc .
pour ajouter une table des matières pour tous les fichiers markdown dans le courant et tous les sous répertoires.
DocToc WebApp
Si vous voulez l'essayer en ligne tout d'abord, aller à la doctocsite, collez le lien de la minoration de la page et il va générer un tableau de le contenu que vous pouvez insérer dans le haut de votre fichier markdown.
Github Wikis et les Ancrages
Comme Matthieu Flaschen souligné dans les commentaires ci-dessous, pour ses pages wiki GitHub précédemment n'ont pas généré les ancres doctoc
dépend.
Mise à JOUR: Cependant, ils ont résolu ce problème.
GitHub Pages par défaut utilise Maruku qui a un support pour un table des matières générée automatiquement via untoc
d'attribut:
* auto-gen TOC:
{:toc}
La première ligne commence juste une liste non ordonnée et est fait jeté.
Il en résulte un ensemble imbriqué de listes non ordonnées, en utilisant les en-têtes dans le document.
Remarque: cela devrait fonctionner pour GitHub Pages, pas GitHub Aromatisé Markdown (GFM) dans des commentaires ou des pages wiki. Autant que je sache, une solution n'existe pas.
Ce n'est pas automatique, mais il utilise Notepad++ expressions régulières:
Remplacer tout premier par le second (supprime toutes les lignes n'ayant pas les en-têtes)
^##(#?)(#?)(.*?)$(.|\r|\n)*?(?=^##|\z)
-\1\2 [\3](#\3)\n
Ensuite (convertit les en-têtes III pour les espaces)
-##
-
Ensuite (convertit les en-têtes de II pour les espaces)
-#
-
Ensuite (supprimer les caractères au début et à la fin du titre du lien)
\[ *((?:(?![ .:#!\?;]*\])[^#])*)[ #:!\?;]*\]
[\1]
Ensuite (convertir derniers jetons en minuscules et le tableau de bord à la place des espaces)
\]([^ \r\n]*) ([^\r\n ]*)
]\L\1-\2
Supprimer les finales de livres et les premiers tirets:
(?:()[-:;!\?#]+$|(\]#)-)
\1\2
Supprimer les caractères inutiles dans les liens:
(\].*?)(?:\(|\))
\1
Et pour finir, ajouter des parenthèses autour de finale de liens:
\](?!\()(.*?)$
\]\(\1\)
Et voilà!! Vous pouvez même mettre cela dans une macro global si vous le répète assez de temps.
Github Aromatisé Markdown RedCarpet que leur Démarque moteur. Depuis le RedCarpet repo:
:with_toc_data - ajouter des ancres HTML de chaque en-tête dans la sortie HTML, pour permettre la liaison de chaque section.
Il semble que vous auriez besoin d'obtenir le convertisseur de niveau pour définir cet indicateur, qui n'est pas possible sur Github évidemment. Cependant, la dernière mise à jour de Github Pages, il semble que le système d'ancrage est activée pour les en-têtes, de la création de réticulable en-têtes. Pas exactement ce que vous voulez, mais il peut vous aider à créer une table des matières pour votre doc un peu plus facile (même manuellement).
Grunt Readme Générateur
Je viens d'écrire un outil pour cela. Principalement pour mon github projets. C'est un Grognement plugin pour générer un fichier readme à partir de plusieurs petites sections de fichiers markdown, avec table des matières. Possède de nombreuses fonctionnalités et de personnalisation.
Cité de de son readme:
...
Disons que vous avez un fichier readme de la structure tels que:
- Installation
- Usage
-- Example
-- Example Output
- Documentation
-- Options
--- option1
--- option2
-- API
- License
- Contributing
- Vous pouvez écrire une tâche de générer
Options.md
deoption1.md
etoption2.md
- Ensuite, une tâche pour générer
Documentation.md
deOptions.md
etAPI.md
- Une autre tâche pour générer
Usage.md
deExample.md
etExample Output.md
fichiers - Et rangez le tout par la création de l'
Readme.md
deInstallation.md
,Usage.md
,Documentation.md
,License.md
etContributing.md
- voilà !
Faits saillants
- Table des matières automatique de génération de
- Automatique
Back To Top
de la génération de liens - Hautement personnalisable pour beaucoup de nombreuses parties de l'image plus grande
- Automatique le Titre et la Description de la génération sur le dessus
- Option pour générer travis construire statut de l'image sur le dessus pour la branche désirée
- Spécialement conçu pour GitHub projets et GFM
- En option bannières sur le dessus pour mettre un logo ou ascii art!
Ce plugin nécessite Grunt ~0.4.1
....