Mode Emacs pour la démarque de Stack Overflow

96

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 encore mieux, une extension pour Org-mode pour gérer le formatage Stack Overflow? Idéalement, il doit inclure toutes les options de formatage prises en charge par la syntaxe de démarque utilisée dans les tampons de questions / commentaires de Stack Overflow.

blueFast
la source
Ceux qui liront cette question peuvent être intéressés par SX - Stack Exchange for Emacs!
Sean Allred

Réponses:

144

Intégration d'Emacs avec Stack Overflow

Comme mentionné, vous pouvez utiliser le mode markdown . Pour intégrer le mode markdown à Stack Overflow, vous pouvez utiliser le plugin Firefox It's All Text qui vous permet d'éditer des zones de texte avec un éditeur externe. Voici comment le configurer:

  1. Installez le mode démarque . 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. Installez It's All Text .

  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) soit sur emacsclient .
  4. Ajoutez ce qui suit à votre .emacs pour activer le mode markdown 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))

    Sinon, si as-external-alistest défini - s'il M-x describe-variable RET as-external-alistn'é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 cellules contre) donc cela fonctionnera:

    (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 l'éditer via emacs. Le bouton d'édition bleu est illustré dans la capture d'écran suivante:

    Capture d'écran du bouton d'édition bleu en bas à droite de cette zone de texte

    Dans la capture d'écran suivante, un tampon Emacs en mode markdown édite cet article:

    Capture d'écran d'un tampon Emacs en mode markdown éditant ce post

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

Si vous voulez cette fonctionnalité pour d'autres domaines, vous devez changer 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 fonction pour travailler avec le code source . Avec lui, vous pouvez inclure des blocs de démarques dans vos tampons en mode organisation que vous pouvez modifier via le mode démarques. Vous pouvez l'utiliser comme suit:

  1. Dans une mémoire tampon en mode organisation, entrez <ssur une nouvelle ligne et appuyez sur Tab. Cela entraînera

    #+begin_src 
    
    #+end_src
  2. Entrez markdownaprès #+begin_srcpour avoir

    #+begin_src markdown
    
    #+end_src
  3. À l'intérieur du bloc source (entre #+begin_src markdownet #+end_src), appuyez sur C-c 'pour éditer le bloc source avec le mode markdown.

  4. Modifiez le bloc source en mode markdown.

  5. Appuyez sur C-c 'pour revenir à la mémoire tampon du mode organisation et insérer l'édition. Cela peut ressembler à ce que montre la capture d'écran suivante:

    Un tampon en mode organisation éditant un bloc de code de démarque pour cet article

NN
la source
2
Si vous avez as-externalinstallé (ou nxhtml-modelequel installe as-external) il peut ignorer complètement votre ajustement auto-mode-alist, la variable que vous souhaitez modifier est alorsas-external-alist .
quodlibetor
@quodlibetor Est-ce que je modifierais as-external-alistexactement de la même manière alors?
NN
@NN C'est presque exactement la même chose, mais vous devez retirer la période de la cellule intérieure, j'ai ceci et cela fonctionne pour moi:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
quodlibetor
Vous pouvez peut-être mettre à jour cette réponse pour mentionner SX - Stack Exchange for Emacs :)
Sean Allred
1
Son tout le texte n'est plus pris en charge et ne fonctionnera pas avec les versions récentes de Firefox (57+)
Iain
14

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

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

Et il y a un backend markdown 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= TÊTE

Assurez-vous d'ajouter le contrib/lisp/répertoire à votre fichier load-path.

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

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

bzg
la source
4

La réponse de @ NN s'applique également à Chrome, avec ces changements dans les détails.

Chrome a l' extension Edit with Emacs , qui est similaire à It's all text. 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-serveravec des options, surtout le changement de mode majeur par site est configuré différemment de la réponse de @ NN:

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

Aussi, pour que le serveur d'édition fonctionne dans le terminal emacs, j'ai dû désactiver l' edit-server-new-frameoption.

ristohietal
la source
1

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

En d'autres termes, vous pouvez continuer à écrire en mode org, y compris écrire en italique / comme ceci /, puis exporter vers markdown. Depuis emacs, vous pouvez convertir en markdown en sélectionnant la région, en appuyant sur Cu MS- \ et en tapant pandoc -r org -t markdown, en obtenant une sortie comme ceci:

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 en ligne de commande.

Sandra
la source
0

C'est aussi facile avec Chrome

C'est moins une réponse qu'un test de ma solution en utilisant le plugin Chrome Edit with Emacs et le serveur Emacs Edit configuré pour utiliser le mode markdown pour Stackoverflow (et d'autres sites Stackexchange que j'utilise). Tout ce que j'avais à faire après l'installation de l'extension et des packages MELPA était 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)))

Assistance pour les messages Gmail

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

Tim X
la source