如何从GitHub打印


98

如果要从屏幕上显示的GitHub打印markdown文件,例如:https : //github.com/RestKit/RestKit/blob/master/Docs/Object%20Mapping.md

那我该怎么做呢?我需要在生成的github html页面(我保存的)中更改什么代码,以使打印输出符合降价的外观和感觉?

到目前为止,我唯一的线索就是这个:https : //makandracards.com/makandra/4947-how-to-print-github-wiki-pages 但它更多是一种实用(非编程)解决方法,这真的行得通,因为所使用的markdown解释器不如在GitHub网站上运行的markdown解释器那么宽容,因此失败了。

Answers:


34

使用GitPrint是直接从Github打印文件的好方法。


7
GitPrint似乎提供空的pdf文件。这可能是暂时的问题,但是,如果该工具不可靠,则将无用。
Ragnar123 2014年

21
请注意,如果您尝试从私人Github存储库中进行打印,则此选项将不起作用。
杰森·惠勒

3
GitPrint也破坏了格式,使它无效(对双关语很抱歉)。
jzions

7
GitPrint不起作用。关于根本不处理其github问题,存在多个未解决的问题
CodingYourLife

5
我可以确认GitPrint不再工作=(
Madeo

65

这是一个最适合我的书签

  1. 复制书签Gist的内容,下面将其作为备份复制。
  2. 在浏览器的工具栏中创建一个新书签,并为其指定一个合适的名称。
  3. 将那一行代码放在“ URL”字段中。

如果现在转到Github上的Markdown页面并单击书签,它将重新格式化页面并更改CSS,以使其在打印时与屏幕上的外观相同。现在只需打印页面即可。

书签内容:

javascript:(function(e,a,g,h,f,c,b,d)%7Bif(!(f=e.jQuery)%7C%7Cg%3Ef.fn.jquery%7C%7Ch(f))%7Bc=a.createElement(%22script%22);c.type=%22text/javascript%22;c.src=%22http://ajax.googleapis.com/ajax/libs/jquery/%22+g+%22/jquery.min.js%22;c.onload=c.onreadystatechange=function()%7Bif(!b&&(!(d=this.readyState)%7C%7Cd==%22loaded%22%7C%7Cd==%22complete%22))%7Bh((f=e.jQuery).noConflict(1),b=1);f(c).remove()%7D%7D;a.documentElement.childNodes%5B0%5D.appendChild(c)%7D%7D)(window,document,%221.3.2%22,function($,L)%7B$('%23header,%20.pagehead,%20.breadcrumb,%20.commit,%20.meta,%20%23footer,%20%23footer-push,%20.wiki-actions,%20%23last-edit,%20.actions,%20.header,.site-footer,.repository-sidebar,.file-navigation,.gh-header-meta,.gh-header-actions,#wiki-rightbar,#wiki-footer,.commit-tease').remove();%20$('%23files,%20.file').css(%7B%22background%22:%22none%22,%20%22border%22:%22none%22%7D);%20$('link').removeAttr('media');%7D); var removeMe = document.getElementsByClassName("file-header")[0]; removeMe.parentNode.removeChild(removeMe);

2
我发现此小书签未正确删除登录用户的Github标头,因此我在此处更新了要点
JKnight 2013年

2
自从新的github设计以来就被破坏了
zsitro

如果我想尝试一些编辑,此文件是否在任何地方都没有压缩版本?这是当前要点中的所有压缩/加密代码。
2013年

答案已使用@randomor的最新版本进行了更新
Cosmo Harrigan

6
我添加了进一步的改进以删除标头元数据,标头操作,右侧栏和页脚(2014年10月):gist.github.com/BenjaminKlatt/fefb0c53fbe16bc537c3
Benjamin

13

这是一个超级简单的解决方案:只需在自述文件中选择要打印的所有文本,然后打印并选择“仅选定的文本”。

这可以在Chrome(包括图片)中完美运行,不需要JavaScript或外部网站,也无需下载或构建软件。

这是我在以下服务器上测试过的内容:https : //github.com/kroitor/gjk.c/blob/master/README.md


2
真好!Chrome中的选项现在称为More settings- Selection only。它支持格式设置,不需要其他软件或下载markdown文件。
Jerry101 '17

从Firefox打印时,选择要打印的内容,从“文件”菜单访问“打印”选项(或按ctrl + p),然后选择“选择”选项。
myesain

8

如果您是Mac用户,另一种可能性是在Safari Web浏览器中使用“阅读器”功能。

只需打开markdown文件,然后单击右上角的“阅读器”按钮即可。

然后只需使用命令“ CMD + P”打印页面。

奇迹般有效。


这似乎不再适用于最新的iOS / Safari :(
Mauricio Morales

8

另一个选择是pandoc。安装后(支持Windows,Linux和Mac OS),命令如下所示: pandoc file.md -f markdown --smart -s -o file.pdf

然后打印生成的PDF文件。


还有一个在线转换器,为我提供了最好的输出:http : //www.markdowntopdf.com/

Pandoc也有一个在线演示。


5

找到了一个很棒的工具,可以达到我要求的打印结果:http : //plessl.github.com/wkpdf/

以下是其网站的引文:“ 如果您要渲染一个带有所有图形糖衣的网站,使其与浏览器中的视图完全匹配,则可以显式强制使用CSS屏幕样式表,并启用背景图像的打印,如以下示例...

所以我跑了:

wkpdf --source https://github.com/RestKit/RestKit/blob/master/Docs/Object%20Mapping.md
      --stylesheet-media screen
      --print-background yes
      --output printIt.pdf

太神奇了!


6
缺点:它仅在OS X上运行,它打印无用的页眉和页脚(是吗?因为我在Linux上,所以我不能尝试使用此工具)
Giovanni Cappellotto

而且由于Apple对OS X的更改,作者不再维护wkpdf。
克里斯·米勒

4

我做了一个Chrome扩展程序,就是这样做的:GitHub Markdown Printer。这是一个一键式解决方案,用于准确打印markdown文件在GitHub上的显示方式。

脚步:

  1. 安装Chrome扩展程序
  2. 转到Markdown预览的GitHub / GitHub Enterprise上的任何页面
  3. 单击GMP图标以打开打印对话框,然后打印或另存为PDF

查看回购以获取更多信息。


该扩展名可以读写您访问的所有页面。不确定它的安全性
Vikram Khemlani

2
@VikramKhemlani这是一个令人担忧的问题,但是我向您保证我没有做任何恶意的事情。需要读取权限才能查看1)您是否在github上和2)是否有有效的markdown预览。要添加自定义样式表以在打印时删除多余的元素,必须具有写许可权。该项目是开源的,您可以在这里找到源代码:github.com/jerry1100/github-markdown-printer/tree/master/src。如果您仍然不确定,可以在chrome devtools中打开“网络”标签,然后发现我没有在任何地方发送任何数据。
杰里·吴


2

克隆仓库

gem install bluecloth
  • 将markdown文件呈现为html
  • 在浏览器中打开文件系统上的文件
  • 从浏览器打印

http://deveiate.org/projects/BlueCloth

您可以在此处找到该api的示例:http : //deveiate.org/projects/BlueCloth/browser/spec/bluecloth_spec.rb


File.open("/path/to/output.html", 'w') {|f| f.write(BlueCloth.new(File.read("/path/to/input.md")).to_html()) }给我一个HTML页面,但没有GitHub的格式或颜色。那是打印出我在浏览器中看到的漂亮版本的关键部分,BlueCloth是否是合适的工具?为何如此?
pulkitsinghal 2012年

2

我建议使用http://awesomescreenshot.com/拍照,然后裁剪图像并打印(我就是这样做的,它对我有用:)。


我的浏览器尚不支持它,我将确保在此解决方案可用时测试其有效性,并在实际可行时对其进行投票。
pulkitsinghal

1

不需要Chrome的超级简单方法:

您可以欺骗用户代理,告诉您您是移动设备,以获得漂亮的可打印版本。

我这样做的方法-有很多方法-我使用Chrome,Chrome devTools的“仿真”功能来仿真Android设备,例如Samsung Note 3,然后在屏幕小节中删除“仿真屏幕”,以获取全分辨率,然后我打印。


1

另一种方法是从GitHub或Bit Bucket下载markdown并使用eclipse打开。您将在编辑器窗格中获得“预览”选项卡。从文件菜单中选择打印。简单的方法,但是我要冒昧地假设您已经安装了Eclipse,通常大多数开发人员都已经安装了。

BR


1

尝试抓地力。

pip install grip
grip markdown.md

然后将其托管在本地端口上。然后,您可以从自己喜欢的浏览器通过本机OS打印对话框打印或保存为PDF。

这里



0

如果您有Instapaper帐户,请导航到README.md文件,将链接保存到Instapaper,然后在该链接上的Instapaper中打开“文本”选项。大部分“杂物”都已删除,并且页面打印良好。


0

简单技巧:

我一直在使用Marked或在线工具Dillinger打开markdown文件,然后从那里打印。其中一些工具可让您将格式设置为Github或其他样式。

更好的方法:

自从我第一次写以上答案以来,我发现了一个更好的方法:

我发现了比我之前说的更好的方法。

  1. Git将您的Wiki克隆到本地目录
  2. 根据https://github.com/GitbookIO/gitbook中的说明,使用gitbook和Calibre的ebook-convert生成PDF

    • 在Mac上,您必须使用以下命令在运行gitbook pdf命令之前,将ebook-convert从/Application/calibre.app目录内链接到合适的位置:

    ln -s /Applications/calibre.app/Contents/console.app/Contents/MacOS/ebook-convert / usr / local / bin



0

适用于Chromium浏览器和“当前” GitHub html页面结构

  1. 创建一个书签
  2. 在地址字段中输入:
javascript:var content = document.querySelector('.repository-content'); 
var toc = document.querySelector('#wiki-rightbar');
toc.innerHTML = '';
var wb = document.querySelector('.has-rightbar .wiki-body');
wb.style.marginRight = '0px';
var body = document.querySelector('body'); 
body.innerHTML = ''; 
body.appendChild(content);
window.print();

选择Wiki文本,删除目录并设置其格式,替换正文内容并调用打印机。



0

只需将MD文件转换为PDF

您可以下载.md文件并将其上传到此处,以将其转换为pdf文件。您可以轻松打印。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.