diff --git a/_static/pages/01-python-introduction.jpg b/_static/pages/01-python-introduction.jpg
index 72c451e..343f4c4 100644
Binary files a/_static/pages/01-python-introduction.jpg and b/_static/pages/01-python-introduction.jpg differ
diff --git a/_static/pages/02-python-setup.jpg b/_static/pages/02-python-setup.jpg
index cb665e6..ecd4673 100644
Binary files a/_static/pages/02-python-setup.jpg and b/_static/pages/02-python-setup.jpg differ
diff --git a/_static/pages/03-python-project-structure.jpg b/_static/pages/03-python-project-structure.jpg
index 14b13a3..2aa01c9 100644
Binary files a/_static/pages/03-python-project-structure.jpg and b/_static/pages/03-python-project-structure.jpg differ
diff --git a/_static/pages/04-python-interactive-mode.jpg b/_static/pages/04-python-interactive-mode.jpg
index ff5a93a..3af3bec 100644
Binary files a/_static/pages/04-python-interactive-mode.jpg and b/_static/pages/04-python-interactive-mode.jpg differ
diff --git a/_static/pages/05-python-object-oriented-programming-concept.jpg b/_static/pages/05-python-object-oriented-programming-concept.jpg
index f455f3a..29501d5 100644
Binary files a/_static/pages/05-python-object-oriented-programming-concept.jpg and b/_static/pages/05-python-object-oriented-programming-concept.jpg differ
diff --git a/_static/pages/06-python-syntax.jpg b/_static/pages/06-python-syntax.jpg
index 417cfe4..8e06ca8 100644
Binary files a/_static/pages/06-python-syntax.jpg and b/_static/pages/06-python-syntax.jpg differ
diff --git a/_static/pages/07-python-built-in-data-types-1.jpg b/_static/pages/07-python-built-in-data-types-1.jpg
index ceb4e70..588186e 100644
Binary files a/_static/pages/07-python-built-in-data-types-1.jpg and b/_static/pages/07-python-built-in-data-types-1.jpg differ
diff --git a/_static/pages/08-python-built-in-data-types-2.jpg b/_static/pages/08-python-built-in-data-types-2.jpg
index 5785200..ac02f98 100644
Binary files a/_static/pages/08-python-built-in-data-types-2.jpg and b/_static/pages/08-python-built-in-data-types-2.jpg differ
diff --git a/_static/pages/09-python-if-else-for-while.jpg b/_static/pages/09-python-if-else-for-while.jpg
index a109a1b..4cb871e 100644
Binary files a/_static/pages/09-python-if-else-for-while.jpg and b/_static/pages/09-python-if-else-for-while.jpg differ
diff --git a/_static/pages/10-python-input-output-file.jpg b/_static/pages/10-python-input-output-file.jpg
index d0c9d57..207ac76 100644
Binary files a/_static/pages/10-python-input-output-file.jpg and b/_static/pages/10-python-input-output-file.jpg differ
diff --git a/_static/pages/11-python-os-path-math.jpg b/_static/pages/11-python-os-path-math.jpg
index 37e831a..3875430 100644
Binary files a/_static/pages/11-python-os-path-math.jpg and b/_static/pages/11-python-os-path-math.jpg differ
diff --git a/_static/pages/12-python-function.jpg b/_static/pages/12-python-function.jpg
index 3d6942b..a1e1cd9 100644
Binary files a/_static/pages/12-python-function.jpg and b/_static/pages/12-python-function.jpg differ
diff --git a/_static/pages/13-python-function-decorator-generator-coroutine-lambda.jpg b/_static/pages/13-python-function-decorator-generator-coroutine-lambda.jpg
index 6c00feb..17a773e 100644
Binary files a/_static/pages/13-python-function-decorator-generator-coroutine-lambda.jpg and b/_static/pages/13-python-function-decorator-generator-coroutine-lambda.jpg differ
diff --git a/_static/pages/14-python-function-recursive-memoization.jpg b/_static/pages/14-python-function-recursive-memoization.jpg
index eb841fe..849cba1 100644
Binary files a/_static/pages/14-python-function-recursive-memoization.jpg and b/_static/pages/14-python-function-recursive-memoization.jpg differ
diff --git a/_static/pages/15-python-regex-1.jpg b/_static/pages/15-python-regex-1.jpg
index f961315..510794f 100644
Binary files a/_static/pages/15-python-regex-1.jpg and b/_static/pages/15-python-regex-1.jpg differ
diff --git a/_static/pages/16-python-regex-re.jpg b/_static/pages/16-python-regex-re.jpg
index f8c6046..60acec4 100644
Binary files a/_static/pages/16-python-regex-re.jpg and b/_static/pages/16-python-regex-re.jpg differ
diff --git a/_static/pages/17-python-object-oriented-programming-class-object.jpg b/_static/pages/17-python-object-oriented-programming-class-object.jpg
index 2438be0..1bd566c 100644
Binary files a/_static/pages/17-python-object-oriented-programming-class-object.jpg and b/_static/pages/17-python-object-oriented-programming-class-object.jpg differ
diff --git a/_static/pages/18-python-object-oriented-programming-inheritance-mro-mixin.jpg b/_static/pages/18-python-object-oriented-programming-inheritance-mro-mixin.jpg
index f561f39..090c9fb 100644
Binary files a/_static/pages/18-python-object-oriented-programming-inheritance-mro-mixin.jpg and b/_static/pages/18-python-object-oriented-programming-inheritance-mro-mixin.jpg differ
diff --git a/_static/pages/19-python-object-oriented-programming-abstraction-metaclass.jpg b/_static/pages/19-python-object-oriented-programming-abstraction-metaclass.jpg
index ff023c0..dfdd0d8 100644
Binary files a/_static/pages/19-python-object-oriented-programming-abstraction-metaclass.jpg and b/_static/pages/19-python-object-oriented-programming-abstraction-metaclass.jpg differ
diff --git a/_static/pages/20-python-object-oriented-programming-polymorphism-encapsulation.jpg b/_static/pages/20-python-object-oriented-programming-polymorphism-encapsulation.jpg
index 7c409c3..ff8d6bd 100644
Binary files a/_static/pages/20-python-object-oriented-programming-polymorphism-encapsulation.jpg and b/_static/pages/20-python-object-oriented-programming-polymorphism-encapsulation.jpg differ
diff --git a/_static/pages/21-python-object-oriented-programming-property-descriptors.jpg b/_static/pages/21-python-object-oriented-programming-property-descriptors.jpg
index 122bb45..f1a5e94 100644
Binary files a/_static/pages/21-python-object-oriented-programming-property-descriptors.jpg and b/_static/pages/21-python-object-oriented-programming-property-descriptors.jpg differ
diff --git a/_static/pages/22-python-object-oriented-programming-type-hinting-data-class.jpg b/_static/pages/22-python-object-oriented-programming-type-hinting-data-class.jpg
index ed14ec3..9ddfcd4 100644
Binary files a/_static/pages/22-python-object-oriented-programming-type-hinting-data-class.jpg and b/_static/pages/22-python-object-oriented-programming-type-hinting-data-class.jpg differ
diff --git a/_static/pages/23-python-exception-error-warning-try.jpg b/_static/pages/23-python-exception-error-warning-try.jpg
index 0c8ce07..ac58628 100644
Binary files a/_static/pages/23-python-exception-error-warning-try.jpg and b/_static/pages/23-python-exception-error-warning-try.jpg differ
diff --git a/_static/pages/24-python-raise-exception-warning-assertion.jpg b/_static/pages/24-python-raise-exception-warning-assertion.jpg
index 99b4763..e0ba06f 100644
Binary files a/_static/pages/24-python-raise-exception-warning-assertion.jpg and b/_static/pages/24-python-raise-exception-warning-assertion.jpg differ
diff --git a/_static/pages/25-python-date-time-calendar.jpg b/_static/pages/25-python-date-time-calendar.jpg
index 5a4c1b2..35dc266 100644
Binary files a/_static/pages/25-python-date-time-calendar.jpg and b/_static/pages/25-python-date-time-calendar.jpg differ
diff --git a/_templates/sphinx_minoo_theme/includes/header.html b/_templates/sphinx_minoo_theme/includes/header.html
index 7ebcde3..da109bb 100644
--- a/_templates/sphinx_minoo_theme/includes/header.html
+++ b/_templates/sphinx_minoo_theme/includes/header.html
@@ -39,7 +39,7 @@
{% if theme_direction == "ltr" %}
{% else %}
-
+
{% endif %}
{%- block linktags %}
diff --git a/_templates/sphinx_minoo_theme/static/minoo-20210407.css b/_templates/sphinx_minoo_theme/static/minoo-20230203.css
similarity index 84%
rename from _templates/sphinx_minoo_theme/static/minoo-20210407.css
rename to _templates/sphinx_minoo_theme/static/minoo-20230203.css
index f201653..438d9f6 100644
--- a/_templates/sphinx_minoo_theme/static/minoo-20210407.css
+++ b/_templates/sphinx_minoo_theme/static/minoo-20230203.css
@@ -230,7 +230,6 @@ div[class^='highlight']{width:100%;display:inline-block}
td{font-size:14px}
tr.row-even{background-color:#F5F5F5;}
-
/* custome style */
ul li{text-align:justify}
.red{color:#E65100}
@@ -243,167 +242,51 @@ body{font-size:1.5rem}
.reportmenufield:hover{border-right:5px #f48fb1 solid !important}
.exercisesmenufield{background-color:#ef5350 !important}
.exercisesmenufield:hover{border-right:5px #ef9a9a solid !important}
-h1 a.toc-backref, h2 a.toc-backref{color:#fff !important}
-
-
-
-.footer-donate {
- color: #fff !important;
- background-color: #616161 !important;
- padding:32px;
- display: block;
- width: 100%;
- text-align:center;
-}
-
-.footer-donate h3 {
- border: none !important;
- background: transparent;
-color: #fff !important;
-}
-
-.footer-donate p {
- margin: 0 !important;
- text-align: center !important;
- font-size:14px;
-}
-
-.footer-donate a.donate-box {
-display: block;
- width: 100%;
- float: none;
- padding: 1.5rem;
- background-color: #4CAF50;
- color: #fff;
- font-weight: 800;
- text-align: center;
- font-size: 20px;
- box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.1);
- height: auto;
-}
-
-.footer-donate i {
- font-size: 35px;
-}
-
-i {
- vertical-align: bottom !important;
-}
-
-
-.top-fixed .top-banner {
- position: fixed;
- background: #fff;
- z-index: 9;
- right: 0;
- top: 0;
- left: 0;
- right: 18%;
-
- max-width: 772px;
-}
-
-.top-banner {
-
-transition:all .2s ease;
-}
-
-.top-fixed #body-donate {
- margin-bottom:0;
-}
-
-.top-fixed .text-content {
-margin-top:100px;
-}
-
-.donate-badge{
- position: fixed;
- bottom: 12px;
- z-index: 999999;
- left: 40px;
- display:none;
- transition:all .2s ease;
-}
-
-.donate-badge.active {
- display:block;
-}
-
-#sidebar-bottom-list ul li {
- font-size: 12px;
-text-align: inherit;
-}
-
-.toctree-wrapper ul li {
-text-align: inherit;
-}
-
-.side-top-link {
- color: #fff;
- text-align: center;
- display: block;
- padding: 8px;
- position: fixed;
- bottom: 38px;
- background: #5C6BC0;
- width: 300px;
- right: -300px;
- font-size: 85%;
-}
+h1 a.toc-backref h2 a.toc-backref{color:#fff !important}
+.footer-donate {color:#fff !important;background-color:#616161 !important;padding:32px;display:block;width:100%;text-align:center;}
+.footer-donate h3{border:none !important;background:transparent;color:#fff !important;}
+.footer-donate p{margin:0 !important;text-align:center !important;font-size:14px;}
+.footer-donate a.donate-box{display:block;width:100%;float:none;padding:1.5rem;background-color:#4CAF50;color:#fff;font-weight:800;text-align:center;font-size:20px;box-shadow:0px 8px 15px rgba(0, 0, 0, 0.1);height:auto;}
+.footer-donate i{font-size:35px;}
+i{vertical-align:bottom !important;}
+.top-fixed .top-banner{position:fixed;background:#fff;z-index:9;right:0;top: 0;left:0;right:18%;max-width:772px;}
+.top-banner{transition:all .2s ease;}
+.top-fixed #body-donate{margin-bottom:0;}
+.top-fixed .text-content{margin-top:100px;}
+.donate-badge{position:fixed;bottom: 12px;z-index: 999999;left:40px;display:none;transition:all .2s ease;}
+.donate-badge.active{display:block;}
+#sidebar-bottom-list ul li{font-size:12px;text-align:inherit;}
+.toctree-wrapper ul li{text-align:inherit;}
+.side-top-link{color:#fff;text-align:center;display:block;padding:8px;position:fixed;bottom:38px;background:#5C6BC0;width:300px;right:-300px;font-size:85%;}
#page.toggled .side-top-link{right:0}
+.top-links{display:inline-block;float:left;height:32px;width:auto;}
+.top-links a{display:block;height:32px;width:auto;padding:2px 10px;cursor:pointer;color:#fff;}
+.top-red a{background-color:#b41474;}
+.top-green a{background-color:#4CAF50;margin:0px 2px;}
+.top-blue a{background-color:#009ca7;}
+.top-red a:hover,.top-green a:hover,.top-blue a:hover{color:#000;}
+ul li p:last-child{margin-bottom: 24px !important;}
+a.side-donate{background-color:#66BB6A;margin:0px 2px;color:white;padding:2px 10px;}
+a.hover{background-color:#4CAF50;}
+@media screen and (max-width:768px){.top-red{display:none !important;}}
+.page-image{max-height:100%;max-width:100%;height:auto;display:inline-block;}
-
-
-.top-links {
- display:inline-block;float:left;height:32px;width:auto;
-}
-.top-links a {
- display:block;height:32px;width:auto;padding:2px 10px;cursor:pointer;color:#fff;
-}
-.top-red a {
- background-color:#b41474;
-}
-.top-green a {
- background-color:#4CAF50;
- margin:0px 2px;
-}
-.top-blue a {
- background-color:#009ca7;
-}
-.top-red a:hover, .top-green a:hover, .top-blue a:hover{color:#000;}
-@media screen and (max-width: 768px) {
- .top-red{display:none !important;}
-}
-
-ul li p:last-child {margin-bottom: 24px !important;}
-
-a.side-donate{
- background-color: #66BB6A;
- margin: 0px 2px;
- color: white;
- padding: 2px 10px;
-}
-
-a.hover{
- background-color: #4CAF50;
-}
/* -------- make other colors -------- */
-
-.toctree-wrapper li.make-red >a {background-color: #ec407a;}
-.toctree-wrapper .make-red >a:hover {border-right: 5px #f48fb1 solid;}
-.toctree-wrapper li.make-red.toctree-l1 i {color: #f48fb1!important;}
-.toctree-wrapper li.make-red>ul>li>a {background-color: #f48fb1;}
-.toctree-wrapper li.make-red>ul>li>a:hover {border-right: 5px #ec407a solid;}
-
-.toctree-wrapper li.make-green >a {background-color: #00695c;}
-.toctree-wrapper .make-green >a:hover {border-right: 5px #4db6ac solid;}
-.toctree-wrapper li.make-green.toctree-l1 i {color: #4db6ac!important;}
-.toctree-wrapper li.make-green>ul>li>a {background-color: #4db6ac;}
-.toctree-wrapper li.make-green>ul>li>a:hover {border-right: 5px #00695c solid;}
-
-.toctree-wrapper li.make-black >a {background-color: #37474f;}
-.toctree-wrapper .make-black >a:hover {border-right: 5px #90a4ae solid;}
-.toctree-wrapper li.make-black.toctree-l1 i {color: #90a4ae!important;}
-.toctree-wrapper li.make-black>ul>li>a {background-color: #90a4ae;}
-.toctree-wrapper li.make-black>ul>li>a:hover {border-right: 5px #37474f solid;}
+.toctree-wrapper li.make-red >a{background-color:#ec407a;}
+.toctree-wrapper .make-red >a:hover{border-right:5px #f48fb1 solid;}
+.toctree-wrapper li.make-red.toctree-l1 i{color:#f48fb1!important;}
+.toctree-wrapper li.make-red>ul>li>a{background-color:#f48fb1;}
+.toctree-wrapper li.make-red>ul>li>a:hover{border-right:5px #ec407a solid;}
+
+.toctree-wrapper li.make-green >a{background-color:#00695c;}
+.toctree-wrapper .make-green >a:hover{border-right:5px #4db6ac solid;}
+.toctree-wrapper li.make-green.toctree-l1 i{color:#4db6ac!important;}
+.toctree-wrapper li.make-green>ul>li>a{background-color:#4db6ac;}
+.toctree-wrapper li.make-green>ul>li>a:hover{border-right:5px #00695c solid;}
+
+.toctree-wrapper li.make-black >a{background-color:#37474f;}
+.toctree-wrapper .make-black >a:hover{border-right:5px #90a4ae solid;}
+.toctree-wrapper li.make-black.toctree-l1 i{color:#90a4ae!important;}
+.toctree-wrapper li.make-black>ul>li>a{background-color:#90a4ae;}
+.toctree-wrapper li.make-black>ul>li>a:hover{border-right:5px #37474f solid;}
diff --git a/lessons/l02.rst b/lessons/l02.rst
index 6e7cf4c..e6bcf30 100644
--- a/lessons/l02.rst
+++ b/lessons/l02.rst
@@ -12,6 +12,7 @@
.. figure:: /_static/pages/02-python-setup.jpg
:align: center
:alt: نصب و راهاندازی پایتون
+ :class: page-image
Photo by `Bermix Studio `__
diff --git a/lessons/l03.rst b/lessons/l03.rst
index 2d51160..326836e 100644
--- a/lessons/l03.rst
+++ b/lessons/l03.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/03-python-project-structure.jpg
:align: center
:alt: چگونگی ایجاد و اجرای یک پروژه پایتون
+ :class: page-image
Photo by `Sam Moqadam `__
diff --git a/lessons/l04.rst b/lessons/l04.rst
index 16841e6..e4c15ab 100644
--- a/lessons/l04.rst
+++ b/lessons/l04.rst
@@ -13,6 +13,7 @@
.. figure:: /_static/pages/04-python-interactive-mode.jpg
:align: center
:alt: برنامهنویسی تعاملی با پایتون (interactive)
+ :class: page-image
Photo by `Anton Maksimov juvnsky `__
diff --git a/lessons/l05.rst b/lessons/l05.rst
index 9e40657..3b5b6e7 100644
--- a/lessons/l05.rst
+++ b/lessons/l05.rst
@@ -12,6 +12,7 @@
.. figure:: /_static/pages/05-python-object-oriented-programming-concept.jpg
:align: center
:alt: مفهوم شی گرایی (Object-Oriented Programming)
+ :class: page-image
Photo by `Lucas Benjamin `__
diff --git a/lessons/l06.rst b/lessons/l06.rst
index e0868ab..d49e6ae 100644
--- a/lessons/l06.rst
+++ b/lessons/l06.rst
@@ -12,6 +12,7 @@
.. figure:: /_static/pages/06-python-syntax.jpg
:align: center
:alt: سینتکس یا دستور نحو زبان پایتون
+ :class: page-image
Photo by `Tim J `__
diff --git a/lessons/l07.rst b/lessons/l07.rst
index ac60f89..70dfc1d 100644
--- a/lessons/l07.rst
+++ b/lessons/l07.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/07-python-built-in-data-types-1.jpg
:align: center
:alt: انواع داده یا شی در پایتون: عددی و رشته
+ :class: page-image
Photo by `Kristian Strand `__
diff --git a/lessons/l08.rst b/lessons/l08.rst
index 0639298..60b80f5 100644
--- a/lessons/l08.rst
+++ b/lessons/l08.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/08-python-built-in-data-types-2.jpg
:align: center
:alt: انواع داده یا شی در پایتون: set ،dict ،tuple، list و None
+ :class: page-image
Photo by `Natalia Y `__
diff --git a/lessons/l09.rst b/lessons/l09.rst
index 1d2f5c0..56c87be 100644
--- a/lessons/l09.rst
+++ b/lessons/l09.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/09-python-if-else-for-while.jpg
:align: center
:alt: دستورهای کنترلی در پایتون
+ :class: page-image
Photo by `Lynda Sanchez `__
diff --git a/lessons/l10.rst b/lessons/l10.rst
index 9a6ea83..8d4797f 100644
--- a/lessons/l10.rst
+++ b/lessons/l10.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/10-python-input-output-file.jpg
:align: center
:alt: فایل، ورودی و خروجی در پایتون - input, print, file
+ :class: page-image
Photo by `Mr Cup / Fabien Barral `__
diff --git a/lessons/l11.rst b/lessons/l11.rst
index e0f2fd1..3e04993 100644
--- a/lessons/l11.rst
+++ b/lessons/l11.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/11-python-os-path-math.jpg
:align: center
:alt: کتابخانه استاندارد پایتون: math و os
+ :class: page-image
Photo by `Yousef Espanioly `__
diff --git a/lessons/l12.rst b/lessons/l12.rst
index 604c179..7f6f189 100644
--- a/lessons/l12.rst
+++ b/lessons/l12.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/12-python-function.jpg
:align: center
:alt: تابع در پایتون: تعریف، ارسال و تطابق آرگومانها
+ :class: page-image
Photo by `Josue Isai Ramos Figueroa `__
diff --git a/lessons/l13.rst b/lessons/l13.rst
index 479e0ab..0a0acd5 100644
--- a/lessons/l13.rst
+++ b/lessons/l13.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/13-python-function-decorator-generator-coroutine-lambda.jpg
:align: center
:alt: تابع در پایتون: Coroutine ،Generator ،Decorator و lambda
+ :class: page-image
Photo by `Bill Oxford `__
diff --git a/lessons/l14.rst b/lessons/l14.rst
index 6ae9a3e..7ec4f15 100644
--- a/lessons/l14.rst
+++ b/lessons/l14.rst
@@ -12,6 +12,7 @@
.. figure:: /_static/pages/14-python-function-recursive-memoization.jpg
:align: center
:alt: تابع در پایتون: تابع بازگشتی (Recursive) و Memoization
+ :class: page-image
Photo by `Dan Freeman `__
diff --git a/lessons/l15.rst b/lessons/l15.rst
index 97a8f4b..cf13702 100644
--- a/lessons/l15.rst
+++ b/lessons/l15.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/15-python-regex-1.jpg
:align: center
:alt: عبارات با قاعده (Regular Expression) یا RegEx در پایتون
+ :class: page-image
Photo by `Ehud Neuhaus `__
diff --git a/lessons/l16.rst b/lessons/l16.rst
index d3b453c..0a6ef65 100644
--- a/lessons/l16.rst
+++ b/lessons/l16.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/16-python-regex-re.jpg
:align: center
:alt: کتابخانه استاندارد پایتون: re
+ :class: page-image
Photo by `Markus Winkler `__
diff --git a/lessons/l17.rst b/lessons/l17.rst
index 1ebe440..4fde805 100644
--- a/lessons/l17.rst
+++ b/lessons/l17.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/17-python-object-oriented-programming-class-object.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: تعریف کلاس و ایجاد شی
+ :class: page-image
Photo by `Sarah Kilian `__
diff --git a/lessons/l18.rst b/lessons/l18.rst
index 4985227..3558573 100644
--- a/lessons/l18.rst
+++ b/lessons/l18.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/18-python-object-oriented-programming-inheritance-mro-mixin.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: وراثت (Inheritance)، Association و Mixin
+ :class: page-image
Photo by `Vidar Nordli-Mathisen `__
diff --git a/lessons/l19.rst b/lessons/l19.rst
index 60e89dc..db92567 100644
--- a/lessons/l19.rst
+++ b/lessons/l19.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/19-python-object-oriented-programming-abstraction-metaclass.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: متا کلاس (Metaclass) و انتزاع (Abstraction)
+ :class: page-image
Photo by `Giancarlo Revolledo `__
diff --git a/lessons/l20.rst b/lessons/l20.rst
index b394a34..b5ee47b 100644
--- a/lessons/l20.rst
+++ b/lessons/l20.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/20-python-object-oriented-programming-polymorphism-encapsulation.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: Encapsulation و چندریختی (Polymorphism)
+ :class: page-image
Photo by `sanjiv nayak `__
diff --git a/lessons/l21.rst b/lessons/l21.rst
index cf58c71..4c45e5c 100644
--- a/lessons/l21.rst
+++ b/lessons/l21.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/21-python-object-oriented-programming-property-descriptors.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: __Descriptors ، Context Manager ،Decorator ،__slots و property@
+ :class: page-image
Photo by `Mathyas Kurmann `__
diff --git a/lessons/l22.rst b/lessons/l22.rst
index 672a230..7ddaf51 100644
--- a/lessons/l22.rst
+++ b/lessons/l22.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/22-python-object-oriented-programming-type-hinting-data-class.jpg
:align: center
:alt: شی گرایی (OOP) در پایتون: Type Hinting و دیتا کلاس (Data Class)
+ :class: page-image
Photo by `Stefan Widua `__
diff --git a/lessons/l23.rst b/lessons/l23.rst
index e6c51d1..9bcd03c 100644
--- a/lessons/l23.rst
+++ b/lessons/l23.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/23-python-exception-error-warning-try.jpg
:align: center
:alt: مدیریت خطا در پایتون: Exception ،Traceback و Exception Handling و try/except/else/finally
+ :class: page-image
Photo by `krakenimages `__
diff --git a/lessons/l24.rst b/lessons/l24.rst
index 6c3a69e..b12d16f 100644
--- a/lessons/l24.rst
+++ b/lessons/l24.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/24-python-raise-exception-warning-assertion.jpg
:align: center
:alt: مدیریت خطا در پایتون:Warning ،raise Exception و Assertion
+ :class: page-image
Photo by `Sandy Manoa `__
diff --git a/lessons/l25.rst b/lessons/l25.rst
index bd1afdc..b1d28df 100644
--- a/lessons/l25.rst
+++ b/lessons/l25.rst
@@ -11,6 +11,7 @@
.. figure:: /_static/pages/25-python-date-time-calendar.jpg
:align: center
:alt: زمان در پایتون: ماژول datetime و timezone, timedelta, tzinfo
+ :class: page-image
Photo by `Niloofar Kanani `__