Переглядач відліку


154

Я знайшов файл, відформатований за допомогою Markdown. Не могли б ви порадити, який переглядач я можу використовувати для перегляду файлів такого типу? Сподіваюся, один без gui (якщо це можливо)

Оновлення Насправді я шукав глядача, який міг би проаналізувати формат файлу розмітки, який не потребує перетворення. Але щось близьке до цього повинно бути нормально.


5
Файл розмітки можна просто прочитати, коли ви відкриваєте його в редакторі, для його читання вам не потрібні особливі інструменти. Для чого це потрібно / в якому форматі ви хочете, щоб він був?
kasterma

1
Існує багато версій "розмітки". Технічно, LaTeX, HTML є уцінки, а це курсив напівжирний жирним курсивом і USE посилання ...
vonbrand


15
@vonbrand LaTeX і HTML - це мови для розмітки . Відмітка - це специфічна мова для форматування тексту (хоча ви вірні, що існує ряд варіантів, включаючи той, який використовується на таких сайтах Stack Exchange, як цей). Ім'я Markdown - це жарт, оскільки воно дозволяє робити багато видів, які можна зробити за допомогою мови розмітки, без фактичного "розмітки" (тобто додавання тегів) до тексту (здебільшого).
Лоранс Гонсалвес

Відповіді:


37

На наступному веб-сайті представлений інструмент, який переведе розмітку в HTML:

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

Після перетворення файлу в HTML, для перегляду файлу використовується ряд інструментів командного рядка. Використовуючи тестовий файл, що містить текст відформатованого тексту, я виявив, що наступне працює добре.

$ 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

html2text - це один із багатьох інструментів, за допомогою яких можна переглянути текст у форматі html з командного рядка. Ще одним варіантом, якщо ви хочете трохи приємніше вивести, було б використовувати рись :

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

Якщо ви користувач emacs, хтось написав режим для розмітки, який доступний тут: http://jblevins.org/projects/markdown-mode/ . Це забезпечує приємне підсвічування синтаксису, як це видно на скріншоті на цьому веб-сайті.

Усі ці інструменти повинні бути доступними для програмного забезпечення.


8
У VIM можна виділити синтаксис, вручну встановивши синтаксис для розмітки, якщо він не розпізнається. :set syntax=mkd
Герт

1
Я ніколи б не думав використовувати -stdinта рись, дуже розумний і просто те, що мені потрібно.
NickO

1
Я перевірив це і можу перевірити, чи працює він на Linux, але цікаво, що сторінка man повідомляє, що така функція стосується лише UNIX. -stdin read the startfile from standard input (UNIX only).
sherrellbc

97

Використання pandoc та lynx без створення тимчасових файлів:

pandoc file.md | lynx -stdin

7
(примітка: pandoc знаходиться в haskell)
fche

10
Або простоpandoc -t plain file.md | less
Adriano P

7
потім додайте це до .bashrc: md() { pandoc "$1" | lynx -stdin; }
HDave

Після деякого роздуму я зупинився на цьому, за замовчуванням прочитав "README.md", що я зазвичай роблю: функція mdless {/ usr / bin / pandoc -t plain "$ {1: -README.md} "| / usr / bin / менше; }
bgvaughan

Для рішення @ HDave, якщо ви отримаєте defining function based on alias 'md', зробіть це: Перевірте, для чого це (наприклад, чи потрібно / використовувати його? ): which md(Моєму встановлено значення mkdir -p). Немає? Потім додати це вище лінії: unalias md. Отримав цю помилку під час використання zshна Ubuntu 18.
Поворот

44

Я написав легкий переглядач кінцевих відміток у python, для CLI або як lib:

Він підтримує, наприклад, таблиці, зауваження та тонни кольорових тем.

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

   введіть тут опис зображення


