Markdown Viewer

154

Encontrei um arquivo formatado com Markdown. Vocês poderiam sugerir qual visualizador eu poderia usar para visualizar esse tipo de arquivo? Esperançosamente um sem gui (se for possível)

Atualização Na verdade, eu estava procurando por um visualizador que pudesse analisar o formato do arquivo de descontos que não precisa de conversão. Mas algo próximo disso deve estar bem.

amree
fonte
5
Um arquivo de remarcação pode ser lido apenas quando você o abre em um editor; você realmente não precisa de ferramentas sofisticadas para lê-lo. Para que você deseja / em qual formato deseja?
Kasterma
1
Existem muitas versões do "markdown". Tecnicamente, LaTeX, HTML são remarcações, como é o itálico negrito itálico e negrito e USO links ...
vonbrand
1
retext agora no github como @Fran recomendado
Dr. Beco
15
@vonbrand LaTeX e HTML estão marcar até idiomas. Markdown é uma "linguagem" específica para formatação de texto (embora você esteja certo de que existem várias variantes, incluindo a usada em sites do Stack Exchange como este). O nome do Markdown é uma piada, pois permite fazer várias coisas que poderiam ser feitas com uma linguagem de marcação, sem "marcar" (na verdade: adicionar tags) ao seu texto (na maior parte).
Laurence Gonsalves

Respostas:

37

O site a seguir fornece uma ferramenta que converterá a remarcação em HTML:

http://daringfireball.net/projects/markdown/

Depois de converter o arquivo em HTML, há várias ferramentas de linha de comando a serem usadas para exibir o arquivo. Usando um arquivo de teste que contém texto formatado de remarcação, achei o seguinte funcionou bem.

$ wget http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip
$ unzip Markdown_1.0.1.zip
$ cd Markdown_1.0.1/
$ ./Markdown.pl ~/testfile.markdown | html2text

O html2text é uma das muitas ferramentas que você pode usar para exibir o texto formatado em html na linha de comando. Outra opção, se você quiser uma saída um pouco melhor, seria usar o lynx :

$ ./Markdown.pl ~/testfile.markdown | lynx -stdin

Se você é um usuário do emacs, alguém escreveu um modo de descontos disponível aqui: http://jblevins.org/projects/markdown-mode/ . Isso fornece um bom destaque de sintaxe, como pode ser visto na captura de tela desse site.

Todas essas ferramentas devem estar disponíveis para slackware.

Steven D
fonte
8
No VIM, você pode obter o destaque da sintaxe configurando manualmente a sintaxe para redução, se não for reconhecida. :set syntax=mkd
Gert
1
Eu nunca teria pensado em usar -stdine lincar, realmente muito inteligente e exatamente o que eu precisava.
Nicko
1
Eu testei isso e posso verificar se funciona no Linux, mas, curiosamente, a página de manual informa que esse recurso se aplica apenas ao UNIX. -stdin read the startfile from standard input (UNIX only).
sherrellbc
98

Usando pandoc e lynx sem criar arquivos temporários:

pandoc file.md | lynx -stdin
circleofconfusion
fonte
7
(nota: pandoc está em haskell)
fche 30/03
10
Ou apenaspandoc -t plain file.md | less
Adriano P
7
adicione-o a .bashrc: md() { pandoc "$1" | lynx -stdin; }
HDave 26/11/16
Depois de alguns ajustes, decidi sobre isso, por padrão, para ler "README.md", que é o que geralmente estou fazendo: function mdless {/ usr / bin / pandoc -t plain "$ {1: -README.md} " / usr / bin / menos; }
bgvaughan em
Para a solução da @ HDave, se você conseguir defining function based on alias 'md', faça o seguinte: Verifique para que serve (por exemplo, você precisa / usa? ): which md(O meu foi definido como mkdir -p). Não? Em seguida, adicione esta acima da linha: unalias md. Recebeu este erro ao usar zshno Ubuntu 18.
Swivel
44

Eu escrevi um visualizador de marcação de terminal leve em python, para CLI ou como lib:

Ele suporta, por exemplo, tabelas, avisos e toneladas de temas de cores.

Usage:
mdv [-t THEME] [-T C_THEME] [-x] [-l] [-L] [-c COLS] [-f FROM] [-m] [-M   DIR] [-H] [-A] [MDFILE]

Options:
MDFILE    : Path to markdown file
-t THEME  : Key within the color ansi_table.json. 'random' accepted.
-T C_THEME: Theme for code highlight. If not set: Use THEME.
-l        : Light background (not yet supported)
-L        : Display links
-x        : Do not try guess code lexer (guessing is a bit slow)
-f FROM   : Display FROM given substring of the file.
-m        : Monitor file for changes and redisplay FROM given substring
-M DIR    : Monitor directory for markdown file changes
-c COLS   : Fix columns to this (default: your terminal width)
-A        : Strip all ansi (no colors then)
-H        : Print html version

   insira a descrição da imagem aqui

