diff --git a/examples/porenetwork_upscaling/README.md b/examples/porenetwork_upscaling/README.md
index 92b1b7c60a5f4e8a003cb93fff0aea4f53bb9344..50076569d5e19463beaebbf7653fa137b9777387 100644
--- a/examples/porenetwork_upscaling/README.md
+++ b/examples/porenetwork_upscaling/README.md
@@ -46,11 +46,11 @@ Furthermore, the ratio of apparent permeability to Darcy permeability is plotted
     </center>
 </figure>
 
-In addition, in Fig. 3, the inverse of the apparent permeability versus $`\varrho v /\mu`$ is plotted to compare the data from the pore-network model simulation and the data obtained by applying the Forchheimer equation using the Forchheimer permeability and coefficient. As evident in the figure, the Forchheimer equation is not able to accurately predict the flow behavior in the low-velocity regime. 
+In addition, in Fig. 3, the inverse of the apparent permeability versus $`\varrho v /\mu`$ is plotted to compare the data from the pore-network model simulation and the data obtained by applying the Forchheimer equation using the Forchheimer permeability and coefficient. As evident in the figure, the Forchheimer equation is not able to accurately predict the flow behavior in the low-velocity regime.
 <figure>
     <center>
         <img src="img/inverse_apppermeability_versus_rhovmu-1.png" alt="Inverse of apparent permeability vs. rhovmu-1" width="60%"/>
-        <figcaption> <b> Fig.3 </b> - Inverse of apparent permeability versus &#961v / &#956. 
+        <figcaption> <b> Fig.3 </b> - Inverse of apparent permeability versus &#961v / &#956.
         </figcaption>
     </center>
 </figure>