Мені це дуже подобається, але в ньому відсутні деякі основні функції юзабіліті, такі як: не відображати тему за замовчуванням під час запуску як додаток (мені дійсно все одно, яка тема використовується, дозвольте мені визначити її у своєму псевдонімі, а потім просто покажіть розмітку, будь ласка), виправдовуючи текст абзацу (не вимагаючи розширеного переносу тут, але принаймні обертання слів), і він також, здається, не обробляє перерви абзацу з якоїсь дивної причини. Це дійсно вдалий початок і має безліч корисних функцій, таких як підсвічування синтаксису коду, але в основному він не корисний у своєму нинішньому стані, сумно, бо він наблизився так близько.
Томас

Привіт, спасибі! Btw: лише через 10 років я виправив ці речі. Якщо вам все-таки цікаво, погляньте на питання GH та відгуки про них.
Червона таблетка

Гей, а що з версією Python 3?
Лукас Соарес

робитиме , як тільки PY3 готовий до POSIX thoughtstreams.io/ncoghlan_dev / ...
Red Pill

Шкода, що він все ще не підтримує світлий фон. (встановлено із pipзапропонованим у Readme)
Руслан

42

Примітка : зараховує до відповіді @ Joe у стеку переповнення.


Ви можете використовувати Grip , який відображає Markdown точно так, як GitHub (він використовує API відмітки GitHub ).

Встановіть його за допомогою pip:

pip install grip

Щоб надати файл example.md:

grip -b example.md

Як це виглядає:

введіть тут опис зображення


1
Користувачі Arch Linux: Grip - це інший пакет. Зробіть pip install gripзамість цього.
пр.

Працює як шарм. Я рекомендую це.
some_guy632

30

Це програма GUI, але я вважаю корисною для цього завдання ReText , тобто редактором для Markdown та reStructuredText з режимом попереднього перегляду:

Скріншот ReText

Однак, якщо вам потрібно переглянути файл ReText з терміналу, один варіант може перетворити marddown в html за допомогою pandocта побачити копію html у lynx:

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

Редагувати

Є ще кілька безкоштовних редакторів розмітки з попереднім переглядом, доступним для систем * nix. Деякі в офіційних сховищах, інші - не, і кожен має свої сильні та слабкі сторони, але я хотів би виділити такі:

  • Typora : Він все ще знаходиться в бета-фазі, але тим часом це безкоштовно (незрозуміло, як буде ліцензована стабільна версія). Хоча це не FOSS, він ідеально підходить для перегляду розмітки, оскільки він працює за замовчуванням майже як редактор WYSIWYG ("режим попереднього перегляду") з панеллю "Контур" (зміст), що дуже зручно для великих файлів. "Режим вихідного коду" має підсвітку синтаксису, включаючи більші шрифти для заголовків та курсив для наголосу. І не лише експорт у HTML, ODT та PDF. Також можна імпортувати-експортувати в декілька форматів за допомогою pandocінтеграції.

  • Ghostwriter : лише попередній перегляд HTML (не піддається редагуванню), але також має приємне підкреслення панелі та синтаксису. Без опцій імпорту, але експортуйте в декілька форматів з процесорами pandoc та іншими (MultiMarkdown, Discount або cmark) і пройдіть перевірку орфографії через hunspell/ myspell.

  • MdCharm : Подібно до Retext, але підтримка розмітки (додаткове відмітка) та MultiMarkdown. Показати також контурну панель (ToC).

Для R Markdownкористувачів я повинен зазначити також editR . Це не програма, а пакет R для редагування / html-перегляду R Markdown у браузері. R Commander та RStudio також дозволяють легко переглянути попередній перегляд у HTML, PDF чи Word.


Я використовую виключно ретекст. Це ще не підвело мене, але я не використовував його так широко, як деякі інші. Я використовую його виключно для створення проблем у github (який, на жаль, використовує розмітку) і не має для нього GUI.
shirish

Дякую за пораду Френ, саме те, що я шукав. Єдине, що я помітив, що ReText відсутній до цього часу, це функція оновлення або "завантаження змін", щоб ви могли використовувати її спільно з іншими редакторами.
Еш

Дуже приємна порада. Також рекомендується тут: softwarerecs.stackexchange.com/a/17740 Репозиторій змінився на github: github.com/retext-project/retext
Dr Beco

12

