diff --git a/erpnext/docs/user/manual/de/customize-erpnext/print-format.md b/erpnext/docs/user/manual/de/customize-erpnext/print-format.md
index 85b1589..9448201 100644
--- a/erpnext/docs/user/manual/de/customize-erpnext/print-format.md
+++ b/erpnext/docs/user/manual/de/customize-erpnext/print-format.md
@@ -29,7 +29,7 @@
 ### Referenzen
 
 1. [Programmiersprache Jinja Templating: Referenz](http://jinja.pocoo.org/docs/templates/)
-1. [Bootstrap CSS Framework](http://getbootstrap.com/)
+2. [Bootstrap CSS Framework](http://getbootstrap.com/)
 
 ### Druckeinstellungen
 
@@ -41,45 +41,45 @@
 
 ### Beispiel
 
-<h3>{{ doc.select<em>print</em>heading or "Invoice" }}</h3>
-    <div class="row">
-        <div class="col-md-3 text-right">Customer Name</div>
-        <div class="col-md-9">{{ doc.customer<em>name }}</div>
-    </div>
-    <div class="row">
-        <div class="col-md-3 text-right">Date</div>
-        <div class="col-md-9">{{ doc.get</em>formatted("invoice<em>date") }}</div>
-    </div>
-    <table class="table table-bordered">
-        <tbody>
-            <tr>
-                <th>Sr</th>
-                <th>Item Name</th>
-                <th>Description</th>
-                <th class="text-right">Qty</th>
-                <th class="text-right">Rate</th>
-                <th class="text-right">Amount</th>
-            </tr>
-            {%- for row in doc.items -%}
-            <tr>
-                <td style="width: 3%;">{{ row.idx }}</td>
-                <td style="width: 20%;">
-                    {{ row.item</em>name }}
-                    {% if row.item<em>code != row.item</em>name -%}
-                    <br>Item Code: {{ row.item<em>code}}
-                    {%- endif %}
-                </td>
-                <td style="width: 37%;">
-                    <div style="border: 0px;">{{ row.description }}</div></td>
-                <td style="width: 10%; text-align: right;">{{ row.qty }} {{ row.uom or row.stock</em>uom }}</td>
-                <td style="width: 15%; text-align: right;">{{
-                    row.get<em>formatted("rate", doc) }}</td>
-                <td style="width: 15%; text-align: right;">{{
-                    row.get</em>formatted("amount", doc) }}</td>
-            </tr>
-            {%- endfor -%}
-        </tbody>
-    </table>
+ {% raw %}<h3>{{ doc.select_print_heading or "Invoice" }}</h3>
+ <div class="row">
+    <div class="col-md-3 text-right">Customer Name</div>
+    <div class="col-md-9">{{ doc.customer_name }}</div>
+ </div>
+ <div class="row">
+    <div class="col-md-3 text-right">Date</div>
+    <div class="col-md-9">{{ doc.get_formatted("invoice_date") }}</div>
+ </div>
+ <table class="table table-bordered">
+    <tbody>
+        <tr>
+            <th>Sr</th>
+            <th>Item Name</th>
+            <th>Description</th>
+            <th class="text-right">Qty</th>
+            <th class="text-right">Rate</th>
+            <th class="text-right">Amount</th>
+        </tr>
+        {%- for row in doc.items -%}
+        <tr>
+            <td style="width: 3%;">{{ row.idx }}</td>
+            <td style="width: 20%;">
+                {{ row.item_name }}
+                {% if row.item_code != row.item_name -%}
+                <br>Item Code: {{ row.item_code}}
+                {%- endif %}
+            </td>
+            <td style="width: 37%;">
+                <div style="border: 0px;">{{ row.description }}</div></td>
+            <td style="width: 10%; text-align: right;">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>
+            <td style="width: 15%; text-align: right;">{{
+                row.get_formatted("rate", doc) }}</td>
+            <td style="width: 15%; text-align: right;">{{
+                row.get_formatted("amount", doc) }}</td>
+        </tr>
+        {%- endfor -%}
+    </tbody>
+    </table>{% endraw %}
 
 ### Anmerkungen
 
diff --git a/erpnext/docs/user/manual/de/setting-up/print/address-template.md b/erpnext/docs/user/manual/de/setting-up/print/address-template.md
index fd9db98..b3f37f7 100644
--- a/erpnext/docs/user/manual/de/setting-up/print/address-template.md
+++ b/erpnext/docs/user/manual/de/setting-up/print/address-template.md
@@ -15,17 +15,15 @@
 
 Hier sehen Sie die Standardvorlage:
 
-
-
-{{ address_line1 }}<br>
-{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
-{{ city }}<br>
-{% if state %}{{ state }}<br>{% endif -%}
-{% if pincode %}PIN:  {{ pincode }}<br>{% endif -%}
-{{ country }}<br>
-{% if phone %}Phone: {{ phone }}<br>{% endif -%}
-{% if fax %}Fax: {{ fax }}<br>{% endif -%}
-{% if email_id %}Email: {{ email_id }}<br>{% endif -%}
+	{% raw %}{{ address_line1 }}<br>
+	{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
+	{{ city }}<br>
+	{% if state %}{{ state }}<br>{% endif -%}
+	{% if pincode %}PIN:  {{ pincode }}<br>{% endif -%}
+	{{ country }}<br>
+	{% if phone %}Phone: {{ phone }}<br>{% endif -%}
+	{% if fax %}Fax: {{ fax }}<br>{% endif -%}
+	{% if email_id %}Email: {{ email_id }}<br>{% endif -%}{% endraw %}
 
 
 ### Beispiel
diff --git a/erpnext/docs/user/manual/en/CRM/index.md b/erpnext/docs/user/manual/en/CRM/index.md
index 20639a9..e394333 100644
--- a/erpnext/docs/user/manual/en/CRM/index.md
+++ b/erpnext/docs/user/manual/en/CRM/index.md
@@ -1,4 +1,5 @@
 #CRM
+# CRM
 
 ERPNext helps you track business **Opportunities** from **Leads** and
 **Customers**, send them **Quotations** and make confirmed **Sales Orders**.
diff --git a/erpnext/docs/user/manual/en/customize-erpnext/print-format.md b/erpnext/docs/user/manual/en/customize-erpnext/print-format.md
index f0ca942..123a613 100644
--- a/erpnext/docs/user/manual/en/customize-erpnext/print-format.md
+++ b/erpnext/docs/user/manual/en/customize-erpnext/print-format.md
@@ -1,5 +1,3 @@
-<!-- no-jinja -->
-
 Print Formats are the layouts that are generated when you want to Print or
 Email a transaction like a Sales Invoice. There are two types of Print
 Formats,
@@ -36,8 +34,8 @@
 
 #### References
 
-1. [Jinja Tempalting Language: Reference](http://jinja.pocoo.org/docs/templates/)
-1. [Bootstrap CSS Framework](http://getbootstrap.com/)
+1. [Jinja Templating Language: Reference](http://jinja.pocoo.org/docs/templates/)
+2. [Bootstrap CSS Framework](http://getbootstrap.com/)
 
 #### Print Settings
 
@@ -49,47 +47,45 @@
 
 #### Example
 
-{% set example = '''<h3>{{ doc.select_print_heading or "Invoice" }}</h3>
-	<div class="row">
-		<div class="col-md-3 text-right">Customer Name</div>
-		<div class="col-md-9">{{ doc.customer_name }}</div>
-	</div>
-	<div class="row">
-		<div class="col-md-3 text-right">Date</div>
-		<div class="col-md-9">{{ doc.get_formatted("invoice_date") }}</div>
-	</div>
-	<table class="table table-bordered">
-		<tbody>
-			<tr>
-				<th>Sr</th>
-				<th>Item Name</th>
-				<th>Description</th>
-				<th class="text-right">Qty</th>
-				<th class="text-right">Rate</th>
-				<th class="text-right">Amount</th>
-			</tr>
-			{%- for row in doc.items -%}
-			<tr>
-				<td style="width: 3%;">{{ row.idx }}</td>
-				<td style="width: 20%;">
-					{{ row.item_name }}
-					{% if row.item_code != row.item_name -%}
-					<br>Item Code: {{ row.item_code}}
-					{%- endif %}
-				</td>
-				<td style="width: 37%;">
-					<div style="border: 0px;">{{ row.description }}</div></td>
-				<td style="width: 10%; text-align: right;">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>
-				<td style="width: 15%; text-align: right;">{{
-					row.get_formatted("rate", doc) }}</td>
-				<td style="width: 15%; text-align: right;">{{
-					row.get_formatted("amount", doc) }}</td>
-			</tr>
-			{%- endfor -%}
-		</tbody>
-	</table>''' %}
-
-    {{ example|e }}
+		{% raw %}<h3>{{ doc.select_print_heading or "Invoice" }}</h3>
+		<div class="row">
+			<div class="col-md-3 text-right">Customer Name</div>
+			<div class="col-md-9">{{ doc.customer_name }}</div>
+		</div>
+		<div class="row">
+			<div class="col-md-3 text-right">Date</div>
+			<div class="col-md-9">{{ doc.get_formatted("invoice_date") }}</div>
+		</div>
+		<table class="table table-bordered">
+			<tbody>
+				<tr>
+					<th>Sr</th>
+					<th>Item Name</th>
+					<th>Description</th>
+					<th class="text-right">Qty</th>
+					<th class="text-right">Rate</th>
+					<th class="text-right">Amount</th>
+				</tr>
+				{%- for row in doc.items -%}
+				<tr>
+					<td style="width: 3%;">{{ row.idx }}</td>
+					<td style="width: 20%;">
+						{{ row.item_name }}
+						{% if row.item_code != row.item_name -%}
+						<br>Item Code: {{ row.item_code}}
+						{%- endif %}
+					</td>
+					<td style="width: 37%;">
+						<div style="border: 0px;">{{ row.description }}</div></td>
+					<td style="width: 10%; text-align: right;">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>
+					<td style="width: 15%; text-align: right;">{{
+						row.get_formatted("rate", doc) }}</td>
+					<td style="width: 15%; text-align: right;">{{
+						row.get_formatted("amount", doc) }}</td>
+				</tr>
+				{%- endfor -%}
+			</tbody>
+		</table>{% endraw %}
 
 #### Notes
 
diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
index 1a5d13a..4caffbc 100644
--- a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
+++ b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
@@ -3,12 +3,12 @@
 You can configure various email alerts in your system to remind you of important activities such as:
 
 1. Completion date of a Task.
-1. Expected Delivery Date of a Sales Order.
-1. Expected Payment Date.
-1. Reminder of followup.
-1. If an Order greater than a particular value is received or sent.
-1. Expiry notification for a Contract.
-1. Completion / Status change of a Task.
+2. Expected Delivery Date of a Sales Order.
+3. Expected Payment Date.
+4. Reminder of followup.
+5. If an Order greater than a particular value is received or sent.
+6. Expiry notification for a Contract.
+7. Completion / Status change of a Task.
 
 For this, you need to setup an Email Alert.
 
@@ -19,14 +19,14 @@
 To setup an Email Alert:
 
 1. Select which Document Type you want watch changes on
-1. Define what events you want to watch. Events are:
+2. Define what events you want to watch. Events are:
 	1. New: When a new document of the selected type is made.
 	2. Save / Submit / Cancel: When a document of the selected type is saved, submitted, cancelled.
 	3. Value Change: When a particular value in the selected type changes.
 	4. Days Before / Days After: Trigger this alert a few days before or after the **Reference Date.** To set the days, set **Days Before or After**. This can be useful in reminding you of upcoming due dates or reminding you to follow up on certain leads of quotations.
-1. Set additional conditions if you want.
-1. Set the recipients of this alert. The recipient could either be a field of the document or a list of fixed email ids.
-1. Compose the message
+3. Set additional conditions if you want.
+4. Set the recipients of this alert. The recipient could either be a field of the document or a list of fixed email ids.
+5. Compose the message
 
 
 ### Setting a Subject
@@ -40,13 +40,13 @@
 
 <img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/email/email-alert-condition.png">
 
-The above example will send an Email Alert when a Task is saved with the status "Open" and the Expected End Date for the Task is the date on or before the date on which it was saved on. 
+The above example will send an Email Alert when a Task is saved with the status "Open" and the Expected End Date for the Task is the date on or before the date on which it was saved on.
 
 ### Setting a Message
 
-You can use both Jinja Tags (`{{ doc.[field_name] }}`) and HTML tags in the message textbox. 
+You can use both Jinja Tags (`{{ doc.[field_name] }}`) and HTML tags in the message textbox.
 
-	<h3>Order Overdue</h3>
+	{% raw %}<h3>Order Overdue</h3>
 
 	<p>Transaction {{ doc.name }} has exceeded Due Date. Please take necessary action.</p>
 
@@ -60,8 +60,7 @@
 	<ul>
 	<li>Customer: {{ doc.customer }}
 	<li>Amount: {{ doc.total_amount }}
-	</ul>
-
+	</ul>{% endraw %}
 
 ---
 
diff --git a/erpnext/docs/user/manual/en/setting-up/print/address-template.md b/erpnext/docs/user/manual/en/setting-up/print/address-template.md
index c2b9bb7..53dfef1 100644
--- a/erpnext/docs/user/manual/en/setting-up/print/address-template.md
+++ b/erpnext/docs/user/manual/en/setting-up/print/address-template.md
@@ -14,7 +14,7 @@
 
 Here is the default template:
 
-	{{ address_line1 }}<br>
+	{% raw %}{{ address_line1 }}<br>
 	{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}
 	{{ city }}<br>
 	{% if state %}{{ state }}<br>{% endif -%}
@@ -22,7 +22,7 @@
 	{{ country }}<br>
 	{% if phone %}Phone: {{ phone }}<br>{% endif -%}
 	{% if fax %}Fax: {{ fax }}<br>{% endif -%}
-	{% if email_id %}Email: {{ email_id }}<br>{% endif -%}
+	{% if email_id %}Email: {{ email_id }}<br>{% endif -%}{% endraw %}
 
 ### Example
 