@@ -67,7 +67,7 @@ __Table of contents__. This description is structured as follows:
 We consider a single-phase problem within a randomly generated pore network of 20x20x20 pores cubed from which some of the pore throats were [deleted randomly](https://doi.org/10.1029/2010WR010180).
 The inscribed pore body radii follow a truncated log-normal distribution.
 To calculate the upscaled properties, $`10`$ pressure differences in the range of $`10`$ to $`10^{10}`$ Pa/m are applied sequentially in directions specified by the user by setting the parameter `Problem.Directions` in the `params.input` file, while all lateral sides are closed.
-The resulting mass flow rates are then used to determine upscaled properties as described [later](upscalinghelper.md).
+The resulting mass flow rates are then used to determine upscaled properties as described [later](doc/upscalinghelper.md).
 
 ## Mathematical and numerical model
 
@@ -81,19 +81,19 @@ where $`Q_{ij}`$ is the discrete volume flow rate in a throat connecting pore bo
 ```math
  Q_{ij} = g_{ij} (p_i - p_j),
 ```
-or 
+or
 
 ```math
  (p_i - p_j) = Q_{ij} / g_{ij} .
 ```
 
-In the simulation of non-creeping flow, to capture inertial effects in fluid flow, an extension of the Hagen-Poiseuille-type law which includes the expansion and contraction of the pore space when moving from a throat to a pore and vice versa. 
+In the simulation of non-creeping flow, to capture inertial effects in fluid flow, an extension of the Hagen-Poiseuille-type law which includes the expansion and contraction of the pore space when moving from a throat to a pore and vice versa.
 
 ```math
   (p_i - p_j) = Q_{ij} / g_{ij}  + (C_{exp} + C_{cont})Q^2,
 ```
 
-where $`C_{exp}`$ and $`C_{cont}`$ are the expansion and the contraction coefficient, respectively. 
+where $`C_{exp}`$ and $`C_{cont}`$ are the expansion and the contraction coefficient, respectively.
 
 # Implementation & Post processing
 
diff --git a/examples/porenetwork_upscaling/doc/_intro.md b/examples/porenetwork_upscaling/doc/_intro.md
index 12706ab5826d4fafb61bd7feb561f3c5bc3fedf3..376f3c0363c1880adc08cea0a8b7a93bf40623e2 100644
--- a/examples/porenetwork_upscaling/doc/_intro.md
+++ b/examples/porenetwork_upscaling/doc/_intro.md
@@ -44,11 +44,11 @@ Furthermore, the ratio of apparent permeability to Darcy permeability is plotted
     </center>
 </figure>
 
-In addition, in Fig. 3, the inverse of the apparent permeability versus $`\varrho v /\mu`$ is plotted to compare the data from the pore-network model simulation and the data obtained by applying the Forchheimer equation using the Forchheimer permeability and coefficient. As evident in the figure, the Forchheimer equation is not able to accurately predict the flow behavior in the low-velocity regime. 
+In addition, in Fig. 3, the inverse of the apparent permeability versus $`\varrho v /\mu`$ is plotted to compare the data from the pore-network model simulation and the data obtained by applying the Forchheimer equation using the Forchheimer permeability and coefficient. As evident in the figure, the Forchheimer equation is not able to accurately predict the flow behavior in the low-velocity regime.
 <figure>
     <center>
         <img src="img/inverse_apppermeability_versus_rhovmu-1.png" alt="Inverse of apparent permeability vs. rhovmu-1" width="60%"/>
-        <figcaption> <b> Fig.3 </b> - Inverse of apparent permeability versus &#961v / &#956. 
+        <figcaption> <b> Fig.3 </b> - Inverse of apparent permeability versus &#961v / &#956.
         </figcaption>
     </center>
 </figure>
@@ -65,7 +65,7 @@ __Table of contents__. This description is structured as follows:
 We consider a single-phase problem within a randomly generated pore network of 20x20x20 pores cubed from which some of the pore throats were [deleted randomly](https://doi.org/10.1029/2010WR010180).
 The inscribed pore body radii follow a truncated log-normal distribution.
 To calculate the upscaled properties, $`10`$ pressure differences in the range of $`10`$ to $`10^{10}`$ Pa/m are applied sequentially in directions specified by the user by setting the parameter `Problem.Directions` in the `params.input` file, while all lateral sides are closed.
-The resulting mass flow rates are then used to determine upscaled properties as described [later](upscalinghelper.md).
+The resulting mass flow rates are then used to determine upscaled properties as described [later](doc/upscalinghelper.md).
 
 ## Mathematical and numerical model
 
@@ -79,19 +79,19 @@ where $`Q_{ij}`$ is the discrete volume flow rate in a throat connecting pore bo
 ```math
  Q_{ij} = g_{ij} (p_i - p_j),
 ```
-or 
+or
 
 ```math
  (p_i - p_j) = Q_{ij} / g_{ij} .
 ```
 
-In the simulation of non-creeping flow, to capture inertial effects in fluid flow, an extension of the Hagen-Poiseuille-type law which includes the expansion and contraction of the pore space when moving from a throat to a pore and vice versa. 
+In the simulation of non-creeping flow, to capture inertial effects in fluid flow, an extension of the Hagen-Poiseuille-type law which includes the expansion and contraction of the pore space when moving from a throat to a pore and vice versa.
 
 ```math
   (p_i - p_j) = Q_{ij} / g_{ij}  + (C_{exp} + C_{cont})Q^2,
 ```
 
-where $`C_{exp}`$ and $`C_{cont}`$ are the expansion and the contraction coefficient, respectively. 
+where $`C_{exp}`$ and $`C_{cont}`$ are the expansion and the contraction coefficient, respectively.
 
 # Implementation & Post processing
 
diff --git a/examples/porenetwork_upscaling/doc/main.md b/examples/porenetwork_upscaling/doc/main.md
index 644ed99c6d9e432cccaeb9cff77078ce8b8c77ed..5d646066be7573fdda261ec0081a0986eee98053 100644
--- a/examples/porenetwork_upscaling/doc/main.md
+++ b/examples/porenetwork_upscaling/doc/main.md
@@ -187,7 +187,7 @@ Get the maximum and minimum pressure gradient and the population of sample point
     const int numberOfSamples = getParam<int>("Problem.NumberOfPressureGradients", 1);
 ```
 
-Iterate over all directions specified before, apply several pressure gradient, calculated the mass flux
+Iterate over all directions specified before, apply several pressure gradients, calculate the mass flux
 and finally determine the the upscaled properties.
 
 ```cpp
diff --git a/examples/porenetwork_upscaling/doc/problem.md b/examples/porenetwork_upscaling/doc/problem.md
index 778c5e350e2312437d4b6ab3ff471134ff713589..f6d1871a922662bd686e1d7e1d5a8d510459cfbf 100644
--- a/examples/porenetwork_upscaling/doc/problem.md
+++ b/examples/porenetwork_upscaling/doc/problem.md
@@ -78,7 +78,7 @@ The classes that define the problem and parameters used in this simulation
 ### `TypeTag` definition
 Two `TypeTag` for our simulation are defined, one for creeping flow and another for non-creeping flow,
 which inherit properties from the single-phase pore network model. The non-creeping flow inherits
-all properties from the creeping flow simulation but sets an own property for the `AdvectionType`.
+all properties from the creeping flow simulation but overrides the `AdvectionType` property.
 
 ```cpp
 namespace Dumux::Properties {
@@ -337,6 +337,11 @@ Return the label of outlet pores assuming a previously set direction.
         static constexpr std::array<int, 3> label = {2, 4, 6};
         return label[direction_];
     }
+```
+
+</details>
+
+```cpp
 
 private:
 
@@ -355,11 +360,7 @@ private:
         else
             return scv.dofPosition()[direction_] > this->gridGeometry().bBoxMax()[direction_] - eps_;
     }
-```
-
-private data members
 
-```cpp
     Scalar eps_;
     Scalar pressureGradient_;
     int direction_;
@@ -370,6 +371,7 @@ private data members
 } // end namespace Dumux
 ```
 
+</details>
 
 </details>
 
diff --git a/examples/porenetwork_upscaling/doc/upscalinghelper.md b/examples/porenetwork_upscaling/doc/upscalinghelper.md
index 3dc54ece3a25b6014f235489c26047db26a1fb27..377b6493311fc12c90da43a5ec04cece9e8e9824 100644
--- a/examples/porenetwork_upscaling/doc/upscalinghelper.md
+++ b/examples/porenetwork_upscaling/doc/upscalinghelper.md
@@ -255,11 +255,12 @@ We determine the domain side length by using the bounding box of the network
     {
         directions_ = directions;
     }
-    // [[codeblock]]
+```
+
+### Save the relevant data for plot of permeability ratio vs. Forchheimer number
 
+```cpp
 private:
-    // ### Save the relevant data for plot of permeability ratio vs. Forchheimer number
-    // [[codeblock]]
     void writePermeabilityratioVsForchheimerNumber_(std::size_t dirIdx)
     {
         // open a logfile
@@ -379,6 +380,7 @@ private:
     }
 ```
 
+<details><summary> Click to show private data members</summary>
 
 ```cpp
     std::array<std::vector<Scalar>, 3> samplePointsX_;
@@ -397,7 +399,7 @@ private:
 } // end namespace Dumux
 ```
 
-[[/codeblock]]
+</details>
 
 </details>
 
diff --git a/examples/porenetwork_upscaling/main.cc b/examples/porenetwork_upscaling/main.cc
index 8700416a4ebd77aafe14d2a3fc48b8c7ab9207a8..e58ea99b662b5af9caa1e2f62eb6b9a07649293f 100644
--- a/examples/porenetwork_upscaling/main.cc
+++ b/examples/porenetwork_upscaling/main.cc
@@ -151,7 +151,7 @@ void runExample()
     const int numberOfSamples = getParam<int>("Problem.NumberOfPressureGradients", 1);
     // [[/codeblock]]
 
-    // Iterate over all directions specified before, apply several pressure gradient, calculated the mass flux
+    // Iterate over all directions specified before, apply several pressure gradients, calculate the mass flux
     // and finally determine the the upscaled properties.
     // [[codeblock]]
     const auto directions = getParam<std::vector<std::size_t>>("Problem.Directions", std::vector<std::size_t>{0, 1, 2});
diff --git a/examples/porenetwork_upscaling/problem.hh b/examples/porenetwork_upscaling/problem.hh
index 304e3a5b14e841346edb0ca66bdb4bdf60285caf..7715fea0a22acdffac3a96f534ac58a7ed35a092 100644
--- a/examples/porenetwork_upscaling/problem.hh
+++ b/examples/porenetwork_upscaling/problem.hh
@@ -162,6 +162,7 @@ public:
         return label[direction_];
     }
 
+// [[/details]] private class members
 private:
 
     bool isInletPore_(const SubControlVolume& scv) const
@@ -180,7 +181,6 @@ private:
             return scv.dofPosition()[direction_] > this->gridGeometry().bBoxMax()[direction_] - eps_;
     }
 
-    // private data members
     Scalar eps_;
     Scalar pressureGradient_;
     int direction_;
@@ -189,5 +189,6 @@ private:
 };
 
 } // end namespace Dumux
+// [[/details]]
 // [[/content]]
 #endif
diff --git a/examples/porenetwork_upscaling/properties.hh b/examples/porenetwork_upscaling/properties.hh
index eadd77d200b98bf34701d53f3e64c6ba28814c7d..46111ffe8c6751fdb2e32a6a921d23919b3f190c 100644
--- a/examples/porenetwork_upscaling/properties.hh
+++ b/examples/porenetwork_upscaling/properties.hh
@@ -49,7 +49,7 @@
 // ### `TypeTag` definition
 // Two `TypeTag` for our simulation are defined, one for creeping flow and another for non-creeping flow,
 // which inherit properties from the single-phase pore network model. The non-creeping flow inherits
-// all properties from the creeping flow simulation but sets an own property for the `AdvectionType`.
+// all properties from the creeping flow simulation but overrides the `AdvectionType` property.
 namespace Dumux::Properties {
 namespace TTag {
 struct PNMUpscalingCreepingFlow { using InheritsFrom = std::tuple<PNMOneP>; };
diff --git a/examples/porenetwork_upscaling/upscalinghelper.hh b/examples/porenetwork_upscaling/upscalinghelper.hh
index c9ed4eabd505f807d70790618a6d196b2bfb58d5..de73b17179377b6d05df8f8f9cd33c427bbd3c1b 100644
--- a/examples/porenetwork_upscaling/upscalinghelper.hh
+++ b/examples/porenetwork_upscaling/upscalinghelper.hh
@@ -207,11 +207,11 @@ public:
     {
         directions_ = directions;
     }
-    // [[codeblock]]
+    // [[/codeblock]]
 
-private:
     // ### Save the relevant data for plot of permeability ratio vs. Forchheimer number
     // [[codeblock]]
+private:
     void writePermeabilityratioVsForchheimerNumber_(std::size_t dirIdx)
     {
         // open a logfile
@@ -325,6 +325,8 @@ private:
         }
     }
     // [[/codeblock]]
+    // [[details]] private data members
+    // [[codeblock]]
     std::array<std::vector<Scalar>, 3> samplePointsX_;
     std::array<std::vector<Scalar>, 3> samplePointsY_;
     std::array<std::vector<Scalar>, 3>totalPressureDrop_;
@@ -340,5 +342,6 @@ private:
 
 } // end namespace Dumux
 // [[/codeblock]]
+// [[/details]]
 // [[/content]]
 #endif