diff --git a/docs/docs.user.stock.accounting_for_stock.md b/docs/docs.user.stock.accounting_for_stock.md
deleted file mode 100644
index bf91fe5..0000000
--- a/docs/docs.user.stock.accounting_for_stock.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-{
-	"_label": "Accounting of Inventory / Stock"
-}
----
-
-The value of available inventory is treated as an Asset in company's Chart of Accounts. Depending on the type of items, it can be treated as Fixed Asset or Current Asset. To prepare Balance Sheet, you should make the accounting entries for those assets. 
-There are generally two different methods of accounting for inventory:
-
-
-### **Auto / Perpetual Inventory**
-
-In this process, for each stock transactions, the system posts relevant accounting entries to sync stock balance and accounting balance. This is the default setting in ERPNext for new accounts.
-
-When you buy and receive items, those items are booked as the company’s assets (stock-in-hand / fixed-assets). When you sell and deliver those items, an expense (cost-of-goods-sold) equal to the buying cost of the items is booked. General Ledger entries are made after every stock transaction.  As a result, the value as per Stock Ledger always remains same with the relevant account balance. This improves accuracy of Balance Sheet and Profit and Loss statement.
-
-To check accounting entries for a particular stock transaction, please check [**examples**](docs.user.stock.perpetual_inventory.html)
-
-#### **Advantages**
-
-Perpetual Inventory system will make it easier for you to maintain accuracy of company's asset and expense values. Stock balances will always be synced with relevant account balances, so no more periodic manual entry has to be done to balance them.
-
-In case of new back-dated stock transactions or cancellation/amendment of an existing transaction, all the future Stock Ledger entries and GL Entries will be recalculated for all items of that transaction.
-The same is applicable if any cost is added to the submitted Purchase Receipt, later through the Landed Cost Wizard.
-
->Note: Perpetual Inventory totally depends upon the item valuation rate. Hence, you have to be more careful entering valuation rate while making any incoming stock transactions like Purchase Receipt, Material Receipt, or Manufacturing / Repack.
-
--
-
-### **Periodic Inventory**
-
-In this method, accounting entries are manually created periodically, to sync stock balance and relevant account balance. The system does not create accounting entries automatically for assets, at the time of material purchases or sales.
-
-In an accounting period, when you buy and receive items, an expense is booked in your accounting system. You sell and deliver some of these items.
-
-At the end of an accounting period, the total value of items to be sold, need to be booked as the company’s assets, often known as stock-in-hand. 
-
-The difference between the value of the items remaining to be sold and the previous period’s stock-in-hand value can be positive or negative. If positive, this value is removed from expenses (cost-of-goods-sold) and is added to assets (stock-in-hand / fixed-assets). If negative, a reverse entry is passed. 
-
-This complete process is called Periodic Inventory.
-
-If you are an existing user using Periodic Inventory and want to use Perpetual Inventory, you have to follow some steps to migrate. For details, check [**Migration From Periodic Inventory**](docs.user.stock.perpetual_inventory.html)
diff --git a/docs/docs.user.stock.perpetual_inventory.md b/docs/docs.user.stock.perpetual_inventory.md
deleted file mode 100644
index eb10326..0000000
--- a/docs/docs.user.stock.perpetual_inventory.md
+++ /dev/null
@@ -1,313 +0,0 @@
----
-{
-	"_label": "Perpetual Inventory"
-}
----
-
-In perpetual inventory, system creates accounting entries for each stock transactions, so that stock and account balance will always remain same. The account balance will be posted against their respective account heads for each Warehouse. On saving of a Warehouse, the system will automatically create an account head with the same name as warehouse. As account balance is maintained for each Warehouse, you should create Warehouses, based on the type of items (Current / Fixed Assets) it stores.
-
-At the time of items received in a particular warehouse, the balance of asset account (linked to that warehouse) will be increased. Similarly when you deliver some items from that warehouse, an expense will be booked and the asset account will be reduced, based on the valuation amount of those items.
-
-
-## **Activation**
-
-1. Setup the following default accounts for each Company 
-	- Stock Received But Not Billed
-	- Stock Adjustment Account
-	- Expenses Included In Valuation
-	- Cost Center
-	
-2. In perpetual inventory, the system will maintain seperate account balance for each warehouse under separate account head. To create that account head, enter "Create Account Under" in Warehouse master.
-
-3. Activate Perpetual Inventory
-> Setup > Accounts Settings > Make Accounting Entry For Every Stock Movement
-
-
--
-
-## **Example**
-
-Consider following Chart of Accounts and Warehouse setup for your company:
-
-#### Chart of Accounts
-
-- Assets (Dr)
-  - Current Assets
-    - Accounts Receivable
-      - Jane Doe
-    - Stock Assets
-      - Stores
-      - Finished Goods
-      - Work In Progress
-    - Tax Assets
-      - VAT
-  - Fixed Assets
-    - Fixed Asset Warehouse
-- Liabilities (Cr)
-  - Current Liabilities
-    - Accounts Payable
-      - East Wind Inc.
-    - Stock Liabilities
-      - Stock Received But Not Billed
-    - Tax Liabilities
-      - Service Tax
-- Income (Cr)
-  - Direct Income
-    - Sales Account
-- Expenses (Dr)
-  - Direct Expenses
-    - Stock Expenses
-      - Cost of Goods Sold
-      - Expenses Included In Valuation
-      - Stock Adjustment
-      - Shipping Charges
-      - Customs Duty
-  
-#### Warehouse - Account Configuration
-
-- Stores
-- Work In Progress
-- Finished Goods
-- Fixed Asset Warehouse
-
-### **Purchase Receipt**
-
-Suppose you have purchased *10 nos* of item "RM0001" at *$200* and *5 nos* of item "Desktop" at **$100** from supplier "East Wind Inc". Following are the details of Purchase Receipt:
-
-<b>Supplier:</b> East Wind Inc.
-
-<b>Items:</b>
-<table class="table table-bordered">
-	<thead>
-		<tr>
-			<th>Item</th><th>Warehouse</th><th>Qty</th>
-			<th>Rate</th><th>Amount</th><th>Valuation Amount</th>
-		</tr>
-	</thead>
-	<tbody>
-		<tr>
-			<td>RM0001</td><td>Stores</td><td>10</td><td>200</td><td>2000</td><td>2200</td>
-		</tr>
-		<tr>
-			<td>Desktop</td><td>Fixed Asset Warehouse</td>
-			<td>5</td><td>100</td><td>500</td><td>550</td>
-		</tr>
-	</tbody>
-</table>
-	
-**Taxes:**
-
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Account</th><th>Amount</th><th>Category</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>Shipping Charges</td><td>100</td><td>Total and Valuation</td></tr>
-		<tr><td>VAT</td><td>120</td><td>Total</td></tr>
-		<tr><td>Customs Duty</td><td>150</td><td>Valuation</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![pr_stock_ledger](img/accounting-for-stock-2.png)
-
-**General Ledger**
-
-![pr_general_ledger](img/accounting-for-stock-3.png)
-
-As stock balance increases through Purchase Receipt, "Store" and "Fixed Asset Warehouse" accounts are debited and a temporary account "Stock Receipt But Not Billed" account is credited, to maintain double entry accounting system.
-
-
---
-
-### **Purchase Invoice**
-
-On receiving Bill from supplier, for the above Purchase Receipt, you will make Purchase Invoice for the same. The general ledger entries are as follows:
-
-**General Ledger**
-
-![pi_general_ledger](img/accounting-for-stock-4.png)
-
-
-Here "Stock Received But Not Billed" account is debited and nullified the effect of Purchase Receipt. "Expenses Included In Valuation" account has been credited which ensures the valuation expense accounts are not booked (debited) twice (in Purchase Invoice and Delivery Note).
-
---
-
-### **Delivery Note**
-
-Lets say, you have an order from "Jane Doe" to deliver 5 nos of item "RM0001" at $300. Following are the details of Delivery Note:
-
-**Customer:** Jane Doe
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>5</td><td>300</td><td>1500</td></tr>
-	</tbody>
-</table>
-	
-**Taxes:**
-
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Account</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>Service Tax</td><td>150</td></tr>
-		<tr><td>VAT</td><td>100</td></tr>
-	</tbody>
-</table>
-
-
-**Stock Ledger**
-
-![dn_stock_ledger](img/accounting-for-stock-5.png)
-
-**General Ledger**
-
-![dn_general_ledger](img/accounting-for-stock-6.png)
-
-As item is delivered from "Stores" warehouse, "Stores" account is credited and equal amount is debited to the expense account "Cost of Goods Sold". The debit/credit amount is equal to the total valuation amount (buying cost) of the selling items. And valuation amount is calculated based on your prefferred valuation method (FIFO / Moving Average) or actual cost of serialized items.
-<pre>
-	<code>
-In this example, we have considered valuation method as FIFO. 
-Valuation Rate 	= Purchase Rate + Charges Included in Valuation 
-				= 200 + (250 * (2000 / 2500) / 10) 
-				= 220
-Total Valuation Amount 	= 220 * 5 
-						= 1100
-	</code>
-</pre>
-
---
-
-### **Sales Invoice with Update Stock**
-
-Lets say, you did not make Delivery Note against the above order and instead you have made Sales Invoice directly, with "Update Stock" options.  The details of the Sales Invoice are same as the above Delivery Note.
-
-**Stock Ledger**
-
-![si_stock_ledger](img/accounting-for-stock-7.png)
-
-**General Ledger**
-
-![si_general_ledger](img/accounting-for-stock-8.png)
-
-Here, apart from normal account entries for invoice, "Stores" and "Cost of Goods Sold" accounts are also affected based on the valuation amount.
-
---
-
-### **Stock Entry (Material Receipt)**
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>50</td><td>220</td><td>11000</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![mr_stock_ledger](img/accounting-for-stock-9.png)
-
-**General Ledger**
-
-![mr_stock_ledger](img/accounting-for-stock-10.png)
- 
---
-
-### **Stock Entry (Material Issue)**
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>10</td><td>220</td><td>2200</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![mi_stock_ledger](img/accounting-for-stock-11.png)
-
-**General Ledger**
-
-![mi_stock_ledger](img/accounting-for-stock-12.png)
-
---
-
-### **Stock Entry (Material Transfer)**
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Source Warehouse</th><th>Target Warehouse</th>
-		<th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>Work In Progress</td>
-		<td>10</td><td>220</td><td>2200</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![mtn_stock_ledger](img/accounting-for-stock-13.png)
-
-**General Ledger**
-
-![mtn_general_ledger](img/accounting-for-stock-14.png)
-
---
-
-### **Stock Entry (Sales Return - Sales Invoice booked)**
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>2</td><td>200</td><td>400</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![sret_stock_ledger](img/accounting-for-stock-15.png)
-
-**General Ledger**
-
-![sret_general_ledger](img/accounting-for-stock-16.png)
-
-
---
-
-### **Stock Entry (Purchase Return)**
-
-**Items:**
-<table class="table table-bordered">
-	<thead>
-		<tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
-	</thead>
-	<tbody>
-		<tr><td>RM0001</td><td>Stores</td><td>4</td><td>220</td><td>880</td></tr>
-	</tbody>
-</table>
-
-**Stock Ledger**
-
-![pret_stock_ledger](img/accounting-for-stock-17.png)
-
-**General Ledger**
-
-![pret_general_ledger](img/accounting-for-stock-18.png)
diff --git a/docs/user/customer_portal/docs.user.customer_portal.md b/docs/user/customer_portal/docs.user.customer_portal.md
index fc886f1..54d6e30 100644
--- a/docs/user/customer_portal/docs.user.customer_portal.md
+++ b/docs/user/customer_portal/docs.user.customer_portal.md
@@ -4,7 +4,7 @@
 	"_toc": [
 		"docs.user.customer_portal.sign_up",
 		"docs.user.customer_portal.login",
-		"docs.user.customer_portal.orders",
+		"docs.user.customer_portal.order",
 		"docs.user.customer_portal.tickets"
 	]
 }
