web-dev-qa-db-fra.com

Mode Emacs pour le démarque de Stack Overflow

J'utilise le mode Org dans Emacs pour gérer toute ma documentation technique. Je voudrais utiliser Emacs pour préparer les questions que j'ai pour Stack Overflow. Existe-t-il un mode Emacs pour cela, ou mieux encore, une extension pour le mode Org pour gérer le formatage Stack Overflow? Idéalement, il devrait inclure toutes les options de mise en forme prises en charge par la syntaxe de démarquage utilisée dans les tampons de questions/commentaires Stack Overflow.

93
dangonfast

Intégration d'Emacs avec Stack Overflow

Comme mentionné vous pouvez utiliser Markdown-mode . Pour intégrer le mode Markdown avec Stack Overflow, vous pouvez utiliser le plugin Firefox It's All Text qui vous permet de modifier les zones de texte avec un éditeur externe. Voici comment le configurer:

  1. Installer mode Markdown . Si vous utilisez Debian ou Ubuntu, vous pouvez l'installer en émettant

    Sudo apt-get install emacs-goodies-el
    

    ou si vous êtes sur emacs 24 (ou avez package.el sur emacs 23) et Marmalade ou Melpa vous pouvez l'installer avec

    M-x package-install RET markdown-mode
    
  2. Installer c'est tout le texte .

  3. Définissez les préférences de It's All Text pour utiliser Emacs. Soit vous pouvez le définir sur l'exécutable (par exemple/usr/bin/emacs) ou le emacsclient .
  4. Ajoutez ce qui suit à votre .emacs pour activer le mode de démarque pour les zones de texte Stack Overflow et Stack Exchange:

    ;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
    (add-to-list 'auto-mode-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))
    

    Alternativement, si as-external-alist est défini — si M-x describe-variable RET as-external-alist n'échoue pas, il remplacera probablement votre auto-mode-alist. Il a un format légèrement différent (c'est une liste de paires au lieu d'une liste de contre-cellules) donc ça marchera:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
    
  5. Appuyez sur le bouton d'édition bleu en bas à droite d'une zone de texte pour le modifier via emacs. Le bouton d'édition bleu est illustré dans la capture d'écran suivante:

    Screenshot of the blue edit button at the bottom right side of this textarea

    Dans la capture d'écran suivante, un tampon Emacs en mode Markdown modifie ce post:

    Screenshot of an Emacs buffer in markdown-mode editing this post

  6. Lorsque vous avez terminé l'édition dans Emacs, enregistrez le tampon pour l'envoyer à Firefox.

Si vous souhaitez cette fonctionnalité pour d'autres domaines, vous devez modifier l'expression rationnelle ci-dessus. Ce qui suit reconnaît Stack Exchange, Stack Overflow, Ask Ubuntu et Super User:

;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
(add-to-list 'auto-mode-alist '("\\(stack\\(exchange\\|overflow\\)\\|superuser\\|askubuntu\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

Utilisation du mode Markdown avec le mode Org

Pour utiliser le mode Markdow avec le mode Org, vous pouvez utiliser sa fonctionnalité pour travailler avec le code source . Avec lui, vous pouvez inclure des blocs de démarque dans vos tampons en mode Org que vous pouvez modifier via le mode démarque. Vous pouvez l'utiliser comme suit:

  1. Dans un tampon en mode Org, entrez <s sur une nouvelle ligne et appuyez sur Tab. Cela se traduira par

    #+begin_src 
    
    #+end_src
    
  2. Entrez markdown après #+begin_src pour que vous ayez

    #+begin_src markdown
    
    #+end_src
    
  3. À l'intérieur du bloc source (entre #+begin_src markdown et #+end_src) presse C-c ' pour éditer le bloc source avec le mode Markdown.

  4. Modifiez le bloc source en mode Markdown.

  5. Presse C-c ' pour revenir au tampon en mode Org et insérer la modification. Cela peut ressembler à ce que la capture d'écran suivante montre:

    An Org-mode buffer editing a block of markdown code for this post

141
N.N.

Il existe un mode Markdown: http://jblevins.org/projects/markdown-mode/

Voir http://emacswiki.org/emacs/MarkdownMode pour une personnalisation.

Et il y a un backend de démarque pour le nouveau moteur d'exportation ici: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/LISP/org-md. el; hb = HEAD

Assurez-vous d'ajouter le contrib/LISP/ répertoire vers votre load-path.

Alors (require 'org-export) et (require 'org-md).

M-x org-md-export-to-markdown RET sera exporté vers le démarque.

13
bzg

La réponse de @ N.N est applicable à Chrome également, avec ces modifications dans les détails.

Chrome a Modifier avec Emacs extension, qui est similaire à C'est tout le texte. Après l'avoir installé, vous trouverez d'autres instructions sur la page des options d'extension.

Il existe un groupe de personnalisation emacs edit-server avec des options, surtout le changement de mode majeur par site est configuré différemment que dans la réponse de @ N.N:

(add-to-list 'edit-server-url-major-mode-alist
             '("^stackoverflow" . markdown-mode))

De plus, pour que le serveur d'édition fonctionne dans emacs terminal, j'ai dû désactiver le edit-server-new-frame option.

4
ristohietal

C'est facile avec Chrome Trop

C'est moins une réponse qu'un test de ma solution en utilisant le Edit with Emacs chrome et Emacs Edit Server configuré pour utiliser - markdown-mode pour Stackoverflow (et les autres sites Stackexchange que j'utilise). Tout ce que j'avais à faire après l'installation de l'extension et [~ # ~] melpa [~ # ~] packages a été défini

(setq edit-server-url-major-mode-alist
             '(("mail.google.com" . org-mode)
               ("stackoverflow\\.com" . markdown-mode)
               (".*\\.stackexchange\\.com" . markdown-mode)
               ("github\\.com" . markdown-mode)))

Prise en charge des messages Gmail

Remarque dans le paramètre ci-dessus, j'utilise le mode org pour les messages Gmail. Encore besoin de faire un peu de travail ici, mais il est possible, avec un petit effort, de rédiger votre message gmail en utilisant le mode org puis d'utiliser org-mime pour générer du HTML à partir de votre texte structuré organisationnel. Vous pouvez simplement utiliser une démarque et une conversion de démarque en HTML.

0
Tim X

Pandoc prend en charge la lecture d'un sous-ensemble du mode org et peut générer une démarque.

En d'autres termes, vous pouvez continuer à écrire en mode org, y compris écrire des italiques/comme ceci /, puis exporter vers le démarque. Depuis emacs, vous pouvez convertir en markdown en sélectionnant la région, en appuyant sur C-u M-S-\et en tapant pandoc -r org -t markdown, en obtenant une sortie comme celle-ci:

In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.

Ou, vous pouvez enregistrer le fichier et le convertir sur la ligne de commande.

0
Sandra