Mam projekt hostowany na GitHub. W tym celu napisałem plik README przy użyciu składni Markdown, aby ładnie go sformatować na GitHub.
Ponieważ mój projekt jest w Pythonie, planuję również załadować go do PyPi . Składnia używana w plikach README w PyPi to reStructuredText.
Chciałbym uniknąć konieczności obsługi dwóch plików README zawierających z grubsza tę samą zawartość; więc szukałem przeceny na tłumacza RST (lub odwrotnie), ale nie mogłem znaleźć żadnego.
Innym rozwiązaniem, które widzę, jest wykonanie przeceny / HTML, a następnie tłumaczenie HTML / RST. Znalazłem zasoby do tego tutaj i tutaj, więc myślę, że powinno to być możliwe.
Czy miałbyś pomysł, który lepiej pasowałby do tego, co chcę zrobić?
README.rst
!Odpowiedzi:
Polecam Pandoc , ten „nóż szwajcarskiej armii, do konwersji plików z jednego formatu na inny znaczników” (zobacz schemat obsługiwanych konwersji na dole strony, jest imponująca). Pandoc umożliwia bezpośrednie tłumaczenie reStructuredText za pomocą Markdown. Jest tu również edytor online , który pozwala go wypróbować, więc możesz po prostu użyć edytora online do konwersji plików README.
źródło
pandoc --from=markdown --to=rst --output=README.rst README.md
Jak zasugerował @Chris, możesz użyć Pandoc do konwersji Markdown na RST. Można to po prostu zautomatyzować za pomocą modułu pypandoc i trochę magii w setup.py:
Spowoduje to automatyczną konwersję pliku README.md do RST dla długiego opisu używanego na PyPi. Gdy pypandoc nie jest dostępny, to czyta README.md bez konwersji - aby nie zmuszać innych do instalowania pypandoc, gdy chcą tylko zbudować moduł, a nie przesyłać do PyPi.
Możesz więc pisać w Markdown jak zwykle i nie przejmować się już bałaganem RST. ;)
źródło
try-except
w tej funkcji.RuntimeError: Missing format!
wyjątek, dopóki nie zmieniłem lambdy naread_md = lambda f: convert(f, 'rst', 'md')
. Powodem jest (zgaduję), że podałem mu ciąg znaków, a nie plik (więc bez rozszerzenia pliku).Aktualizacja 2019
Magazyn PyPI obsługuje renderowanie Markdown, jak dobrze! Wystarczy zaktualizować konfigurację pakietu i dodać
long_description_content_type='text/markdown'
do niej plik. na przykład:Dlatego nie ma już potrzeby przechowywania README w dwóch formatach.
Więcej informacji na ten temat znajdziesz w dokumentacji .
Stara odpowiedź:
Plik Markup biblioteka wykorzystywana przez GitHub obsługuje reStructuredText. Oznacza to, że możesz napisać plik README.rst.
Obsługują nawet podświetlanie kolorów specyficzne dla składni przy użyciu dyrektyw
code
icode-block
( przykład )źródło
PyPI obsługuje teraz Markdown dla długich opisów!
W
setup.py
, ustawlong_description
ciąg Markdown, dodajlong_description_content_type="text/markdown"
i upewnij się, że używasz najnowszych narzędzi (setuptools
38.6.0+,twine
1.11+).Więcej informacji można znaleźć w poście na blogu Dustina Ingrama .
źródło
Ze względu na moje wymagania nie chciałem instalować Pandoc na moim komputerze. Użyłem docvertera. Docverter to serwer konwersji dokumentów z interfejsem HTTP wykorzystujący do tego celu Pandoc.
źródło
Może Cię również zainteresować fakt, że możliwe jest pisanie we wspólnym podzbiorze, dzięki czemu dokument będzie wyglądał tak samo, gdy jest renderowany jako markdown lub renderowany jako reStructuredText: https://gist.github.com/dupuy/1855764 ☺
źródło
Natknąłem się na ten problem i rozwiązałem go za pomocą dwóch następujących skryptów bash.
Zwróć uwagę, że mam dołączony LaTeX do mojego Markdown.
Przydaje się również do konwersji do formatu HTML. md2html:
Mam nadzieję że to pomogło
źródło
Korzystając z
pandoc
narzędzia sugerowanego przez innych stworzyłemmd2rst
narzędzie do tworzeniarst
plików. Mimo że to rozwiązanie oznacza, że masz zarówno opcję, jakmd
irst
, wydawało się, że jest najmniej inwazyjne i pozwoliłoby na dodanie jakiejkolwiek przyszłej obsługi przecen. Wolę to od przeróbek,setup.py
a może Ty też:źródło