V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tikazyq
V2EX  ›  程序员

开源一文多发平台 ArtiPub,让文章随处可阅

  tikazyq ·
tikazyq · 2019-09-21 11:30:22 +08:00 · 6792 次点击
这是一个创建于 1924 天前的主题,其中的信息可能已经有所发展或是发生改变。

背景

很多优秀的程序员和技术人员喜欢写技术文章和技术博客,通过这样的方式分享传播知识和经验,扩大自己的知名度和影响力,吸引粉丝关注,甚至有些技术博主还通过写文章来获取广告收入,很多优秀的博主还通过这种方法获得了出版书的机会以及工作机会。因此,写技术文章是一件非常值得投入的事情,帮助了自己,也让大众受益。

但是,写技术文章通常也很耗时,特别是一些优质文章,不仅需要旁征博引、构思文章结构、照顾读者受众,还需要做很多前期工作,例如搭建环境、写 demo 代码、测试代码等等。一篇优质技术文章通常需要 3-6 个小时来完成。然而,花了很多时间来写文章,最终发布出来的文章得不到很多人的关注是一件相当令人沮丧的事情。我们认为,优质文章值得获取关注和传播,让更多的技术工作者通过阅读文章获取知识获益。

每个技术博主都有自己喜欢的技术媒体平台,例如掘金、CSDN、微信公众号等等。很多技术博主也喜欢将文章发布在不同的平台上,寻求最大的关注度,同时也防止自己辛辛苦苦写的文章被别人复制粘贴盗版过去。然而,在多个平台上发文是一件麻烦的事情:博主需要同时登陆多个媒体平台,将自己的文章复制一个一个粘贴过去;更麻烦的是,有些平台只支持 Markdown,有些平台只支持富文本,博主需要在这两者之间来回转换,这增加了工作量。

一文多发平台 ArtiPub 就解决了这样的问题。下面我们将介绍一下近日刚上线的开源一文多发平台 ArtiPub。

ArtiPub 简介

ArtiPub (Article Publisher 的简称,意为"文章发布者")是一款开源的一文多发平台,可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub 安装简单,提供了多种安装方式( Docker、NPM、源码),可以一键安装使用,安装一般只要 5 分钟。

ArtiPub 首发版目前支持文章编辑、文章发布、数据统计的功能,后期我们会加入存量文章导入、数据分析的功能,让您更好的管理、优化您的技术文章。此外,我们还会接入更多媒体渠道,真正做到让文章随处可阅。

用户使用 ArtiPub 也很简单,只需要在浏览器上打开 ArtiPub 的 Web 界面,将文章以 Markdown 的形式输入到编辑器,然后点击一键发布,等待不到 1 分钟,文章就自动同步到各大技术媒体平台了。此外,文章的阅读、点赞、评论数据还将周期性的被同步回来,让作者可以近实时看到文章的传播情况。

平台一览

下面是平台的 Web 界面截屏,当然我们更推荐您去实际安装体验 ArtiPub。

平台管理

文章管理

文章编辑

文章发布

Chrome 插件

与其他平台比较

市面上已经存在一文多发平台了,例如 OpenWrite,为何还要创建 ArtiPub 呢?或许其他一文多发平台也是一个替代方案,但它们要求用户将自己的账户信息例如 Cookie 或账号密码上传到对方服务器,这很不安全,一旦平台发生问题,自己的账户信息会遭到泄漏。虽然我相信一般平台不会恶意操作用户的账户,但如果出现误操作,您的账户隐私将遭到泄漏,平台上的财产也可能遭到损坏,有这样的风险需要考虑。ArtiPub 不要求用户上传账户信息,所有账户信息全部保存在用户自己的数据库里,因此规避了这个安全风险。

另外,由于 ArtiPub 是开源的,JS 源码也比较易于理解,可扩展性很强,用户如果有其他平台的接入需求,完全可以通过更改源码来实现自己的需求,不用等待平台更新。开发组也将持续开发 ArtiPub,将其打造得更实用和易用。