Comprimido vermelho
fonte
Eu realmente gosto disso, mas faltam alguns recursos básicos de usabilidade, como: não exibir o tema por padrão quando executado como um aplicativo (eu realmente não me importo com o tema usado, deixe-me definir um no meu alias e depois apenas exiba a remarcação, justificando o texto do parágrafo (não pedindo hifenização avançada aqui, mas pelo menos quebra de linha) e também não parece lidar com a quebra de parágrafos corretamente por algum motivo estranho. É um começo realmente bom e possui muitos recursos úteis, como o destaque da sintaxe do código, mas basicamente não é utilizável em seu estado atual, triste por ter chegado tão perto.
Thomas
Oi obrigado Btw: depois de apenas 10 anos mais ou menos, eu consertei essas coisas. Se ainda for interessante para você, dê uma olhada e faça comentários sobre o GH.
Red Pill
Ei, e a versão do Python 3?
Lucas Soares
fará assim que o Py3 estiver pronto para o POSIX thoughtstreams.io/ncoghlan_dev/…
Red Pill
Pena que ainda não suporta luz de fundo. (instalado com pipcomo sugerido na Readme)
Ruslan
42

Nota : créditos para a resposta de @ Joe no Stack Overflow.


Você pode usar o Grip , que renderiza o Markdown exatamente como o GitHub (ele usa a API de descontos do GitHub ).

Instale-o com pip:

pip install grip

Para renderizar um arquivo example.md:

grip -b example.md

Como isso se parece:

insira a descrição da imagem aqui

Peque
fonte
1
Usuários do Arch Linux: Grip é um pacote diferente. Faça em pip install gripvez disso.
Ave
Funciona como um encanto. Eu recomendo isso.
some_guy632 26/06
30

É um programa GUI, mas acho útil para esta tarefa o ReText , que é um editor para o Markdown e o reStructuredText com um modo de visualização:

Captura de tela do ReText

No entanto, se você precisar ver o arquivo do ReText a partir de um terminal, uma opção poderá ser converter o marddown em html pandoce ver a cópia em HTML lynx:

pandoc file.mkd > file.html ; lynx file.html

Editar

Existem mais alguns editores de descontos gratuitos disponíveis para os sistemas * nix. Alguns em repositórios oficiais, outros não, e cada um com suas próprias forças e fraquezas, mas como espectadores adequados, gostaria de destacar estes:

  • Typora : Ainda está na fase beta, mas é gratuito enquanto isso (não está claro como será licenciada a versão estável). Embora não seja FOSS, é perfeito como visualizador de descontos, pois funciona por padrão quase como um editor WYSIWYG ("modo de visualização ao vivo") com um painel Estrutura de tópicos (sumário), que é muito conveniente para arquivos grandes. O "modo de código fonte" possui destaque de sintaxe, incluindo fontes maiores para títulos e itálico para ênfase. E não apenas exporte para HTML, ODT e PDF. Também pode importar e exportar para vários formatos via pandocintegração.

  • Ghostwriter : apenas visualização em HTML (não editável), mas também possui um bom painel de tópicos e destaque de sintaxe. Sem opções de importação, exporte para vários formatos com pandoc e outros processadores (MultiMarkdown, Discount ou cmark) e faça uma verificação ortográfica ao vivo via hunspell/ myspell.

  • MdCharm : semelhante ao Retext, mas suporta remarcação (remarcação extra) e MultiMarkdown. Mostrar também um painel de estrutura de tópicos (ToC).

Para os R Markdownusuários, devo mencionar também editR . Não é um programa, mas um pacote R para editar / visualizar em HTML o R Markdown em um navegador. R Commander e RStudio também permitem uma visualização fácil em HTML, PDF ou Word.

Fran
fonte
Eu uso retext exclusivamente. Ainda não me falhou, mas não o usei tão extensivamente quanto alguns outros. Eu o uso exclusivamente para criar problemas no github (que infelizmente usa remarcações) e não possui interface gráfica.
Shirish
Obrigado pela dica Fran, exatamente o que eu estava procurando. A única coisa que notei que o ReText está faltando até agora é um recurso de atualização ou "carregamento sob alteração" para que você possa usá-lo em conjunto com outros editores.
Ash
Dica muito boa. Também recomendado aqui: softwarerecs.stackexchange.com/a/17740 O repositório foi alterado para github: github.com/retext-project/retext
Dr. Beco
12

Para aqueles que preferem w3m (ligações estilo vi):

pandoc file.md | w3m -T text/html

Coloquei em um script, mdview.sh, e coloquei isso no meu caminho:

#!/bin/sh
pandoc "$1" | w3m -T text/html
neildaemond
fonte
De longe, a melhor versão sem uma interface gráfica: a renderização mantém as cores terminais e parece um lesscomando simples com cores.
Ulysse BN,
4

Há também Discount, a implementação C de David Parsons do texto Markdown de John Gruber para a linguagem html. Discount consiste de várias ferramentas de linha de comando, incluindo markdown, mkd2html, makepage, mktagse theme.

http://www.pell.portland.or.us/~orc/Code/discount/

Além disso, há uma implementação de remarcação em C, usando uma gramática PEG.

https://github.com/jgm/peg-markdown

No Mac OS X, você também pode qlmarkdownconferir um gerador QuickLook para arquivos Markdown.

carlo
fonte
3

Sei que você disse que preferia um aplicativo não GUI, mas atualmente estou trabalhando em um aplicativo GUI chamado DownMarker que faz isso. Você pode encontrar a fonte em um repositório mercurial aqui . Você pode encontrar um executável autônomo para executar com mono ou .NET aqui .

Advertência: Está longe de terminar e é testado apenas ocasionalmente em linux / mono. O último teste que fiz foi no Mono 2.6. Se você deseja construí-lo, precisará de uma versão recente do mercurial para clonar o repositório e do MonoDevelop para compilar o aplicativo.

Wim Coenen
fonte
1
Ele abre na minha máquina Windows 7 de 64 bits, mas não renderiza o documento md, apenas mostra a fonte. No entanto, é incrível que um aplicativo mono seja executado sem problemas na minha máquina. :)
GmonC
3

