于是就想给自己的个人网站也生成一张值得分享的卡片,本篇文章用来记录总结我是如何给网站添加Web Bookmark的。 什么是web bookmark bookmark的中文翻译是书签。...介绍 上面工具的作者写了一篇文章就是介绍如何创建可视化的Web Bookmark[2],感兴趣的可以点击链接进行查看。这里大概介绍下生成bookmark的原理是什么?...我个人的网站通过上述设置后的卡片是这样子的: web-visual-bookmark.png 总结 以上就是生成Web Bookmark的全部流程,重点在于给网站设置meta标签。...参考资料 [1] https://bookmark.style/: https://bookmark.style/ [2] 如何创建可视化的Web Bookmark: https://www.xlbd.me...4] https://tweetlet.net/: https://tweetlet.net/ [5] https://bookmark.style/: https://bookmark.style/
前言 在查看阮一峰老师最新的周刊时,发现了一个很好玩的工具bookmark.style/,作用就是输入网站,会根据网站上的信息生成精美的分享卡片,可以保存成图片并进行分享。...于是就想给自己的个人网站也生成一张值得分享的卡片,本篇文章用来记录总结我是如何给网站添加Web Bookmark的。 什么是web bookmark bookmark的中文翻译是书签。...使用Notion写文章时,粘贴一个URL就会提示是否创建bookmark。 在即刻上面发送动态时,粘贴的URL也会生成一个卡片。...介绍 上面工具的作者写了一篇文章就是介绍如何创建可视化的Web Bookmark,感兴趣的可以点击链接进行查看。这里大概介绍下生成bookmark的原理是什么?
src="/usr/uploads/2021/01/3593454925.png"/> 安装完成后进入终端输入docker -v查看版本号,如版本号正常显示表示安装成功 2.使用docker命令安装My-BookMark...GitHub:https://github.com/luchenqun/my-bookmark 域名访问 在宝塔中添加一个新站点,只绑定域名就好,完成后访问域名等待解析成功 解析成功后,点网站列表右侧
Bookmark Syncer,顾名思义,是一款书签同步的插件。 它的强大之处,是源于它的同步设计思路是将书签统一借助 gists服务来管理。...书签数据的交互过程,可以用下图来理解: 介绍完 Bookmark Syncer,下面直接进入重点,怎么使用!...Edge教程 1、在Edge的扩展程序商店上,搜索 Bookmark Syncer,如下图: 直达链接:https://microsoftedge.microsoft.com/addons/detail.../bookmark-syncer/pnhcpopelnamhdhkdccijehenbikojge 2、点击“获取”即可完成安装。...(5)最后将该 Access Token 粘贴到刚才 Bookmark Syncer 设置里,就可以愉快的上传和下载同步了。 谷歌浏览器教程 那么Chrome又该怎么玩呢?
原以为直接导出的 bookmark.html 文件直接粘贴到 md 中就能用的,还是 to young to simple,导出来的 html 文件长这样: 和我们正常的 html 页面不太一样,所有标签名和属性名全部大写了...思路: 先通过 File 对象读取 bookmark.html 成字符串文本 然后再将文本直接借助浏览器的 DOM 节点的 innerHTML 渲染成 html 标签,这一步浏览器会自动帮我们转成节点列表...-- 正确方式 --> [HTML的pre标签中嵌套HTML标签时被解析的解决方案](http://xxx.com) 网页版地址:https://cafehaus.github.io/parse-bookmark...三、nodejs 版本 大题思路其实和浏览器版本一样,只不过解析 dom 节点我们需要借助第三方 dom 库,如 htmlparser2: npm 包:parse-bookmark Github仓库:...https://cafehaus.github.io/parse-bookmark 四、系统自动生成的书签json文件 Chrome 浏览器其实有自动生成的json文件,具体位置: windows 系统
明:之前一直想找个书签系统,然后最近发现了个My-BookMark,用了下还不错,总算不用经常重复在不同电脑或者浏览器上备份书签了,该工具可以整合多个浏览器上的书签,对于快速搜索某个时间段的书签起到便捷式的作用...安装 Github地址:https://github.com/luchenqun/my-bookmark 所需环境:Mysql 5.6+、Node.js 8+、Redis,这里说下使用宝塔安装和手动安装...#拉取源码 git clone https://github.com/luchenqun/my-bookmark.git cd my-bookmark #安装依赖 npm install #导入数据库...,依次为数据库用户名、密码、数据库名,记得修改为自己的 mysql -uroot -pmoerats bookmark < schema.sql #编辑数据库信息 cp config.default.js...#拉取源码 git clone https://github.com/luchenqun/my-bookmark.git cd my-bookmark #安装依赖 npm install #导入数据库
= [] def get_pdf_Bookmark_inter(outlines, tab=0): for outline in outlines:...])) get_pdf_Bookmark_inter(pdf_reader.outline) return bookmark def pdf_write_bookmark(bookmark...last_cache = [None] * (max(bookmark, key=lambda x: x[0])[0] + 1) for tab, title, pagenum in bookmark...= get_pdf_Bookmark(file) num_cache = [0] * 7 last_tab = 0 new_bookmark = [] for tab,...((tab, new_title, pagenum)) last_tab = tab pdf_write_bookmark(new_bookmark, file) 处理后的PDF
测试提取书签: bookmark = get_pdf_Bookmark(filename='mysql.pdf') bookmark [(0, '1....典型关系型数据库', 1), PDF书签保存到文件 def write_bookmark2file(bookmark, filename="bookmark.txt"): with open(...所以可以从文件读取书签数据: def read_bookmark_from_file(filename="bookmark.txt"): bookmark = [] with open(...= get_pdf_Bookmark(pdf_reader) write_bookmark2pdf(bookmark, pdf_writer) with open(save_filepath...= get_pdf_Bookmark(pdf_reader) write_bookmark2pdf(bookmark, pdf_writer) with open(save_filepath
type reperesents the metadata of a bookmark. type Bookmark struct { ID...go func() { var bookmark Bookmark for bookmarks.Next(&bookmark) { if bookmark.ID...bookmark.Priority = 2 if err := store.Update(bookmark); err !...getByID(id) bookmark = Bookmark{ Name: "gorethink", Description: "Go driver..., bookmark.Description, bookmark.Priority) } func getAll() { // Layout for formatting dates.
控制 bookmark 频率 - cacher bookmark event 是由 bookmark timer 定时发送的,来自 Etcd 的 progressNotify 所转换的 bookmark...然后每 1s ~ 1.25s 通过 popExpiredWatchersThreadUnsafe 去获取需要发送 bookmark event 的 cacheWatcher,然后将生成的 bookmark...这个阶段 bookmark event 发送时机是 watch 请求过期的前两秒,因为定期发送周期为 1s ~ 1.25s 所以在因为超时断开连接之前是可以发送一次 bookmark event 回去的...bookmark event 发送到 cacher incoming chan 中,同时在消费 cacher incoming 的时候加了 event type 的判断,只处理非 bookmark event...这个时候会频繁的出现 bookmark event 发送到 cacher incoming chan,但由于 4 已经做了处理,所以这些 bookmark event 并不会直接写到 cacheWatcher
.*; import java.util.concurrent.ConcurrentHashMap; class BookMark_to_win { Map myMap; public...BookMark_to_win() { Thread.sleep(1000); } catch (Exception e) {...) + " after " + bookNum); } } } class MyThread extends Thread { BookMark_to_win...book; MyThread(BookMark_to_win tmp) { this.book = tmp; } public void run() { /*run...bookM = new BookMark_to_win(); Thread t1 = new MyThread(bookM); Thread t2 = new MyThread
Aspose.Words.Bookmark bookmark = doc.Range.Bookmarks[title]; if (bookmark !...DocumentBuilder builder = new DocumentBuilder(doc); Aspose.Words.Bookmark bookmark =...doc.Range.Bookmarks["Content"]; if (bookmark !...bookmark = doc.Range.Bookmarks["Content"]; if (bookmark !...bookmark = doc.Range.Bookmarks[title]; if (bookmark !
hack-browser-data -b chrome -f json -dir results -e all -cc] Get all data(password/cookie/history/bookmark...Format, csv|json|console (default: "json") --export-data value, -e value all|password|bookmark...[x]: Get 6 bookmarks, filename is results/360speed_bookmark.json [x]: Get 19 cookies, filename is...Get 1 passwords, filename is results/qq_password.json [x]: Get 12 bookmarks, filename is results/qq_bookmark.json...14 cookies, filename is results/qq_cookie.json [x]: Get 28 bookmarks, filename is results/firefox_bookmark.json
public const string Book = "Book"; public string Name { get; set; } public BookmarkOptions Bookmark...Remarks:{book.Bookmark.Remarks}" + $"{Environment.NewLine}Book Authors: {string.Join(" & ",...> appsettings.xml bookmark remarks </configuration...:0 "Command line book author A" /Book:Authors:1 "Command line book author B" /Book:Bookmark:Remarks...拿上方的Book示例来说,该Data包含“Book:Name”、“Book:Authors:0”、“Book:Authors:1”和“Book:Bookmark:Remarks”这4个Key。
之前为了把浏览器书签放到博客里维护,特意写了一个 bookmark 转 json/markdown 的小工具:parse-bookmark。...前几天手贱直接把 bookmark 的源文件给删了,这下这么多年收藏整理的书签只有自己博客里的一个 markdown 文件了,毕竟还是直接用浏览器自带的 bookmark 查看会方便好多,只能想办法怎么根据现在的...markdowm 文件转换回 bookmark.html 文件了。...DOCTYPENETSCAPE-Bookmark-file-1>
' while len(booklists)>0: bookmark = booklists.pop(0) detail = re.search(pattern, bookmark...添加逻辑后:(代码可左右拖动) while len(booklists)>0: bookmark = booklists.pop(0) detail = re.search(pattern..., bookmark) if detail: #print(detail.group(1) +"----"+ detail.group(2)) try:...#如果可则添加 if r.status_code == requests.codes.ok: new_lists.append(bookmark...) else:#没匹配到是结构语句 new_lists.append(bookmark) 程序执行情况 ?
的 BOOKMARK,其 RV 对应下文的 bookmarkAfterRV)给客户端作为服务端通知客户端 InitEvents 发送完毕的标志,客户端在接收到指定 BOOKMARK Event 后,将之前接收到的所有...根本原因在于 bookmark timer 的周期为 1 ~ 1.25s,也就是说每 1 ~ 1.25s 产生一个 BOOKMARK 事件,其 RV 是 incoming chan 最大 RV,正是由于这个时间间隔...,结合 3 的描述,就会导致 G2.1 发送出去的第一个有效的 (进入到 CacheWatcher input chan) BOOKMARK 事件的 RV >= bookmarkAfterRV。...个人认为此处还是可以再继续优化的,可以让 List 的耗时减少一个 bookmark timer 的周期,即 1 ~ 1.25s,只需要在 2b 处理非 BOOKMARK 事件时判断 RV == bookmarkAfterRV...且尚未发送过 bookmarkAfterRV BOOKMARK 事件,此时就可以直接返回一个 bookmarkAfterRV BOOKMARK 给客户端了,对于数据量较大,返回所有数据耗时超过 Watch
Bookmark Syncer Bookmark Syncer 这是一款利用 Gists 服务来同步书签的扩展插件,例如 GitHub 和 Gitee 都支持 Gists 服务。...这里以 Gitee 为例,在私人令牌里面勾选 Gists 选项,生成一个 Access Token,然后把它复制粘贴到 Bookmark Syncer 设置。...接着就可以同步书签了,你其它浏览器也安装上 Bookmark Syncer 填入 Access Token 就会自动同步最新的书签了。...这个 Bookmark Syncer 是比较低成本的简单方案了,缺点就是每次同步到远端上只有一个最新的书签版本,没有历史版本,如果你误删书签想找回来就麻烦点。另外好像没有支持火狐浏览器的扩展版本。...https://www.crxsoso.com/addon/detail/pnhcpopelnamhdhkdccijehenbikojge 项目地址: https://github.com/Hishengs/bookmark-syncer
Frame3.enabled=False Else mrc.MoveFirst Call viewData myBookmark=mrc.Bookmark...Private Sub deleteCommand_Click() myBookmark = mrc.Bookmark str2$ = MsgBox("是否删除当前记录?...删除后显示下一条记录 If mrc.EOF Then mrc.MoveFirst myBookmark = mrc.Bookmark...mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark...Call viewData End If Else mrc.Bookmark = myBookmark
领取专属 10元无门槛券
手把手带您无忧上云