ArtiPub 原理简介

其实 ArtiPub 的原理不复杂,简单来说就是利用了爬虫技术将文章发布到各大平台。ArtiPub 的爬虫是用了 Google 开发的自动化测试工具 Puppeteer,这个工具不仅可以获取需要有 ajax 动态内容的数据,还可以来做一些模拟操作,类似于 Selenium,但更强大。如何进行登陆操作呢?其实 ArtiPub 是通过 Chrome 插件获取了用户登陆信息( Cookie ),将 Cookie 注入到 Puppeteer 操作的 Chromium 浏览器中,然后浏览器就可以正常登陆网站进行发文操作了。Cookie 是保存在用户自己搭建的 MongoDB 数据库里,不对外暴露,因此很安全。

下图是 ArtiPub 的架构示意图。

架构原理简介如下:

  • 后端( Backend )是整个架构的中枢,负责给前端交换数据、储存读取数据库、控制爬虫、收集 Cookie 等;
  • Chrome 插件( Chrome Extension )只负责从网站( Sites )获取 Cookie ;
  • 爬虫( Spiders )被后端控制,负责在网站上发布文章和抓取数据;
  • 数据库( MongoDB )负责储存数据;
  • 前端( Frontend )是一个 React 应用,是 Ant Design Pro 改造而来的。

总结

总的来说,ArtiPub 解决了用户需要多平台发布文章、又不想泄漏账户信息的痛点。用户完全可以免费的使用 ArtiPub,因为它是开源的,架构原理也很透明,开发者也可以自己去贡献该开源项目。ArtiPub 很实用,作者已经将一些存量文章都发布到各个可用平台上了,效果还不错。想要尝试的话,请到 Github、Docker、NPM 主页上安装体验。

如果您觉得 ArtiPub 对您有帮助,请扫描下方群二维码,如果群满,请加作者微信 tikazyq1 并注明"ArtiPub",作者会将你拉入群。

54 条回复    2019-10-16 20:35:59 +08:00
iPhoneXI
    1
iPhoneXI  
   2019-09-21 11:59:50 +08:00 via Android   ❤️ 1
好东西,不过不加入一下 v2ex、medium 这些网站的支吗
tikazyq
    2
tikazyq  
OP
   2019-09-21 12:16:28 +08:00
@iPhoneXI V2EX 肯定是考虑的,近期会开发。medium 可能会在国际版加入,reddit、twitter、linkedin、hackernews 等等
xiaoz
    3
xiaoz  
   2019-09-21 12:19:36 +08:00 via Android
感谢分享,有空安装试一下。
tikazyq
    4
tikazyq  
OP
   2019-09-21 12:23:33 +08:00
@xiaoz 感谢关注
good1uck
    5
good1uck  
   2019-09-21 12:45:24 +08:00 via Android   ❤️ 1
要是支持一键提问,这个程序就会成为国内计算机系大学生最受欢迎的 app
Ultraman
    6
Ultraman  
   2019-09-21 12:47:42 +08:00 via Android
这个我觉得可以像 Rsshub 那样形成一个小的社区共同维护🤔
tikazyq
    7
tikazyq  
OP
   2019-09-21 12:53:02 +08:00
@good1uck 然后也成了最大的 spamming app
tikazyq
    8
tikazyq  
OP
   2019-09-21 12:53:44 +08:00
@vcinex 貌似可以的,但是需要一些 input 进来,现在功能还不完善,后期我们会考虑的
justin2018
    9
justin2018  
   2019-09-21 13:19:08 +08:00
不错 已收藏 😁
tikazyq
    10
tikazyq  
OP
   2019-09-21 13:28:02 +08:00
@justin2018 感谢关注
ericgui
    11
ericgui  
   2019-09-21 13:30:35 +08:00