Alguns comentários perguntaram sobre ou mencionaram a possibilidade de usar um complemento do navegador. Eu gosto dessa abordagem porque posso editar arquivos de remarcação em qualquer editor de texto do Linux (do nano ao vim e ao Kate) e visualizar os arquivos no Firefox (meu navegador preferido).

Eu simplesmente instalei este complemento do Firefox e ele funcionou imediatamente no Kubuntu 12.04 e no Firefox 33.0. Não são necessários ajustes.

Markdown Viewer :: Complementos para o Firefox
https://addons.mozilla.org/en-us/firefox/addon/markdown-viewer/

(Também gosto do ReText, mas prefiro ver algo como o ReText implementado como um plug-in para o Kate. O ReText não possui muitos recursos para competir com editores maduros como o Kate.)

MountainX
fonte
A pergunta era para um visualizador sem GUI, mas eu pessoalmente gosto muito dessa solução.
Sauerburger
3

Um visualizador de remarcação de linha de comando da IMHO fortemente subestimado é o markdown-cli .

Instalação

npm install markdown-cli --global

Uso

markdown-cli <file>

Recursos

Provavelmente não percebi muita coisa, porque falta qualquer documentação ...
Mas, até onde pude descobrir por alguns exemplos de arquivos de remarcação, algumas coisas que me convenceram:

  • lida com arquivos mal formatados muito melhor (semelhante ao atom, github, etc .; por exemplo, quando linhas em branco estão faltando antes das listas)
  • mais estável com a formatação em cabeçalhos ou listas (o texto em negrito nas listas quebra sublistas em alguns outros visualizadores)
  • formatação de tabela adequada
  • realce de sintaxe
  • resolve links de notas de rodapé para mostrar o link em vez do número da nota de rodapé (nem todos podem querer isso)

Captura de tela

example.png

Desvantagens

Eu percebi os seguintes problemas

  • blocos de código são achatados (todos os espaços à esquerda desaparecem)
  • duas linhas em branco aparecem antes das listas
orzechow
fonte
3

Atualmente usando mdpno Arch Linux e Termux no android, uma ferramenta de apresentação de descontos.

imagem

Uso

$ mdp {file}.md

Alias ​​liso

md() {
  fileName=${1:-"README.md"}
  mdp "$fileName"
}
A1rPun
fonte
2

Supondo que você queira ver como o html se parece: Use um navegador da web (com um complemento) como visualizador.

Por exemplo, para o Google Chrome, existe o TextDown, que também permite editar arquivos diretamente no navegador e ver uma visualização ao vivo.

Depois de adicioná-lo, você também precisará acessar chrome: // chrome / extensions / e marcar "permitir acesso aos URLs dos arquivos" para poder abrir arquivos locais. Um aviso: se você salvar (shift-ctrl-s), o TextDown não será salvo no arquivo que você abriu, mas na sua pasta de downloads.

PapaFreud
fonte
Há também esta extensão para o Firefox, que você pode começar a trabalhar seguindo isto .
Wilf 28/02
2

Sugiro dar uma olhada no Atom . É um excelente editor de texto com visualização embutida de descontos. Normalmente, não uso o modo de visualização de remarcação, pois possui um grave erro - as quebras de linha (a menos que venham em pares, indicando <p>o conteúdo de uma tag) são preservadas na visualização. Mas o modo de destaque da sintaxe é tão bom (já que o Markdown é otimizado para ser legível por humanos e a coloração do Atom é excelente) que eu geralmente acabo lendo arquivos de markdown no modo de exibição de origem.

wingedrhino
fonte
2

Readonly Vim com destaque para Markdown e dobragem

Com o Vim Markdown destacando e dobrando e executando, a solução mais direta é evocar vimno modo somente leitura com um vim -Rou (pelo menos no Ubuntu) de forma mais elegante:

$ view filename.md

Adicione o seguinte na parte inferior do seu .vimrcarquivo e viewse comportará da mesma forma lesscom o benefício adicional de seu destaque favorito em sintaxe (não apenas para descontos!) E dobra:

" less behaviour for view
" https://unix.stackexchange.com/a/314184/39845

" http://vim.wikia.com/wiki/Using_vim_as_a_syntax-highlighting_pager
function! LessBehaviour()
    if (!&modifiable || &ro)
        set nonumber
        set nospell
        set laststatus=0    " Status line
        set cmdheight=1
        set guioptions=aiMr    " No menu bar, nor tool bar
        noremap u <C-u>
        noremap d <C-d>
        noremap q :q<CR>
    endif
endfunction

" https://vi.stackexchange.com/a/9101/3168
augroup ReadOnly
    au!
    au VimEnter * :call LessBehaviour() 
augroup END

Existe também um less.shscript mais rigoroso . No meu sistema, ele vem embalado vim. Para encontrá-lo, use:

$ find /usr/share/vim -name less.sh

No entanto, ao contrário do script listado acima, a dobragem não funcionará com isso less.sh.

Serge Stroobandt
fonte
1

Você pode dar uma olhada no mad, que é muito fácil de usar:

mad file.md
Thomas Baruchel
fonte
0

Uma solução fácil para a maioria das situações: copie / cole a marcação em um visualizador na "nuvem". Aqui estão duas opções:

  1. Dillinger.io
  2. Dingus

Nada para instalar! Plataforma cruzada! Navegador cruzado! Sempre disponível!

Desvantagens: pode ser incômodo para arquivos grandes, problemas de segurança padrão de aplicativos em nuvem.

aap
fonte
0

Este é um alias que encapsula uma função:

alias mdless='_mdless() { if [ -n "$1" ] ; then if [ -f "$1" ] ; then cat <(echo ".TH $1 7 `date --iso-8601` Dr.Beco Markdown") <(pandoc -t man $1) | groff -K utf8 -t -T utf8 -man 2>/dev/null | less ; fi ; fi ;}; _mdless '

Explicação

  • alias mdless='...' : cria um alias para mdless
  • _mdless() {...}; : cria uma função temporária a ser chamada posteriormente
  • _mdless : no final, chame-o (a função acima)

Dentro da função:

  • if [ -n "$1" ] ; then : se o primeiro argumento não for nulo, então ...
  • if [ -f "$1" ] ; then : também, se o arquivo existir e for regular, então ...
  • cat arg1 arg2 | groff...: cat envia esses dois argumentos concatenados para groff; os argumentos sendo:
    • arg1: <(echo ".TH $1 7date --iso-8601 Dr.Beco Markdown"): algo que inicia o arquivo e groffserá entendido como as notas de cabeçalho e rodapé. Isso substitui o cabeçalho vazio da -schave ativada pandoc.
    • arg2:: <(pandoc -t man $1)o próprio arquivo, filtrado por pandoc, exibindo o manestilo do arquivo$1
  • | groff -K utf8 -t -T utf8 -man 2>/dev/null: canalizando o arquivo concatenado resultante para groff:
    • -K utf8então groffentende o código do arquivo de entrada
    • -t para exibir corretamente as tabelas no arquivo
    • -T utf8 então ele sai no formato correto
    • -manentão ele usa o pacote MACRO para gerar o arquivo no manformato
    • 2>/dev/null ignorar erros (afinal, é um arquivo bruto sendo transformado manualmente pelo homem, não nos importamos com os erros, desde que possamos ver o arquivo em um formato não muito feio).
  • | less: finalmente, mostra o arquivo paginando-o less(tentei evitar esse canal usando em groffervez de groff, mas groffernão é tão robusto quanto lesse alguns arquivos o travam ou não são exibidos. Então, deixe-o passar por mais um canal , Que diabos!

Adicione ao seu ~/.bash_aliases(ou similar)

Dr Beco
fonte
0

A maneira mais indolor para mim é usar a gema mdless do Ruby.

  1. Instalar ruby

    sudo apt-get install ruby

  2. Instalar mdless

    sudo gem install mdless

  3. Abrir arquivo via mdless

    mdless filename.md

Jonel Dominic Brave
fonte
1
mdlessjá foi dada como resposta.
Scott