Для тих, хто віддає перевагу w3m (прив'язки у стилі vi):

pandoc file.md | w3m -T text/html

Я помістив його в сценарій, mdview.sh, і поставив це на своєму шляху:

#!/bin/sh
pandoc "$1" | w3m -T text/html

На сьогодні найкраща версія без gui: візуалізація зберігає кінцеві кольори і виглядає як проста lessкоманда з розфарбуванням.
Уліссе БН


4

Існує також знижка, реалізація програми David Down Parsons на текст мови Джона Грубера на мові html. Знижка складається з декількох утиліт командного рядка , включаючи markdown, mkd2html, makepage, mktagsі theme.

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

Крім того, є реалізація розмітки в C, використовуючи граматику PEG.

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

На Mac OS X ви також можете ознайомитись qlmarkdownз генератором QuickLook для файлів Markdown.


3

Я знаю, ви сказали, що ви віддаєте перевагу додатку без GUI, але я зараз працюю над додатком GUI під назвою DownMarker, який робить це. Ви можете знайти джерело в сховищі ртутних тут . Ви можете знайти автономний виконуваний файл для запуску з моно або .NET тут .

Caveat: Це ще далеко не закінчено і лише іноді тестується на linux / mono. Останній тест, який я зробив, був на Mono 2.6. Якщо ви хочете створити його самостійно, для клонування сховища знадобиться остання версія mercurial, а для компіляції програми - MonoDevelop.


1
Він відкривається в 64-х бітній моїй машині Windows 7, але не видає md-документ, він показує лише джерело. Тим не менш, дивно, що моно-додаток просто працював без збоїв у моїй машині. :)
GmonC


3

Кілька коментарів запитали про або згадували про можливість використання надбудови браузера. Мені подобається такий підхід, тому що я можу редагувати файли розмітки у будь-якому текстовому редакторі Linux (від nano до vim до Kate) та переглядати файли у Firefox (мій вибір браузера).

Я просто встановив цей додаток для Firefox, і він вийшов з коробки на Kubuntu 12.04 та Firefox 33.0. Ніяких налаштувань не потрібно.

Переглядач Markdown :: Додатки для Firefox
https://addons.mozilla.org/en-us/firefox/addon/markdown-viewer/

(Мені також подобається ReText, але я вважаю за краще бачити щось на зразок ReText, реалізованого як плагін для Kate. ReText не має занадто багато функцій, щоб конкурувати зі зрілими редакторами, такими як Kate.)


Питання задав глядачеві без gui, але мені особисто це рішення дуже подобається.
sauerburger

3

В даний час використовується mdpв Arch Linux і Termux на android, інструмент презентації для розмітки .

зображення

Використання

$ mdp {file}.md

Плівковий псевдонім

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

2

Якщо припустити, що ви хочете побачити, як виглядає html: Використовуйте веб-браузер (з додатком) як переглядач.

Наприклад, для Google Chrome існує TextDown, який також дозволяє редагувати файли прямо у веб-переглядачі та бачити попередній попередній перегляд.

Після додавання його також потрібно перейти до chrome: // chrome / extensions / і встановити прапорець "дозволити доступ до URL-адрес файлів", щоб ви могли відкривати локальні файли. Однак попередження: якщо ви зберігаєте (shift-ctrl-s) TextDown не зберігається у відкритому вами файлі, а у папці для завантаження.


Існує також це розширення для Firefox, з яким ви зможете працювати, дотримуючись цього .
Вільф

2

Пропоную поглянути на Атом . Це відмінний текстовий редактор із вбудованим попереднім переглядом розмітки. Зазвичай я не використовую режим попереднього перегляду розмітки, оскільки він має серйозні розриви рядків помилок (якщо вони не є парами, що вказує на <p>вміст тегу) зберігаються в попередньому перегляді. Але режим виділення синтаксису настільки гарний (оскільки Markdown оптимізований для читання людиною, а колорифікація Atom прекрасна), що я зазвичай закінчую читання файлів розмітки у режимі перегляду джерела.


2

IMHO сильно занижений переглядач розмітки командного рядка - це відмітка-cli .

Установка

npm install markdown-cli --global

Використання

markdown-cli <file>

Особливості