支持!
tikazyq
    12
tikazyq  
OP
   2019-09-21 13:34:41 +08:00
@ericgui 感谢
peiqii
    13
peiqii  
   2019-09-21 13:45:04 +08:00
Cookie 导入指的是把别的网站的 cookie 存到 ArtPub 数据库吗?
gitandgit
    14
gitandgit  
   2019-09-21 13:49:38 +08:00
架构为什么用到 MongoDB 数据库 ? 这个软件会存储用户发布的文章数据吗?会不会存储用户的登录信息(例如各个平台的登录账户信息)? @tikazyq
tikazyq
    15
tikazyq  
OP
   2019-09-21 13:56:34 +08:00
@peiqii 只会将 cookie 存到你自己搭建的数据库,不会上传到云端
tikazyq
    16
tikazyq  
OP
   2019-09-21 13:58:30 +08:00
@gitandgit 用 mongodb 仅仅是使用比较熟练而已😅,其实该用更方便的 sqlite。

另外,artipub 不会将你的登陆信息存到云端,只会将 cookie 保存到你自己搭建的数据库里,对外不开放,只有你自己可以使用,因此安全性很高。其他平台,例如 openwrite,就要求将 cookie 信息保存到云端,这有安全风险
wujianxiong
    17
wujianxiong  
   2019-09-21 14:24:01 +08:00
不错 不错 支持
tikazyq
    18
tikazyq  
OP
   2019-09-21 15:04:29 +08:00 via iPhone
@wujianxiong 感谢支持
Hopetree
    19
Hopetree  
   2019-09-21 15:37:57 +08:00
已经 star,这种项目才是开源好项目啊,虽然自己用不到,但是项目的实用性还是挺好的,支持,学习
violence123456
    20
violence123456  
   2019-09-21 15:40:45 +08:00
支持支持,关注后续
iszengmh
    21
iszengmh  
   2019-09-21 15:43:52 +08:00 via Android
有语雀吗
tikazyq
    22
tikazyq  
OP
   2019-09-21 15:50:17 +08:00
@Hopetree 感谢支持,请问为什么用不到呢?
tikazyq
    23
tikazyq  
OP
   2019-09-21 15:50:26 +08:00
@violence123456 感谢支持
tikazyq
    24
tikazyq  
OP
   2019-09-21 15:50:49 +08:00
@iszengmh 请问语雀是文章平台么?
Hopetree
    25
Hopetree  
   2019-09-21 16:56:10 +08:00
刚用 docker 运行了,但是使用扩展收集 cookie 的时候一直都是报错,
Uncaught TypeError: Cannot read property 'query' of undefined
根本无法收集到 cookie,目前试过简书和知乎
oahebky
    26
oahebky  
   2019-09-21 17:13:08 +08:00
支持。
tikazyq
    27
tikazyq  
OP
   2019-09-21 17:27:16 +08:00
@Hopetree 简书现在是无法发布的。知乎可以。

请加我微信看看问题在哪里,帮助优化产品。谢谢 tikazyq1
tikazyq
    28
tikazyq  
OP
   2019-09-21 17:27:50 +08:00
@oahebky 感谢支持
tikazyq
    29
tikazyq  
OP
   2019-09-21 17:28:56 +08:00
@Hopetree 那个前端错误可以忽略,现在还不知道啥问题,可以尝试获取一下 cookie。您是部署在不同的服务器上么,如果是的话,需要点击那个扳手按钮设置后端 API 地址
unstop
    30
unstop  
   2019-09-21 17:57:20 +08:00
太棒了,楼主的产品让我想给公司开一个技术博客了。
tikazyq
    31
tikazyq  
OP
   2019-09-21 18:23:26 +08:00
@unstop 随时欢迎各种安利呀
woncode
    32
woncode  
   2019-09-21 18:32:01 +08:00 via Android
棒,我很早就有做这样一个应用的念头,现在好了~
tikazyq
    33
