我写了一个Go脚本来生成要点,这是我学到的

那不是地鼠,不是a。 Hans VethUnsplash摄影

撰写博客并将其发布到不同的平台会带来很多繁琐的工作。

例如,我通常通过在代码编辑器中创建markdown文件来开始撰写文章。 在撰写本文时,我插入代码段和图像以使内容更易消化。

但是,当我需要将同样的降价发布到Medium时,会出现问题。 尽管他们的文本编辑器很漂亮,但是将我的markdown文件复制并粘贴到那里并不是绝对安全的。

这里有一些问题:

  • 粘贴在反引号中的fieldssomeFunction类的代码字未正确粘贴
  • 较大的代码块当前不支持语法突出显示
function doSomething() { 
return function(name) {
return 'Hello ' + name
}
}
  • 粗体斜体字保留其样式,但不与将它们包装在我的markdown文件中的* s分开

这是粘贴的这三个项目符号的屏幕截图:

叫我懒,但是写了2500多个单词后,我必须:

  • 仔细检查每一行,确保我的语法有意义。
  • 由于我的某些文章是教程,因此请确保我的代码示例能够正常工作。
  • 通过Github Gists使我的代码看起来很漂亮,从而带来了全新的制表符大小调整。
  • 清理所有markdown样式的超链接,并从突出显示的单词和短语中删除多余的星号或反引号。

这变得筋疲力尽 。 尝试生成可以交叉发布到多个站点的内容变得非常繁琐。 在一个站点上发布内容需要大量的工作。

为什么我不只参与并专门发布到dev.to我自己的站点 ,而我实际上只是需要粘贴我的markdown文件?

因为那不是我的忍者。 我必须在整个互联网上无所不在。

清洗代码片段

让我们从获取最低限度的成果开始,即清理那些代码段。 我们应该怎么做?

好吧,蛮力的方法是照常复制和粘贴,删除表示代码块的反引号,按“ CMD + option + 6”创建一个Medium Codeblock™,然后处理代码块中笨拙的换行符和制表符。 别忘了,“中型”编辑器中的选项卡不会像在代码编辑器中那样起作用。

不。 我不会再这样做了。

下一个选项是手动创建Github要点,将代码格式委派给Github。 我们甚至可以从中突出显示语法。

但是,在我最近的工作中,要点的制表符大小似乎默认为8。这是我刚刚粘贴到要点的示例, 专门在编辑器中设置了大小为2的空格

似乎解决此问题的唯一方法是用空格替换制表符的所有实例(在我的情况下为2个空格)。 在此示例中,我可以手动执行此操作。 如果只需要清理一个片段,那还不错。

缺点是每个选项卡都必须用空格代替。 我以前的文章有18个JavaScript代码段。 那是一次痛苦的编辑经历。

介绍Gist发生器

* 我希望有个好主意

我决定利用我的开发排行榜,利用Github API来创建要点。 这个用Go语言编写的脚本将按以下步骤进行:

  1. 读入降价文件
  2. 解析语言片段,例如“ go”或“ javascript”
  3. 为每个代码段创建要点
  4. 保留一个带有摘要和要点引用的对象
  5. 将代码段替换为其各自的摘要URL
  6. 写入新的markdown文件,将代码段替换为“中”的要点

如果您有兴趣签出源代码,可以在此处签出仓库。 在决定出售任何产品之前,我想进行一些测试,但是无论如何它都是开源的。

当前用法如下:

./gist-generator -f example.md -token <GITHUB_ACCESS_TOKEN>

运行此脚本之后,我们最终得到一个名为example.medium.md的文件,这意味着我们理想地将此文件发布在介质上,包括摘要和所有内容。

如果我创建了一个从中使用此脚本的Web客户端,则用户将使用其Github帐户签名,从而省去了手动生成个人访问令牌并将其粘贴到CLI的步骤。

那真是太好了,但现在还不在我的考虑范围之内-让我们看看一些更紧迫的问题。

遇到的问题

在编写此脚本的地方,我遇到了很多麻烦。

这样的问题之一是处理将要创建的要点的格式。 在我的降价代码段中看起来不错的内容不一定在要旨上看起来不错。

在我的第一遍中,由于换行符和选项卡过大,我的空白过多。 通过遍历代码片段中的字节,我可以删除不必要的换行符并将制表符替换为空格。 这是一个例子:

现在,在我为此脚本编写的所有Go代码中,为什么我显示了换行符和制表符的修剪?

这是因为空白问题是最容易产生最大结果的问题。

还有一些较低级别的问题,涉及如何最好地使用字节缓冲区解析文件或构建字符串。 我可能会在以后的文章中解决这个问题,因为它值得拥有— Go具有许多强大的内置方法,仅凭文档本身就无法充分发挥作用。

经验教训和未来项目

我喜欢这个项目有几个原因:

  • 它足够小,不会太吓人
  • 最终目标是明确而实际的:提高我的博客文章的质量
  • 我有机会练习开发Go命令行工具
  • 它可以轻松融入类似博客生产力工具的生态系统

到最后一点,我的意思是要点生成步骤可能是其中几个步骤之一。

我可以编写类似的脚本,以消除博客文本中多余的降价字符。 我发现了一种通过本文部分完成此步骤的方法

中号允许您将markdown文件粘贴到要点中(因为它需要URL)。 这使它可以正确处理反引号和星号包装的单词。 它甚至可以处理文本中的超链接。

为了处理语法错误,我可以补充一点,也许调用一个简单的grammarly怎么ISH API的一个步骤。 如果还没有开源解决方案,那可能是另一个未来的项目构想。

我什至可以创建一个仪表板,如果脚本中的错误导致其中任何一个出现错误,则可以轻松删除要点。 当前的官方要点仪表板在编辑或删除要点方面效率很低。

最后,我一直在围绕基于云的Markdown编辑器的想法,该编辑器可从移动设备访问。 您知道,当我在迪士尼乐园排队等候时,想编辑我的一篇文章。 像这样的时代。

包起来

要做的事太多了,似乎时间却很少。 我想我的下一步是涵盖与从降价导入故事有关的其他美学问题。

在这一点上,任何减少编写技术内容所涉及的摩擦的项目都是有价值的。

该项目源于我希望消除与大量冗余编辑相关的某些痛苦。 有些痛苦是由于对平台缺乏了解引起的,而另一些痛苦则是由于平台的实际限制所致。

编写这样的文章并着手进行类似的项目可以解决两个问题:您将始终学习该平台的功能,同时改善不足之处。

毫无疑问,以生产力为名的绝佳学习经历。

同样,如果您想调查项目的工作方式,则这里是项目回购的链接。

对更多帖子或机智的言论感到好奇吗? 给我鼓掌,并在MediumGithubTwitter上关注我!

From: https://hackernoon.com/i-wrote-a-go-script-to-generate-gists-heres-what-i-learned-bca86435c878

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值