成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個更好的視頻碼頭

開發(fā)
之前,我在寫 有關(guān) embark 的內(nèi)容,我的第一設(shè)備為啟動遠(yuǎn)程視頻流設(shè)計(jì)了一個新的 embark。

之前,??我在寫??? 有關(guān) ??embark?? 的內(nèi)容,我的第一設(shè)備為啟動遠(yuǎn)程視頻流設(shè)計(jì)了一個新的 embark。embark 的作者 Omar Antolín Camarena 不僅閱讀了這篇內(nèi)容,還點(diǎn)評了一下我認(rèn)為值得跟進(jìn)的一些重大改進(jìn)。

首先,你應(yīng)該記得我們曾定義過一個檢測視頻 URL 的函數(shù):

(defun jao-video-finder ()
"Check whether we're looking at a video URL.
Return (video-url . <URL>) if so."
(when-let ((url (thing-at-point-url-at-point)))
(when (string-match-p jao-video-url-rx url)
(cons 'video-url url))))

當(dāng)我們得到了一個非空的 ??url?? 值,即便它不是一個視頻鏈接,但它仍然是一個確切的 URL,并且 embark 已有了一個 ??url?? 類別,所以我們可以借助默認(rèn)的 URL 尋檢器存儲一個新的句法分析,語句如下:

(when-let ((url (thing-at-point-url-at-point)))
(cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))

這里有一個潛在的缺點(diǎn)就是:我們重寫了 embark 的尋檢器,??embark-target-url-at-point??,所以我們可能更愿意保留后者。

實(shí)際上多虧了 embark 的 目標(biāo)轉(zhuǎn)換器 我們才能做成。我們可以在 ??embark-transformers-alist?? 中添加任意一個函數(shù),應(yīng)用于任何一個給定類別的目標(biāo),而 embark 會將其轉(zhuǎn)換后的值應(yīng)用于它的操作中。Omar 很貼切地把這個過程稱為“目標(biāo)的精化”;我們具體做法如下:

(defun jao-refine-url-type (url)
"Refine type of URL in case it is a video."
(cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))
(add-to-list 'embark-transformer-alist '(url . jao-refine-url-type))

通過這種策略,我們就不再需要 ??jao-video-finder?? 了,而且從概念上來說,我們的 ??video-url?? 應(yīng)該被定義為一個精化操作而并非是一個目標(biāo) [腳注 1]。Omar 的第二個提議也與這個概念相契合:想必我們都希望所有關(guān)于 ??url?? 和我們的 ??video-url?? 的操作都是可用的,不是嗎? 唔,這就是為什么我們用來定義行為的 ??embark-define-keymap?? 的宏可以通過使用關(guān)鍵字 [腳注 2] ??:parent?? 繼承其他鍵映射中已經(jīng)定義的所有操作的原因:

(embark-define-keymap jao-video-url-map
"Actions on URLs pointing to remote video streams."
:parent embark-url-map
("p" jao-play-video-url))
(add-to-list 'embark-keymap-alist '(video-url . jao-video-url-map))

這種繼承鍵映射的功能并非是 embark 的附屬功能:vanilla Emacs 鍵映射通過標(biāo)準(zhǔn)函數(shù) ??set-keymap-parent?? 已經(jīng)搞定它了。你可以完全不用 ??embark-define-keymap?? 來定義 ??jao-video-url-map??,工作原理是一樣的。

這樣,我們的代碼就能夠更短,特征更多:謝謝你,Omar!

腳注 1:在某些情況下,保留 jao-video-finder 是有意義的,即,如果我們想要改變檢測 URL 的功能的話。例如,我在使用 emacs-w3m 的時候,經(jīng)常有一個 URL 作為文本屬性儲存了起來(實(shí)際文本是個鏈接文本)。要通過那里檢索 URL,就需要調(diào)用 ??w3m-anchor??,而用 ??embark-target-url-at-point?? 就會錯過它。對于這種情況,我最終編寫(并使用)??jao-video-finder?? 將其通過下文定義:

(when-let ((url (or (w3m-anchor) (thing-at-point-url-at-point))))
(cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))

另一種達(dá)成同件事情的方式(再次向 Omar 致敬)便是為 w3m 的錨點(diǎn)放置一個特定的巡檢器(且繼續(xù)使用 video-url 的轉(zhuǎn)換器):

(defun jao-w3m-url-finder ()
(when-let ((url (w3m-anchor)))
(cons 'url url)))
(add-to-list 'embark-target-finders #'jao-w3m-url-finder)

這種方法更加模塊化,并且取決于你們的喜好,且更加巧妙。這些功能都很小巧并且兩種方法之間并沒有太大的差別,但是如果其中某一種繼續(xù)加入更多尋檢器的話,前一種方法用起來來反而會讓一切變得更糟。

腳注 2:在我最開始的例子中,我在視頻地圖中還添加了 ??browse-url?? 和 ??browse-url-firefox??。前一個已不再重要,因?yàn)樗呀?jīng)在 ??embark-url-map?? 中出現(xiàn)過了,如果我們想讓 ??browse-url-firefox?? 對 所有 的 URLs 可用,我們可以將其加入到 ??embark-url-map?? (謹(jǐn)記,embark 的鍵映射只是 Emacs 的鍵映射)。這是另一種擴(kuò)展 embark 的簡便方法。

(題圖:MJ:emacs video geek wallpaper dark plain background Illustration)

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2014-02-14 09:37:01

JavascriptDOM

2021-06-08 07:48:26

iOS 15 Linux 操作系統(tǒng)

2017-07-10 14:18:34

微服務(wù)架構(gòu)可視化

2024-02-28 07:48:05

Rust項(xiàng)目框架

2013-08-26 09:18:52

2015-02-06 11:04:10

DockerAWS移動應(yīng)用開發(fā)測試

2013-07-30 09:57:25

UbuntuLinux Mint

2022-04-10 23:02:08

GoRust語言

2022-12-02 13:52:44

FleetCode

2020-03-31 09:47:04

Vue開發(fā)代碼

2015-09-16 16:42:47

聯(lián)想開放開源

2025-05-19 10:04:48

2015-05-08 12:41:36

C++序列化反序列化庫Kapok

2016-09-26 17:26:20

2011-12-20 20:44:36

移動應(yīng)用

2020-10-21 18:20:14

UbuntuPop!_OSLinux

2014-10-14 15:50:19

UIAndroid

2023-01-03 12:30:25

架構(gòu)CPUGPU

2012-12-11 14:59:31

移動視頻通話

2020-04-29 12:11:52

MystiQ音視頻轉(zhuǎn)換器開源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 羞羞的视频免费在线观看 | 在线亚洲免费视频 | 国产精品18久久久久久白浆动漫 | 国产精品自产拍在线观看蜜 | 国产精品久久av | 日韩免费一二三区 | 亚洲 91| 亚洲免费人成在线视频观看 | 欧美成人精品一区二区男人看 | 偷拍亚洲色图 | 日日做夜夜爽毛片麻豆 | 亚洲精品一区中文字幕乱码 | 亚洲精品自在在线观看 | 欧美淫 | 伊人看片 | 色视频免费 | 一区二区三区免费在线观看 | 国产高清一区二区三区 | 久久久www成人免费无遮挡大片 | 91在线资源 | 日韩三区在线 | 黄网址在线观看 | 91视频进入 | 91国在线视频 | 精品毛片 | 亚洲区一区二 | 久久久久久久久毛片 | 日日干综合| 99久热在线精品视频观看 | 天堂免费| www.亚洲.com| 亚洲精品在线视频 | 欧美白人做受xxxx视频 | 日韩一区二区三区av | 日韩电影在线 | 欧美精品久久久久 | 日韩视频一区在线观看 | 国产免费又黄又爽又刺激蜜月al | 日本一区二区三区在线观看 | 天天综合干 | 亚洲视频在线观看 |