Напевно, мало що помітили, бо воно не вистачає жодної документації ...
Але наскільки я міг зрозуміти на прикладі файлів розмітки, деяких речей, які мене переконували:

  • набагато краще обробляє неправильно відформатовані файли (подібно до atom, github тощо); наприклад, коли порожні рядки відсутні перед списками)
  • стабільніший із форматуванням у заголовках чи списках (жирний текст у списках розбиває підсписи деяких інших глядачів)
  • правильне форматування таблиці
  • підсвічування синтаксису
  • вирішує посилання на виноску, щоб показати посилання замість номера виноски (не всі можуть цього хотіти)

Знімок екрана

example.png

Недоліки

Я зрозумів наступні питання

  • кодові блоки згладжені (всі провідні простори зникають)
  • перед списками з'являються два порожні рядки

2

Readonly Vim із виділенням та складанням Markdown

З підсвічуванням та складанням та запуском Vim Markdown , найпростішим рішенням є наведення vimв режимі лише для читання будь-якого vim -Rабо (принаймні на Ubuntu):

$ view filename.md

Додайте наступне внизу вашого .vimrcфайлу, і він viewбуде вести себе так само, як lessз додатковою перевагою улюбленого виділення синтаксису (не тільки для розмітки!) Та складання:

" 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

Існує також більш жорсткий less.shсценарій. У моїй системі він поставляється в комплекті vim. Щоб знайти його, використовуйте:

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

Однак, всупереч перерахованому вище сценарію, складання з цим не працюватиме less.sh.




0

Просте рішення для більшості ситуацій: скопіюйте / вставте розмітку в переглядач у "хмарі". Ось два варіанти:

  1. Dillinger.io
  2. Дінгус

Нічого не встановлювати! Перехресна платформа! Перехресний браузер! Завжди в наявності!

Недоліки: можуть бути клопоти для великих файлів, стандартні проблеми безпеки хмарних програм.


0

Це псевдонім, який інкапсулює функцію:

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 '

Пояснення

  • alias mdless='...' : створює псевдонім для mdless
  • _mdless() {...}; : створює тимчасову функцію, яку слід викликати згодом
  • _mdless : врешті-решт, зателефонуйте (функція вище)

Всередині функції:

  • if [ -n "$1" ] ; then : якщо перший аргумент недійсний, то ...
  • if [ -f "$1" ] ; then : також, якщо файл існує і є регулярним, то ...
  • cat arg1 arg2 | groff...: кішка надсилає ці два аргументи, об'єднані в гроф; аргументи:
    • arg1: <(echo ".TH $1 7date --iso-8601 Dr.Beco Markdown"): щось, що запускає файл і groffрозумітиме як заголовок та колонтитул. Це замінює порожній заголовок з -sклавіші далі pandoc.
    • arg2:: <(pandoc -t man $1)сам файл, відфільтрований pandoc, виводить manстиль файлу$1
  • | groff -K utf8 -t -T utf8 -man 2>/dev/null: передавання отриманого об'єднаного файлу в groff:
    • -K utf8так groffрозуміє код вхідного файлу
    • -t тому він відображає правильно таблиці у файлі
    • -T utf8 тому він виводиться у правильному форматі
    • -manтому він використовує пакет MACRO для виведення файлу у manформаті
    • 2>/dev/null ігнорувати помилки (зрештою, його сирий файл перетворюється в людину вручну, нас не хвилюють помилки, доки ми можемо бачити файл у не дуже-великому потворному форматі).
  • | less: нарешті, показує файл, в якому він заповнив файл less(я намагався уникати цієї труби, використовуючи grofferзамість цього groff, але grofferне такий надійний, як lessдеякі файли вішають його або взагалі не показують. Отже, нехай він пройде ще одну трубу , якого біса!

Додайте його до свого ~/.bash_aliases(або подібного)



0

Найбільш безболісний спосіб для мене - використовувати дорогоцінний камінь mdless від Ruby.

  1. Встановіть рубін

    sudo apt-get install ruby

  2. Встановити mdless

    sudo gem install mdless

  3. Відкрити файл через mdless

    mdless filename.md


1
mdlessвже дано як відповідь.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.