Markdown pour créer des pages et une table des matières?

J’ai commencé à utiliser mardown pour prendre des notes.

J’utilise marqué pour voir mes notes de démarque et sa belle.

Mais à mesure que mes notes s’allongent, je trouve difficile de trouver ce que je veux.

Je sais que le markdown peut créer des tableaux, mais est-il capable de créer une table des matières, de passer à des sections ou de définir des sections de page en démarquage?

Ou bien, existe-t-il des lecteurs / éditeurs de démarques qui pourraient faire de telles choses? La recherche serait une bonne fonctionnalité à avoir aussi.

En bref, je veux en faire mon outil de prise de notes génial et fonctionne comme écrire un livre, etc.

    MultiMarkdown Composer semble générer une table des matières pour aider lors de l’édition.

    Il peut également y avoir une ou l’autre bibliothèque pouvant générer des tables des matières: voir Extension de table des matières de Python Markdown .

    Vous pouvez essayer ceci.

     # Table of Contents 1. [Example](#example) 2. [Example2](#example2) 3. [Third Example](#third-example) ## Example ## Example2 ## Third Example 

    Voici une méthode utile. Devrait produire des références cliquables dans n’importe quel éditeur MarkDown.

     # Table of contents 1. [Introduction](#introduction) 2. [Some paragraph](#paragraph1) 1. [Sub paragraph](#subparagraph1) 3. [Another paragraph](#paragraph2) ## This is the introduction  Some introduction text, formatted in heading 2 style ## Some paragraph  The first paragraph text ### Sub paragraph  This is a sub paragraph, formatted in heading 3 style ## Another paragraph  The second paragraph text 

    Produit:

    Table des matières

    1. introduction
    2. Un paragraphe
      1. Sous paragraphe
    3. Un autre paragraphe

    Ceci est l’introduction

    Un texte d’introduction, formaté dans le style 2

    Un paragraphe

    Le texte du premier paragraphe

    Sous paragraphe

    Ceci est un sous-paragraphe, formaté dans le style 3

    Un autre paragraphe

    Le texte du deuxième paragraphe

    Vous pouvez essayer ce script ruby pour générer la table des matières à partir d’un fichier de démarquage.

     #!/usr/bin/env ruby File.open("your_file.md", 'r') do |f| f.each_line do |line| forbidden_words = ['Table of contents', 'define', 'pragma'] next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ } title = line.gsub("#", "").ssortingp href = title.gsub(" ", "-").downcase puts " " * (line.count("#")-1) + "* [#{title}](\##{href})" end end 
     # Table of Contents 1. [Example](#example) 2. [Example2](#example2) 3. [Third Example](#third-example) ## Example [](#){name=example} ## Example2 [](#){name=example2} ## [Third Example](#){name=third-example} 

    Si vous utilisez markdown extra, n’oubliez pas que vous pouvez append des atsortingbuts spéciaux aux liens, aux en-têtes, aux clôtures de code et aux images.
    https://michelf.ca/projects/php-markdown/extra/#spe-attr

    Il y a 2 façons de créer votre TOC (résumé) dans votre document de démarquage.

    1. manuellement

     # My Table of content - [Section 1](#id-section1) - [Section 2](#id-section2) 
    ## Section 1
    ## Section 2

    2. par programme

    Vous pouvez par exemple utiliser un script qui génère un résumé pour vous, consultez mon projet sur github – résuméMD

    J’ai aussi essayé d’autres modules script / npm (par exemple doctoc ) mais personne ne reproduit une table des matières avec des ancres de travail.

    Pour les utilisateurs de Visual Studio Code , une bonne idée est d’utiliser le plugin Markdown TOC .

    Pour l’installer, lancez le code d’ouverture rapide du code VS ( Ctrl + P ), collez la commande suivante et appuyez sur Entrée.

    ext install markdown-toc

    Et pour générer la table des matières, ouvrez la palette de commandes ( Ctrl + Shift + P ) et sélectionnez l’ Markdown TOC:Insert/Update option ou utilisez Ctrl + M T.

    Au profit de ceux d’entre nous qui README.md fichiers README.md dans Atom (comment j’ai trouvé ce fil):

     apm install markdown-toc 

    https://atom.io/packages/markdown-toc

    J’ai écrit un script python qui parsing un fichier de démarques et affiche une table des matières en tant que liste de démarques: md-to-toc

    Contrairement aux autres scripts que j’ai trouvés, md-to-toc prend correctement en charge les titres en double. Il ne nécessite pas non plus de connexion Internet, donc il fonctionne sur tous les fichiers md, pas seulement ceux disponibles dans un référentiel public.

    Je viens de coder une extension pour python-markdown , qui utilise son parsingur pour extraire les en-têtes et génère une table des matières en tant que liste non ordonnée au format Markdown avec des liens locaux. Le fichier est

    • md_toc.py (était md_toc.py )

    … et il doit être placé dans le répertoire markdown/extensions/ dans l’installation markdown. Tout ce que vous avez à faire est de taper anchor tags avec un atsortingbut id="..." comme référence – donc pour un texte de saisie comme celui-ci:

     $ cat test.md Hello ===== ## SECTION ONE ## something here ### ehSECTION TWO ### something else #### SECTION THREE nothing here ### SECTION FOUR also... 

    … l’extension peut être appelée comme ceci:

     $ python -m markdown -x md_toc test.md * Hello * [SECTION ONE](#sect one) * [SECTION TWO](#sect two) * SECTION THREE * [SECTION FOUR](#four) 

    Vous pouvez ensuite coller ce toc dans votre document de démarquage (ou avoir un raccourci dans votre éditeur de texte, qui appelle le script sur le document actuellement ouvert, puis insère la table des matières résultante dans le même document).

    Notez que les anciennes versions de python-markdown n’ont pas de module __main__.py et, par conséquent, l’appel en ligne de commande ci-dessus ne fonctionnera pas pour ces versions.

    Les balises d’ancrage générées par différents parsingurs de Markdown ne sont pas égales.

    Si vous travaillez avec des parsingurs Markdown GFM (GitHub Flavored Markdown) ou Redcarpet, j’ai écrit un plug-in Vim pour gérer la table des matières.

    Caractéristiques

    1. Générer une table des matières pour les fichiers Markdown.

      Analyseurs de Markdown pris en charge:

      • GFM (Marked GitHub)
      • Tapis rouge
    2. Mettre à jour la table des matières existante

    3. Mise à jour automatique de la table des matières existante lors de la sauvegarde.

    Captures d’écran

    vim-markdown-toc

    Usage

    Générer la table des matières

    Déplacez le curseur sur la ligne que vous souhaitez append à la table des matières, puis tapez une commande ci-dessous qui vous convient. La commande va générer des en-têtes après le curseur dans la table des matières.

    1. :GenTocGFM

      Générer une table des matières dans le style de lien GFM.

      Cette commande est adaptée aux fichiers Markdown dans les référentiels GitHub, tels que README.md et Markdown pour GitBook.

    2. :GenTocRedcarpet

      Générer une table des matières dans le style de lien Redcarpet.

      Cette commande convient à Jekyll ou n’importe où ailleurs, utilisez Redcarpet comme son parsingur Markdown.

      Vous pouvez voir ici pour connaître les différences entre les liens toc de style GFM et Redcarpet.

    Mettre à jour manuellement la table des matières existante

    En général, vous n’avez pas besoin de le faire, la table des matières existante sera automatiquement mise à jour lors de l’enregistrement par défaut. Si vous voulez le faire manuellement, utilisez :UpdateToc commande :UpdateToc .

    Téléchargements et documents

    https://github.com/mzlogin/vim-markdown-toc

    Vous pouvez le générer en utilisant ce bash one-liner. Suppose que votre fichier de FILE.md s’appelle FILE.md

     echo "## Contents" ; echo ; cat FILE.md | grep '^## ' | grep -v Contents | sed 's/^## //' | while read -r title ; do link=$(echo $title | tr 'AZ ' 'az-') ; echo "- [$title](#$link)" ; done 

    Si vous souhaitez utiliser un outil javascript / node.js, consultez markdown-toc .

    Je viens de commencer à faire la même chose (prendre des notes dans Markdown). J’utilise Sublime Text 2 avec le plugin MarkdownPreview . L’parsingur de démarques intégré prend en charge [TOC] .

    Vous pouvez également utiliser pandoc , le “couteau suisse” pour convertir “un format de balisage en un autre” . Il peut générer automatiquement une table de contenu dans le document de sortie si vous fournissez l’argument --toc .

    Astuce: Si vous voulez une table des matières dans la sortie html , vous devez également fournir -s qui génère un document autonome.

    Exemple de ligne de commande shell:

     ./pandoc -s --toc input.md -o output.html 

    Basé sur albertodebortoli réponse créé la fonction avec des vérifications supplémentaires et la substitution des signes de ponctuation.

     # @fn def generate_table_of_contents markdown # {{{ # @brief Generates table of contents for given markdown text # # @param [Ssortingng] markdown Markdown ssortingng eg File.read('README.md') # # @return [Ssortingng] Table of content in markdown format. # def generate_table_of_contents markdown table_of_contents = "" i_section = 0 # to track markdown code sections, because eg ruby comments also start with # inside_code_section = false markdown.each_line do |line| inside_code_section = !inside_code_section if line.start_with?('```') forbidden_words = ['Table of contents', 'define', 'pragma'] next if !line.start_with?('#') || inside_code_section || forbidden_words.any? { |w| line =~ /#{w}/ } title = line.gsub("#", "").ssortingp href = title.gsub(/(^[!.?:\(\)]+|[!.?:\(\)]+$)/, '').gsub(/[!.,?:; \(\)-]+/, "-").downcase bullet = line.count("#") > 1 ? " *" : "#{i_section += 1}." table_of_contents << " " * (line.count("#") - 1) + "#{bullet} [#{title}](\##{href})\n" end table_of_contents end 

    Typora génère une table des matières en ajoutant [TOC] à votre document.

    MultiMarkdown 4.7 possède une macro {{TOC}} qui insère une table des matières.

    En fonction de votre stream de travail, vous pourriez vouloir regarder strapdown

    C’est un fork de l’original ( http://strapdownjs.com ) qui ajoute la génération de la table des matières.

    Il y a un fichier de configuration apache sur le repo (peut-être pas encore correctement mis à jour) pour envelopper le markdown à la volée, si vous préférez ne pas écrire dans les fichiers HTML.

    Je ne suis pas sûr, quelle est la documentation officielle pour le démarquage. La référence croisée peut être écrite entre parenthèses [Heading] ou entre parenthèses vides [Heading][] .

    Les deux fonctionnent en utilisant un pandoc . J’ai donc créé un script bash rapide, qui remplacera $ TOC dans le fichier md par sa table des matières. (Vous aurez besoin de envsubst, qui pourrait ne pas faire partie de votre dissortingbution)

     #!/bin/bash filename=$1 __TOC__=$(grep "^##" $filename | sed -e 's/ /1. /;s/^##//;s/#/ /g;s/\. \(.*\)$/. [\1][]/') export __TOC__ envsubst '$__TOC__' < $filename 

    Si vous utilisez Eclipse, vous pouvez utiliser le raccourci Ctrl + O (contour) pour afficher l’équivalent de la table des matières et permettre la recherche dans les titres de section (autocomplétion).

    Vous pouvez également ouvrir la vue Structure (Fenêtre -> Afficher la vue -> Contour), mais elle ne comporte aucune recherche de saisie semi-automatique.

    Utilisez toc.py, un petit script python qui génère une table des matières pour votre démarque.

    Usage:

    • Dans votre fichier Markdown, ajoutez où vous souhaitez placer la table des matières.
    • $python toc.py README.md (Utilisez votre nom de fichier démarqué au lieu de README.md )

    À votre santé!

    Vous pouvez utiliser la [TOC] à la première ligne, puis en bas, la seule chose à faire est de vous assurer que les titres sont dans la même police. La table des contenus sortirait automatiquement. (Mais cela n’apparaît que dans certains éditeurs de démarques, je n’ai pas tout essayé)

    Il existe un script Ruby appelé gen_markdown_toc.rb qui peut générer automatiquement une table des matières de Markdown GFM, et il est similaire mais légèrement différent de certains autres scripts publiés ici.

    Étant donné un fichier d’entrée Markdown comme:

     # Lorem Ipsum Lorem ipsum dolor sit amet, mei alienum adipiscing te, has no possit delicata. Te nominavi suavitate sed, quis alia cum no, has an malis dictas explicari. At mel nonumes eloquentiam, eos ea dicat nullam. Sed eirmod gubergren scripserit ne, mei timeam nonumes te. Qui ut tale sonet consul, vix integre oportere an. Duis ullum at ius. ## Et cum Et cum affert dolorem habemus. Sale malis at mel. Te pri copiosae hendrerit. Cu nec agam iracundia necessitatibus, tibique corpora adipisci qui cu. Et vix causae consetetur deterruisset, ius ea inermis quaerendum. ### His ut His ut feugait consectetuer, id mollis nominati has, in usu insolens tractatos. Nemore viderer torquatos qui ei, corpora adipiscing ex nec. Debet vivendum ne nec, ipsum zril choro ex sed. Doming probatus euripidis vim cu, habeo apeirian et nec. Ludus pertinacia an pro, in accusam menandri reformidans nam, sed in tantas semper impedit. ### Doctus voluptua Doctus voluptua his eu, cu ius mazim invidunt incorrupte. Ad maiorum sensibus mea. Eius posse sonet no vim, te paulo postulant salutatus ius, augue persequeris eum cu. Pro omnesque salutandi evertitur ea, an mea fugit gloriatur. Pro ne menandri intellegam, in vis clita recusabo sensibus. Usu atqui scaevola an. ## Id scripta Id scripta alterum pri, nam audiam labitur reprehendunt at. No alia putent est. Eos diam bonorum oportere ad. Sit ad admodum constituto, vide democritum id eum. Ex singulis laboramus vis, ius no minim libris deleniti, euismod sadipscing vix id. 

    Il génère cette table des matières:

     $ gen_markdown_toc.rb FILE.md #### Table of contents 1. [Et cum](#et-cum) * [His ut](#his-ut) * [Doctus voluptua](#doctus-voluptua) 2. [Id scripta](#id-scripta) 

    Voir aussi mon blog sur ce sujet.

    Um … utilise les titres de Markdown !?

    C’est:

    # C’est l’équivalent de

    ## C’est l’équivalent de

    ### C’est l’équivalent de

    De nombreux éditeurs vous montreront une table des matières. Vous pouvez également rechercher les balises de titre et créer vos propres balises.

    J’espère que cela pourra aider!

    –JF