V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
josherich
V2EX  ›  分享创造

Github Book 把源代码做成 PDF

  •  
  •   josherich ·
    josherich · 2019-11-20 13:38:28 +08:00 · 4679 次点击
    这是一个创建于 1834 天前的主题,其中的信息可能已经有所发展或是发生改变。

    戳这里 => https://book.mindynode.com/

    生成的 PDF 长这样 => sample.pdf

    动机

    楼主最近开始看一些项目的源代码,虽然 Github 无论是网页版还是刚开始 Beta 公测的 iOS 客户端都有不错的体验,但身处一个地铁没有信号的城市,时常苦恼于在移动设备上无法畅快地翻看,于是试着制作了几个仓库的 PDF,没想到意外地非常符合自己的阅读习惯,想在这里分享出来。

    有几个未解决的问题

    • 对于较大的仓库,会弹出提交邮件对话框,稍后会将文件发送至邮箱
    • 对于较大的仓库,考虑到性能(楼主的乞丐版 VPS 性能有限),会分成若干个 5MB 的文件
    • PDF 的目录生成暂时没有很好的方案,目前并没有页数索引

    实现

    可以戳这里 repo-to-pdf。如果觉得网站太慢,可以在本地运行 npm cli 版本,先 git clone [repo],然后 npx repo-to-pdf [folder/to/your/repo]

    多说几句

    楼主本来对在 PDF 上看非书本内容没有特别感觉,尤其是互联网内容,和网页共生共灭。但最近开始养成了存东西的习惯。无论是文字,图片,音视频,楼主开始觉得一切存在云端不是唯一的答案。从网页上的一张图片,磁盘上的一张图片,到手上的一张相片,楼主感觉每一次的实体化,持久化都是有意义的。

    这个服务有缺点,BUG,或不稳定的情况,希望得到大家的反馈。

    12 条回复    2019-11-23 21:51:41 +08:00
    daimiaopeng
        1
    daimiaopeng  
       2019-11-20 14:34:02 +08:00 via Android
    我想弄到 kindle 里面看
    designer
        2
    designer  
       2019-11-20 14:35:31 +08:00 via iPhone
    感谢分享,备用下
    josherich
        3
    josherich  
    OP
       2019-11-20 23:13:51 +08:00
    @daimiaopeng 可以把移动版的 PDF 导入 Kindle ; Kindle 格式的主要问题是无法呈现代码高亮
    luckykong
        4
    luckykong  
       2019-11-21 00:33:54 +08:00
    能支持本地上传文件么
    josherich
        5
    josherich  
    OP
       2019-11-21 01:13:07 +08:00
    @luckykong 绝对在计划中!
    szxczyc
        6
    szxczyc  
       2019-11-21 03:46:38 +08:00 via iPhone
    要是早点能发布就好了,去年这个时候找了一圈没找到😂,纯手动保存了一个 300 页的书
    free9fw
        7
    free9fw  
       2019-11-21 10:11:40 +08:00
    calibre 可以支持不
    josherich
        8
    josherich  
    OP
       2019-11-21 11:57:30 +08:00
    @free9fw 只要找到 html 转 calibre 的工具,加入 calibre 应该不难
    MemoryCorner
        9
    MemoryCorner  
       2019-11-21 13:44:52 +08:00
    感谢分享!要是有 PDF 目录就更好了,希望能找到好的解决方案
    josherich
        10
    josherich  
    OP
       2019-11-21 14:24:00 +08:00
    @MemoryCorner 由于采用了 puppeteer 转 PDF,页数在生成后才确定,比较笨的办法是生成第二遍的时候加上;更好的办法是预先计算出页数,但这要求精准地分割每个源码文件;目前的情况是目录可以跳转每个文件,文件标题下可以跳转回到目录
    MemoryCorner
        11
    MemoryCorner  
       2019-11-21 19:29:42 +08:00
    生成第二遍的时候加上,也不算笨 hh,我觉得可行
    baogaitou
        12
    baogaitou  
       2019-11-23 21:51:41 +08:00
    https://github.com/baogaitou/code2azw3
    支持将 Golang 项目代码打包为 azw3.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.