เรนเดอร์ไฟล์ Readme ในเครื่องก่อนส่งไปยัง GitHub
Grip เป็นแอปพลิเคชันเซิร์ฟเวอร์บรรทัดคำสั่งที่เขียนด้วย Python ที่ใช้ GitHub markdown API เพื่อแสดงไฟล์ readme ในเครื่อง สไตล์และการเรนเดอร์มาจาก GitHub โดยตรง ดังนั้นคุณจะรู้ได้อย่างแน่ชัดว่ามันจะปรากฏอย่างไร การเปลี่ยนแปลงที่คุณทำกับ Readme จะมีผลทันทีในเบราว์เซอร์โดยไม่ต้องรีเฟรชหน้า
บางครั้งคุณเพียงต้องการเห็นผลลัพธ์ readme ที่แน่นอนก่อนตัดสินใจและพุชไปที่ GitHub
โดยเฉพาะอย่างยิ่งเมื่อทำการพัฒนาที่ขับเคลื่อนด้วย Readme
หากต้องการติดตั้งกริป เพียง:
$ pip install grip
บน OS X คุณสามารถติดตั้งด้วย Homebrew ได้:
$ brew install grip
หากต้องการเรนเดอร์ readme ของที่เก็บ:
$ cd myrepo
$ grip
* Running on http://localhost:6419/
ตอนนี้เปิดเบราว์เซอร์แล้วไปที่ http://localhost:6419 หรือรันด้วย -b
แล้ว Grip จะเปิดแท็บเบราว์เซอร์ใหม่ให้คุณ
คุณยังสามารถระบุพอร์ตได้:
$ grip 80
* Running on http://localhost:80/
หรือไฟล์ที่ชัดเจน:
$ grip AUTHORS.md
* Running on http://localhost:6419/
หรือคุณสามารถเรียกใช้ grip
และไปที่ localhost:6419/AUTHORS.md เนื่องจากด้ามจับรองรับ URL แบบสัมพันธ์
คุณสามารถรวมตัวอย่างก่อนหน้านี้ได้ หรือระบุชื่อโฮสต์แทนพอร์ต หรือให้ทั้งสองอย่าง
$ grip AUTHORS.md 80
* Running on http://localhost:80/
$ grip CHANGES.md 0.0.0.0
* Running on http://0.0.0.0:6419/
$ grip . 0.0.0.0:80
* Running on http://0.0.0.0:80/
คุณสามารถข้ามเซิร์ฟเวอร์และ ส่งออก เป็นไฟล์ HTML ไฟล์เดียว โดยมีสไตล์และเนื้อหาทั้งหมดอยู่ในบรรทัด:
$ grip --export
Exporting to README.html
ควบคุมชื่อผลลัพธ์ด้วยอาร์กิวเมนต์ที่สอง:
$ grip README.md --export index.html
Exporting to index.html
หากคุณกำลังส่งออกไฟล์จำนวนมาก คุณสามารถป้องกันไม่ให้สไตล์อยู่ในบรรทัดเพื่อประหยัดพื้นที่ด้วย --no-inline
:
$ grip README.md --export --no-inline introduction.html
Exporting to introduction.html
รองรับการอ่านและเขียนจาก stdin และ stdout ทำให้คุณสามารถใช้ Grip กับโปรแกรมอื่นได้:
$ cat README.md | grip -
* Running on http://localhost:6419/
$ grip AUTHORS.md --export - | bcat
$ cat README.md | grip --export - | less
สิ่งนี้ช่วยให้คุณทดสอบได้อย่างรวดเร็วว่าสิ่งต่าง ๆ มีลักษณะอย่างไรโดยการป้อน Markdown ในเทอร์มินัลของคุณโดยตรง:
$ grip -
Hello **world**!
^D
* Running on http://localhost:6419/
หมายเหตุ: ^D
หมายถึง Ctrl+D
ซึ่งใช้งานได้บน Linux และ OS X บน Windows คุณจะต้องใช้ Ctrl+Z
นอกจากนี้ยังรองรับการเรนเดอร์เป็นเนื้อหาผู้ใช้ เช่น ความคิดเห็น และ ปัญหา โดยมีบริบทพื้นที่เก็บข้อมูลเสริมสำหรับการลิงก์ไปยังปัญหา:
$ grip --user-content --context=joeyespo/grip
* Running on http://localhost:6419/
สำหรับรายละเอียดเพิ่มเติมและตัวเลือกเพิ่มเติม โปรดดูวิธีใช้:
$ grip -h
Grip มุ่งมั่นที่จะใกล้เคียงกับ GitHub มากที่สุด เพื่อให้บรรลุเป้าหมายนี้ Grip ใช้ Markdown API ของ GitHub เพื่อให้การเปลี่ยนแปลงกลไกการเรนเดอร์มีผลทันทีโดยไม่จำเป็นต้องอัพเกรด Grip อย่างไรก็ตาม ด้วยเหตุนี้ คุณอาจถึงขีดจำกัดอัตรารายชั่วโมงของ API หากเกิดเหตุการณ์เช่นนี้ Grip เสนอวิธีในการเข้าถึง API โดยใช้ข้อมูลประจำตัวของคุณเพื่อปลดล็อกขีดจำกัดอัตราที่สูงกว่ามาก
$ grip --user < your-username > --pass < your-password >
หรือใช้โทเค็นการเข้าถึงส่วนบุคคลโดยมีขอบเขตว่างเปล่า (โปรดทราบว่า จำเป็นต้องใช้ โทเค็นหากบัญชี GitHub ของคุณตั้งค่าด้วยการตรวจสอบสิทธิ์แบบสองปัจจัย):
$ grip --pass < token >
คุณสามารถคงตัวเลือกเหล่านี้ไว้ในการกำหนดค่าภายในเครื่องของคุณได้ เพื่อความปลอดภัย ขอแนะนำอย่างยิ่งให้คุณ ใช้โทเค็นการเข้าถึงแทนรหัสผ่าน (คุณสามารถรักษารหัสผ่านของคุณให้ปลอดภัยได้ด้วยการกำหนดค่า Grip เพื่อดึงรหัสผ่านของคุณจากตัวจัดการรหัสผ่าน)
นอกจากนี้ยังมีสาขาที่กำลังดำเนินการเพื่อให้ การเรนเดอร์ออฟไลน์ เมื่อสิ่งนี้คล้ายกับ GitHub อย่างแม่นยำยิ่งขึ้น ก็จะถูกเปิดเผยใน CLI และท้ายที่สุดจะถูกใช้เป็นกลไกทางเลือกที่ราบรื่นในกรณีที่ไม่สามารถเข้าถึง API ได้
Grip เข้าถึง GitHub ผ่าน HTTPS เสมอ ดังนั้น README และข้อมูลประจำตัวของคุณจึงได้รับการปกป้อง
นี่คือวิธีที่คนอื่นๆ ในชุมชนใช้ Grip
ต้องการแบ่งปันของคุณเอง? ทักทาย @joeyespo หรือส่งคำขอดึง
$ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git
$ cd YOUR_REPOSITORY.wiki
$ grip
โดย โจชัว กูร์โน.
ป้อนไดเร็กทอรี:
$ cd YOUR_DIR
$ export GRIPURL= $( pwd )
รวมเนื้อหาทั้งหมดโดยการตั้งค่าตัวแปรการกำหนดค่า CACHE_DIRECTORY
:
$ echo " CACHE_DIRECTORY = ' $( pwd ) /assets' " >> ~ /.grip/settings.py
ส่งออกไฟล์ Markdown ทั้งหมดของคุณด้วย Grip และแทนที่เส้นทางสินทรัพย์สัมบูรณ์ด้วยเส้นทางสัมพัทธ์:
$ for f in * .md ; do grip --export $f --no-inline ; done
$ for f in * .html ; do sed -i ' ' " s? $GRIPURL /??g " $f ; done
คุณสามารถเลือกบีบอัดชุดของไฟล์ HTML เป็น docs.tgz
ด้วย:
$ tar -czvf docs.tgz ` ls | grep [ . ]html$ ` assets
กำลังมองหาโซลูชันข้ามแพลตฟอร์มอยู่ใช่ไหม? นี่คือสคริปต์ Python ที่เทียบเท่ากัน
โดย แมทธิว อาร์. ตะนัดจาจา.
หากต้องการปรับแต่ง Grip ให้สร้าง ~/.grip/settings.py
จากนั้นเพิ่มตัวแปรต่อไปนี้อย่างน้อยหนึ่งตัวแปร:
HOST
: โฮสต์ที่จะใช้เมื่อไม่ได้ระบุเป็นอาร์กิวเมนต์ CLI, localhost
ตามค่าเริ่มต้นPORT
: พอร์ตที่จะใช้เมื่อไม่ได้ระบุเป็นอาร์กิวเมนต์ CLI โดยค่าเริ่มต้นจะเป็น 6419
DEBUG
: จะใช้ดีบักเกอร์ของ Flask หรือไม่เมื่อมีข้อผิดพลาดเกิดขึ้น False
ตามค่าเริ่มต้นDEBUG_GRIP
: พิมพ์ข้อมูลเพิ่มเติมเมื่อมีข้อผิดพลาดเกิด False
ตามค่าเริ่มต้นAPI_URL
: URL ฐานสำหรับ github API เช่นของอินสแตนซ์ Github Enterprise https://api.github.com
ตามค่าเริ่มต้นCACHE_DIRECTORY
: ไดเร็กทอรีที่เกี่ยวข้องกับ ~/.grip
เพื่อวางเนื้อหาแคช (ซึ่งจะถูกเรียกใช้ผ่านตัวกรองต่อไปนี้: CACHE_DIRECTORY.format(version=__version__)
), 'cache-{version}'
โดยค่าเริ่มต้นAUTOREFRESH
: ว่าจะรีเฟรชเนื้อหา Readme โดยอัตโนมัติเมื่อไฟล์เปลี่ยนแปลงหรือ True
ตามค่าเริ่มต้นQUIET
: อย่าพิมพ์ข้อมูลเพิ่มเติม False
ตามค่าเริ่มต้นSTYLE_URLS
: URL เพิ่มเติมที่จะถูกเพิ่มลงในหน้าที่แสดงผล []
ตามค่าเริ่มต้นUSERNAME
: ชื่อผู้ใช้ที่จะใช้เมื่อไม่ได้ระบุเป็นอาร์กิวเมนต์ CLI None
ตามค่าเริ่มต้นPASSWORD
: รหัสผ่านหรือโทเค็นการเข้าถึงส่วนบุคคลที่จะใช้เมื่อไม่ได้ระบุเป็นอาร์กิวเมนต์ CLI ( โปรดอย่าบันทึกรหัสผ่านของคุณที่นี่ ให้ใช้โทเค็นการเข้าถึงหรือวางรหัสนี้แทน คว้ารหัสผ่านของคุณจากผู้จัดการรหัสผ่าน) None
ตามค่าเริ่มต้น โปรดทราบว่านี่คือไฟล์ Python หากคุณเห็นข้อผิดพลาด 'X' is not defined
คุณอาจมองข้ามเครื่องหมายคำพูดบางอันไป ตัวอย่างเช่น:
USERNAME = 'your-username'
PASSWORD = 'your-personal-access-token'
GRIPHOME
: ระบุตำแหน่ง settings.py
อื่น ~/.grip
เป็นค่าเริ่มต้นGRIPURL
: URL ของเซิร์ฟเวอร์ Grip /__/grip
ตามค่าเริ่มต้น ไฟล์นี้เป็นสคริปต์ Python ปกติ ดังนั้นคุณจึงเพิ่มการกำหนดค่าขั้นสูงเพิ่มเติมได้
ตัวอย่างเช่น หากต้องการอ่านการตั้งค่าจากสภาพแวดล้อมและระบุค่าเริ่มต้นเมื่อไม่ได้ตั้งค่า:
PORT = os . environ . get ( 'GRIP_PORT' , 8080 )
คุณสามารถเข้าถึง API ได้โดยตรงด้วย Python โดยใช้ในโครงการของคุณเอง:
from grip import serve
serve ( port = 8080 )
* Running on http : // localhost : 8080 /
เรียกใช้ main โดยตรง:
from grip import main
main ( argv = [ '-b' , '8080' ])
* Running on http : // localhost : 8080 /
หรือเข้าถึงแอปพลิเคชัน Flask พื้นฐานเพื่อความยืดหยุ่นที่มากยิ่งขึ้น:
from grip import create_app
grip_app = create_app ( user_content = True )
# Use in your own app
รันเซิร์ฟเวอร์ภายในเครื่องและเรนเดอร์ไฟล์ Readme ที่อยู่ใน path
เมื่อเข้าชมในเบราว์เซอร์
serve ( path = None , host = None , port = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , autorefresh = True , browser = False , grip_class = None )
path
: ชื่อไฟล์ที่จะเรนเดอร์ หรือไดเร็กทอรีที่มีไฟล์ Readme ของคุณ โดยตั้งค่าเริ่มต้นเป็นไดเร็กทอรีการทำงานปัจจุบันhost
: โฮสต์ที่จะรับฟัง โดยตั้งค่าเริ่มต้นเป็นตัวแปรการกำหนดค่า HOSTport
: พอร์ตที่จะรับฟัง โดยตั้งค่าเริ่มต้นเป็นตัวแปรการกำหนดค่า PORTuser_content
: กำหนดว่าจะแสดงเอกสารเป็นเนื้อหาของผู้ใช้ เช่น ความคิดเห็นหรือปัญหาของผู้ใช้หรือไม่context
: บริบทของโปรเจ็กต์ที่จะใช้เมื่อ user_content
เป็นจริง ซึ่งอยู่ในรูปแบบของ username/project
username
: ผู้ใช้ที่จะตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIpassword
: รหัสผ่านสำหรับตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIrender_offline
: ไม่ว่าจะเรนเดอร์ในเครื่องโดยใช้ Python-Markdown หรือไม่ (หมายเหตุ: นี่เป็นงานระหว่างดำเนินการ)render_wide
: ว่าจะแสดงผลหน้ากว้างหรือไม่, False
โดยค่าเริ่มต้น (ไม่มีผลกระทบเมื่อใช้กับ user_content
)render_inline
: ว่าจะอินไลน์สไตล์ภายในไฟล์ HTML หรือไม่api_url
: URL ฐานอื่นสำหรับ github API เช่น URL ของอินสแตนซ์ Github Enterprise ค่าเริ่มต้นคือ API สาธารณะ https://api.github.comtitle
: ชื่อหน้า ซึ่งได้มาจาก path
ตามค่าเริ่มต้นautorefresh
: อัปเดตเนื้อหาที่แสดงผลโดยอัตโนมัติเมื่อไฟล์ Readme เปลี่ยนแปลง True
ตามค่าเริ่มต้นbrowser
: เปิดแท็บในเบราว์เซอร์หลังจากที่เซิร์ฟเวอร์เริ่มทำงาน, False
ตามค่าเริ่มต้นgrip_class
: ใช้คลาส Grip แบบกำหนดเอง เขียนไฟล์ Readme ที่ระบุลงในไฟล์ HTML พร้อมสไตล์และเนื้อหาแบบอินไลน์
export ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = True , out_filename = None , api_url = None , title = None , quiet = None , theme = 'light' , grip_class = None )
path
: ชื่อไฟล์ที่จะเรนเดอร์ หรือไดเร็กทอรีที่มีไฟล์ Readme ของคุณ โดยตั้งค่าเริ่มต้นเป็นไดเร็กทอรีการทำงานปัจจุบันuser_content
: กำหนดว่าจะแสดงเอกสารเป็นเนื้อหาของผู้ใช้ เช่น ความคิดเห็นหรือปัญหาของผู้ใช้หรือไม่context
: บริบทของโปรเจ็กต์ที่จะใช้เมื่อ user_content
เป็นจริง ซึ่งอยู่ในรูปแบบของ username/project
username
: ผู้ใช้ที่จะตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIpassword
: รหัสผ่านสำหรับตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIrender_offline
: ไม่ว่าจะเรนเดอร์ในเครื่องโดยใช้ Python-Markdown หรือไม่ (หมายเหตุ: นี่เป็นงานระหว่างดำเนินการ)render_wide
: ว่าจะแสดงผลหน้ากว้างหรือไม่, False
โดยค่าเริ่มต้น (ไม่มีผลกระทบเมื่อใช้กับ user_content
)render_inline
: ว่าจะอินไลน์สไตล์ภายในไฟล์ HTML หรือไม่ (หมายเหตุ: ไม่เหมือนกับฟังก์ชัน API อื่นๆ โดยมีค่าเริ่มต้นเป็น True
)out_filename
: ชื่อไฟล์ที่จะเขียน .html
ตามค่าเริ่มต้นapi_url
: URL ฐานอื่นสำหรับ github API เช่น URL ของอินสแตนซ์ Github Enterprise ค่าเริ่มต้นคือ API สาธารณะ https://api.github.comtitle
: ชื่อหน้า ซึ่งได้มาจาก path
ตามค่าเริ่มต้นquiet
: ห้ามพิมพ์ไปที่เครื่องtheme
: ธีมเพื่อดูไฟล์มาร์กดาวน์ (โหมดสว่างหรือโหมดมืด) ตัวเลือกที่ถูกต้อง ("สว่าง", "มืด") ค่าเริ่มต้น: "แสง"grip_class
: ใช้คลาส Grip แบบกำหนดเอง สร้างแอปพลิเคชัน Flask ที่คุณสามารถใช้เพื่อแสดงผลและให้บริการไฟล์ Readme นี่เป็นแอปเดียวกับที่ใช้โดย serve
และ export
และเริ่มต้นแคช โดยใช้สไตล์แคชเมื่อพร้อมใช้งาน
create_app ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , text = None , grip_class = None )
path
: ชื่อไฟล์ที่จะเรนเดอร์ หรือไดเร็กทอรีที่มีไฟล์ Readme ของคุณ โดยตั้งค่าเริ่มต้นเป็นไดเร็กทอรีการทำงานปัจจุบันuser_content
: กำหนดว่าจะแสดงเอกสารเป็นเนื้อหาของผู้ใช้ เช่น ความคิดเห็นหรือปัญหาของผู้ใช้หรือไม่context
: บริบทของโปรเจ็กต์ที่จะใช้เมื่อ user_content
เป็นจริง ซึ่งอยู่ในรูปแบบของ username/project
username
: ผู้ใช้ที่จะตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIpassword
: รหัสผ่านสำหรับตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIrender_offline
: ไม่ว่าจะเรนเดอร์ในเครื่องโดยใช้ Python-Markdown หรือไม่ (หมายเหตุ: นี่เป็นงานระหว่างดำเนินการ)render_wide
: ว่าจะแสดงผลหน้ากว้างหรือไม่, False
โดยค่าเริ่มต้น (ไม่มีผลกระทบเมื่อใช้กับ user_content
)render_inline
: ว่าจะอินไลน์สไตล์ภายในไฟล์ HTML หรือไม่api_url
: URL ฐานอื่นสำหรับ github API เช่น URL ของอินสแตนซ์ Github Enterprise ค่าเริ่มต้นคือ API สาธารณะ https://api.github.comtitle
: ชื่อหน้า ซึ่งได้มาจาก path
ตามค่าเริ่มต้นtext
: สตริงหรือสตรีมของข้อความ Markdown ที่จะแสดงผลแทนที่จะโหลดจาก path
(หมายเหตุ: สามารถใช้ path
เพื่อตั้งชื่อหน้าได้)grip_class
: ใช้คลาส Grip แบบกำหนดเอง แสดงผลแอปพลิเคชันที่สร้างโดย create_app
และส่งคืน HTML ที่ปกติจะปรากฏเมื่อไปที่เส้นทางนั้น
render_app ( app , route = '/' )
app
: แอปพลิเคชัน Flask ที่จะเรนเดอร์route
: เส้นทางที่จะแสดงผล '/' โดยค่าเริ่มต้น วาทกรรมข้อความมาร์กดาวน์ที่ระบุโดยไม่ต้องแคช
render_content ( text , user_content = False , context = None , username = None , password = None , render_offline = False , api_url = None , title = None )
text
: ข้อความ Markdown ที่จะแสดงผลuser_content
: กำหนดว่าจะแสดงเอกสารเป็นเนื้อหาของผู้ใช้ เช่น ความคิดเห็นหรือปัญหาของผู้ใช้หรือไม่context
: บริบทของโปรเจ็กต์ที่จะใช้เมื่อ user_content
เป็นจริง ซึ่งอยู่ในรูปแบบของ username/project
username
: ผู้ใช้ที่จะตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIpassword
: รหัสผ่านสำหรับตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIrender_offline
: ไม่ว่าจะเรนเดอร์ในเครื่องโดยใช้ Python-Markdown หรือไม่ (หมายเหตุ: นี่เป็นงานระหว่างดำเนินการ)api_url
: URL ฐานอื่นสำหรับ github API เช่น URL ของอินสแตนซ์ Github Enterprise สิ่งนี้จำเป็นเมื่อไม่ได้ใช้ตัวเรนเดอร์ออฟไลน์title
: ชื่อหน้า ซึ่งได้มาจาก path
ตามค่าเริ่มต้น แสดงผลมาร์กดาวน์จากเส้นทางหรือข้อความที่ระบุ โดยไม่ต้องแคช และส่งคืนเพจ HTML ที่คล้ายกับมุมมอง GitHub Readme
render_page ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , text = None , quiet = None , theme = 'light' , grip_class = None )
path
: เส้นทางที่จะใช้สำหรับชื่อหน้า แสดงผล 'README.md'
หากไม่มีuser_content
: กำหนดว่าจะแสดงเอกสารเป็นเนื้อหาของผู้ใช้ เช่น ความคิดเห็นหรือปัญหาของผู้ใช้หรือไม่context
: บริบทของโปรเจ็กต์ที่จะใช้เมื่อ user_content
เป็นจริง ซึ่งอยู่ในรูปแบบของ username/project
username
: ผู้ใช้ที่จะตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIpassword
: รหัสผ่านสำหรับตรวจสอบสิทธิ์กับ GitHub เพื่อขยายขีดจำกัด APIrender_offline
: ไม่ว่าจะเรนเดอร์ออฟไลน์โดยใช้ Python-Markdown หรือไม่ (หมายเหตุ: นี่เป็นงานระหว่างดำเนินการ)render_wide
: ว่าจะแสดงผลหน้ากว้างหรือไม่, False
โดยค่าเริ่มต้น (ไม่มีผลกระทบเมื่อใช้กับ user_content
)render_inline
: ว่าจะอินไลน์สไตล์ภายในไฟล์ HTML หรือไม่api_url
: URL ฐานอื่นสำหรับ github API เช่น URL ของอินสแตนซ์ Github Enterprise ค่าเริ่มต้นคือ API สาธารณะ https://api.github.comtitle
: ชื่อหน้า ซึ่งได้มาจาก path
ตามค่าเริ่มต้นtext
: สตริงหรือสตรีมของข้อความ Markdown ที่จะแสดงผลแทนที่จะโหลดจาก path
(หมายเหตุ: สามารถใช้ path
เพื่อตั้งชื่อหน้าได้)quiet
: ห้ามพิมพ์ไปที่เครื่องtheme
: ธีมเพื่อดูไฟล์มาร์กดาวน์ (โหมดสว่างหรือโหมดมืด) ตัวเลือกที่ถูกต้อง ("สว่าง", "มืด") ค่าเริ่มต้น: "แสง"grip_class
: ใช้คลาส Grip แบบกำหนดเอง ล้างรูปแบบและเนื้อหาที่แคชไว้
clear_cache ( grip_class = None )
รัน Grip ด้วยอาร์กิวเมนต์ที่ระบุ
main ( argv = None , force_utf8 = True )
argv
: อาร์กิวเมนต์ที่จะรันด้วย sys.argv[1:]
ตามค่าเริ่มต้นforce_utf8
: ตั้งค่าการเข้ารหัสเริ่มต้นเป็น utf-8
ในอินสแตนซ์ Python ปัจจุบัน สิ่งนี้ไม่มีผลกับ Python 3 เนื่องจาก Unicode ได้รับการจัดการตามค่าเริ่มต้นแอปพลิเคชัน Flask ที่สามารถให้บริการไฟล์หรือไดเร็กทอรีที่มี README
Grip ( source = None , auth = None , renderer = None , assets = None , render_wide = None , render_inline = None , title = None , autorefresh = None , quiet = None , theme = 'light' , grip_url = None , static_url_path = None , instance_path = None , ** kwargs )
ส่งคืนตัวเรนเดอร์เริ่มต้นโดยใช้การกำหนดค่าปัจจุบัน ใช้เฉพาะเมื่อตั้งค่าตัวเรนเดอร์เป็นไม่มีในตัวสร้าง
Grip . default_renderer ()
ส่งคืนตัวจัดการสินทรัพย์เริ่มต้นโดยใช้การกำหนดค่าปัจจุบัน ใช้เฉพาะในกรณีที่ Asset_manager ตั้งค่าเป็นไม่มีในตัวสร้าง
Grip . default_asset_manager ()
เพิ่มประเภทเนื้อหา application/x-font-woff และ application/octet-stream หากหายไป แทนที่เพื่อเพิ่มประเภทเนื้อหาเพิ่มเติมในการเริ่มต้น
Grip . add_content_types ()
ล้างเนื้อหาที่ดาวน์โหลด
Grip . clear_cache ()
แสดงผลแอปพลิเคชันและส่งกลับยูนิโค้ด HTML ที่ปกติจะปรากฏเมื่อเข้าชมในเบราว์เซอร์
Grip . render ( route = None )
route
: เส้นทางที่จะเรนเดอร์ /
โดยค่าเริ่มต้น สตาร์ทเซิร์ฟเวอร์เพื่อแสดงผล README สิ่งนี้เรียก Flask.run ภายใน
Grip . run ( host = None , port = None , debug = None , use_reloader = None , open_browser = False )
host
: ชื่อโฮสต์ที่จะฟัง ตั้งค่านี้เป็น '0.0.0.0'
เพื่อให้เซิร์ฟเวอร์พร้อมใช้งานภายนอกเช่นกัน 'localhost'
ตามค่าเริ่มต้นport
: พอร์ตของเว็บเซิร์ฟเวอร์ ค่าเริ่มต้นคือ 6419
debug
: หากได้รับ ให้เปิดหรือปิดโหมดแก้ไขข้อบกพร่อง ดูที่ Flask.debuguse_reloader
: เซิร์ฟเวอร์ควรรีสตาร์ทกระบวนการ python โดยอัตโนมัติหากโมดูลมีการเปลี่ยนแปลงหรือไม่ False
ตามค่าเริ่มต้นเว้นแต่จะระบุการตั้งค่า DEBUG_GRIP
open_browser
: เปิดเบราว์เซอร์ไปยังที่อยู่เมื่อเซิร์ฟเวอร์เริ่มทำงาน เกิดขึ้นเมื่อ Grip.run
ถูกเรียกในขณะที่เซิร์ฟเวอร์กำลังทำงานอยู่
AlreadyRunningError ()
เกิดขึ้นเมื่อไม่พบ Readme ที่ระบุ
ReadmeNotFoundError ( path = None , message = None )
จัดการลักษณะและแบบอักษรที่แสดงผลด้วยหน้า Readme นี่คือคลาสฐานนามธรรม
ReadmeAssetManager ( cache_path , style_urls = None )
จัดการลักษณะและแบบอักษรที่แสดงผลด้วยหน้า Readme ตั้งค่า cache_path เป็น None เพื่อปิดใช้งานการแคช
อ่านเนื้อหา Readme จากเส้นทางย่อย URL นี่คือคลาสฐานนามธรรม
ReadmeReader ()
อ่านไฟล์ Readme จากเส้นทางย่อย URL
DirectoryReader ( path = None , silent = False )
อ่านเนื้อหา Readme จากสตริง Unicode ที่ให้มา
TextReader ( text , display_filename = None )
อ่านข้อความ Readme จาก STDIN
StdinReader ( display_filename = None )
เรนเดอร์ Readme นี่คือคลาสฐานนามธรรม
ReadmeRenderer ( user_content = None , context = None )
แสดงผล Readme ที่ระบุโดยใช้ GitHub Markdown API
GitHubRenderer ( user_content = None , context = None , api_url = None , raw = None )
แสดงผล Readme ที่ระบุในเครื่องโดยใช้ Python ล้วนๆ หมายเหตุ: ขณะนี้คุณลักษณะนี้ยังไม่สมบูรณ์
OfflineRenderer ( user_content = None , context = None )
ชื่อไฟล์ Markdown ทั่วไปบน GitHub
SUPPORTED_TITLES = [ 'README' , 'Home' ]
filename
: ไฟล์ UTF-8 ที่จะอ่าน ส่วนขยายที่รองรับ ตามที่กำหนดโดย GitHub
SUPPORTED_EXTENSIONS = [ '.md' , '.markdown' ]
ค่าคงที่นี้มีชื่อที่ Grip ค้นหาเมื่อไม่ได้จัดเตรียมไฟล์ไว้
DEFAULT_FILENAMES = [ title + ext
for title in SUPPORTED_TITLES
for ext in SUPPORTED_EXTENSIONS ]
ค่าคงที่นี้มีชื่อไฟล์ Readme เริ่มต้น ได้แก่:
DEFAULT_FILENAME = DEFAULT_FILENAMES [ 0 ] # README.md
ค่าคงที่นี้จะชี้ไปที่ค่าเริ่มต้น หากไม่ได้ระบุตัวแปรสภาพแวดล้อม GRIPHOME
DEFAULT_GRIPHOME = '~/.grip'
URL เริ่มต้นของเซิร์ฟเวอร์ Grip และเนื้อหาทั้งหมด:
DEFAULT_GRIPURL = '/__/grip'
ค่า app_url เริ่มต้น:
DEFAULT_API_URL = 'https://api.github.com'
ติดตั้งแพ็คเกจและข้อกำหนดการทดสอบ:
$ pip install -e .[tests]
รันการทดสอบด้วย pytest:
$ pytest
หรือหากต้องการรันการทดสอบอีกครั้งเมื่อคุณทำการเปลี่ยนแปลง ให้ใช้ pytest-watch:
$ ptw
หากคุณประสบปัญหากับ Grip อาจเป็นไปได้ว่าสมมติฐานที่ทำเกี่ยวกับ GitHub API นั้นเสียหาย หากต้องการตรวจสอบสิ่งนี้ ให้รัน:
$ pytest -m assumption
เนื่องจากสมมติฐานภายนอกขึ้นอยู่กับการเชื่อมต่ออินเทอร์เน็ต คุณจึงอาจต้องการข้ามไปเมื่อพัฒนาในพื้นที่ กระชับวงจรให้ดียิ่งขึ้นโดยหยุดความล้มเหลวครั้งแรกด้วย -x
:
$ pytest -xm " not assumption "
หรือด้วย pytest-watch:
$ ptw -- -xm " not assumption "
หาก PR ของคุณรอมาระยะหนึ่งแล้ว อย่าลังเลที่จะส่ง Ping มาให้ฉันทาง Twitter
ใช้ซอฟต์แวร์นี้บ่อยไหม? -