文字的發(fā)明和使用使得信息的保存和傳遞有了革命性的飛躍滔金。隨著信息的豐富和傳遞方式的革新粉洼,人們對(duì)文本提出了新的格式化的要求刀崖,以此來(lái)方便人們更舒適地獲取信息。如此棚饵,HTML(HyperText Markup Language)作為一種超文本標(biāo)記語(yǔ)言(markup language)應(yīng)運(yùn)而生煤裙,無(wú)數(shù)的網(wǎng)頁(yè)從此有了主次分明,層次清晰的格式噪漾。如果將HTML比作一架重機(jī)槍?zhuān)敲碝arkdown就是一把手槍?zhuān)瑵M(mǎn)足了主要的文本格式標(biāo)記的需求硼砰,可是操作性卻大大簡(jiǎn)化。秉承「易讀易寫(xiě)」的宗旨欣硼,Markdown作為一種輕量級(jí)標(biāo)記語(yǔ)言(lightweight markup language)题翰,讓無(wú)數(shù)的程序猿和文字工作者愛(ài)不釋手。學(xué)習(xí)Markdown诈胜,投資短豹障,見(jiàn)效快,提高生活品質(zhì)立竿見(jiàn)影焦匈,那么還有什么阻止你不去學(xué)習(xí)血公。
有那么一小撮人,為了滿(mǎn)足自己某個(gè)特定的需要缓熟,它們不甘妥協(xié)累魔,走進(jìn)小黑屋,點(diǎn)亮屏幕够滑,一段指尖與智慧的狂舞后垦写,皺緊的眉頭終于舒展開(kāi)來(lái),隨后露出滿(mǎn)意的笑容版述。Linus Torvalds如此打造了Linux, Rasmus Lerdorf如此貢獻(xiàn)出了PHP, John Gruber和Aaron Swartz如此開(kāi)創(chuàng)了Markdown梯澜。Markdown的誕生就是因?yàn)檫@哥倆想要『使用一種易讀易寫(xiě)的純文本格式來(lái)編寫(xiě)文檔,并且可以被轉(zhuǎn)換成XHTML(或者HTML)文檔』渴析。2004年晚伙,Markdown橫空出世,從此紅遍大江南北俭茧。如今 Markdown深受程序猿所愛(ài)咆疗,并且已成了眾多優(yōu)秀工具的標(biāo)配,比如Github, Stack Overflow母债,簡(jiǎn)書(shū)午磁,為知筆記,etc毡们。
原生的Markdown文本轉(zhuǎn)換是使用Perl實(shí)現(xiàn)的迅皇,其語(yǔ)法吸收了眾家之長(zhǎng),包括Setext衙熔,atx登颓,Textile,reStructuredText红氯,Grutatext框咙,EtText以及最原始的郵件格式。原生的Markdown語(yǔ)法簡(jiǎn)潔明了(使用特殊標(biāo)點(diǎn)符號(hào)來(lái)標(biāo)記格式)并且同時(shí)支持HTML標(biāo)簽痢甘。之后不同編程語(yǔ)言實(shí)現(xiàn)的Markdown版本(Markdown解析器)也相繼而生喇嘱。不同的解析器對(duì)原生的Markdown語(yǔ)法進(jìn)行了少許的擴(kuò)展。其中較為流行的是用Ruby實(shí)現(xiàn)的版本kramdown塞栅。大名鼎鼎的GitHub就采用kramdown作為其Markdown的解析器(Starting May 1st 2016)者铜。這里我們從原生的markdown語(yǔ)法介紹起,然后再來(lái)學(xué)習(xí)kramdown和github-flavored-markdown對(duì)原生語(yǔ)法進(jìn)行的一些拓展放椰⊥醢担花上十分鐘讀讀本文,沒(méi)準(zhǔn)你會(huì)愛(ài)上Markdown庄敛。再花點(diǎn)時(shí)間練一練俗壹,讓你的markdown使用起來(lái)得心應(yīng)手,從此寫(xiě)起文章來(lái)一氣呵成藻烤。
<a name="original_markdown" id="original_markdown"></a>
1. 原生態(tài)Markdown標(biāo)記語(yǔ)法
1.1 標(biāo)題
Markdown通過(guò)在行首添加1-6個(gè)#
符號(hào)來(lái)定義不同級(jí)別的標(biāo)題绷雏,最多到六級(jí)標(biāo)題。注意#
后需要加一個(gè)空格怖亭。
<u>書(shū)寫(xiě)格式如下:</u>
#<空格>一級(jí)標(biāo)題
##<空格>二級(jí)標(biāo)題
###<空格>三級(jí)標(biāo)題
######<空格>六級(jí)標(biāo)題
<u>解析效果如下:</u>
一級(jí)標(biāo)題
二級(jí)標(biāo)題
三級(jí)標(biāo)題
六級(jí)標(biāo)題
另外一級(jí)標(biāo)題和二級(jí)標(biāo)題也可以使用雙下劃線(xiàn)和單下劃線(xiàn)來(lái)實(shí)現(xiàn)涎显。
<u>書(shū)寫(xiě)格式如下:</u>
一級(jí)標(biāo)題
======
二級(jí)標(biāo)題
------
<u>解析效果如下:</u>
一級(jí)標(biāo)題
二級(jí)標(biāo)題
1.2 加粗和斜體
markdown使用*
和_
來(lái)強(qiáng)調(diào)文本,使用一個(gè)*
和_
包圍的文本會(huì)被轉(zhuǎn)化為斜體兴猩,而用兩個(gè)*
和_
包圍的文本則會(huì)被轉(zhuǎn)化成加粗期吓。
<u>書(shū)寫(xiě)格式如下:</u>
*斜體文字*
_斜體文字_
**加粗文字**
__加粗文字__
<u>解析效果如下:</u>
斜體文字
斜體文字
加粗文字
加粗文字
1.3 段落和換行
Markdown中一個(gè)普通的段落不需要在首行縮進(jìn),直接開(kāi)始寫(xiě)就是一個(gè)段落倾芝。當(dāng)你需要換到另外一個(gè)段落時(shí)讨勤,那么需要在上一段的段尾添加一個(gè)或多個(gè)空白行箭跳。
<u>書(shū)寫(xiě)格式如下:</u>
開(kāi)始第一段。潭千。谱姓。寫(xiě)完第一段。
<空行>
開(kāi)始第二段刨晴。屉来。。寫(xiě)完第二段狈癞。
<u>解析效果如下:</u>
開(kāi)始第一段茄靠。。蝶桶。寫(xiě)完第一段慨绳。
開(kāi)始第二段。莫瞬。儡蔓。寫(xiě)完第二段。
Markdown里回車(chē)后的文字默認(rèn)是緊接上文的疼邀,如果你需要換行喂江,那么需要在行尾添加兩個(gè)以上的空格。
<u>書(shū)寫(xiě)格式如下:</u>
開(kāi)始第一段旁振。获询。。準(zhǔn)備換行拐袜。<空格><空格>
另起一行吉嚣。。蹬铺。
<u>解析效果如下(注意換行和換段落的效果區(qū)別):</u>
開(kāi)始第一段尝哆。。甜攀。準(zhǔn)備換行秋泄。
另起一行。规阀。恒序。
1.4 列表
Markdown支持無(wú)序列表和有序列表。無(wú)序列表可以使用*
谁撼,+
歧胁,-
三者中任意符號(hào)來(lái)標(biāo)記;有序列表則使用數(shù)字加.
來(lái)標(biāo)記。注意標(biāo)記后面需要加上一個(gè)空格喊巍,有序列表的數(shù)字會(huì)被按順序自動(dòng)更正屠缭。
<u>書(shū)寫(xiě)格式如下:</u>
*<空格>紅紅紅紅紅
*<空格>綠綠綠綠綠
*<空格>藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
+<空格>紅紅紅紅紅
+<空格>綠綠綠綠綠
+<空格>藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
-<空格>紅紅紅紅紅
-<空格>綠綠綠綠綠
-<空格>藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
1.<空格>紅紅紅紅紅
2.<空格>綠綠綠綠綠
3.<空格>藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
2.<空格>紅紅紅紅紅
3.<空格>綠綠綠綠綠
1.<空格>藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
<u>解析效果如下:</u>
- 紅紅紅紅紅
- 綠綠綠綠綠
- 藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
- 紅紅紅紅紅
- 綠綠綠綠綠
- 藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
- 紅紅紅紅紅
- 綠綠綠綠綠
- 藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
紅紅紅紅紅
綠綠綠綠綠
藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
紅紅紅紅紅
綠綠綠綠綠
藍(lán)藍(lán)藍(lán)藍(lán)藍(lán)
注意,如果列表中的一項(xiàng)有多個(gè)段落玄糟,新的段落需要縮進(jìn)4個(gè)空格或1個(gè)tab勿她。
<u>書(shū)寫(xiě)格式如下:</u>
* 項(xiàng)目一袄秩,段落一
<空行>
<空格><空格><空格><空格>項(xiàng)目一阵翎,段落二
* 項(xiàng)目二,段落一
<空行>
<空格><空格><空格><空格>項(xiàng)目二之剧,段落二
<u>解析效果如下:</u>
-
項(xiàng)目一郭卫,段落一
項(xiàng)目一,段落二
-
項(xiàng)目二背稼,段落一
項(xiàng)目二贰军,段落二
1.5 引用
在段落前添加一個(gè)>
符號(hào)即可將該段落標(biāo)記為引用,注意>
后需要添加一個(gè)空格蟹肘。
<u>書(shū)寫(xiě)格式如下:</u>
><空格>某某大牛曾經(jīng)說(shuō)词疼。。帘腹。<空格><空格>
某某大牛又說(shuō)贰盗。。阳欲。
<u>解析效果如下:</u>
某某大牛曾經(jīng)說(shuō)舵盈。。球化。
某某大牛又說(shuō)秽晚。。筒愚。
繁瑣一點(diǎn)赴蝇,你也可以在引用段落的每一行都加上>
符號(hào)。并且>
可以迭代使用巢掺,表示引用中的引用效果句伶。
<u>書(shū)寫(xiě)格式如下:</u>
> 某A大牛曾經(jīng)說(shuō)。址遇。熄阻。
>
> > 某B大牛曾經(jīng)說(shuō)。倔约。秃殉。
>
> 某A大牛接著說(shuō)。。钾军。
<u>解析效果如下:</u>
某A大牛曾經(jīng)說(shuō)鳄袍。。吏恭。
某B大牛曾經(jīng)說(shuō)拗小。。樱哼。
某A大牛接著說(shuō)哀九。。搅幅。
1.6 分割線(xiàn)
直接上例子吧阅束,如下幾種方式都可以畫(huà)出漂亮的分割線(xiàn)。
<u>書(shū)寫(xiě)格式如下:</u>
* * *
***
*****
- - -
---------------------------------------
<u>解析效果如下:</u>
1.7 插入鏈接
markdown文本中插入鏈接非常方便茄唐,有文內(nèi)鏈接和引用鏈接兩種方式息裸。注意如果鏈接的是本地資源,則鏈接地址為當(dāng)?shù)刭Y源的路徑沪编。
<u>書(shū)寫(xiě)格式如下:</u>
## 文內(nèi)鏈接
這是一個(gè)文內(nèi)鏈接的[例子](http://example.com/ "鼠標(biāo)懸浮此處顯示的標(biāo)題")呼盆。
[這個(gè)](http://example.net/)鏈接在鼠標(biāo)懸浮時(shí)沒(méi)有標(biāo)題。
[這個(gè)](/about/)鏈接是本地資源蚁廓。
## 引用鏈接
這是一個(gè)引用鏈接的[例子][id]访圃。
[id]: http://example.com/ "鼠標(biāo)懸浮標(biāo)題(可選)"
## 注意,這里的id沒(méi)有大小寫(xiě)區(qū)分纳令,如果省略id挽荠,則前面方括號(hào)的內(nèi)容會(huì)被用作id。
我常用的網(wǎng)站包括[Google][1]平绩,[Yahoo][2]和[MSN][3]圈匆。
[1]: http://google.com/ "Google"
[2]: http://search.yahoo.com/ "Yahoo Search"
[3]: http://search.msn.com/ "MSN Search"
## 也可以寫(xiě)成
我常用的網(wǎng)站包括[Google][],[Yahoo][]和[MSN][]捏雌。
[google]: http://google.com/ "Google"
[yahoo]: http://search.yahoo.com/ "Yahoo Search"
[msn]: http://search.msn.com/ "MSN Search"
<u>解析效果如下:</u>
這是一個(gè)文內(nèi)鏈接的例子跃赚。
這個(gè) 鏈接在鼠標(biāo)懸浮時(shí)沒(méi)有標(biāo)題。
這是一個(gè)引用鏈接的例子性湿。
我常用的網(wǎng)站包括Google纬傲,Yahoo和MSN。
我常用的網(wǎng)站包括Google肤频,Yahoo和MSN叹括。
1.8 插入圖片
插入圖片和插入鏈接非常類(lèi)似,只是在方括號(hào)前多一個(gè)!
宵荒。
<u>書(shū)寫(xiě)格式如下:</u>
## 方法一
![markdown logo](http://upload-images.jianshu.io/upload_images/1787544-fff109c67ad3cba6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "圖標(biāo)1")
## 方法二
![markdown logo][id]
[id]: http://upload-images.jianshu.io/upload_images/1787544-fff109c67ad3cba6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "圖標(biāo)2"
<u>解析效果如下:</u>
1.9 插入代碼
在文本中嵌入代碼也非常簡(jiǎn)潔汁雷,只需要用反引號(hào)`
將代碼包圍起來(lái)即可净嘀。
<u>書(shū)寫(xiě)格式如下:</u>
可以使用函數(shù)`print()`打印輸出。
## 如果代碼中需要加入反引號(hào)`號(hào)侠讯,則使用兩個(gè)``加空格來(lái)包裹
這里就是一個(gè)反引號(hào)`` ` ``挖藏。
在代碼里也可以保留反引號(hào)`` `print()` ``。
<u>解析效果如下:</u>
可以使用函數(shù)print()
打印輸出厢漩。
這里就是一個(gè)反引號(hào)`
膜眠。
在代碼里也可以保留反引號(hào)`print()`
。
markdown中插入一整段代碼快也非常方便溜嗜,只需要將代碼塊的每一行縮進(jìn)4個(gè)空格或一個(gè)tab宵膨。
<u>書(shū)寫(xiě)格式如下:</u>
代碼如下:
<空格><空格><空格><空格>cat("hello world")
<空格><空格><空格><空格>cat("welcome to learn markdown")
<u>解析效果如下:</u>
代碼如下:
cat("hello world")
cat("welcome to learn markdown")
1.10 其他
在markdown中將鏈接地址或郵箱地址用<>
包圍,則會(huì)被自動(dòng)轉(zhuǎn)換成可點(diǎn)擊的鏈接粱胜。
<u>書(shū)寫(xiě)格式如下:</u>
<http://haoeric.com>
<haoeric0520@gmail.com>
<u>解析效果如下:</u>
如果需要避免文本中的符號(hào)被當(dāng)做markdown標(biāo)識(shí)符而發(fā)生不必要的格式轉(zhuǎn)化柄驻,可以在符號(hào)前加\
來(lái)避免狐树。
<u>書(shū)寫(xiě)格式如下:</u>
\*不是斜體\*
<u>解析效果如下:</u>
*不是斜體*
markdown使用的特殊標(biāo)識(shí)符總結(jié)如下:
\ backslash
` backtick
* asterisk
_ underscore
{} curly braces
[] square brackets
() parentheses
# hash mark
+ plus sign
- minus sign (hyphen)
. dot
! exclamation mark
<a name="kramdown_markdown" id="kramdown_markdown"></a>
2 kramdown拓展
kramdown對(duì)原生的markdown加入了一些拓展焙压,其中最重要的就是對(duì)表格的支持,其他主要的還包括定義抑钟,縮寫(xiě)和角標(biāo)涯曲。
2.1 表格
表格的書(shū)寫(xiě)格式一目了然,還是很方便簡(jiǎn)潔的在塔。
<u>書(shū)寫(xiě)格式如下:</u>
| 左對(duì)齊 | 中間對(duì)齊 | 右對(duì)齊 |
| :--- | :---: | ---: |
| 左1 | 中1 | 右1 |
| 左2 | 中2 | 右3 |
<u>解析效果如下:</u>
左對(duì)齊 | 中間對(duì)齊 | 右對(duì)齊 |
---|---|---|
左1 | 中1 | 右1 |
左2 | 中2 | 右3 |
2.2 定義
對(duì)專(zhuān)有詞匯進(jìn)行定義幻件。
<u>書(shū)寫(xiě)格式如下:</u>
專(zhuān)有詞匯1
: 解釋1
: 解釋2
專(zhuān)有詞匯1
: 解釋
<u>解析效果如下:</u>
專(zhuān)有詞匯1
: 解釋1
: 解釋2
專(zhuān)有詞匯2
: 解釋
2.3 角標(biāo)
不同于鏈接,這里的角標(biāo)內(nèi)容會(huì)被放在文末蛔溃,點(diǎn)擊可以實(shí)現(xiàn)跳轉(zhuǎn)绰沥。
<u>書(shū)寫(xiě)格式如下:</u>
請(qǐng)參閱腳注1. [^1]
[^1]: 腳注1內(nèi)容。
請(qǐng)參閱腳注2. [^2]
[^2]: 腳注2內(nèi)容贺待。
<u>解析效果如下:</u>
請(qǐng)參閱腳注1. [1]
請(qǐng)參閱腳注2. [2]
2.4 縮寫(xiě)
可以全局定義縮寫(xiě)徽曲,當(dāng)鼠標(biāo)懸浮縮寫(xiě)詞時(shí)會(huì)顯示縮寫(xiě)的全稱(chēng)。
<u>書(shū)寫(xiě)格式如下:</u>
下面我們一起來(lái)學(xué)習(xí)GFM麸塞。
*[GFM]: GitHub Flavored Markdown
<u>解析效果如下:</u>
下面我們一起來(lái)學(xué)習(xí)GFM秃臣。
*[GFM]: GitHub Flavored Markdown
*[HTML]: HyperText Markup Language
<a name="GFM_markdown" id="GFM_markdown"></a>
3. GitHub Flavored Markdown拓展
GFM取消了下劃線(xiàn)作為強(qiáng)調(diào)字體的標(biāo)識(shí)符,這樣方便在文中自由使用_
哪工。同時(shí)奥此,GFM會(huì)對(duì)文本中的鏈接進(jìn)行自動(dòng)識(shí)別,不需要使用<>
來(lái)標(biāo)記雁比。另外GFM的幾個(gè)重要拓展列舉如下:
3.1 柵欄標(biāo)記代碼快
在GFM中稚虎,用戶(hù)可以使用```包圍代碼來(lái)標(biāo)記代碼塊。其實(shí)這也是kramdown的一個(gè)拓展偎捎,放在這里講蠢终,避免重復(fù)非洲。
<u>書(shū)寫(xiě)格式如下:</u>
```
function test() {
console.log("notice the blank line before this function?");
}
```
<u>解析效果如下:</u>
function test() {
console.log("notice the blank line before this function?");
}
3.2 代碼高亮
使用柵欄標(biāo)記代碼塊的一個(gè)好處是可以標(biāo)明代碼的語(yǔ)種,然后實(shí)現(xiàn)代碼的高亮蜕径。
<u>書(shū)寫(xiě)格式如下:</u>
```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```
<u>解析效果如下:</u>
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
3.3 刪除線(xiàn)
<u>書(shū)寫(xiě)格式如下:</u>
~~刪除內(nèi)容~~
<u>解析效果如下:</u>
刪除內(nèi)容
有關(guān)GFM的其他拓展两踏,請(qǐng)查閱github-flavored-markdown。
4. HTML拓展
以上的語(yǔ)法基本可以滿(mǎn)足我們大部分寫(xiě)作的需求兜喻。如果你還需要其他格式梦染,那么不要忘了markdown本身是支持HTML標(biāo)簽的,這也就說(shuō)明了markdown的強(qiáng)拓展性朴皆。以下列舉一些常用的HTML標(biāo)簽用法:
4.1 下劃線(xiàn)
<u>書(shū)寫(xiě)格式如下:</u>
<u>下劃內(nèi)容</u>
<u>解析效果如下:</u>
<u>下劃內(nèi)容</u>
4.2 上標(biāo)
<u>書(shū)寫(xiě)格式如下:</u>
E = mc<sup>2</sup>
<u>解析效果如下:</u>
E = mc2
4.3 下標(biāo)
<u>書(shū)寫(xiě)格式如下:</u>
Water: H<sub>2</sub>O
<u>解析效果如下:</u>
Water: H2O
4.4 首行縮進(jìn)
markdown的段落默認(rèn)都是頂格寫(xiě)帕识,如果硬要縮進(jìn)可以通過(guò)如下方式實(shí)現(xiàn)。
<u>書(shū)寫(xiě)格式如下:</u>
## 縮進(jìn)一個(gè)空格
?開(kāi)始輸入
## 縮進(jìn)兩個(gè)空格
?開(kāi)始輸入
<u>解析效果如下:</u>
開(kāi)始輸入
開(kāi)始輸入
4.5 內(nèi)部跳轉(zhuǎn)
使用如下HTML標(biāo)簽遂铡,可以實(shí)現(xiàn)在文本內(nèi)的跳轉(zhuǎn)肮疗。在長(zhǎng)篇的文章中這個(gè)功能非常有用。
<u>書(shū)寫(xiě)格式如下:</u>
## 設(shè)置跳轉(zhuǎn)標(biāo)簽
點(diǎn)此[標(biāo)簽](#錨點(diǎn))跳轉(zhuǎn)扒接。
## 點(diǎn)擊以上標(biāo)簽則跳轉(zhuǎn)至有如下代碼的所在行
## 我將下行代碼放在了行文的"參考資料"行上面伪货,點(diǎn)擊試一下
<a name="錨點(diǎn)" id="錨點(diǎn)"></a>
<u>解析效果如下:</u>
點(diǎn)此標(biāo)簽跳轉(zhuǎn)
4.6 改變插入圖片大小
markdown自身插入圖片時(shí)不會(huì)改變圖片大小,但是通過(guò)THML插入圖片可以修改圖片大小钾怔。
<u>書(shū)寫(xiě)格式如下:</u>
[站外圖片上傳中……(3)]
<u>解析效果如下:</u>
[站外圖片上傳中……(4)]
4.7 插入視頻
視頻不能直接加載碱呼,但可以使用照片加鏈接的形式來(lái)模擬,比如:
<u>書(shū)寫(xiě)格式如下:</u>
<a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
" target="_blank"><img src="http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg"
alt="IMAGE ALT TEXT HERE" width="240" height="180" border="10" /></a>
<u>解析效果如下:</u>
<a href="http://www.youtube.com/watch?feature=player_embedded&v=FyfwLX4HAxM
" target="_blank"><img src="http://img.youtube.com/vi/FyfwLX4HAxM/0.jpg"
alt="IMAGE ALT TEXT HERE" width="240" height="180" border="10" /></a>
或者用存markdown,但是不能調(diào)整圖片大凶谡臁:
<u>書(shū)寫(xiě)格式如下:</u>
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE)
<u>解析效果如下:</u>
<a name="錨點(diǎn)" id="錨點(diǎn)"></a>
4. 參考資料
[1] markdown
[2] kramdown
[2] github markdown
[4] MarkDown使用小技巧
[5] 用Markdown寫(xiě)blog的常用操作
[6] worldhello:輕量級(jí)標(biāo)記語(yǔ)言
[7] THE WORLD'S LARGEST WEB DEVELOPER SITE