我喜欢在Geektimes上写文章,但是有一个不便之处。这需要使用habra样式的自定义标记,并将图片手动传输到habrastorage.org。我在Windows下用MS Word写文章。老实说,我花了大约一个小时来找到针对该问题的现成解决方案。最好的发现是对habrastorage API的分析,以自动加载图像,但似乎已经过时了。提到某个转换器,但链接断开。所提出的自动化的本质是通过单击Word中的按钮,准备好将文本复制到Geektimes编辑器窗口。并在复制后使照片自动出现在其中。该技术非常简单。如您所知,MS Word可能包含Visual Basic中的嵌入式代码。这是一种特殊的Visual Basic方言,称为VBA(Visual Basic for Applications)。)在VBA中,您可以编写非常复杂的脚本将文档转换为Word。用VBA编写的过程称为宏。可以从特殊菜单中显式调用Word中的宏,也可以将对它们的执行的调用分配给工具栏上的特定按钮。照片极客时代他抽自己。为了让他从某个地方下载,他需要将图片放在Internet上的某个地方。为了不花时间开发和分析用于免费图片托管网站(例如photos.google.com)的各种API ,我决定使用老式的FTP。我们购买或以任何方式收到带有FTP内容下载的网站托管服务。山姆微软Word VBA它没有使用FTP的工具,但可以与COM对象(即特殊的dll文件)很好地交互。要在FTP上工作,使用了WinSCP项目中的COM模块。
我编写的VBA宏首先用文本的标记替换了Word文档的指定样式,然后将Word文档转换为HTML文档。HTML表示本身对我们来说不是必需的。作为转换的结果,Word将创建一个子目录,其中包含该格式的文档中的所有图片。png。图片批量传输到给定的FTP服务器。此后,宏将删除文档中的图片,并在其位置链接中替换为这些图片刚刚上传的站点。它保留在Word文档的窗口中,以选择所有文本并将其复制到Geektimes中的编辑器窗口中。单击Geektimes中的按钮将其另存为草稿。然后再次单击编辑,并确保Geektimes已经下载了图片并将其替换为habrastorage的链接。工作完成了。安装WinSCP
下载文件。NET程序集/ COM库,并将其解压缩到可访问的目录中。在此目录中,运行命令行:%WINDIR%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ RegAsm.exe WinSCPnet.dll /代码库/tlb:WinSCPnet64.tlb就是这样。如何创建有关此技术的文章。
为简化起见,创建了一个模板文件Article_GT.dotm,其中包含必要的VBA宏和一个用于连接WinSCP对象的指针。要查看宏并检查连接WinSCP对象的可操作性,请在打开模板文件后,单击Word工具栏上的此按钮,然后
选择其中的“ 查看宏”,然后选择“ 编辑”。将会出现
这样的窗口:在此窗口中,在“ 工具”->“引用”菜单中,将打开此对话框。应将其标记为WinSCP。
如果您直接在Google中打开文件然后将打开一张空白纸。没错,模板为空。在其中,只有普通样式和标题1样式与habr样式相似。您必须自己编写文本。使用前必须先调整模板中的宏。在宏的开头就是这样一个块Const TMPNAME = "TMP" '
Const URL = "http://www..ru"
Const FTPPATH = "/public_html/imgs/" ' FTP,
Const WEBPATH = "/imgs/" ' ,
Const HOSTNMAE = "ftp..ru" ' FTP
Const USERNAME = " " ' FTP
Const PASSWORD = " " '
您需要在Word中将文件作为模板打开,输入正确的参数并另存为模板。然后,您可以单击模板并撰写文章。保存该文章并调用ConvertToHabr宏。如果图片下载正常,它将被写在Word窗口的状态栏中。初始文档将关闭,在该位置显示已转换的文本。免责声明
这不是一个功能齐全的转换器。现在,它仅用Haber标签替换了Bold和Italic字体的样式,将Heading 1..5样式更改为标签,并替换了标签而不是超链接和图片。由于这是我在撰写本文时所需的全部内容。模板文件在这里可用,并且每个人都可以使用它进行改进,但是我不能保证这个项目的继续,它的支持,它的质量,它的专利纯度以及该链接的永恒。