tikazyq  
OP
   2019-09-21 18:40:23 +08:00
@woncode 可以直接用了
abmin521
    34
abmin521  
   2019-09-21 18:44:43 +08:00   ❤️ 1
本来不想回复的

求放过 不想打开 10 个都是一样的文章 算是 以上 7 个站还是少逛吧
tikazyq
    35
tikazyq  
OP
   2019-09-21 19:17:06 +08:00
@abmin521 这个不影响呀,其实每个平台的受众都是不一样的,文章多个平台发布是为了让更多人了解优秀文章
yuanfnadi
    36
yuanfnadi  
   2019-09-21 19:21:46 +08:00
cookie 这么小的东西,用 本地文件+ json 就好了。
tikazyq
    37
tikazyq  
OP
   2019-09-21 19:26:54 +08:00
@yuanfnadi 是个选择,但用户需要打开浏览器调试窗口呀,这个操作还是有些麻烦的
24bit
    38
24bit  
   2019-09-22 10:21:00 +08:00
好东西
tikazyq
    39
tikazyq  
OP
   2019-09-22 10:24:39 +08:00
@24bit 感谢关注
37Y37
    40
37Y37  
   2019-09-22 17:48:00 +08:00
觉得很牛逼,支持一下
tikazyq
    41
tikazyq  
OP
   2019-09-22 19:39:22 +08:00
@37Y37 感谢支持
Arrowing
    42
Arrowing  
   2019-09-23 10:00:04 +08:00
好想法,支持一下
tikazyq
    43
tikazyq  
OP
   2019-09-23 10:28:12 +08:00
@Arrowing 感谢支持,更多的欢迎试用哟
dyc87112
    44
dyc87112  
   2019-09-23 13:25:54 +08:00   ❤️ 1
很棒的项目~ 可以再支持一下微信啥的就更棒了!对能自己部署的用户很贴心!

有类似需求的还可以关注一下我们的平台,完全 SaaS 化,不需要部署就可以使用。

https://openwrite.cn ,2019 年 7 月上线,已平稳运行至今。

覆盖主流技术媒体,除了支持主流渠道之外,还支持微信公众号、编辑器图床等超多开源版没有的细节功能。

除此之外还有一些运营工具、和即将推出的增长工具、资源对接工具,帮助技术媒体人更好的做好个人品牌 ^_^

一大波贴心功能正在向你奔来~
Jackxun123
    45
Jackxun123  
   2019-09-23 13:47:54 +08:00
已经下载并安装,在良心云试一下,支持
xiaobeihost
    46
xiaobeihost  
   2019-09-23 14:37:33 +08:00
这个不错,可以试试
mywaiting
    47
mywaiting  
   2019-09-23 16:35:53 +08:00
先前想挖坑的产品,现在竟然有开源了,大赞!

希望能坚持下去,越做越好!
tikazyq
    48
tikazyq  
OP
   2019-09-23 16:48:16 +08:00
@Jackxun123 感谢支持
tikazyq
    49
tikazyq  
OP
   2019-09-23 16:48:31 +08:00
@xiaobeihost 欢迎试用
tikazyq
    50
tikazyq  
OP
   2019-09-23 16:48:52 +08:00
@mywaiting 感谢支持,可以随时试用提 issue :)
coreos
    51
coreos  
   2019-09-24 07:08:52 +08:00
开源就顶
kingslayer
    52
kingslayer  
   2019-09-29 16:21:40 +08:00
支持~
CheckH
    53
CheckH  
   2019-10-14 18:34:39 +08:00 via iPad
@unstop 期待 新小博客 🤓
YinAoXiong
    54
YinAoXiong  
   2019-10-16 20:35:59 +08:00 via Android
回去就尝试一下,终于不用复制粘贴了。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3634 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 04:23 · PVG 12:23 · LAX 20:23 · JFK 23:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.