Skompiluj książkę PDF z wielu plików Markdown


5

Mam taką strukturę folderów, z plikami .md receptury w katalogach według motywu:

Recipes
    |- Mains
    |   |- recipe1.md
    |   |- recipe2.md
    |- Desserts
        |- recipe3.md
        |- recipe4.md

Jak mogę skompilować wszystkie pliki przeceny w jednej książce PDF?

Potrzebuję każdego przepisu, aby zajmował osobną stronę z tytułowanymi sekcjami (rozdziałami) zdefiniowanymi przez foldery, w których znajdują się przepisy. Chciałbym również spis treści z nazwą każdego przepisu, na której stronie jest i w którym rozdziale się znajduje.

Czy mogę to zrobić za pomocą pandoc i LaTeX? A może program wiersza poleceń do tworzenia wiki?

Odpowiedzi:


2

Zakładam, że Twoje recipeX.mdpliki same już mają nagłówki? I wszyscy są na poziomie 2?

Następnie powinna działać niewielka seria poleceń powłoki (Linux lub macOS) (lub mały skrypt), takich jak poniższe (użyj najnowszej wersji Pandoc!):

 
Przepisy na cd;
dla i w * /; zrobić
   echo "# $ {i% /}";
   Echo " " ;
   dla jw $ i / *. md; zrobić
      cat $ i / $ j;
      Echo ; 
   gotowy ;
gotowy ; \
| \
pandoc \
  --toc \
  --liczba sekcji \
  --top-level-division = part \
  --output = moja-przepis-książka.pdf \
  -

Ostrzeżenie: nie przegap ostatniego '-'w powyższym kodzie!
Jeśli Twoje recipeX.mdpliki NIE mają nagłówków, wypróbuj następującą odmianę:

 
Przepisy na cd;
dla i w * /; zrobić
   echo "# $ {i% /}";
   Echo " " ;
   dla jw $ i / *. md; zrobić
      echo "## $ (basename $ {j% .md})";
      Echo ;
      cat $ i / $ j;
      Echo ; 
   gotowy ;
gotowy ; \
| \
pandoc \
  --toc \
  --liczba sekcji \
  --top-level-division = part \
  --output = moja-przepis-książka.pdf \
  -

Wygląda to obiecująco, ale syntax error near unexpected token `|'bez względu na to, jak próbuję to naprawić, zarówno na Ubuntu, jak i MacOS. Czy mógłbyś dokładnie sprawdzić składnię tutaj i potwierdzić, że jest poprawna?
user1717828

@ user1717828: Przepraszam, jestem teraz w drodze i nie mogę przetestować. Ale możesz po prostu pominąć (usunąć) jedną linię ze znakami "|"i "\". Są one po to, aby oddzielić dwa główne polecenia ze względów wizualnych.
Kurt Pfeifle
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.