]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
✨ Add illustrations for Concurrent burgers and Parallel burgers (#5277)
authorSebastián Ramírez <tiangolo@gmail.com>
Wed, 17 Aug 2022 10:48:05 +0000 (12:48 +0200)
committerGitHub <noreply@github.com>
Wed, 17 Aug 2022 10:48:05 +0000 (12:48 +0200)
35 files changed:
docs/az/mkdocs.yml
docs/de/mkdocs.yml
docs/en/docs/async.md
docs/en/docs/css/custom.css
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-03.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-04.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-05.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png [new file with mode: 0644]
docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-07.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-01.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-04.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png [new file with mode: 0644]
docs/en/docs/img/async/parallel-burgers/parallel-burgers-06.png [new file with mode: 0644]
docs/en/mkdocs.yml
docs/es/mkdocs.yml
docs/fa/mkdocs.yml
docs/fr/mkdocs.yml
docs/he/mkdocs.yml
docs/id/mkdocs.yml
docs/it/mkdocs.yml
docs/ja/mkdocs.yml
docs/ko/mkdocs.yml
docs/nl/mkdocs.yml
docs/pl/mkdocs.yml
docs/pt/mkdocs.yml
docs/ru/mkdocs.yml
docs/sq/mkdocs.yml
docs/sv/mkdocs.yml
docs/tr/mkdocs.yml
docs/uk/mkdocs.yml
docs/zh/mkdocs.yml

index 90ee0bb823683643fccb2919affcea11bdb95427..d549f37a396b2bf849fc6bc7c42b7dbe715de0f9 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 6009dd2fef2fd3f9ece79ac01d3f988ed5f4eea0..8c3c42b5f337db43dae205e48c38a6fb37890e7f 100644 (file)
@@ -76,6 +76,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 71f2e75025f2c3af194e0d5a386d048cc00b92ba..43473c822309de306a521d6a53f4a1c359302ae6 100644 (file)
@@ -102,87 +102,111 @@ To see the difference, imagine the following story about burgers:
 
 ### Concurrent Burgers
 
-<!-- The gender neutral cook emoji "🧑‍🍳" does not render well in browsers. In the meantime, I'm using a mix of male "👨‍🍳" and female "👩‍🍳" cooks. -->
+You go with your crush to get fast food, you stand in line while the cashier takes the orders from the people in front of you. 😍
 
-You go with your crush 😍 to get fast food 🍔, you stand in line while the cashier 💁 takes the orders from the people in front of you.
+<img src="/img/async/concurrent-burgers/concurrent-burgers-01.png" class="illustration">
 
-Then it's your turn, you place your order of 2 very fancy burgers 🍔 for your crush 😍 and you.
+Then it's your turn, you place your order of 2 very fancy burgers for your crush and you. 🍔🍔
 
-You pay 💸.
+<img src="/img/async/concurrent-burgers/concurrent-burgers-02.png" class="illustration">
+
+The cashier says something to the cook in the kitchen so they know they have to prepare your burgers (even though they are currently preparing the ones for the previous clients).
+
+<img src="/img/async/concurrent-burgers/concurrent-burgers-03.png" class="illustration">
+
+You pay. 💸
+
+The cashier gives you the number of your turn.
+
+<img src="/img/async/concurrent-burgers/concurrent-burgers-04.png" class="illustration">
+
+While you are waiting, you go with your crush and pick a table, you sit and talk with your crush for a long time (as your burgers are very fancy and take some time to prepare).
 
-The cashier 💁 says something to the cook in the kitchen 👨‍🍳 so they know they have to prepare your burgers 🍔 (even though they are currently preparing the ones for the previous clients).
+As you are sitting at the table with your crush, while you wait for the burgers, you can spend that time admiring how awesome, cute and smart your crush is ✨😍✨.
 
-The cashier 💁 gives you the number of your turn.
+<img src="/img/async/concurrent-burgers/concurrent-burgers-05.png" class="illustration">
 
-While you are waiting, you go with your crush 😍 and pick a table, you sit and talk with your crush 😍 for a long time (as your burgers are very fancy and take some time to prepare ✨🍔✨).
+While waiting and talking to your crush, from time to time, you check the number displayed on the counter to see if it's your turn already.
 
-As you are sitting at the table with your crush 😍, while you wait for the burgers 🍔, you can spend that time admiring how awesome, cute and smart your crush is ✨😍✨.
+Then at some point, it finally is your turn. You go to the counter, get your burgers and come back to the table.
 
-While waiting and talking to your crush 😍, from time to time, you check the number displayed on the counter to see if it's your turn already.
+<img src="/img/async/concurrent-burgers/concurrent-burgers-06.png" class="illustration">
 
-Then at some point, it finally is your turn. You go to the counter, get your burgers 🍔 and come back to the table.
+You and your crush eat the burgers and have a nice time. ✨
 
-You and your crush 😍 eat the burgers 🍔 and have a nice time ✨.
+<img src="/img/async/concurrent-burgers/concurrent-burgers-07.png" class="illustration">
 
 ---
 
 Imagine you are the computer / program 🤖 in that story.
 
-While you are at the line, you are just idle 😴, waiting for your turn, not doing anything very "productive". But the line is fast because the cashier 💁 is only taking the orders (not preparing them), so that's fine.
+While you are at the line, you are just idle 😴, waiting for your turn, not doing anything very "productive". But the line is fast because the cashier is only taking the orders (not preparing them), so that's fine.
 
-Then, when it's your turn, you do actual "productive" work 🤓, you process the menu, decide what you want, get your crush's 😍 choice, pay 💸, check that you give the correct bill or card, check that you are charged correctly, check that the order has the correct items, etc.
+Then, when it's your turn, you do actual "productive" work, you process the menu, decide what you want, get your crush's choice, pay, check that you give the correct bill or card, check that you are charged correctly, check that the order has the correct items, etc.
 
-But then, even though you still don't have your burgers 🍔, your work with the cashier 💁 is "on pause" ⏸, because you have to wait 🕙 for your burgers to be ready.
+But then, even though you still don't have your burgers, your work with the cashier is "on pause" ⏸, because you have to wait 🕙 for your burgers to be ready.
 
-But as you go away from the counter and sit at the table with a number for your turn, you can switch 🔀 your attention to your crush 😍, and "work" ⏯ 🤓 on that. Then you are again doing something very "productive" 🤓, as is flirting with your crush 😍.
+But as you go away from the counter and sit at the table with a number for your turn, you can switch 🔀 your attention to your crush, and "work" ⏯ 🤓 on that. Then you are again doing something very "productive" as is flirting with your crush 😍.
 
-Then the cashier 💁 says "I'm finished with doing the burgers" 🍔 by putting your number on the counter's display, but you don't jump like crazy immediately when the displayed number changes to your turn number. You know no one will steal your burgers 🍔 because you have the number of your turn, and they have theirs.
+Then the cashier 💁 says "I'm finished with doing the burgers" by putting your number on the counter's display, but you don't jump like crazy immediately when the displayed number changes to your turn number. You know no one will steal your burgers because you have the number of your turn, and they have theirs.
 
-So you wait for your crush 😍 to finish the story (finish the current work ⏯ / task being processed 🤓), smile gently and say that you are going for the burgers ⏸.
+So you wait for your crush to finish the story (finish the current work ⏯ / task being processed 🤓), smile gently and say that you are going for the burgers ⏸.
 
-Then you go to the counter 🔀, to the initial task that is now finished ⏯, pick the burgers 🍔, say thanks and take them to the table. That finishes that step / task of interaction with the counter ⏹. That in turn, creates a new task, of "eating burgers" 🔀 ⏯, but the previous one of "getting burgers" is finished ⏹.
+Then you go to the counter 🔀, to the initial task that is now finished ⏯, pick the burgers, say thanks and take them to the table. That finishes that step / task of interaction with the counter ⏹. That in turn, creates a new task, of "eating burgers" 🔀 ⏯, but the previous one of "getting burgers" is finished ⏹.
 
 ### Parallel Burgers
 
 Now let's imagine these aren't "Concurrent Burgers", but "Parallel Burgers".
 
-You go with your crush 😍 to get parallel fast food 🍔.
+You go with your crush to get parallel fast food.
 
-You stand in line while several (let's say 8) cashiers that at the same time are cooks 👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳 take the orders from the people in front of you.
+You stand in line while several (let's say 8) cashiers that at the same time are cooks take the orders from the people in front of you.
 
-Everyone before you is waiting 🕙 for their burgers 🍔 to be ready before leaving the counter because each of the 8 cashiers goes and prepares the burger right away before getting the next order.
+Everyone before you is waiting for their burgers to be ready before leaving the counter because each of the 8 cashiers goes and prepares the burger right away before getting the next order.
 
-Then it's finally your turn, you place your order of 2 very fancy burgers 🍔 for your crush 😍 and you.
+<img src="/img/async/parallel-burgers/parallel-burgers-01.png" class="illustration">
+
+Then it's finally your turn, you place your order of 2 very fancy burgers for your crush and you.
 
 You pay 💸.
 
-The cashier goes to the kitchen 👨‍🍳.
+<img src="/img/async/parallel-burgers/parallel-burgers-02.png" class="illustration">
+
+The cashier goes to the kitchen.
+
+You wait, standing in front of the counter 🕙, so that no one else takes your burgers before you do, as there are no numbers for turns.
+
+<img src="/img/async/parallel-burgers/parallel-burgers-03.png" class="illustration">
+
+As you and your crush are busy not letting anyone get in front of you and take your burgers whenever they arrive, you cannot pay attention to your crush. 😞
+
+This is "synchronous" work, you are "synchronized" with the cashier/cook 👨‍🍳. You have to wait 🕙 and be there at the exact moment that the cashier/cook 👨‍🍳 finishes the burgers and gives them to you, or otherwise, someone else might take them.
 
-You wait, standing in front of the counter 🕙, so that no one else takes your burgers 🍔 before you do, as there are no numbers for turns.
+<img src="/img/async/parallel-burgers/parallel-burgers-04.png" class="illustration">
 
-As you and your crush 😍 are busy not letting anyone get in front of you and take your burgers whenever they arrive 🕙, you cannot pay attention to your crush 😞.
+Then your cashier/cook 👨‍🍳 finally comes back with your burgers, after a long time waiting 🕙 there in front of the counter.
 
-This is "synchronous" work, you are "synchronized" with the cashier/cook 👨‍🍳. You have to wait 🕙 and be there at the exact moment that the cashier/cook 👨‍🍳 finishes the burgers 🍔 and gives them to you, or otherwise, someone else might take them.
+<img src="/img/async/parallel-burgers/parallel-burgers-05.png" class="illustration">
 
-Then your cashier/cook 👨‍🍳 finally comes back with your burgers 🍔, after a long time waiting 🕙 there in front of the counter.
+You take your burgers and go to the table with your crush.
 
-You take your burgers 🍔 and go to the table with your crush 😍.
+You just eat them, and you are done. ⏹
 
-You just eat them, and you are done 🍔 ⏹.
+<img src="/img/async/parallel-burgers/parallel-burgers-06.png" class="illustration">
 
-There was not much talk or flirting as most of the time was spent waiting 🕙 in front of the counter 😞.
+There was not much talk or flirting as most of the time was spent waiting 🕙 in front of the counter. 😞
 
 ---
 
-In this scenario of the parallel burgers, you are a computer / program 🤖 with two processors (you and your crush 😍), both waiting 🕙 and dedicating their attention ⏯ to be "waiting on the counter" 🕙 for a long time.
+In this scenario of the parallel burgers, you are a computer / program 🤖 with two processors (you and your crush), both waiting 🕙 and dedicating their attention ⏯ to be "waiting on the counter" 🕙 for a long time.
 
-The fast food store has 8 processors (cashiers/cooks) 👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳. While the concurrent burgers store might have had only 2 (one cashier and one cook) 💁 👨‍🍳.
+The fast food store has 8 processors (cashiers/cooks). While the concurrent burgers store might have had only 2 (one cashier and one cook).
 
-But still, the final experience is not the best 😞.
+But still, the final experience is not the best. 😞
 
 ---
 
-This would be the parallel equivalent story for burgers 🍔.
+This would be the parallel equivalent story for burgers. 🍔
 
 For a more "real life" example of this, imagine a bank.
 
@@ -238,7 +262,7 @@ You could have turns as in the burgers example, first the living room, then the
 
 It would take the same amount of time to finish with or without turns (concurrency) and you would have done the same amount of work.
 
-But in this case, if you could bring the 8 ex-cashier/cooks/now-cleaners 👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳👩‍🍳👨‍🍳, and each one of them (plus you) could take a zone of the house to clean it, you could do all the work in **parallel**, with the extra help, and finish much sooner.
+But in this case, if you could bring the 8 ex-cashier/cooks/now-cleaners, and each one of them (plus you) could take a zone of the house to clean it, you could do all the work in **parallel**, with the extra help, and finish much sooner.
 
 In this scenario, each one of the cleaners (including you) would be a processor, doing their part of the job.
 
index 226ca2b11028c7238733fb2754b119eaa388127f..066b51725ecce56f30e1b2c245e4b24b402ee0f2 100644 (file)
@@ -139,3 +139,8 @@ code {
 .md-content__inner h1 {
   direction: ltr !important;
 }
+
+.illustration {
+  margin-top: 2em;
+  margin-bottom: 2em;
+}
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png
new file mode 100644 (file)
index 0000000..e0e77d3
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-01.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png
new file mode 100644 (file)
index 0000000..27f6e12
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-02.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-03.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-03.png
new file mode 100644 (file)
index 0000000..27472a8
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-03.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-04.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-04.png
new file mode 100644 (file)
index 0000000..cf1d8dd
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-04.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-05.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-05.png
new file mode 100644 (file)
index 0000000..ab6e036
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-05.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png
new file mode 100644 (file)
index 0000000..4bbf247
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-06.png differ
diff --git a/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-07.png b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-07.png
new file mode 100644 (file)
index 0000000..7a0f409
Binary files /dev/null and b/docs/en/docs/img/async/concurrent-burgers/concurrent-burgers-07.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-01.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-01.png
new file mode 100644 (file)
index 0000000..92fc1a8
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-01.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png
new file mode 100644 (file)
index 0000000..9583b84
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-02.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png
new file mode 100644 (file)
index 0000000..bea9ff0
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-03.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-04.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-04.png
new file mode 100644 (file)
index 0000000..b5c8a60
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-04.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png
new file mode 100644 (file)
index 0000000..45aca8e
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-05.png differ
diff --git a/docs/en/docs/img/async/parallel-burgers/parallel-burgers-06.png b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-06.png
new file mode 100644 (file)
index 0000000..c91c4b4
Binary files /dev/null and b/docs/en/docs/img/async/parallel-burgers/parallel-burgers-06.png differ
index 7adfae0f94c9ea92c141e23404f49c535905b7cf..69ad29624f5a409edb58b307c194216d6fcf3f8b 100644 (file)
@@ -182,6 +182,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 511ea0255217cc7d41e18ce1930fc45d8a008fda..d1d6215b693a2bf1577e283825ff1167cbb5259f 100644 (file)
@@ -85,6 +85,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 7d74e0407758e931042c2dce181bc1dd2cee56c8..7c2fe5eab8719cfcfcb53443ce8986f9e3816560 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index f790c02990785fe874a8cb63ae6c828998156962..53d1b2c58730832d32388aa4bd9a0a5adab8d6de 100644 (file)
@@ -90,6 +90,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 532cc5cab56982f2e967e1e49f449e0aca242fdb..3279099b5abd121337d57059f232dea4bb603069 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 697ecd4cb3bcd238c552700d82571e9861868cf3..abb31252f6ff89fc015ae214387c9428a8bf73a9 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 1f1d0016d3a3f51da810cd040a376651e6afef57..532b5bc52caa0c3f963ac98206a5e0686535e809 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index d96074ef1f5570eb5223f480720506ccf893da0a..985bb24d0b515855451dd383154493d8ae937569 100644 (file)
@@ -117,6 +117,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 4a576baf239ee2eb7314518c3a0dcde321c328e9..70cb419ba1d2242aed51e4c755f53d5c5ebdb30d 100644 (file)
@@ -85,6 +85,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 8831571dd1c5e6244b2be4522b833ea1ad3e59e9..6d46939f93988a6710ab0a05f3cc5939692dbbe2 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 982b1a060c86fc5497a2a4fe6699b693b1be12ae..1cd1294208f8f0784bb603d94e46a04414475299 100644 (file)
@@ -78,6 +78,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index fb95bfe299ef863b3dc213587ca20d2166aa1337..3fb834bed9982a1ffddffd68272d6ea20b4536fb 100644 (file)
@@ -100,6 +100,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 2eb8eb935c436640e07dd7bdc75343e594cfd532..2150d5c19f80c4ac883393665a227009d286f095 100644 (file)
@@ -76,6 +76,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 1d8d9d04e1678be58fa4e25ad8e7b74dd71e3068..b07f3bc6378544d99adab8b92fc499f4ac4edf1f 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 4606c93495b028d0a048db4fe400ad60fb17d139..3332d232d646cac07e23bb8bb8db0dfa0146669c 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index bf66edd68ef48a849028e2fcce807e95d11a98d1..e29d2593650775943c1efcf0f40d508aeb6acd08 100644 (file)
@@ -78,6 +78,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index 3b8475907e5d78b0893bad90fead33c8749a5dfa..7113287710bab5071f7ae2da04f67e3e11079957 100644 (file)
@@ -75,6 +75,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google
index f9bfd6875a3a0d14e8e7455fc94305f00bc0842d..e70ec7698d0a04f17d80b0deaf1fe9fb7d260a24 100644 (file)
@@ -126,6 +126,8 @@ markdown_extensions:
       format: !!python/name:pymdownx.superfences.fence_code_format ''
 - pymdownx.tabbed:
     alternate_style: true
+- attr_list
+- md_in_html
 extra:
   analytics:
     provider: google