Em blogs, livros didáticos etc., é realmente comum exibir os resultados de alguns códigos como comentários, por exemplo:
(+ 1 1) ;=> 2
Existe uma maneira de exibir resultados como esse automaticamente usando o recurso Babel do Org-Mode?
Especificamente, o que eu gostaria é poder especificar um cabeçalho como este:
#+begin_src scheme <some headers>
(+ 1 1)
(/ 4 (* 2 2))
#+end_src
Se tornaria o seguinte quando eu C-c C-c
:
#+begin_src scheme <some headers>
(+ 1 1) ;=> 2
(/ 4 (* 2 2)) ;=> 1
#+end_src
E então, se eu fiz algumas alterações, assim ...
#+begin_src scheme <some headers>
(+ 1 5) ;=> 2
(/ 8 (* 2 2)) ;=> 1
#+end_src
... e C-c C-c
substituiria os comentários pelos atualizados:
#+begin_src scheme <some headers>
(+ 1 5) ;=> 6
(/ 8 (* 2 2)) ;=> 2
#+end_src
Ou, menos do que eu sonhei acima, existe uma maneira fácil de exibir resultados pelo renderizador de arquivos org do github, para que o seguinte fique visível (idealmente com a formatação especificada no nível do documento):
#+RESULTS:
: 2
org-mode
org-export
org-babel
parkeristyping
fonte
fonte
Respostas:
tente isso
Use blocos de código nomeados e
noweb
cabeçalho para transformar seu código em um programa alfabetizado.Crie um
org
bloco de código para formatar seu código com o resultadoFaça um bloco C-c C-cno
org
código e você verá resultados semelhantes ao código abaixo:Se você postar código no Github, deverá ver
fonte
:var my_code='("my-code" "my-other-code")
. Mesmo assim, ainda é mais complicado do que eu gostaria. Deseja que eu atualize minha resposta?O mais próximo que pude obter com a funcionalidade existente do Babel é o seguinte:
Primeiro, defino uma função emacs-lisp para acrescentar resultados com
";=> "
:Então eu processo os resultados usando o
:post
cabeçalho:Isso retorna o seguinte
C-c C-c
, que é exibido no github devido ao:exports both
cabeçalho, mas está em um bloco de código separado.Eu acho que essa estratégia deixa o arquivo organizacional muito confuso para valer a pena, no entanto. E, a menos que eu desative a confirmação da avaliação do código, tenho que aceitar dois "Tem certeza de que deseja avaliar o código?" prompts (um para o bloco Scheme e outro para o elisp
commentify
).fonte
Você pode fazer algo assim:
Escreva seu bloco de código fonte Multi-Line nomeado como de costume
Altere a disposição de
BEGIN/END_SRC
para…-EXAMPLE
:Adicione blocos de origem multilinhas adicionais com nomes individuais, conforme necessário, no seu texto
Adicione
#+CALL:
linhas onde você der o nome do bloco comolcmds
variável. O bloco de transformação acima é necessário apenas uma vez por documento.Observe que o bloco Transforming precisa ser escrito no idioma que você está tratando.
Tentei primeiro "automatizar" a boa solução do @melioratus, mas tive problemas com isso quando encontrei a solução acima.
@jpkotta thx por apontar a correção necessária para evitar problemas de lista de números com código de bloco.
fonte