Compile PDF book from multiple Markdown files
I have a folder structure like this, with recipe .md files in directories according to theme:
Recipes
|- Mains
| |- recipe1.md
| |- recipe2.md
|- Desserts
|- recipe3.md
|- recipe4.md
How can I compile all these markdown files into a single PDF book?
I need each recipe to occupy a separate page, with titled sections (chapters) defined by the folders in which recipes are found. I would also like a table of contents with each recipe name, what page it's on and what chapter it is in.
Can I do this using pandoc and LaTeX? Or maybe a command line programme to construct wikis?
bash pdf markdown pandoc
add a comment |
I have a folder structure like this, with recipe .md files in directories according to theme:
Recipes
|- Mains
| |- recipe1.md
| |- recipe2.md
|- Desserts
|- recipe3.md
|- recipe4.md
How can I compile all these markdown files into a single PDF book?
I need each recipe to occupy a separate page, with titled sections (chapters) defined by the folders in which recipes are found. I would also like a table of contents with each recipe name, what page it's on and what chapter it is in.
Can I do this using pandoc and LaTeX? Or maybe a command line programme to construct wikis?
bash pdf markdown pandoc
add a comment |
I have a folder structure like this, with recipe .md files in directories according to theme:
Recipes
|- Mains
| |- recipe1.md
| |- recipe2.md
|- Desserts
|- recipe3.md
|- recipe4.md
How can I compile all these markdown files into a single PDF book?
I need each recipe to occupy a separate page, with titled sections (chapters) defined by the folders in which recipes are found. I would also like a table of contents with each recipe name, what page it's on and what chapter it is in.
Can I do this using pandoc and LaTeX? Or maybe a command line programme to construct wikis?
bash pdf markdown pandoc
I have a folder structure like this, with recipe .md files in directories according to theme:
Recipes
|- Mains
| |- recipe1.md
| |- recipe2.md
|- Desserts
|- recipe3.md
|- recipe4.md
How can I compile all these markdown files into a single PDF book?
I need each recipe to occupy a separate page, with titled sections (chapters) defined by the folders in which recipes are found. I would also like a table of contents with each recipe name, what page it's on and what chapter it is in.
Can I do this using pandoc and LaTeX? Or maybe a command line programme to construct wikis?
bash pdf markdown pandoc
bash pdf markdown pandoc
edited Dec 15 at 1:00
Kurt Pfeifle
9,18713555
9,18713555
asked Apr 23 '17 at 9:21
John Godlee
585
585
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I assume your recipeX.md
files already have headlines by themselves? And they are all at level 2?
Then a small series of (Linux or macOS) shell command (or a little script) like the following should work (use the most recent version of Pandoc!):
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
Warning: do not miss the last '-'
in the code above!
If your recipeX.md
files do NOT have headlines, try this variation:
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
echo "## $(basename ${j%.md})" ;
echo ;
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1202426%2fcompile-pdf-book-from-multiple-markdown-files%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I assume your recipeX.md
files already have headlines by themselves? And they are all at level 2?
Then a small series of (Linux or macOS) shell command (or a little script) like the following should work (use the most recent version of Pandoc!):
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
Warning: do not miss the last '-'
in the code above!
If your recipeX.md
files do NOT have headlines, try this variation:
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
echo "## $(basename ${j%.md})" ;
echo ;
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
add a comment |
I assume your recipeX.md
files already have headlines by themselves? And they are all at level 2?
Then a small series of (Linux or macOS) shell command (or a little script) like the following should work (use the most recent version of Pandoc!):
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
Warning: do not miss the last '-'
in the code above!
If your recipeX.md
files do NOT have headlines, try this variation:
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
echo "## $(basename ${j%.md})" ;
echo ;
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
add a comment |
I assume your recipeX.md
files already have headlines by themselves? And they are all at level 2?
Then a small series of (Linux or macOS) shell command (or a little script) like the following should work (use the most recent version of Pandoc!):
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
Warning: do not miss the last '-'
in the code above!
If your recipeX.md
files do NOT have headlines, try this variation:
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
echo "## $(basename ${j%.md})" ;
echo ;
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
I assume your recipeX.md
files already have headlines by themselves? And they are all at level 2?
Then a small series of (Linux or macOS) shell command (or a little script) like the following should work (use the most recent version of Pandoc!):
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
Warning: do not miss the last '-'
in the code above!
If your recipeX.md
files do NOT have headlines, try this variation:
cd Recipes ;
for i in */ ; do
echo "# ${i%/}" ;
echo " " ;
for j in $i/*.md ; do
echo "## $(basename ${j%.md})" ;
echo ;
cat $i/$j ;
echo ;
done ;
done ;
|
pandoc
--toc
--number-sections
--top-level-division=part
--output=my-recipe-book.pdf
-
answered Dec 15 at 0:56
Kurt Pfeifle
9,18713555
9,18713555
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1202426%2fcompile-pdf-book-from-multiple-markdown-files%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown