1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
---
language: markdown
contributors:
- ["Dan Turkel", "http://danturkel.com/"]
- ["Jacob Ward", "http://github.com/JacobCWard/"]
translators:
- ["Thanh Duy Phan", "https://github.com/thanhpd"]
filename: markdown-vi.md
lang: vi-vn
---
Ngôn ngữ Markdown được sáng lập bởi John Gruber vào năm 2004. Nó được tạo ra với mục đích dễ đọc với cú pháp có thể được dễ dàng chuyển đổi qua HTML và các ngôn ngữ khác
Markdown có sự khác biệt trong cách cài đặt giữa các trình phân tích cú pháp. Hướng dẫn này sẽ đề cập, giải thích tới nếu tính năng có thể được sử dụng chung hay nó chỉ áp dụng cho một trình phân tích riêng biệt.
## Phần tử HTML
Markdown là tập cha của HTML, vì vậy bất cứ file HTML nào đều là Markdown đúng.
```md
<!-- Điều này đồng nghĩa ta có thể sử dụng các phần tử HTML
trong Markdown, ví dụ như phần tử chú thích/comment.
Tuy nhiên, nếu sử dụng một phần tử HTML trong file Markdown,
ta không thể sử dụng cú pháp Markdown cho nội dung bên trong phần tử đó. -->
```
## Đầu mục
Ta có thể tạo các phần tử đầu mục HTML từ `<h1>` cho đến `<h6>` dễ dàng
bằng cách thêm số lượng dấu thăng (#) đằng trước chuỗi cần tạo đầu mục.
```md
# Đây là đầu mục <h1>
## Đây là đầu mục <h2>
### Đây là đầu mục <h3>
#### Đây là đầu mục <h4>
##### Đây là đầu mục <h5>
###### Đây là đầu mục <h6>
```
Markdown còn cung cấp cách khác để tạo đầu mục hạng nhất h1 và hạng nhì h2.
```md
Đây là đầu mục h1
=============
Đây là đầu mục h2
-------------
```
## Định dạng văn bản
Văn bản có thể được định dạng dễ dàng như in nghiêng hay làm đậm sử dụng Markdown.
```md
*Đoạn văn bản này được in nghiêng.*
_Và đoạn này cũng như vậy._
**Đoạn văn bản này được in đậm.**
__Và đoạn này cũng vậy.__
***Đoạn văn bản này được in nghiêng và đậm.***
**_Cách này cũng tương tự_**
*__Và cách này nữa__*
```
Trong cài đặt Markdown để hiển thị file của GitHub,ta còn có gạch ngang:
```md
~~Đoạn văn bản này được gạch ngang.~~
```
## Đoạn văn
Đoạn văn bao gồm một hay nhiều dòng văn bản liên tiếp nhau được phân cách
bởi một hay nhiều dòng trống.
```md
Đây là đoạn văn thứ nhất.
Đây là đoạn văn thứ hai.
Dòng này vẫn thuộc đoạn văn thứ hai, do không có cách dòng.
Đây là đoạn văn thứ ba.
```
Nếu cần chèn thêm thẻ ngắt dòng `<br />` của HTML, ta có thể kết thúc đoạn văn bản
bằng cách thêm vào từ 2 dấu cách (space) trở lên và bắt đầu đoạn văn bản mới.
```md
Dòng này kết thúc với 2 dấu cách (highlight để nhìn thấy).
Có phần tử <br /> ở bên trên.
```
Khối trích dẫn được sử dụng với kí tự >
```md
> Đây là khối trích dẫn. Ta có thể
> ngắt dòng thủ công và thêm kí tự `>` trước mỗi dòng hoặc ta có thể để dòng tự ngắt nếu cần thiệt khi quá dài.
> Không có sự khác biệt nào, chỉ cần nó bắt đầu với kí tự `>`
> Ta còn có thể dùng nhiều mức
>> của khối trích dẫn.
> Như vậy có tốt không?
```
## Danh sách
Danh sách không có thứ tự có thể được tạo sử dụng dấu sao, dấu cộng hay dấu trừ đầu dòng.
```md
* Một mục
* Một mục
* Một mục nữa
hoặc
+ Một mục
+ Một mục
+ Một mục khác
hay
- Một mục
- Một mục
- Một mục sau
```
Danh sách có thứ tự được tạo bởi một số theo sau bằng một dấu chấm.
```md
1. Mục thứ nhất
2. Mục thứ hai
3. Mục thứ ba
```
Ta không nhất thiết phải điền số thứ thự cho chỉ mục đúng mà Markdown sẽ tự hiển thị danh sách theo thứ tự đã được sắp xếp, tuy nhiên cách làm này không tốt!
```md
1. Mục thứ nhất
1. Mục thứ hai
1. Mục thứ ba
```
(Sẽ hiển thị như ví dụ trước đó)
Ta còn có thể sử dụng danh sách con
```md
1. Mục thứ nhất
2. Mục thứ hai
3. Mục thứ ba
* Mục nhỏ
* Mục nhỏ
4. Mục thứ tư
```
Markdown còn cung cấp danh mục (checklist). Nó sẽ hiển thị ra hộp đánh dấu dạng HTML.
```md
Boxes below without the 'x' are unchecked HTML checkboxes.
- [ ] First task to complete.
- [ ] Second task that needs done
This checkbox below will be a checked HTML checkbox.
- [x] This task has been completed
```
## Khối code
Ta có thể đánh dấu một đoạn code (tương tự sử dụng phần tử HTML `<code>`) bằng việc thụt đầu dòng sử dụng bốn dấu cách (space) hoặc một dấu nhảy (tab)
```md
This is code
So is this
```
Ta còn có thể thêm dấu nhảy (hoặc thêm vào bốn dấu cách nữa) để căn chỉnh phần bên trong đoạn code
```md
my_array.each do |item|
puts item
end
```
Code hiển thị cùng dòng có thể được đánh dấu sử dụng cặp ``.
```md
John didn't even know what the `go_to()` function did!
```
Trong Markdown của GitHub, ta còn có thêm cách để hiển thị code:
````md
```ruby
def foobar
puts "Hello world!"
end
```
````
Đoạn trên không cần sử dụng thụt đầu dòng, và GitHub sẽ tô sáng cú pháp sử dụng ngôn ngữ mà ta cung cấp sau đoạn kí tự <code>```</code>
## Kẻ ngang
Dòng kẻ ngang (`<hr />`) có thể được thêm vào dễ dàng sử dụng từ 3 kí tự sao (*) hoặc gạch ngang (-), không quan trọng có khoảng cách giữa các kí tự hay không.
```md
***
---
- - -
****************
```
## Liên kết
Một trong những thứ tốt nhất khi làm việc với Markdown là khả năng tạo liên kết hết sức dễ dàng. Đoạn text hiển thị được đóng trong cặp ngoặc vuông [] kèm theo đường dẫn url trong cặp ngoặc tròn ().
```md
[Click me!](http://test.com/)
```
Ta còn có thể tạo tiêu đề cho liên kết sử dụng cặp ngoặc nháy bên trong cặp ngoặc tròn
```md
[Click me!](http://test.com/ "Link to Test.com")
```
Đường dẫn tương đối cũng hoạt động.
```md
[Go to music](/music/).
```
Markdown còn hỗ trợ liên kết kiểu tham chiếu.
```md
[Nhấn vào đây][link1] để xem thêm!
[Ngoài ra nhấn vào đây][foobar] nếu bạn muốn xem qua.
[link1]: http://test.com/ "Tuyệt!"
[foobar]: http://foobar.biz/ "Tốt!"
```
Tiêu đề có thể được đóng trong dấu nháy hay ngoặc đơn, hoặc có thể được bỏ qua. Tham chiếu có thể được đặt bất kì đâu trong văn bản và ID của tham chiếu có thể là bất kì gì miễn là nó độc nhất.
Ngoài ra còn có kiểu đặt tên ngầm cho phép ta sử dụng đường dẫn làm ID.
```md
[This][] is a link.
[this]: http://thisisalink.com/
```
Nhưng nó không được sử dụng rộng rãi.
## Ảnh
Hiển thị ảnh tương tự như liên kết nhưng có thêm dấu chấm than đằng trước
```md
![Thuộc tính alt cho ảnh](http://imgur.com/myimage.jpg "Tiêu đề tùy chọn")
```
Và kiểu tham chiếu cũng hoạt động như vậy.
```md
![Đây là thuộc tính alt.][myimage]
[myimage]: relative/urls/cool/image.jpg "Đây là tiêu đề"
```
## Khác
### Tự động đặt liên kết
```md
<http://testwebsite.com/> tương đương với
[http://testwebsite.com/](http://testwebsite.com/)
```
### Tự động đặt liên kết cho email
```md
<foo@bar.com>
```
### Hiển thị Kí tự đặc biệt
```md
Khi ta muốn viết *đoạn văn bản này có dấu sao bao quanh* nhưng ta không muốn nó bị in nghiêng, ta có thể sử dụng: \*đoạn văn bản này có dấu sao bao quanh\*.
```
### Phím bàn phím
Trong Markdown của GitHub, ta có thể sử dụng thẻ `<kbd>` để thay cho phím trên bàn phím.
```md
Máy treo? Thử bấm tổ hợp
<kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd>
```
### Bảng biểu
Bảng biểu được hỗ trợ trên Markdown của GitHub, Jira, Trello, v.v và khá khó viết:
```md
| Cột 1 | Cột2 | Cột 3 |
| :----------- | :------: | ------------: |
| Căn trái | Căn giữa | Căn phải |
| blah | blah | blah |
```
Hoặc có thể sử dụng kết quả dưới đây
```md
Cột 1 | Cột 2 | Cột 3
:-- | :-: | --:
blah | blah | blah
```
---
Để biết thêm thông tin, hãy ghé qua hướng dẫn chính thức về cú pháp của John Gruber [tại đây](http://daringfireball.net/projects/markdown/syntax) và cheatsheet của Adam Pritchard [tại đây](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
|