9.7 KiB
ลักษณะเอกสาร Electron
นี้คือกฎในการเขียนเอกสารประกอบ Electron
หัวข้อ
- ทุกๆเพจจะมี
#
อยู่ข้างบนสุดของเอกสาร - ทุกๆบทจะต้องมี
##
ในหัวข้อ - ทุกๆบทย่อยจะเพิ่ม
#
ลงไปในหัวข้อตามความลึกของบทย่อย
ยกตัวอย่างเช่น การเริ่มต้น
:
# การเริ่มต้น
...
## โปรเซสหลัก
...
## โปรเซส render
...
## การรันแอพ
...
สำหรับการอ้างอิงของ API จะไม่ใช้กฎนี้
กฎของ Markdown
- ใช้
bash
แทนcmd
ในการเขียน code blocks (เพราะตัวไฮไลท์ syntax) - บรรทัดควรที่จะเริ่มต้นใหม่ที่ 80 คอลัมน์
- ไม่ควรใส่ลิสต์ที่มีมากกว่าสองชั้น (เพราะตัว render ของ markdown)
- ทุก
js
แลพjavascript
code blocks จะไฮไลท์ด้วย standard-markdown.
การใช้คำ
- ใช้ 'จะ' แทนที่ 'ควรจะ' ตอนอธิบายผลลัทธ์
การอ้างอิงของ API
กฎดังต่อไปนี้จะใช้สำหรับเอกสาร API เท่านั้น
หัวข้อเพจ
ทุกๆเพจจะใช้ชื่อของ object ที่ได้รับจาก require('electron')
เป็นหัวข้อ อาทิเช่น BrowserWindow
, autoUpdater
และ session
ข้างล่างหัวข้อจะเป็นคำอธิบายหนึ่งบรรทัดเริ่มต้นด้วย >
# session
> คำอธิบาย
โมดูล methods และ events
สำหรับโมดูลที่ไม่ใช่คราสนั้น methods และ events ของมันจะต้องอยู่ในลิสต์ภายใต้บท ## Methods
และ ## Events
ยกตัวอย่างเช่น autoUpdater
:
# autoUpdater
## Events
### Event: 'error'
## Methods
### `autoUpdater.setFeedURL(url[, requestHeaders])`
คราส (Classes)
- คราส API หรือ คราสที่เป็นส่วนของโมดูลจะต้องอยู่ในบท
## Class: TheClassName
- หนึ่งเพจสามารถมีหลายคราสได้
- Constructors จะต้องอยู่ใน
###
- Static Methods จะต้องอยู่ในบทของ
### Static Method
- Instance Methods จะต้องอยู่ในบทของ
### Instance Methods
- ทุกๆ methods ที่มีค่า รีเทิร์น(return) จะต้องเริ่มต้นคำอธิบายด้วย "Returns
[TYPE]
- คำอธิบายค่ารีเทิร์น"- ถ้า method รีเทิร์น
Object
โครงสร้างจองมันจะอธิบายได้ด้วยการใช้ ','(โคล่อน) ตามด้วยบรรทัดใหม่ จากนั้นก็ ลิสต์ของคุณสมบัติที่ไม่เรียงกัน (เหมือนกับ parametres ของฟังค์ชั่น)
- ถ้า method รีเทิร์น
- Instance ของ Events จะต้องอยู่ในบทของ
### Instance Events
- Instance ของ Properties จะต้องอยู่ในบทของ
### Instance Properties
- จะเริ่มต้นด้วย "A [Type ของ คุณสมบัติ]"
ยกตัวอย่างเช่น Session
และ Cookies
คราส:
# session
## Methods
### session.fromPartition(partition)
## Properties
### session.defaultSession
## Class: Session
### Instance Events
#### Event: 'will-download'
### Instance Methods
#### `ses.getCacheSize(callback)`
### Instance Properties
#### `ses.cookies`
## Class: Cookies
### Instance Methods
#### `cookies.get(filter, callback)`
Methods
บท methods จะอยู่ในรูปแบบดังนี้:
### `objectName.methodName(required[, optional]))`
* `required` String - A parameter description.
* `optional` Integer (optional) - Another parameter description.
...
หัวข้อจะสามารถอยู่ในรูปของ ###
หรือ ####
(ตามว่าเป็น method ของโมดูลหรือของคราส)
สำหรับโมดูล objectName
คือชื่อของโมดูล แต่ว่าสำหรับคราสนั้น ชื่อจะต้องเป็น instance ของคราสและจะต้องไม่ซ้ำกับชื่อโมดูล
ยกตัวอย่างเช่น method ของคราส Session
ที่อยู่ใน session
โมดูลจะต้องใช้ ses
เหมือนกับ objectName
.
หากมี arguments เพิ่มเตินนั้นจะได้รับการบันทึกภายใน []
รวมถึงคอมม่ถ้าหากว่า arguement นี้ตามด้วย argument เสริมอื่นๆ
required[, optional]
ข้างล่าง method จะเป็นข้อคาวมโดยละเอียดเกี่ยวกับ arguments อื่นๆ, ชนิค (Type) ของ argument จะโดนบันทีกตาม type ทั่วไป
หาก argument หรือ method มีเฉพาะเจาะจงกับ platform นั้น ให้ใช้ตัว italic (เอียง) ลิสต์ตาม datatype
โดยที่ตัวลิสต์นั้นจะจำกัดอยู่ที่ macOS
, Windows
, หรือ Linux
เท่านั้น
* `animate` Boolean (optional) _macOS_ _Windows_ - เล่นแอนนิเมชัั่น.
Arguments ชนิด Array
จะต้องบอกว่า array นั้นจะใส่อะไรลงไปตามข้อมูลด้านล่าง
ข้อความอธิบาย arguments ของ ฟังค์ชั่น (function) จะต้องบอกเจาะจงถึงวิธีการใช้งานและชนิดของ parametres ที่ฟังค์ชั่นนั้นรับ
อีเว้น (Events)
บทอีเว้นจะต้องอยู่ในรูปแบบดังนี้:
### Event: 'wake-up'
Returns:
* `time` String
...
หัวข้อจะสามารถอยู่ในรูปของ ###
หรือ ####
(ตามว่าเป็นอีเว้นของโมดูลหรือของคราส)
แบบเอกสาร arguments ของอีเว้นจะใช้กฎเดียวกับ methods
คุณสมบัติ (Properties)
บทคุณสมบัติจะต้องอยู่ในรูปแบบดังนี้:
### session.defaultSession
...
หัวข้อจะสามารถอยู่ในรูปของ ###
หรือ ####
(ตามว่าเป็นคุณสมบัติของโมดูลหรือของคราส)
การแปลเอกสาร
เอกสารของ Electron ที่ถูกแปลแล้ว จะอยู่ในโฟลเดอร์ docs-translation
ในการสร้างเซ็ตของภาษาใหม่ (เพิ่มในบางส่วน)
- สร้างที่อยู่ย่อยตามตัวย่อของภาษา
- แปลภาษา
- อัพเดท
README.md
ภายในเพื่อเป็นสารลิงค์ไฟล์ต่างๆที่แปลแล้ว - เพิ่มลิ้งค์ลง README หลักของ Electron
โน้ต: ไฟล์ที่อยู่ใน docs-translations
จะมีแค่ที่แปลแล้วเท่านั้น ไฟล์ต้นตำรับภาษาอังกริษไม่ควรจะโดนก้อปปี้ลงไปด้วย