diff --git a/c.html.markdown b/c.html.markdown
index 132f75dc..b5286f70 100644
--- a/c.html.markdown
+++ b/c.html.markdown
@@ -1,4 +1,6 @@
---
+name: c
+category: language
language: c
filename: learnc.c
contributors:
diff --git a/visualbasic.html.markdown b/visualbasic.html.markdown
new file mode 100644
index 00000000..fbfa500d
--- /dev/null
+++ b/visualbasic.html.markdown
@@ -0,0 +1,281 @@
+---
+language: Visual Basic
+contributors:
+ - ["Brian Martin", "http://brianmartin.biz"]
+filename: learnvisualbasic.vb
+---
+
+```vb
+Module Module1
+
+ Sub Main()
+ ' A Quick Overview of Visual Basic Console Applications before we dive
+ ' in to the deep end.
+ ' Apostrophe starts comments.
+ ' To Navigate this tutorial within the Visual Basic Complier, I've put
+ ' together a navigation system.
+ ' This navigation system is explained however as we go deeper into this
+ ' tutorial, you'll understand what it all means.
+ Console.Title = ("Learn X in Y Minutes")
+ Console.WriteLine("NAVIGATION") 'Display
+ Console.WriteLine("")
+ Console.ForegroundColor = ConsoleColor.Green
+ Console.WriteLine("1. Hello World Output")
+ Console.WriteLine("2. Hello World Input")
+ Console.WriteLine("3. Calculating Whole Numbers")
+ Console.WriteLine("4. Calculating Decimal Numbers")
+ Console.WriteLine("5. Working Calculator")
+ Console.WriteLine("6. Using Do While Loops")
+ Console.WriteLine("7. Using For While Loops")
+ Console.WriteLine("8. Conditional Statements")
+ Console.WriteLine("9. Select A Drink")
+ Console.WriteLine("50. About")
+ Console.WriteLine("Please Choose A Number From The Above List")
+ Dim selection As String = Console.ReadLine
+ Select Case selection
+ Case "1" 'HelloWorld Output
+ Console.Clear() 'Clears the application and opens the private sub
+ HelloWorldOutput() 'Name Private Sub, Opens Private Sub
+ Case "2" 'Hello Input
+ Console.Clear()
+ HelloWorldInput()
+ Case "3" 'Calculating Whole Numbers
+ Console.Clear()
+ CalculatingWholeNumbers()
+ Case "4" 'Calculting Decimal Numbers
+ Console.Clear()
+ CalculatingDecimalNumbers()
+ Case "5" 'Working Calcculator
+ Console.Clear()
+ WorkingCalculator()
+ Case "6" 'Using Do While Loops
+ Console.Clear()
+ UsingDoWhileLoops()
+ Case "7" 'Using For While Loops
+ Console.Clear()
+ UsingForLoops()
+ Case "8" 'Conditional Statements
+ Console.Clear()
+ ConditionalStatement()
+ Case "9" 'If/Else Statement
+ Console.Clear()
+ IfElseStatement() 'Select a drink
+ Case "50" 'About msg box
+ Console.Clear()
+ Console.Title = ("Learn X in Y Minutes :: About")
+ MsgBox("This tutorial is by Brian Martin (@BrianMartinn")
+ Console.Clear()
+ Main()
+ Console.ReadLine()
+
+ End Select
+ End Sub
+
+ 'One - I'm using numbers to help with the above navigation when I come back
+ 'later to build it.
+
+ 'We use private subs to seperate different sections of the program.
+ Private Sub HelloWorldOutput()
+ 'Title of Console Application
+ Console.Title = "Hello World Ouput | Learn X in Y Minutes"
+ 'Use Console.Write("") or Console.WriteLine("") to print outputs.
+ 'Followed by Console.Read() alternatively Console.Readline()
+ 'Console.ReadLine() prints the output to the console.
+ Console.WriteLine("Hello World")
+ Console.ReadLine()
+ End Sub
+
+ 'Two
+ Private Sub HelloWorldInput()
+ Console.Title = "Hello World YourName | Learn X in Y Minutes"
+ ' Variables
+ ' Data entered by a user needs to be stored.
+ ' Variables also start with a Dim and end with an As VariableType.
+
+ ' In this tutorial, we want to know what your name, and make the program
+ ' respond to what is said.
+ Dim username As String
+ 'We use string as string is a text based variable.
+ Console.WriteLine("Hello, What is your name? ") 'Ask the user their name.
+ username = Console.ReadLine() 'Stores the users name.
+ Console.WriteLine("Hello " + username) 'Output is Hello 'Their name'
+ Console.ReadLine() 'Outsputs the above.
+ 'The above will ask you a question followed by printing your answer.
+ 'Other variables include Integer and we use Integer for whole numbers.
+ End Sub
+
+ 'Three
+ Private Sub CalculatingWholeNumbers()
+ Console.Title = "Calculating Whole Numbers | Learn X in Y Minutes"
+ Console.Write("First number: ") 'Enter a whole number, 1, 2, 50, 104 ect
+ Dim a As Integer = Console.ReadLine()
+ Console.Write("Second number: ") 'Enter second whole number.
+ Dim b As Integer = Console.ReadLine()
+ Dim c As Integer = a + b
+ Console.WriteLine(c)
+ Console.ReadLine()
+ 'The above is a simple calculator
+ End Sub
+
+ 'Four
+ Private Sub CalculatingDecimalNumbers()
+ Console.Title = "Calculating with Double | Learn X in Y Minutes"
+ 'Of course we would like to be able to add up decimals.
+ 'Therefore we could change the above from Integer to Double.
+
+ 'Enter a whole number, 1.2, 2.4, 50.1, 104.9 ect
+ Console.Write("First number: ")
+ Dim a As Double = Console.ReadLine
+ Console.Write("Second number: ") 'Enter second whole number.
+ Dim b As Double = Console.ReadLine
+ Dim c As Double = a + b
+ Console.WriteLine(c)
+ Console.ReadLine()
+ 'Therefore the above program can add up 1.1 - 2.2
+ End Sub
+
+ 'Five
+ Private Sub WorkingCalculator()
+ Console.Title = "The Working Calculator| Learn X in Y Minutes"
+ 'However if you'd like the calculator to subtract, divide, multiple and
+ 'add up.
+ 'Copy and paste the above again.
+ Console.Write("First number: ")
+ Dim a As Double = Console.ReadLine
+ Console.Write("Second number: ") 'Enter second whole number.
+ Dim b As Integer = Console.ReadLine
+ Dim c As Integer = a + b
+ Dim d As Integer = a * b
+ Dim e As Integer = a - b
+ Dim f As Integer = a / b
+
+ 'By adding the below lines we are able to calculate the subtract,
+ 'multply as well as divide the a and b values
+ Console.Write(a.ToString() + " + " + b.ToString())
+ 'We want to pad the answers to the left by 3 spaces.
+ Console.WriteLine(" = " + c.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " * " + b.ToString())
+ Console.WriteLine(" = " + d.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " - " + b.ToString())
+ Console.WriteLine(" = " + e.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " / " + b.ToString())
+ Console.WriteLine(" = " + e.ToString.PadLeft(3))
+ Console.ReadLine()
+
+ End Sub
+
+ 'Six
+ Private Sub UsingDoWhileLoops()
+ 'Just as the previous private sub
+ 'This Time We Ask If The User Wishes To Continue (Yes or No?)
+ 'We're using Do While Loop as we're unsure if the user wants to use the
+ 'program more than once.
+ Console.Title = "UsingDoWhileLoops | Learn X in Y Minutes"
+ Dim answer As String 'We use the variable "String" as the answer is text
+ Do 'We start the program with
+ Console.Write("First number: ")
+ Dim a As Double = Console.ReadLine
+ Console.Write("Second number: ")
+ Dim b As Integer = Console.ReadLine
+ Dim c As Integer = a + b
+ Dim d As Integer = a * b
+ Dim e As Integer = a - b
+ Dim f As Integer = a / b
+
+ Console.Write(a.ToString() + " + " + b.ToString())
+ Console.WriteLine(" = " + c.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " * " + b.ToString())
+ Console.WriteLine(" = " + d.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " - " + b.ToString())
+ Console.WriteLine(" = " + e.ToString.PadLeft(3))
+ Console.Write(a.ToString() + " / " + b.ToString())
+ Console.WriteLine(" = " + e.ToString.PadLeft(3))
+ Console.ReadLine()
+ 'Ask the question, does the user wish to continue? Unfortunately it
+ 'is case sensitive.
+ Console.Write("Would you like to continue? (yes / no)")
+ 'The program grabs the variable and prints and starts again.
+ answer = Console.ReadLine
+ 'The command for the variable to work would be in this case "yes"
+ Loop While answer = "yes"
+
+ End Sub
+
+ 'Seven
+ Private Sub UsingForLoops()
+ 'Sometimes the program only needs to run once.
+ 'In this program we'll be counting down from 10.
+
+ Console.Title = "Using For Loops | Learn X in Y Minutes"
+ 'Declare Variable and what number it should count down in Step -1,
+ 'Step -2, Step -3 ect.
+ For i As Integer = 10 To 0 Step -1
+ Console.WriteLine(i.ToString) 'Print the value of the counter
+ Next i 'Calculate new value
+ Console.WriteLine("Start") 'Lets start the program baby!!
+ Console.ReadLine() 'POW!! - Perhaps I got a little excited then :)
+ End Sub
+
+ 'Eight
+ Private Sub ConditionalStatement()
+ Console.Title = "Conditional Statements | Learn X in Y Minutes"
+ Dim userName As String = Console.ReadLine
+ Console.WriteLine("Hello, What is your name? ") 'Ask the user their name.
+ userName = Console.ReadLine() 'Stores the users name.
+ If userName = "Adam" Then
+ Console.WriteLine("Hello Adam")
+ Console.WriteLine("Thanks for creating this useful site")
+ Console.ReadLine()
+ Else
+ Console.WriteLine("Hello " + userName)
+ Console.WriteLine("Have you checked out www.learnxinyminutes.com")
+ Console.ReadLine() 'Ends and prints the above statement.
+ End If
+ End Sub
+
+ 'Nine
+ Private Sub IfElseStatement()
+ Console.Title = "If / Else Statement | Learn X in Y Minutes"
+ 'Sometimes its important to consider more than two alternatives.
+ 'Sometimes there are a good few others.
+ 'When this is the case, more than one if statement would be required.
+ 'An if statement is great for vending machines. Where the user enters a code.
+ 'A1, A2, A3, ect to select an item.
+ 'All choices can be combined into a single if statement.
+
+ Dim selection As String = Console.ReadLine 'Value for selection
+ Console.WriteLine("A1. for 7Up")
+ Console.WriteLine("A2. for Fanta")
+ Console.WriteLine("A3. for Dr. Pepper")
+ Console.WriteLine("A4. for Diet Coke")
+ Console.ReadLine()
+ If selection = "A1" Then
+ Console.WriteLine("7up")
+ Console.ReadLine()
+ ElseIf selection = "A2" Then
+ Console.WriteLine("fanta")
+ Console.ReadLine()
+ ElseIf selection = "A3" Then
+ Console.WriteLine("dr. pepper")
+ Console.ReadLine()
+ ElseIf selection = "A4" Then
+ Console.WriteLine("diet coke")
+ Console.ReadLine()
+ Else
+ Console.WriteLine("Please select a product")
+ Console.ReadLine()
+ End If
+
+ End Sub
+
+End Module
+
+```
+
+## References
+
+I learnt Visual Basic in the console application. It allowed me to understand the principles of computer programming to go on to learn other programming languages easily.
+
+I created a more indepth Visual Basic tutorial for those who would like to learn more.
+
+The entire syntax is valid. Copy the and paste in to the Visual Basic compiler and run (F5) the program.
diff --git a/whip.html.markdown b/whip.html.markdown
index 3fe9b2f4..b8852ecb 100644
--- a/whip.html.markdown
+++ b/whip.html.markdown
@@ -12,8 +12,8 @@ It has also borrowed a lot of functions and syntax from Haskell(a non-related la
These docs were written by the creator of the language himself. So is this line.
-``` lisp
-; Comments are like LISP. Semi-solons...
+```scheme
+; Comments are like LISP. Semi-colons...
; Majority of first-level statements are inside "forms"
; which are just things inside parens separated by whitespace
@@ -107,14 +107,14 @@ undefined ; user to indicate a value that hasn't been set
; They basically are just forms without functions at the beginning.
(1 2 3) ; => [1, 2, 3] (JavaScript syntax)
-; Dictionaries are Whip's equivalent to JavaScript 'objects' or Python 'dictionaries'
+; Dictionaries are Whip's equivalent to JavaScript 'objects' or Python 'dicts'
; or Ruby 'hashes': an unordered collection of key-value pairs.
{"key1":"value1" "key2":2 3:3}
; Keys are just values, either identifier, number, or string.
(def my_dict {my_key:"my_value" "my other key":4})
-; But in Whip, dictionaries get parsed like: value, colon, value; with whitespace between each.
-; So that means
+; But in Whip, dictionaries get parsed like: value, colon, value;
+; with whitespace between each. So that means
{"key": "value"
"another key"
: 1234
@@ -122,7 +122,8 @@ undefined ; user to indicate a value that hasn't been set
; is evaluated to the same as
{"key":"value" "another key":1234}
-; Dictionary definitions can be accessed used the `at` function, like strings and lists.
+; Dictionary definitions can be accessed used the `at` function
+; (like strings and lists.)
(@ "my other key" my_dict) ; => 4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/zh-cn/c-cn.html.markdown b/zh-cn/c-cn.html.markdown
index ed55203c..f8a8e0bd 100755
--- a/zh-cn/c-cn.html.markdown
+++ b/zh-cn/c-cn.html.markdown
@@ -2,9 +2,10 @@
language: c
filename: learnc.c
contributors:
- - ["Adam Bard", "http://adambard.com/"]
+ - ["Adam Bard", "http://adambard.com/"]
translators:
- - ["Chenbo Li", "http://binarythink.net/"]
+ - ["Chenbo Li", "http://binarythink.net/"]
+lang: zh-cn
---
C语言在今天仍然是高性能计算的主要选择。
diff --git a/zh-cn/elisp-cn.html.markdown b/zh-cn/elisp-cn.html.markdown
index d9a8ce35..c3a2f927 100755
--- a/zh-cn/elisp-cn.html.markdown
+++ b/zh-cn/elisp-cn.html.markdown
@@ -3,12 +3,15 @@ language: elisp
contributors:
- ["Bastien Guerry", "http://bzg.fr"]
translators:
- - ["Chenbo Li", "http://binarythink.net"]
+ - ["Chenbo Li", "http://binarythink.net"]
filename: learn-emacs-lisp.el
+lang: zh-cn
---
```scheme
-;; 15分钟学会Emacs Lisp (v0.2a) (作者:bzg,https://github.com/bzg 译者:lichenbo,http://douban.com/people/lichenbo)
+;; 15分钟学会Emacs Lisp (v0.2a)
+;;(作者:bzg,https://github.com/bzg
+;; 译者:lichenbo,http://douban.com/people/lichenbo)
;;
;; 请先阅读Peter Norvig的一篇好文:
;; http://norvig.com/21-days.html
@@ -301,7 +304,8 @@ filename: learn-emacs-lisp.el
(list 'face 'bold)))
(other-window 1))
-;; 这个函数使用了 `re-search-forward': 和查找一个字符串不同,你用这个命令可以查找一个模式,即正则表达式
+;; 这个函数使用了 `re-search-forward':
+;; 和查找一个字符串不同,你用这个命令可以查找一个模式,即正则表达式
;; 正则表达式 "Bonjour \\(.+\\)!" 的意思是:
;; 字符串 "Bonjour ", 之后跟着
diff --git a/zh-cn/java-cn.html.markdown b/zh-cn/java-cn.html.markdown
index 4db4e91e..b9ccf61a 100755
--- a/zh-cn/java-cn.html.markdown
+++ b/zh-cn/java-cn.html.markdown
@@ -1,12 +1,13 @@
---
-
+name: java
+category: language
language: java
+lang: zh-cn
+filename: LearnJava.java
contributors:
- ["Jake Prather", "http://github.com/JakeHP"]
translators:
- - ["Chenbo Li", "http://binarythink.net"]
-filename: LearnJava.java
-
+ - ["Chenbo Li", "http://binarythink.net"]
---
Java是一个通用的程序语言, 包含并发, 基于类的面向对象等特性
diff --git a/zh-cn/javascript.html.markdown b/zh-cn/javascript.html.markdown
index dd04c8a5..3b5cfa94 100755
--- a/zh-cn/javascript.html.markdown
+++ b/zh-cn/javascript.html.markdown
@@ -1,9 +1,12 @@
---
language: javascript
-author: Adam Brenecki
-author_url: http://adam.brenecki.id.au
-translator: Chenbo Li
-translator_url: http://binarythink.net
+category: language
+name: javascript
+contributors:
+ - ["Adam Brenecki", "http://adam.brenecki.id.au"]
+translators:
+ - ["Chenbo Li", "http://binarythink.net"]
+lang: zh-cn
---
Javascript于1995年由网景公司的Brendan Eich发明。
diff --git a/zh-cn/php-cn.html.markdown b/zh-cn/php-cn.html.markdown
index e3dfe419..3b242ce1 100755
--- a/zh-cn/php-cn.html.markdown
+++ b/zh-cn/php-cn.html.markdown
@@ -4,8 +4,9 @@ contributors:
- ["Malcolm Fell", "http://emarref.net/"]
- ["Trismegiste", "https://github.com/Trismegiste"]
translators:
- - ["Chenbo Li", "http://binarythink.net"]
+ - ["Chenbo Li", "http://binarythink.net"]
filename: learnphp.php
+lang: zh-cn
---
这份教程所使用的版本是 PHP 5+.