iT邦幫忙

0

標記式語言(Markup Language)

JML 2022-03-24 16:43:29836 瀏覽
  • 分享至 

  • xImage
  •  

如何定義語言?!

杭士基體系(Chomsky hierarchy)

文法 語言 自動機 產生式規則
0-型 遞迴可列舉語言 圖靈機 α -> β (無限制)
1-型 上下文相關語言 線性有界非確定圖靈機 αAβ -> αγβ
2-型 上下文無關語言 非確定下推自動機 A -> γ
3-型 正規語言 有限狀態自動機 A -> aB;A -> a

使用巴科斯範式/擴展巴科斯範式/增強巴科斯範式(Backus-Naur Form/Extended BNF/Augmented BNF)定義語言

標準通用標記式語言(Standard Generalized Markup Language, SGML)

最早是由國際商業機器公司(International Business Machines Corporation, IBM)所設計出來的通用標記式語言(Generalized Markup Language, GML),並於西元1986年通過國際標準化組織(International Organization for Standardization, ISO)認證成為 ISO 8879 A.1是一種語言定義標記語言。

HTML 是一種基於 SGML 的“應用程序”。

一個 SGML 應用程序由幾個部分組成:

  1. SGML 聲明:SGML 聲明指定了哪些字符和分隔符可能會出現在應用程序中。
  2. 文件類型定義 (Document Type Definition,DTD):DTD 定義語法的標記結構。 DTD 可能包括額外的定義,例如:數字和命名字元實體。
  3. 描述要歸屬的語義的規範標記:該規範還施加了語法限制,即 不能在 DTD 中表達。
  4. 包含資料(內容)和標記的文檔實例:每個實例都包含對 DTD 的引用,用於 解釋它。

如何閱讀 HTML DTD ?!

超文字標記式語言(HyperText Markup Language, HTML)

實體(Entities)

在 HTML 中, <>"'& 是特殊字元,它們是 HTML 語法的一部份。那麼,如果想要使用這些特殊字元要如何避免它們被瀏覽器當成原始碼呢?
我們就需要用到字元實體參照(character entity reference),它們是用來表示特殊字元的編碼,專門用在這種情形上。每個字元實體都是以 & (ampersand) 起頭,以分號 ; (semi-colon) 做結尾。

元素(Elements)

一個元素通常包含三個部分:起始標籤(opening tag)、內容(content)和結束標籤(closing tag)。
https://ithelp.ithome.com.tw/upload/images/20221028/20124678zPIk2X94JX.png

區塊級元素(block level elements)

https://ithelp.ithome.com.tw/upload/images/20221028/201246783lSSis2ezg.png
又稱區塊元素,然而它有以下幾項重要的特性:

  1. 它在頁面中單獨佔據一行,在它前後的內容都將以一個換行分隔。
  2. 不會巢套(nesting)在行內元素中,但有可能會巢套其他區塊級元素中。
  3. 高度、行高以及頂和底邊距都可控制。
  4. 預設情况下,其寬度自動填滿其父元素寬度,即寬度100%。
  5. 可以設定寬度(width)、高度(hight)。

行內元素(inline elements)

https://ithelp.ithome.com.tw/upload/images/20221028/20124678gQYfhOczLz.png
又稱內聯元素,以下列出幾項重要的特性:

  1. 在區塊級元素之中的內容。
  2. 不會在文件中產生新的一行,要直到一行排不下,才會換行,其寬度隨元素的内容而變化。
  3. 設定width, height屬性無效,只能由内容撑起来。
  4. 設定上下margin, padding無效,左右padding, margin有效。
  5. 水平方向的padding-left, padding-right, margin-left, margin-right都會產生效果,但上下方向的padding-top, padding-bottom, margin-top, margin-bottom不會產生邊距效果。

空元素(empty elements)

不是所有元素都符合起始標籤、內容、結束標籤的格式。有些元素只有一個標籤,這些標籤通常用來在文件中插入/嵌入物件。例如:<br> <hr> <img> <input> <link> <meta> <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>......等等。

屬性(Attributes)

一個屬性應該要有以下幾個特性:

  1. 一個空白,用來隔開屬性和元素名稱(或者前一個屬性,如果該元素已經有一個以上的屬性的話)。
  2. 屬性名稱以及一個接在其後的等號。
  3. 屬性值預設情況下, SGML 要求您使用 雙引號 (") /單引號 ('),單引號可以包含在當值由雙引號分隔時的屬性值,以及反之亦然。
  4. 屬性值只能包含大、小寫字母(a-z 和 A-Z)、數字(0-9)、連字符(ASCII 十進制 45)和句點(ASCII 十進制 46)。
  5. 屬性名稱始終不區分大小寫,屬性值通常也不區分大小寫。

註解(comments)

<!-- 這是一個單行註解,也是多行註解的寫法。 -->

一個最基礎的HTML文件

在此假設你學過基本的程式語言,應該就會知道「Hello, World!」,以下就讓我們使用HTML5的語法來撰寫「Hello, World!」吧!!

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Hello, World!</title>
  </head>
  <body>
    <p>Hello, World!</p>
  </body>
</html>

可延伸標記式語言(eXtensible Markup Language, XML)

可延伸超文字標記式語言(eXtensible HyperText Markup Language, XHTML)

Reference

https://hackmd.io/@ShenTengTu/HJzCM3aDr?type=view


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言