diff --git a/docs/user/customize/docs.user.customize.modules.md b/docs/user/customize/docs.user.customize.modules.md
deleted file mode 100644
index 8bd21b6..0000000
--- a/docs/user/customize/docs.user.customize.modules.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-{
-	"_label": "Hiding Modules and Features "
-}
----
-### Hiding Unused Features
-
-As you have seen from this manual that ERPNext contains tons of features which you may not use. We have observed that most users start with using 20% of the features, though a different 20%. To hide fields belonging to features you dont require, go to:
-
-> Setup > Customize ERPNext > Disable Features.
-
-Check / uncheck the features you want to use and refresh your page for the changes to take effect.
-
----
-
-### Hiding Module Icons
-
-To hide modules (icons) from the home page, go to:
-
-Setup > Customize ERPNext > Modules Setup
-
-> Note: Modules are automatically hidden for users that have no permissions on the documents within that module. For example, if a user has no permissions on Purchase Order, Purchase Request, Supplier, the “Buying” module will automatically be hidden.
diff --git a/docs/user/projects/docs.user.projects.md b/docs/user/projects/docs.user.projects.md
index beeeb0b..5c5bdf7 100644
--- a/docs/user/projects/docs.user.projects.md
+++ b/docs/user/projects/docs.user.projects.md
@@ -2,7 +2,7 @@
 {
 	"_label": "Projects",
 	"_toc": [
-		"docs.user.projects.projects",
+		"docs.user.projects.project",
 		"docs.user.projects.task",
 		"docs.user.projects.timelog"
 	]
diff --git a/docs/user/projects/docs.user.projects.projects.md b/docs/user/projects/docs.user.projects.projects.md
index 9bcda3d..5376b0a 100644
--- a/docs/user/projects/docs.user.projects.projects.md
+++ b/docs/user/projects/docs.user.projects.projects.md
@@ -1,6 +1,6 @@
 ---
 {
-	"_label": "Projects"
+	"_label": "Project"
 }
 ---
 
diff --git a/docs/user/website/docs.user.website.blog.md b/docs/user/website/docs.user.website.blog_post.md
similarity index 95%
rename from docs/user/website/docs.user.website.blog.md
rename to docs/user/website/docs.user.website.blog_post.md
index b71836e..706492f 100644
--- a/docs/user/website/docs.user.website.blog.md
+++ b/docs/user/website/docs.user.website.blog_post.md
@@ -1,6 +1,6 @@
 ---
 {
-	"_label": "Blog"
+	"_label": "Blog Post"
 }
 ---
 Blogs are a great way to share your thoughts about your business and keep your customers and readers updated of what you are up to.
diff --git a/docs/user/website/docs.user.website.md b/docs/user/website/docs.user.website.md
index 2e9cfc2..60d4b15 100644
--- a/docs/user/website/docs.user.website.md
+++ b/docs/user/website/docs.user.website.md
@@ -5,7 +5,7 @@
 		"docs.user.website.setup",
 		"docs.user.website.web_page",
 		"docs.user.website.style",
-		"docs.user.website.blog",
+		"docs.user.website.blog_post",
 		"docs.user.website.add_products_to_website"
 	]
 }
