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?

John Godlee
źródło

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 \
  -
Kurt Pfeifle
źródło
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