欢迎回到另一个 Repo Recap,我们(通常)在这里介绍上周对dev.to 的存储库和iOS repo的贡献。本期将涵盖三周,即 3 月 16 日至 4 月 5 日。

特点

  • 夜间模式正式公测,同时更改帖子字体!您可以在您的设置中更改它:https://dev.to/settings/misc感谢@ben将其推出!

GitHub 徽标添加适当的 css 变量到用户样式配置 #2105

benhalpern 头像

benhalpern 发布于2019 年 3 月 18 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这会使用 CSS 变量呈现正确的夜间主题。这目前在application.html.erb中采用硬编码的主题信息,但将来可以修改为采用变量。

还添加了另一个字体选项:comic sans

在 GitHub 上查看

  • 感谢@picocreator让我们的 Docker 构建在一个步骤中运行! PR 中的更多详细信息:

GitHub 徽标功能:docker-run.sh 脚本 + docker 容器构建 #1844

PicoCreator 头像

PicoCreator 发布于2019 年 2 月 22 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

一个 bash 脚本,可帮助快速设置 DEV 或 DEMO 环境

bash-3.2$ ./docker-run.sh

进入全屏模式 退出全屏模式

#---

此脚本将执行以下步骤...

1) 停止并删除任何名为“dev-to-postgres”和“dev-to”的 docker 容器

2) 如果 RUN_MODE 以“RESET-”开头,则重置任何存储目录

3) 构建 dev.to docker 镜像,名称为 'dev-to:dev' 或 'dev-to:demo'

4) 部署 postgres 容器,挂载名为 'dev-to-postgres' 的 '_docker-storage/postgres'

5) 部署名为“dev-to-app”的dev-to容器,并将其端口设置为3000

要正确运行此脚本,请执行以下命令(在 dev.to 存储库文件夹中)...

'./docker-run.sh [RUN_MODE] [其他 docker 环境参数]'

或者以“交互模式”运行此脚本,只需运行

'./docker-run.sh 交互式演示'

#---

#---

RUN_MODE 可以是以下任一

- 'DEV' : 将容器启动到 bash 中,并提供快速入门指南

- 'DEMO' :启动容器,然后运行 dev.to(需要 ALGOLIA 环境变量)

- 'RESET-DEV' :在以 DEV 模式运行之前,重置 postgresql 并上传数据目录以进行干净的部署

- 'RESET-DEMO' :在以 DEMO 模式运行之前,重置 postgresql 并上传数据目录以进行干净的部署

- 'INTERACTIVE-DEMO' :以'interactive' 模式运行此脚本以设置'DEMO'

例如,在 bash 中运行开发容器很简单

'./docker-run.sh DEV'

运行一个简单的演示,使用一些虚拟数据(将 <?> 替换为实际键)

'./docker-run.sh DEMO -e ALGOLIASEARCH_APPLICATION_IDu003d<?> -e ALGOLIASEARCH_SEARCH_ONLY_KEYu003d<?> -e ALGOLIASEARCH_API_KEYu003d<?>'

最后要运行一个工作演示,您需要提供...

'./docker-run.sh .... -e GITHUB_KEYu003d<?> -e GITHUB_SECRETu003d<?> -e GITHUB_TOKENu003d<?>

和/或...

'./docker-run.sh .... -e TWITTER_ACCESS_TOKENu003d<?> -e TWITTER_ACCESS_TOKEN_SECRETu003d<?> -e TWITTER_KEYu003d<?> -e TWITTER\ _SECRETu003d<?>

请注意,所有这些也可以在运行脚本之前通过环境变量进行配置

#---

进入全屏模式 退出全屏模式

并使用 docker 进行部署。包括在部署之前进行重置的选项。

此处提供的可选上下文信息:https://dev.to/uilicious/adopt-your-own-devto----with-a-single-command-almost-1c04

需要关于...的建议

如果有人可以指导我如何在“生产”模式下运行 dev.to,那将非常有助于提高 docker 容器的整体性能

添加到文档中?

  • docker hub 示例自述文件:https://github.com/uilicious/dev.to-docker/blob/feature/docker-run-script/dockerhub-readme.md

  • https://cloud.docker.com/u/uilicious/repository/docker/uilicious/dev.to

  • 如果这看起来不错,我可以修改自述文件吗?

什么 gif 最能描述这个 PR

quick demo

哪个 gif 最能描述您的感受?

how i feel

在 GitHub 上查看

  • 您现在可以在撰写新帖子时通过参数添加预填充降价。https://dev.to/new!以后有更多关于这个功能的细节! PR by@ben

GitHub 徽标为 /new #2108 添加任意预填充降价

benhalpern 头像

benhalpern 发布于2019 年 3 月 18 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

此功能允许用户提供dev.to/new?prefill=A BUNCH OF MARKDOWN之类的 url 以提供任意模板。这类似于标签预填充模板。

在 GitHub 上查看

  • 我们现在为您的帖子提供了一些本机视图跟踪。这有助于我们更轻松地显示趋势。 PR by@ben

GitHub 徽标添加有机页面查看总和并修改 seo boostables #2109

benhalpern 头像

benhalpern 发布于2019 年 3 月 18 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这使我们能够存储有关有机页面视图(最近和所有时间)的数据并以这种方式显示趋势。用于侧边栏,以帮助维护已经在 Google 上运行良好的页面的 SEO。

在 GitHub 上查看

  • 感谢@willamesoares,评论框/文本区域现在可以调整大小了!随心所欲地放大。

GitHub 徽标允许用户调整编辑评论文本区域元素的大小 #1866

willamesoares 头像

willamesoares 发布于2019 年 2 月 24 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

根据投诉,这允许用户在编辑评论时调整文本区域元素的大小。

相关票证和文件

#1554

移动和桌面屏幕截图/录音(如果有 UI 更改)

edit_comment

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @davefollett标记删除 textarea 更改:用改进的替换占位符文本

GitHub 徽标标记删除 textarea 更改:用改进的...替换占位符文本...#2063

davefollett 头像

davefollett 发布于2019 年 3 月 14 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

标签删除 textarea 更改:

  • 用改进的示例文本替换占位符文本 改进占位符文本以明确版主只需提供原因。

  • 增加高度,默认显示所有文本

相关票证和文件

解决 #2001

移动和桌面屏幕截图/录音(如果有 UI 更改)

Screenshot_20190313_231631

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @ben将主题添加到主列表、通知和聊天

GitHub 徽标将主题添加到主列表、通知和聊天 #2119

benhalpern 头像

benhalpern 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

更多主题!

在 GitHub 上查看

  • 一个小功能,但我们现在通过环境变量设置站点徽标。公关@ben

GitHub 徽标添加通过 ENV 变量设置站点徽标的功能 #2123

benhalpern 头像

benhalpern 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这允许管理员为特殊事件以及平台的通用实例设置新徽标。

在 GitHub 上查看

  • 感谢@rhymes在图像上传失败时添加更清晰的错误消息!

GitHub 徽标处理图片上传错误 #2018

押韵头像

押韵 发表于2019 年 3 月 10 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

当前,当图像上传导致错误时,服务器“中断”,生成 HTTP 500 未处理错误,并且向用户显示评论编辑器和编辑器 v1 的通用“无效文件”,而编辑器 v2 则什么都没有。

在这个 PR 我添加/更改了以下内容:

  • 一个正确的错误处理服务器端(图像上传错误不应该导致 HTTP 500,因为错误很好,是客户端发送了错误的东西)

不依赖于客户端的* 错误确实应该生成 HTTP 500

CarrierWave 返回的与客户端错误相关的* 条消息直接显示给用户(我从 CarrierWave 自己的locale/en.yml检查了它们似乎可以被用户使用

CarrierWave 返回的* 条与服务器错误相关的消息仍会得到处理,但会向客户端发送通用的“发生服务器错误”(是否也应该将这些消息发送到错误跟踪器?)

  • 我在客户端添加了错误处理

注意:我对我选择在编辑器 v2 中显示上传错误的方式不是很有信心,让我知道它是否应该以不同的方式显示或者是否应该有更好的样式。

我为三个案例添加了屏幕录像

相关票证和文件

关闭 #936,关闭 #2008

移动和桌面屏幕截图/录音(如果有 UI 更改)

编辑器 v1

editor-v1

编辑器 v2

editor-v2

评论编辑

comment-editor

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @dabrorius将关注组织的列表添加到仪表板。谢谢,@dabrorius!

GitHub 徽标将关注组织列表添加到仪表板 #2157

dabrorius 头像

dabrorius 发布于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

将关注的组织列表添加到用户的仪表板。

相关票证和文件

#1958

移动和桌面屏幕截图/录音(如果有 UI 更改)

屏幕截图 2019-03-20 在 15 53 47

屏幕截图 2019-03-21 在 14 36 14

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

alt_text

在 GitHub 上查看

  • 我们现在在左侧有一些商店横幅,以防您想开发自己的风格。PR by@ben

GitHub 徽标在左侧边栏添加 DEV 商店显示区域 #2162

benhalpern 头像

benhalpern 发布于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

添加了将商店和其他主题日内容放在左侧边栏底部的功能

屏幕截图 2019-03-21 下午 2 55 56

在 GitHub 上查看

  • 感谢@jess,我们现在可以通过我们的内部工具合并帐户!如果您遇到重复帐户的问题,请随时发送电子邮件至yo@dev.to。

GitHub 徽标合并用户并给予专业用户信任的角色 #2176

jessleenyc 头像

jessleenyc 发布于2019 年 3 月 22 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

  • 自动赋予“PRO”用户信任角色。我确信 PRO 的东西很快就会被移出这个区域,但我认为现在这是有道理的。

  • 将合并用户功能添加到 /internal。

  • 如果要删除的帐户有两个身份,则阻止合并(可能表明不应删除此帐户)

在 GitHub 上查看

  • @ben使用几个新的推荐标签更新了我们的入职培训。在下面查看:

GitHub 徽标添加几个推荐的入职标签 #2217

benhalpern 头像

benhalpern 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这为入职流程添加了一些流行的标签。

在 GitHub 上查看

  • 感谢@mariocsee,您现在可以在 Connect 聊天中阻止或轻松举报滥用行为!

GitHub 徽标阻止/报告 dev-connect #2074 中的滥用行为

mariocsee 头像

mariocsee 发布于2019 年 3 月 15 日

这是什么类型的PR? (勾选所有适用)

  • [x] 特征

说明

向 DEV Connect 添加阻止和报告滥用行为以防止滥用行为。用户可以保持收件箱打开,被阻止的用户无法重新打开与他们的聊天。

blocked现在是ChatChannel``status的一个选项。这可以防止ChatChannel/connect中呈现,并且不允许将status更改为active。目前,没有办法在用户端取消阻止/connect上的某人。

相关票证和文件

继续#1563

移动和桌面屏幕截图/录音(如果有 UI 更改)

阻塞

阻塞

举报滥用行为

举报滥用

添加到文档中?

  • [x] 不需要文档

在 GitHub 上查看

  • 在愚人节那天,我们试图做点什么,但结果有点混乱......这是有问题的 PR,以及相关的帖子:

GitHub 徽标使漫画无默认设置 #2257

benhalpern 头像

benhalpern 发布于2019 年 4 月 1 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

做出好的选择

在 GitHub 上查看

[

开发团队

](/开发团队)[

Comic Sans 现在是默认阅读字体

Ben Halpern for The DEV Team ・ 2019 年 4 月 1 日 ・ 2 分钟阅读

#meta #webdev

](/devteam/comic-sans-is-now-the-default-reading-font-2n6g)

  • 我们现在有用于分析的 API 端点!这目前仅适用于专业会员(更多详细信息即将发布)。

GitHub 徽标添加 API 分析端点 #2293

赵安迪头像

Zhao-Andy 发布于2019 年 4 月 2 日

这是什么类型的公关? (勾选所有适用)

  • [x] 特征

说明

这会通过 API 添加用于统计的分析端点!这目前仅适用于专业会员。属于组织的 Pro 成员也可以通过 API 查看各自组织的统计信息。

目前有三个端点:

  • /api/analytics/totals,它为您提供所有帖子统计信息的摘要,

  • /api/analytics/past_day为您提供过去 24 小时的数据,以及

  • /api/analytics/historical,它为您提供基于特定时间范围的每一天的数据快照。

您需要通过https://dev.to/settings/account生成 API 令牌来授权自己。如果您想查看组织的数据,可以添加organization_id参数。这是一个示例端点:https://dev.to/api/analytics/totals?api_token=blahblahblah&organization_id=9001

对于/historical,您必须至少添加一个开始日期参数start。结束日期参数end是可选的,将其省略会为您提供截至当前日期的所有数据。两个日期参数的格式必须为yyyy-mm-dd(例如 2019-03-29) 端点示例:

https://dev.to/api/analytics/historical?api_token=blahblahblah&start=2019-03-26
https://dev.to/api/analytics/historical?api_token=blahblahblah&start=2019-03-01&end=2019-03-14

添加到文档中?

还没有,但很快就会添加到 docs.dev.to 中!

[可选] 什么 gif 最能描述这个 PR 或者它给你的感觉?

alt_text

在 GitHub 上查看

  • 我们还有一个仪表板,用于为上述专业会员提供更详细的分析:

GitHub 徽标启用 Org Pro 仪表板视图 #2060

赵安迪头像

Zhao-Andy 发布于2019 年 3 月 13 日

此 PR 启用 org pro 仪表板视图。我决定放弃重构并为下一次 PR 提供更多数据。

在 GitHub 上查看

  • 受信任的社区成员现在可以为帖子推荐社交副本!公关@ben:

GitHub 徽标为受信任的用户添加为帖子建议社交副本的功能 #2306

benhalpern 头像

benhalpern 发布于2019 年 4 月 4 日

这是什么类型的公关? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

此功能允许社区成员为将发布到社交帐户的帖子提供 Twitter 副本。这是最小的可行版本。边缘可能很粗糙。

在 GitHub 上查看

  • @bolariinwa在 Markdown 中添加了对 HTML<mark>元素的支持。这意味着您现在可以根据需要突出显示内容。谢谢,@bolariinwa!

GitHub 徽标在 markdown #2089 中添加对标记元素的支持

bolariin 头像

bolariin 发布于2019 年 3 月 18 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [X] 错误修复

  • [ ] 文档更新

说明

<mark>对于作者突出重要文本很有用。根据@link2twenty提出的建议,我在rendered_markdown_scrubber.rb中更新了tags列表。

相关票证和文件

问题编号是#1870。

移动和桌面屏幕截图/录音(如果有 UI 更改)

使用标记元素突出显示文本

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [X] 不需要文档

在 GitHub 上查看

  • https://dev.to/videos出来了!这是我们在 dev.to 上所有本地上传视频的登录页面。我们将很快做出更多改进。公关@jess:

GitHub 徽标"/videos" #2291

jessleenyc 头像

jessleenyc 发布于2019 年 4 月 2 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

添加页面 (/videos) 以查看所有帖子 w。原生视频内容。

在 GitHub 上查看

错误修复/其他贡献

  • 感谢@jess添加 Scout 配置和 gem!我个人很高兴在我们收到的电子邮件中看到一些初步数据。

GitHub 徽标添加侦察配置和 gem #2219

jessleenyc 头像

jessleenyc 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

  • 添加侦察宝石和配置文件

在 GitHub 上查看

  • 感谢@ben更新我们的 Airbrake(我们使用的错误监控服务)以忽略一些无关的错误,例如ActiveRecord::RecordNotFound

GitHub 徽标忽略不必要的空气制动通知 #2283

benhalpern 头像

benhalpern 发布于2019 年 4 月 1 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [x] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

我们不需要记录每条未找到的记录,因为很多都是从未发表的文章中自然产生的。它们代表了少量的整体请求,但代表了我们的大量错误跟踪。这清理了一些混乱。

还添加了一个过滤器以随机不跟踪所有 JS 错误。我们可以只跟踪 some 并且仍然可以在 IMO 中获得相当准确的外观。我们可以稍后重温。

在 GitHub 上查看

  • @ben解决了交叉发布的帖子因其原始发布日期而被错误排序的问题。谢谢,本!

GitHub 徽标添加原始_published_at 以获得更准确的交叉发布信息#2076

benhalpern 头像

benhalpern 发布于2019 年 3 月 15 日

这是什么类型的公关? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

目前,当帖子交叉发布时,我们设置为published_at,但就它在提要中的位置而言,逻辑有点混乱。这不是全部修复,但这是一个新列,可以更准确地跟踪原始日期并手动修复一些错误的日期。

在 GitHub 上查看

  • @perigk更新了我们的“附加技术”文档,提到我们使用 Git 和 GitHub 进行版本控制和问题跟踪。谢谢,@perigk!

GitHub 徽标更新 addl-tech.md #2078

PeriGK头像

PeriGK 发布于2019 年 3 月 16 日

这是什么类型的公关? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [X ] 文档更新

说明

更新 addl-tech,有两个有点迂腐的选项。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ x] docs.dev.to

  • [ ] 自述文件

  • [ ] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它给您的感受?

alt_text

在 GitHub 上查看

  • @ben通过我们的本机页面查看跟踪修复了可能的竞争条件。详情如下:

GitHub 徽标使用页面视图跟踪修复可能的竞争条件 #2103

benhalpern 头像

benhalpern 发布于2019 年 3 月 18 日

这是什么类型的公关? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

当跟踪页面视图时,我们稍后会更新该视图以跟踪用户仍在页面上。

但有时在创建第一页视图时会出现问题。这个 PR 有助于解释这种情况。

在 GitHub 上查看

  • 感谢@bolariinwa在标签出现的任何地方添加链接。缺少的地方在仪表板中。

GitHub 徽标在标签出现的任何地方添加链接 #2088

bolariin 头像

bolariin 发布于2019 年 3 月 17 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [X] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

为了保持标签可点击的预期,我更新了 _dashboard_article.html.erb,因此仪表板上帖子上的标签包含在链接标签中并链接到各自的页面。

相关票证和文件

问题编号是#1991

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [X] 不需要文档

在 GitHub 上查看

  • @lightalloy修复了反应通知中包含已删除反应的剩余数据的错误。谢谢,安娜!

GitHub 徽标修复反应被销毁时的反应通知 json 数据 #2112

[![Lightalloy Avatar]

轻合金 发表于2019 年 3 月 19 日

这是什么类型的PR? (勾选所有适用)

  • [x] 错误修复

说明

当销毁的反应记录传递到Notification#send_reaction_notification时,仅在通知json_data中保留持久数据

相关票证和文件

#2111

在 GitHub 上查看

  • @keshavbiswa启用了两个 Rubocop 警察。谢谢,@keshavbiswa!

GitHub 徽标启用 Rubocop/Naming Cop #2115

[!

keshavbiswa 发布于2019 年 3 月 19 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

启用命名/AsciiIdentifier Cop 和 Naming/FileName Cop

相关票证和文件

#2021

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 什么 gif 最能描述这个 PR 或者它给你的感觉?

alt_text

在 GitHub 上查看

  • @selbekk通过在需要时使用我最喜欢的 Rails 方法之一正确地使单词复数来修复错误:pluralize。谢谢,@selbekk!

GitHub 徽标修复单数得到复数结尾的错误 #2069

塞尔贝克头像

海豹溪 发布于2019 年 3 月 15 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

当且仅当计数不为 1 时,我添加了两个三元组以在“评论”和“反应”中添加尾随 s。

相关票证和文件

#2067

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

relieved

在 GitHub 上查看

  • @edisonywh修复了转到不存在的徽章会导致服务器错误而不是 404 页面的问题。谢谢,@edisonywh!

GitHub 徽标如果找不到徽章,则重定向到 404 #2066

edisonywh 头像

edisonywh 发布于2019 年 3 月 14 日

以前我们在重定向到:show之前不检查@badge是否存在,这次提交通过重定向到 404 来解决这个问题。

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

相关票证和文件

#2051

移动和桌面屏幕截图/录音(如果有 UI 更改)

图像

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

壁球虫!

在 GitHub 上查看

  • @rhymes修复了一个长期存在的问题,即 Front Matterdescription没有正确转义。谢谢,@rhymes!

GitHub 徽标修复 MarkdownFixer #1989 中未转义的前端内容描述

!【韵脚头像】(https://github.com/rhymes)

发表于Mar 06, 2019

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

我开始修复https://github.com/thepracticaldev/dev.to/issues/96- 最初的想法是创建更有意义的错误消息,然后我意识到前面的问题是由第三方库解析的,所以我放弃了这个想法。

我决定只修复描述中未包装字符创建的错误(首先触发了问题)

相关票证和文件

关闭 #96

移动和桌面屏幕截图/录音(如果有 UI 更改)

之前

在之后

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes更新了我们的错误提示,以正确反映正确的错误ActiveRecord::NotFound而不是ActionController::RoutingError。再次感谢,@rhymes!

GitHub 徽标未找到更改 404 在 ApplicationController #2118 中引发异常

!【韵脚头像】(https://github.com/rhymes)

发表于2019 年 3 月 19 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

在我们讨论了 #2066 和这个评论by@lightalloy之后,我提交了这个 PR 以更改not_found方法引发的默认异常。

仅供参考 Rails 使用ActionController::RoutingErrorActiveRecord::ActionNotFound呈现 404 页面,因此功能没有变化。我什至不确定引发的异常是否会使代码更清晰,因为它对模式是透明的:

模型.find_by_(id) ||未找到

进入全屏模式 退出全屏模式

它只是与!提升的 finder 方法一致。

这种上述模式在代码中出现了 15 次,而不是 Rails 的默认值:

Model.find\by!(id)

进入全屏模式 退出全屏模式

仅出现 3 次,全部在tags_controller.rb文件中。

相关票证和文件

#2066

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @lightalloy一直在重构并将通知移动到单独的作业中。此 PR 移动了新的关注者通知。谢谢,安娜!

GitHub 徽标将发送新关注者通知移动到单独的工作 #2030

Lightalloy Avatar

轻合金 发表于2019 年 3 月 11 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

  • 创建了一个单独的 Active Job 来处理新的关注者通知

  • 将属性而不是Follow实例传递给作业以消除反序列化错误。 (在这种情况下,我们不能只传递follow_id,因为此时follow可能会被销毁)

  • 将新的关注者通知逻辑移至服务对象

  • 保留了旧的Notification接口(send_new_follower_notificationsend_new_follower_notification_without_delay)

相关票证和文件

#1996

在 GitHub 上查看

  • @keshavbiswa启用了Rubocop/Rails警察。谢谢,@keshavbiswa!

GitHub 徽标启用 Rubocop/Rails 警察 #2125

[!

keshavbiswa 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

启用 Rubocop/Rails 警察

相关票证和文件

#2021

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @glennmen重构了我们授予年度徽章的方式,使其比我们之前的实现更灵活。谢谢,@glennmen!

GitHub 徽标重构奖_yearly_club_badges #2035

格伦门头像

Glennmen 发布于2019 年 3 月 11 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

重构award_yearly_club_badges以便添加新的年度徽章将更容易并且需要的更改更少。

我有几个关于重构的问题:

  • 你想要它循环还是更像award_streak_badge(num_weeks)?我认为 for 循环是一个更好的选择,您只需要增加一个变量而不是向fetch.rake添加新行 https://github.com/thepracticaldev/dev.to/blob/0b84ae9acba3658af1112aeb520a049e852ffd27/app/labor/badge _rewarder.rb#L47https://github.com/thepracticaldev/dev.to/blob/0b84ae9acba3658af1112aeb520a049e852ffd27/lib/tasks/fetch.rake#L73-L75

  • 你们认为设置参数的最佳方法是什么?我目前将它添加为函数中的变量。

  • 将 slug 更改为数字值而不是单词值(one-year-club->1-year-club会破坏现有徽章?您认为如何最好地处理这个问题?

欢迎任何其他反馈!

相关票证和文件

https://dev.to/ben/comment/8inc

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

birthday

在 GitHub 上查看

  • @venarius通过将editor_version字段更新为<select>字段进行了一些 UX 改进。它最初是一个<text>字段。谢谢,@venarius!

GitHub 徽标UX:将编辑器_version 更改为选择字段 #2107

venarius头像

venarius 发表于2019 年 3 月 18 日

这是什么类型的PR? (勾选所有适用)

  • [ x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

editor_version输入为settings/misc更改为select字段

相关票证和文件

问题 #1775

移动和桌面屏幕截图/录音(如果有 UI 更改)

2019-03-18 22-29-23截图

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [ x] 不需要文档

这也是我对 dev.to 的第一个 PR 🥳

在 GitHub 上查看

  • @venarius也启用了Rubocop/lint警察。再次感谢,@venarius!

GitHub 徽标启用 rubocop/lint #2130

venarius头像

venarius 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [ x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这使 rubocop/lint

相关票证和文件

https://github.com/thepracticaldev/dev.to/issues/2021

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [ x] 不需要文档

在 GitHub 上查看

  • @abraham更新了 Faker gem 并修复了已弃用的 Faker::Overwatch 用法。谢谢,@abraham!

GitHub 徽标更新 Faker 并修复已弃用的 Faker::Overwatch 使用 #2142

[! 亚伯拉罕头像](http://github.com/abraham)

abraham 发布于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

更新Faker::Overwatch.quote并修复测试中的弃用通知。

注意:Faker::Overwatch.quote 已弃用;请改用 Faker::Games::Overwatch.quote。它将在 2019-01-01 或之后删除。 Faker::Overwatch.quote 从 /home/travis/build/abraham/dev.to/spec/factories/badges.rb:7 调用。

相关票证和文件

不适用

移动和桌面屏幕截图/录音(如果有 UI 更改)

不适用

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes添加了组织徽标的替代文本。谢谢,@rhymes!

GitHub 徽标添加组织徽标的替代文本 #2148

韵脚头像

押韵 发表于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

组织徽标在一些地方缺少替代文本。

感谢 Lighthouse 在主页上捕捉到这一点。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

屏幕截图 2019-03-21 11 04 29 AM

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes用正确的日志记录替换了所有 Rubyput。感谢那!

GitHub 徽标用正确的日志记录替换 puts #2139

押韵头像

发表于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

在检查另一个 PR 时,我注意到错误处理程序中有一个puts,我决定改用正确的日志记录,最终替换了所有puts

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @link2twenty修复了侧边栏配置文件宽度的“off by one” CSS 问题。谢谢,@link2twenty!

GitHub 徽标修复侧边栏配置文件快照宽度 #2145

Link2Twenty 头像

Link2Twenty 发布于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

程序员面临的 3 个最困难的问题是

  1. 命名事物

2.关闭1个错误

.sidebar-profile-snapshot宽度比侧边栏的其余部分宽 1 像素。

移动和桌面屏幕截图/录音(如果有 UI 更改)

之前:图像

之后:图像

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @abraham将 gem 源切换为使用已发布版本而不是 fork。谢谢,@abraham!

GitHub 徽标将 fix-db-schema-conflicts 切换到已发布版本 #2161

[! 亚伯拉罕头像](http://github.com/abraham)

abraham 发布于2019 年 3 月 21 日

这是什么类型的公关? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

从 fork 切换到已发布版本。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @link2twenty对夜间模式进行了一些更改。谢谢,@link2twenty!

*移除了夜间模式下评论框的白色边框

*从侧边栏中删除了白色边框

*更新阅读列表侧边栏颜色

*为组织链接添加了可识别的文本

  • @cyrillefr启用了与性能相关的 Rubocop 警察。谢谢,@cyrillefr!

GitHub 徽标启用性能 rubocop cops #2140

cyrillefr 头像

cyrillefr 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

启用所有性能警察。在需要的地方重构。

相关票证和文件

https://github.com/thepracticaldev/dev.to/issues/2021

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

alt_text

在 GitHub 上查看

  • @rhymes删除了一些死代码!谢谢,@押韵!

GitHub 徽标删除未使用的 klipse 脚本部分 #2164

韵脚头像

押韵 发表于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

在处理 #2153 时,我注意到这个部分没有在任何地方使用

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes进行了安全改进,并在适用的情况下将SRI(子资源完整性)添加到脚本标签中。谢谢,@rhymes!

GitHub 徽标在适用的情况下将 SRI 添加到脚本标签 #2153

押韵头像

发表于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

安全方面,所有外部脚本都应启用SRI(也称为子资源完整性)。这允许浏览器检查外部源是否已被篡改(因此不加载脚本)。

我只添加了<script>个站点,这些站点具有公开可用的信息并指向资源的特定版本。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @mscccc通过使用 HTML/CSS 到图像改进了我们呈现社交卡的方式。详情请查看 PR。谢谢,@mscccc!

GitHub 徽标社交卡升级 - 第 1 部分 #2090

mscoutermarsh 头像

mscoutermarsh 发布于2019 年 3 月 18 日

Dev.to+HTML/CSS to Image⚡️

👋@benhalpern

这使SocialPreviewsController能够呈现png

当前网址:https://res.cloudinary.com/practicaldev/image/url2png/s--pncSBGoq--/c_fill,g_north,h_400,w_800/https://dev.to/social_previews/article/75561%3Fbust%3D0-Build%20a%20GitHub%20Action%20with%20Ruby-true"

未来:https://dev.to/social_previews/article/89948.png

花式 Gif

屏幕录制 2019-03-16 03 07 PM

向后兼容

实现了这一点,以便此 PR 是无风险部署。没有什么是破碎的。所有旧 URL 的工作方式与以前完全相同。 social_preview 路由现在也支持.png

缓存是如何工作的?

呈现的 html 用作缓存键(Dalli SHAs it)。这意味着,我们“免费”获得缓存破坏,每当模板更改或模板中包含的数据(例如文章标题或用户名)更新时,缓存就会破坏。

为此,我必须删除模板中的一些随机性。它们现在是“确定性随机的”,这意味着对象的 ID 被用作种子。所以你每次都会得到相同的随机数序列。

发布计划

  • [ ] 设置HCTI_API_USER_IDHCTI_API_KEY环境变量。

  • [ ] 发货

  • [ ] 检查一些预览网址,确保它们看起来不错✨

  • [ ] 跟进 PR 以更新元标记以指向新 URL

这是什么类型的PR? (勾选所有适用)

  • [X] 特征

移动和桌面屏幕截图/录音(如果有 UI 更改)

图像 (https://hcti.io/v1/image/ e632881d-b0f6-4d33-be3f-a5863cf260a2)

图像(https://hcti.io/v1/image/ 7455df4e-636e-4bed-b0f6-90cb419977fb)

图像 (https://hcti.io/v1/image/ 6c52de9d-4d37-4008-80f8-67155589e1a1)

添加到文档中?

  • [x] 不需要文档

在 GitHub 上查看

  • @brylie将 Mastodon 实例social.coop添加到我们的允许列表中。谢谢,@brylie!

GitHub 徽标添加 social.coop #2170

brylie头像

brylie 发布于2019 年 3 月 22 日

关闭 #2169

将https://social.coopMastadon 实例添加到可信列表。

在 GitHub 上查看

  • @glennmen在里程碑通知的 GIF 中添加了缺失的/。谢谢,@glennmen!

GitHub 徽标错误修复损坏的 giphy url #2180

格伦门头像

Glennmen 发布于2019 年 3 月 22 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

修复不正确的 giphy url,以便正确加载 gif。

相关票证和文件

修复 #2179

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @abraham启用了许多Rubocop/Rails警察,并在此过程中解决了一些问题。谢谢,@abraham!

GitHub 徽标启用 Rails 警察 #2186

[! 亚伯拉罕头像](http://github.com/abraham)

abraham 发布于2019 年 3 月 24 日

这是什么类型的公关? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

默认情况下禁用 Ruby on Rails Rubocop 规则。这使他们中的大多数人成为可能。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

dumbo taking a bath

在 GitHub 上查看

  • @abraham稍微简化了我们的开发设置。详情请查看 PR。再次感谢,@abraham!

GitHub 徽标简化开发设置 #2143

[! 亚伯拉罕头像](http://github.com/abraham)

abraham 发布于2019 年 3 月 21 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [x] 文档更新

说明

通过使用默认数据库配置的约定,删除bin/setup处理的手动步骤,并将foremen添加到开发 gems 组,减少了设置开发的步骤(11 步 mac/linux 和 13 步 windows 到 mac/linux 的 7 步)。

相关票证和文件

https://github.com/thepracticaldev/dev.to/pull/1162

移动和桌面屏幕截图/录音(如果有 UI 更改)

不适用

添加到文档中?

  • [x] docs.dev.to

  • [x] 自述文件

  • [ ] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

working out

在 GitHub 上查看

  • @lightalloy将新的反应通知方法移至单独的作业。谢谢,安娜!

GitHub 徽标将新的反应通知方法移动到单独的 ActiveJob #2122

Lightalloy Avatar

轻合金 发布于2019 年 3 月 20 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [x] 错误修复

说明

  • 创建了一个单独的Active Job 来处理新的反应通知

  • 将属性而不是 Reaction 和接收器实例传递给作业以避免反序列化错误

  • 将新的反应通知逻辑移至服务对象

  • 保留了旧的Notification接口(方法send_resend_reaction_notificationsend_reaction_notification_without_delay)

相关票证和文件

#1996 #1621

在 GitHub 上查看

  • @dabrorius删除了未使用的/dashboard/following_users路由。谢谢,@dabrorius!

GitHub 徽标删除 C884 路由 #2191

dabrorius 头像

dabrorius 发布于2019 年 3 月 25 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

dashboard/following_users路线已被弃用,取而代之的是dashboard/following路线。此提交删除旧路线并更新代码以反映它。

相关票证和文件

这在此处与@benhalpern 进行了简要讨论:https://github.com/thepracticaldev/dev.to/pull/2157#issuecomment-475366986

移动和桌面屏幕截图/录音(如果有 UI 更改)

没有 UI 变化

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

wintermoon

在 GitHub 上查看

  • @jess更新了自述文件。谢谢,杰斯!

GitHub 徽标更新自述文件 #2206

jessleenyc 头像

jessleenyc 发布于2019 年 3 月 25 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [x] 文档更新

说明

  • 删除产品路线图,因为我们从未养成这种习惯

  • 要求前端更改的设计模型

  • 更新 mario 和 anna 到贡献者列表

在 GitHub 上查看

  • @aspittel修复了专业仪表板的一些夜间模式问题。谢谢,阿里!

GitHub 徽标功能/专业仪表板 #2178

aspittel 头像

aspittel 发布于2019 年 3 月 22 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [X] 特征

  • [X] 错误修复

  • [ ] 文档更新

说明

修复了专业仪表板的黑暗主题问题(尽管仍可以进一步清理),并删除了底部最近的反应器。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @lightalloy干掉了一些活动作业测试。谢谢,安娜!

GitHub 徽标DRY Active Jobs 规范 #2215

[2 ![Laydalloy 头像]

轻合金 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

创建了一个共享示例来测试调用#perform_later时 ActiveJobs 是否入队

在 GitHub 上查看

  • @ben清理了一些新的聊天频道功能并添加了测试。谢谢,本!

GitHub logo清理新的聊天频道功能并添加测试#2220

benhalpern 头像

benhalpern 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

重构并添加聊天频道功能的测试。保持一般代码安排大致相同。

在 GitHub 上查看

  • @lito通过使用原生 Rails 实现改进了我们的 slug 生成。谢谢,@lito!

GitHub 徽标改进的文章 slug 生成 #2218

eusonlito 头像

eusonlito 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [X] 特征

  • [X] 错误修复

  • [ ] 文档更新

说明

自 Rails 2.2https://www.rubydoc.info/github/rails/rails/String:parameterize起,Ruby on Rails 有一个内置的 slug 生成器

此生成器修复了在标题改进 SEO 中使用非英文字符时生成的 slug。例如:https://dev.to/lito_ordes/redimensionando-imgenes-en-tiempo-de-ejecucin-con-packer-57c6

在 GitHub 上查看

  • @lightalloy启用了几个没有违规的 Rubocop 警察。谢谢,安娜!

GitHub 徽标启用了几个没有违规行为的 rubocop 警察 #2214

௧௦௩௩௃௩ Lightalloy Avatar133004133002

轻合金 发表于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

启用了几个没有违规行为的 rubocop 警察

相关票证和文件

#2021

在 GitHub 上查看

  • @dabrorius通过从中提取following动作重构了我们的DashboardsController中的show动作。谢谢,@dabrorius!

GitHub 徽标从 DashboardsController #2212 中的“显示”中提取“以下”操作

dabrorius 头像

dabrorius 发布于2019 年 3 月 26 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

相关票证和文件

目前,几个单独的页面都挤在 DashboardsController 的show操作下。这是尝试重构该动作并将其分成几个较小的控制器动作的第一步。

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述这个 PR 或者它给你的感觉?

blek

在 GitHub 上查看

  • @lightalloy修复了一些 Rubocop 问题。谢谢,安娜!

GitHub 徽标Rubocop 修复 #2232

Lightalloy Avatar

轻合金 发布于2019 年 3 月 28 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

  • 修复了几个 rubocop 问题

  • .rubocop.yml中移除了与默认部分相同的固定部分

  • 将需要修复的残疾警察从.rubocop.yml移至.rubocop_todo.yml

相关票证和文件

#2021

在 GitHub 上查看

  • @jess通过在合并用户时清除旧缓存解决了一个问题。谢谢,杰斯!

GitHub logo合并用户时清除缓存#2229

jessleenyc 头像

jessleenyc 发布于2019 年 3 月 28 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

  • 更新计数器缓存

  • 保留旧的创建_at 日期

  • 快速缓存

在 GitHub 上查看

  • @lightalloy开始通过添加一些唯一性索引来优化登录过程。谢谢,安娜!

GitHub logo优化登录:Identity #2061 #2231

[Lightalloy 头像133121933119

轻合金 发表于2019 年 3 月 28 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

  • Identity上添加了缺失的唯一索引

  • 删除了多余的唯一验证(provider+uidvsuid+provider)

  • 使唯一性验证有条件:仅在范围的一个字段发生更改时检查唯一性这是针对票证开始的轻微优化 #2061

合并前需要考虑的事项:

  • 检查现有的无效Identity记录,它们需要修复

  • identities表可能很大,所以添加索引可能需要很长时间

在 GitHub 上查看

  • @jess将 HTML 表单验证添加到标签权重表单以防止nil值。谢谢,杰斯!

GitHub 徽标添加表单验证以遵循“点”#2236

jessleenyc 头像

jessleenyc 发布于2019 年 3 月 28 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x ] 错误修复

  • [ ] 文档更新

说明

  • 如果用户在仪表板/关注中提交关注权重的 nil/空白字段,它将在他们下次尝试访问时给他们 500。

  • 这增加了表单验证,但在服务器端没有验证。我们可能也应该这样做,但是当我在 Follow 模型上添加 present: true 时,它做了一些奇怪的事情,所以认为快速修复更有意义。

在 GitHub 上查看

  • @lightalloy解决了导致某些新评论通知未发送的逻辑错误。谢谢,安娜!

GitHub 徽标修复有关新子评论 #2233 的通知

Lightalloy Avatar

轻合金 发布于2019 年 3 月 28 日

这是什么类型的PR? (勾选所有适用)

  • [x] 错误修复

说明

发布子评论时,仅当没有其他用户通知此评论时,才会通知文章(可评论)作者。我想向文章作者发送通知不应该取决于它是否发送给其他用户。如果receive_notifications为真,则应通知文章作者有关子评论或不通知它们。我添加了几个测试来说明这个问题,并假设应该通知文章作者有关子评论的修复。

在 GitHub 上查看

  • @peiche修复了夜间模式下组织的摘要文本颜色。谢谢,@peiche!

GitHub 徽标修复了粘性导航摘要颜色以使用自定义属性。 #2240

!speiche 头像sht(http://github.tsum/piche)

peiche 发表于2019 年 3 月 29 日

这是什么类型的PR?

  • [ ] 重构

  • [ ] 特征

  • [X] 错误修复

  • [ ] 文档更新

说明

粘性导航摘要文本是黑色的,即使在暗模式下也是如此。此修复程序允许它使用自定义属性,并将黑色文本颜色作为后备。

截图

之前

更改前的屏幕截图

之后

更改后的屏幕截图

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [X] 不需要文档

在 GitHub 上查看

  • @maestromac删除了控制器测试以支持请求测试。谢谢,麦克!

GitHub 徽标删除控制器规格 #2224

maestromac 头像

maestromac 发布于2019 年 3 月 27 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

  • 将控制器规格移动到请求规格。

  • 移除 rails-controller-testing gem。

  • 重新组织文章请求规范。

  • 添加其他规格。

相关票证和文件

解决 #1827

移动和桌面屏幕截图/录音(如果有 UI 更改)

不适用

添加到文档中?

  • [x] 不需要文档

在 GitHub 上查看

  • @perlatsp在/settings/integrations中修复了 GitHub 存储库的文本。谢谢,@perlatsp!

GitHub 徽标修复 Github 存储库不可见 #2227 #2241

perlatsp 头像

perlatsp 发布于2019 年 3 月 29 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

在设置/集成页面中将主题容器背景颜色添加到 GitHub 存储库容器。侧边栏容器使用的已用背景颜色变量。

--主题容器背景

进入全屏模式 退出全屏模式

相关票证和文件

#2227

在 GitHub 上查看

  • @rhymes修复了文章 API 的错误,在该错误中,使用未知用户名发送请求会返回 500 错误。 PR 将其更新为返回一个空数组。谢谢,@rhymes!

GitHub 徽标修复文章 API 和未知用户名 #2247 的错误

韵脚头像

发表于2019 年 3 月 31 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

目前,如果使用未知用户名调用服务器,则文章 API 会出现 500 错误,因为not_found是控制器方法,而不是服务的一部分。

我相信它不应该像使用未知标签调用 API 那样返回任何内容。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes稍微重构了文章 API 端点以仅显示已发布的文章。再次感谢,@rhymes!

GitHub logo添加发表在SQL查询中检索文章#2248

韵脚头像

押韵 发表于2019 年 3 月 31 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

由于我们已经要求数据库检索一篇文章,我们可以直接要求它过滤已发布的文章,而无需在运行时检查。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @dabrorius通过从中提取followers动作重构了DashboardsController中的show动作。谢谢,@dabrorius!

GitHub 徽标从 DashboardsController #2270 中的“显示”中提取“关注者”操作

dabrorius 头像

dabrorius 发布于2019 年 4 月 1 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这是重构 DashboardsController 的第二步,其中followers操作与通用show操作分开。我暂时保持所有路线名称相同,我们可能希望在后续 PR 中更新它们。

相关票证和文件

这是一个后续 PR:https://github.com/thepracticaldev/dev.to/pull/2212

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

[可选] 哪个 gif 最能描述此 PR 或它让您感觉如何?

immortal

在 GitHub 上查看

  • @mjraadi修复了帖子评论部分顶部帖子预览片段的颜色错误。谢谢,@mjraadi!

GitHub 徽标修复夜间模式问题 #2244 #2285

mjraadi 头像

mjraadi 发布于2019 年 4 月 2 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

  • [x] 补丁夜间模式样式

移动和桌面屏幕截图/录音(如果有 UI 更改)

以下是样式修复:

Screenshot_20190402_114000

关闭:#2244

在 GitHub 上查看

  • @lightalloy为用户的电子邮件添加了唯一性索引。谢谢,安娜!

GitHub logo优化登录:用户#2237

Lightalloy Avatar

轻合金 发布于2019 年 3 月 29 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

  • users电子邮件添加了唯一索引

  • 仅在相应字段更改时验证用户电子邮件和用户名

需要检查是否没有用户具有重复的电子邮件或用户名。

我还想将twitter_usernamegithub_username验证更改为有条件的,但这需要将allow_blank更改为allow_nil无效,将空白更新为 nil,并确保不会尝试将空白值写入数据库。

相关票证和文件

#2061

在 GitHub 上查看

  • @ben通过仅在用户的 RSS 提要 URL 更改时验证用户的 RSS 提要 URL 进行了优化。谢谢,本!

GitHub 徽标有条件地运行提要验证 #2292

benhalpern 头像

benhalpern 发布于2019 年 4 月 2 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

在当前设置中,检查 RSS 提要验证的成本非常高。我们应该只在它发生变化的情况下才这样做。

在 GitHub 上查看

  • @lightalloy为 Twitter 和 GitHub 用户名添加了唯一性索引。谢谢,安娜!

GitHub 徽标独特的 twitter 和 github 用户名 #2061 #2255

Lightalloy Avatar

轻合金 发布于2019 年 4 月 1 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

说明

我做这个 pr 是为了准备将User``github/twitter_username的唯一验证更改为有条件的。这将有助于#2061

  • 将 github 和 twitter 用户名设置为nil,以防它们是空字符串:在User模型和Admin::UsersController中(以防万一)

  • 为数据库中的这些字段添加了唯一索引

合并前:

  • 确保users表中没有重复的twitter_usernamegithub_username的记录

  • 确保这些字段中没有包含空字符串值的记录(在这种情况下将它们更新为 nil)。

相关票证和文件

#2061

在 GitHub 上查看

  • @rhymes添加了PodcastEpisodesController的测试。谢谢,@rhymes!

GitHub 徽标添加测试到 PodcastEpisodesController #2297

韵脚头像

押韵 发表于Apr 03, 2019

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这个 PR 做了两件事:

  • 添加了对 Api::V0::PodcastEpisodesController 的测试

  • 删除未使用的路由和代码

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @mjraadi修复了夜间模式下“上传视频”部分的背景颜色。谢谢,@mjraadi!

GitHub 徽标修复在夜间模式主题中上传视频部分背景颜色 #2245 #2296

mjraadi 头像

mjraadi 发布于2019 年 4 月 3 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

  • [x] 补丁夜间模式样式

移动和桌面屏幕截图/录音(如果有 UI 更改)

以下是样式修复:Screenshot_20190402_121830

关闭:#2245

在 GitHub 上查看

  • @lightalloy将新评论通知移至单独的作业。谢谢,安娜!

GitHub 徽标活动作业的新评论通知 #1996 #2287

Lightalloy 头像

轻合金 发布于2019 年 4 月 2 日

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [x] 错误修复

说明

  • 将有关新评论的通知发送到单独的 ActiveJob

  • ActiveJob 收到comment_id而不是Comment实例。这解决了尝试发送有关已损坏评论的通知时可能出现的问题。

  • 将有关新评论逻辑的通知发送到服务对象

  • 评论通知功能规范

相关票证和文件

#1996 #1621

在 GitHub 上查看

  • @m1guelpf修复了 Blogcast 液体标签的一些样式问题。谢谢,@m1guelpf!

GitHub 徽标修复 Blogcast 样式问题 #2298

m1guelpf 头像

m1guelpf 发布于2019 年 4 月 3 日

这是什么类型的PR? (勾选所有适用)

  • [ ] 重构

  • [ ] 特征

  • [x] 错误修复

  • [ ] 文档更新

说明

我注意到 Blogcast 嵌入在移动设备上的显示效果不佳,并且还在其周围创建了一些奇怪的间距。这个 PR 应该可以解决这两个问题。

相关票证和文件

移动和桌面屏幕截图/录音(如果有 UI 更改)

之前:图片 2019-04-03 在 6 12 31 PM

之后:图片 2019-04-03,下午 6 12 53

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @maestromac将我们所有的功能测试迁移到系统测试。谢谢,麦克!

GitHub 徽标将功能测试迁移到系统测试 #2301

maestromac 头像

maestromac 发布于2019 年 4 月 3 日

这是什么类型的PR? (勾选所有适用)

  • [x] 杂项

说明

  • 从功能规范切换到系统规范

  • 这允许我们删除 Database-cleaner 并且还需要降级 Capybara。

  • 修复一些 rspec 不一致。

相关票证和文件

不适用

移动和桌面屏幕截图/录音(如果有 UI 更改)

不适用

添加到文档中?

  • [x] 不需要文档

在 GitHub 上查看

  • @rhymes重构了AnalyticsService以使用 SQL 查询而不是内存调用。这是一个持续的重构,关于实现细节正在进行一场体面的讨论。如果您有兴趣,请随时加入!再次感谢您的帮助,@rhymes!

GitHub 徽标简化 AnalyticsService 代码 #2308

押韵头像

发表于Apr 04, 2019

这是什么类型的PR? (勾选所有适用)

  • [x] 重构

  • [ ] 特征

  • [ ] 错误修复

  • [ ] 文档更新

说明

这次重构主要做了三件事:

  • 简化AnalyticsService接口

  • 使用 SQL 查询而不是内存计算来检索计数

  • 使用日期对象作为范围

我遗漏了一些应该讨论/决定的事情:

  • AnalyticsService应该按照@lightalloy的建议重命名为Analytics::Pro

  • date.strftime("%a, %m/%d")取决于语言环境并可能重复自身(如果 start_date 和 end_date 超过一年,则可能存在具有相同字符串版本的日期)。此外,美国以外的用户可能会将日期误解为“03/04”(3 月 3 日还是 4 月 4 日?)。我建议使用 ISO“2019-04-01”作为散列的键。

  • 我认为使用正则表达式的日期验证,现在已经解析了日期,是不必要的:

def 有效_date_params?

date_regex \u003d /\A\d{4}-\d{1,2}-\d{1,2}\Z/ # 例如,2019-03-22 或 2019-2-1

如果参数[:end]

(params[:start] u003d~ date_regex)&.zero? && (params[:end] u003d~ date_regex)&.zero?

别的

(params[:start] u003d~ date_regex)&.zero?

结尾

结尾

进入全屏模式 退出全屏模式

相关票证和文件

关闭 #2307

移动和桌面屏幕截图/录音(如果有 UI 更改)

添加到文档中?

  • [ ] docs.dev.to

  • [ ] 自述文件

  • [x] 不需要文档

在 GitHub 上查看

  • @lightalloy为用户的 GitHub 用户名和 Twitter 用户名添加了条件验证。谢谢,安娜!

GitHub 徽标用户 github_username 和 twitter_username 的条件验证 #2061 #2312

Lightalloy Avatar

轻合金 发布于2019 年 4 月 5 日

这是什么类型的PR? (勾选所有适用)

  • [x] 优化

说明

  • 验证github_usernametwitter_username的唯一性,仅当登录时和其他情况下相应字段更改为较低的请求量时

  • 在这些字段的验证中将allow_blank更改为allow_nil选项,因为只允许将nil写入数据库。

相关票证和文件

#2061

在 GitHub 上查看

新问题和讨论

  • @glebec提出了可访问性问题,其中diff代码块语法突出显示可以使用更易于访问的颜色。谢谢,@glebec!

GitHub 徽标Markdown > 代码块 > C939 格式语法突出显示:使用可访问的颜色 #2087

glebec头像

glebec 发布于2019 年 3 月 17 日

您的功能请求是否与问题有关?请描述。 Markdown 中语言块的diff语法分别使用红色和绿色作为删除和引入行的对比色。超过 5% 的男性和约 0.5% 的女性难以区分红色和绿色,这意味着有些人将难以区分这些线条,更多地依赖每行中的-+小字符。

GitHub 中的示例(许多 UI 元素也使用红绿色):

这是一条不变的线

- 这是删除的行

  • 这是一个新行

这是更多不变的东西

进入全屏模式 退出全屏模式

描述您想要的解决方案 另一种方法是修改 CSS 以突出显示差异,以分别使用橙色和蓝色的变化,更高比例的人口可以区分。

描述您考虑过的替代方案

  • 红蓝是一种不完美的折衷方案,比红绿好,但不如橙蓝那么普遍。然而,红蓝可能更符合文化对意义的期望,总体上产生更少的混乱。

  • 或者,可以不采取任何措施。这不是最容易获得的选择,但只要差异仍然包含 ± 字符,它们在技术上是可读的。

附加上下文下面的样机;确切的值不是字面上的建议,只是思考的食物。

前:

之前

后:

在之后

在 GitHub 上查看

  • @co16353sidak报告在夜间模式下悬停在阅读列表部分时出现错误

GitHub 徽标错误(夜间模式):- 阅读列表部分 #2121 上的悬停问题

co16353sidak 头像

co16353sidak 发布于2019 年 3 月 20 日

描述错误 在夜间模式下,页面的阅读列表部分的悬停似乎有些问题。如下图所示。当光标移到阅读列表部分时,包含按钮saved postscomment activity的下部的背景颜色意外更改颜色以与背景颜色合并。如果我们继续将鼠标悬停在按钮上,那么整个部分会完全改变它的背景颜色以与页面合并。

我已经包含了一个 gif 来帮助理解这一点。Mar-20-2019 11-45-37(1)

此外,如果我们与默认模式的功能进行比较,我们可以看到差异以及它应该如何工作。Mar-20-2019 11-46-40

重现重现行为的步骤:

1.启用暗模式

2.转到dev.to主页

  1. 尝试将鼠标悬停在提到的元素上(reading-list部分)以查看描述的错误

预期行为 我相信它应该像默认模式一样工作,但根据所选模式使用不同的颜色变量,我在默认模式下包含了相同的 gif。

截图链接在上面。

桌面(请填写以下信息):

  • 操作系统:MacOS

  • 浏览器:Safari 和 Firefox

  • 版本:12.0.3 (14606.4.5)[latest] 和 67.0b3(64 位)[latest developer edition]

智能手机(请填写以下信息):

(未测试)

在 GitHub 上查看

  • @borisschapira报告了src=/"data导致 Markdown 错误的问题。谢谢,@borisschapira!

GitHub logoMarkdown 代码贡献错误#2126

borisschapira 头像

borisschapira 发布于2019 年 3 月 20 日

描述错误 无法为图片撰写包含 HTML 代码的帖子。

复制在新帖子中提供此内容:

---
title: 'Test post'
---

<img srcu003d"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAAAAAAEAAAICTAEAOwu003du003d" ...

预期行为 可以保存。

[截图!.png)

桌面(请填写以下信息):

  • 操作系统:mac 操作系统

  • 浏览器 Chrome

  • 版本 73.0.3683.75

在 GitHub 上查看

  • @peter请求了一个功能,您可以在其中按视图/反应对仪表板进行排序。谢谢,彼得!

GitHub 徽标添加按视图/反应在仪表板上排序文章的功能 #2134

[!

pkfrank 发布于2019 年 3 月 20 日

您的功能请求是否与问题有关?请描述一下。 作为作者,我希望能够按观看次数/参与度/评论数等标准对我的帖子进行排序,而不是严格按时间顺序查看。

描述您想要的解决方案 仪表板上的一个选项,允许我按某些标准(视图、反应、评论)进行过滤。

在 GitHub 上查看

  • @joppedc报告了他们的个人资料图片在帖子的预览模式下缩小的问题。谢谢,@joppedc!

GitHub 徽标预览 #2137 上的压缩个人资料图片

JoppeDC 头像

JoppeDC 发布于2019 年 3 月 20 日

描述错误 进行帖子预览时,发布者名称旁边的个人资料图片被挤压。

复制创建一个新帖子,预览它。

1.去写个帖子

2.点击预览

  1. 查看发布者图片

预期行为 正常图像

截图https://cl.ly/8950bcf37c07

桌面(请填写以下信息):

  • 操作系统:MacOS

  • 浏览器:Chrome

  • 版本 72

附加上下文 这个问题可能适合作为第一个问题或入门问题。

在 GitHub 上查看

  • @kontrollanten请求了一项功能,以在供稿中每个帖子的“保存”按钮内显示书签。谢谢,@kontrollanten!

GitHub 徽标在“保存”按钮 #2144 内显示书签图标

控制器头像

控制器 发布于2019 年 3 月 21 日

您的功能请求是否与问题有关?请描述一下。 我已经使用 dev.to 有一段时间了,我非常喜欢。我花了一段时间才明白书签图标是什么。很长一段时间,我认为这只是一种“反应”。因此,每次我找到要保存的帖子时,我都必须搜索主题标签,然后在列表中单击“保存”按钮,以便以后保存。以及我“垃圾邮件”对许多其他帖子的反应是心,独角兽和......书签。所以我一时间有些迷茫。

描述您想要的解决方案 我想更清楚一点,单击文章详细信息中的书签图标与单击列表视图中的“保存”按钮具有相同的效果。

描述您考虑过的替代方案 我想在保存按钮内添加书签按钮。我不是设计师或UX,所以我不知道这是否有其他影响。

附加上下文图像

    width: auto;
    min-width: auto;
    margin-right: 5px;
    height: 19px;
    margin-left: 0;
    vertical-align: -4px;

在 GitHub 上查看

  • @rhymes提出了一个问题,即我们的静态资产的缓存期异常短。谢谢,@rhymes!

GitHub 徽标静态资产的缓存期异常短 #2147

韵脚头像

押韵 发表于2019 年 3 月 21 日

描述错误

我正在使用Google PageSpeed Insights和WebPage Performance Test测试主页(两个链接都指向报告),它们都表示静态资产(JavaScript 文件、图像和 CSS)具有较短的缓存,范围为 1 天至 7 天。

由于它们都是版本化的,我想知道是否有原因,否则我想建议为这些设置更长的缓存,遵循Google 的最佳实践并将缓存设置为一年。

预期行为

静态资产的缓存期更长。

截图

Google PageSpeed Insights(与 Lighthouse 相同):

Screenshot_2019-03-21 PageSpeed Insights

网页性能测试:

[Screenshot_2019-03-21 WebPageTest 优化检查结果 - Dulles dev to - 03 21 19 10 29 24](https://user-images.githubusercontent.com/146201/54743969-fbffda00-4bc5-11e9-9025 -8f36aa372314.png)

桌面(请填写以下信息):

  • 操作系统:macOS

  • 浏览器:火狐

  • 版本:67b3

在 GitHub 上查看

  • @link2twenty提出了关于夜间模式下特殊文本对比度的问题。谢谢,@link2twenty!

GitHub 徽标夜间模式下特殊文本的对比 #2152

Link2Twenty 头像

Link2Twenty 发布于2019 年 3 月 21 日

新的春季横幅在夜间模式下难以阅读。有没有办法自动化对比检查?还是我们在制作特殊款式时应该注意?

图像

在 GitHub 上查看

  • @link2twenty开启了关于拥有专门用于主题的 Ruby 文件的讨论。谢谢,@link2twenty!

GitHub 徽标Ruby 主题文件 #2154

Link2Twenty 头像

Link2Twenty 发布于2019 年 3 月 21 日

是否值得拥有一个包含主题 HTML 的 ruby 文件,尽管我们现在只有夜间模式?

我对 ruby on rails 不是很了解,但我认为我们可以有一个包含多个它们的文件,但只会根据某些请求返回相关的 HTML?

抄送:@韵@lightalloy

在 GitHub 上查看

  • @rhymes提出了有关缺少 HTTP 严格传输安全标头 (HSTS) 的安全问题。谢谢,@rhymes!

GitHub 徽标添加 HTTP 严格传输安全标头 (HSTS) #2155

韵脚头像

押韵 发表于2019 年 3 月 21 日

您的功能请求是否与问题有关?请描述。

通过玩dev.to 的 Mozilla Observatory报告,我注意到该网站没有发送 HSTS 标头。

TLDR;其中是 HSTS 标头强制客户端仅使用 HTTPS 进行连接(这与从 HTTP 到 HTTPS 的服务器端重定向不同)。

描述您想要的解决方案

我将总结推荐的行动计划:

  1. 应检查 dev.to 的所有域和子域,以确保它们都在 HTTPS 中工作(即使是那些由第三方处理的,如 shop.dev.to)

2.逐步增加max-age,例如从max-age=300; includeSubDomains到一个月:max-age=2592000; includeSubDomains

3.一旦一切正常,您可以将其设置为推荐的两年max-age=63072000; includeSubDomains; preload并将域添加到HSTS 预加载列表

标题示例:

Strict-Transport-Security: max-age=xyz

使用 Rails 可以这样启用:

config.ssl_options \u003d { hsts: { expires: 5.minutes } }

进入全屏模式 退出全屏模式

启用子域和预加载的选项也存在。

资源:

  • Mozilla Observatory 结果为 dev.to

  • HTTP 严格传输安全 - Mozilla 安全指南

  • 如何分阶段安全部署HSTS

  • HSTS 预加载和子域

  • HSTS 在 Rails 中

描述您考虑过的替代方案

什么都不做 :D

在 GitHub 上查看

  • @link2twenty提出了关于夜间模式下顶部导航栏中通知铃的颜色的问题。谢谢,@link2twenty!

GitHub logo[Theme] 通知颜色#2156

Link2Twenty 头像

Link2Twenty 发布于2019 年 3 月 21 日

我们要主题铃号吗?如果我们这样做,它应该与--theme-top-bar-write-background或新属性--theme-top-bar-notification-background相同吗?

图像

在 GitHub 上查看

  • @link2twenty还开启了关于用户如何选择主题的讨论。看看很酷的模型!再次感谢,@link2twenty!

GitHub 徽标[讨论] 主题选择器 #2158

Link2Twenty 头像

Link2Twenty 发布于2019 年 3 月 21 日

在某些时候我们将不得不谈论主题选择,我发现图形比名称更好,因为它可以让用户了解预期的内容。

我做了一个快速的模型。https://jsfiddle.net/link2twenty/3pmtew1f/

在 GitHub 上查看

  • @aturingmachine提出了夜间模式的问题,即很难看到帖子中的外部链接。谢谢,@turingmachine!

GitHub 徽标在黑暗模式下很难看到帖子中的外部链接 #2163

aturingmachine 头像

aturingmachine 发布于2019 年 3 月 21 日

描述错误链接的颜色与帖子的文本略有不同。再加上深色背景改变了页面的整体对比度,这使得它们很难被看到。

重现重现行为的步骤:

  1. 启用暗模式登录

  2. 点击任何帖子,包括外部链接。

  3. 观察链接文本颜色。

预期行为链接文本比帖子的主体文本更容易区分。

  • 操作系统:MacOS

  • 浏览器 Chrome

  • 版本不适用

在 GitHub 上查看

  • @rhymes提出了一个问题,我们应该只使用一个版本的 CodeMirror。谢谢,@rhymes!

GitHub 徽标仅使用一个版本的 CodeMirror #2165

韵脚头像

押韵 发表于2019 年 3 月 21 日

您的功能请求是否与问题有关?请描述。

代码库使用各种版本的 codemirror:

  • package.json声明^5.44.0yarn.lock使用的是5.44.0。这是代码编辑器使用的版本:

https://github.com/thepracticaldev/dev.to/blob/a2fcbdc4a4d1de430ff3ec282b373922632a2d4d/app/javascript/chat/codeEditor.jsx#L7-L8

  • app/views/blocks/_form.html.erb链接到另一个版本的 CodeMirror,5.26.0:

https://github.com/thepracticaldev/dev.to/blob/a2fcbdc4a4d1de430ff3ec282b373922632a2d4d/app/views/blocks/_form.html.erb#L1-L5

  • app/views/chat_channels/index.html.erb使用第三版 CodeMirror(仅 CSS),5.38.0:

https://github.com/thepracticaldev/dev.to/blob/a2fcbdc4a4d1de430ff3ec282b373922632a2d4d/app/views/chat_channels/index.html.erb#L6-L7

描述您想要的解决方案

CodeMirror 目前为版本 5.45.0。我想知道是否所有三个部分都可以使用package.json中的相同版本

在 GitHub 上查看

  • @john_papa提出了组织管理部分的夜间模式问题。谢谢,@john_papa!

GitHub 徽标需要在黑暗主题中为 org #2172 的管理页面提供对比

johnpapa 头像

johnpapa 发布于2019 年 3 月 22 日

注意这里的两个点都需要更多的对比。

图像

在 GitHub 上查看

  • @equiman报告了夜间模式下<figcaption>标签的问题。谢谢,@equiman!

GitHub 徽标夜间模式下的 figcaption 标签 #2181

equiman 头像

equiman 发布于2019 年 3 月 24 日

夜间模式下的标签颜色字体需要另一种较浅的颜色。

IMG_20190323_191124

IMG_20190323_191128

在 GitHub 上查看

  • @equiman报告了仪表板中草稿帖子的夜间模式问题。谢谢,@equiman!

GitHub logo夜间模式下的文章草稿#2182

equiman 头像

equiman 发布于2019 年 3 月 24 日

在仪表板屏幕上的夜间模式下,草稿文章更轻

Screenshot_20190323-191607

在 GitHub 上查看

  • @equiman报告了个人资料页面中社交图标的夜间模式问题。再次感谢,@equiman!

GitHub 徽标夜间模式下个人资料中的社交图标 #2183

equiman 头像

equiman 发布于2019 年 3 月 24 日

个人资料中的社交图标有不同的颜色。

IMG_20190323_192118

在 GitHub 上查看

  • @equiman报告了仪表板中“以下标签”部分的夜间模式问题。再次感谢,@equiman!

GitHub 徽标以下标签在夜间模式 #2184

equiman 头像

equiman 发布于2019 年 3 月 24 日

开启夜间模式。以下标签和文本为浅色。

Screenshot_20190323-192459

在 GitHub 上查看

  • @rhymes开启了关于我们是否应该在未来的 REST API 中使用随机生成的 ID 的讨论。谢谢,@rhymes!

GitHub 徽标在 REST API #2187 中使用随机生成的 ID

押韵头像

押韵 发表于2019 年 3 月 25 日

您的功能请求是否与问题有关?请描述。

在阅读了这篇关于 dev.to 文章上的数据分析的精彩文章后,我打开了这张票。

为了准备 API 的未来“发布”,我想提出的问题是:dev.to 是否应该使用随机生成的资源 ID 而不是公开“内部”自动递增整数主键?

API 设计中的“经典”最佳实践是不公开应用程序的内部细节,尽可能将数据的组织方式与第三方可访问的方式分开。

公共 API 中通常不鼓励使用自动递增的主键(有些人,而不是全部人),主要有以下三个原因:

  1. 他们向公众公开数据库 ID。今天,您可能在关系数据库中拥有数据,明天这些数据可能在其他地方,而这些 ID 可能意义不大,因为自动递增的主键对于一个数据源来说是本地的。

  2. 通过暴露递增的 ID,旁观者(或恶意攻击者)可以收集两个信息:表的大小和增长率

  3. 恶意攻击者更容易编写脚本来抓取数据

这更像是一个政策问题,而不是一个技术论点,因为至少出于三个原因中的第二个,DEV 或许完全可以接受。

自动递增整数主键的一些可能替代方法:

  • UUID:PostgreSQL 有一个本机可索引 UUID 类型具有生成默认 UUID 的函数,如 pgcrypto 的gen_random_uuid()。UUID 虽然不可排序,但它们看起来很丑,而且很冗长:https://dev.to/api/articles/2d931510-d99f-494a-8c67-87feb05e1594

  • KSUID:它们是非常新的并且是由 Segment “发明”的。它们的特点是它们是可排序的和时间相关的:https://dev.to/api/articles/0ujsszwN8NRY24YaXiTIE2VWDTS

  • 应用程序中生成的其他一些随机字母数字 ID(例如 Ruby 的SecureRandom.alphanumeric(20)):https://dev.to/api/articles/cDAkKyz38cqjTI1bV5lG

我的偏好是最后两个选项之一

描述您想要的解决方案

由于 API 尚未公开,而且相对较小(只有 8 个控制器),我认为如果对此达成共识,过渡是可行的。在发布和文档之后可能会更难,特别是因为 DEV 已经是一个大社区,开发人员已经抓住了使用 API 的机会(因此这篇文章 ;))

出于显而易见的原因,不应该出现两者(整数 ID 和字母数字 ID)同时工作的情况。这只会给系统带来压力(因为它可能会导致两个查询,而不是一个)。

前端/SPA 也需要对齐和更新。

你怎么看?

附加上下文

我快速浏览了一些公共 API(从 DEV](https://docs.dev.to/addl-tech/)本身使用的[开始,这就是我发现的:

  • Fastly使用 URL(出于显而易见的原因)和字母数字 ID(例如SU1Z0isxPaozGVKXdv0eY)来识别资源,可能由相当于 Ruby 的SecureRandom.alphanumeric(21)生成

  • Cloudinary使用随机生成的字符串public_id(例如8jsb1xofxdqamu2rzwt9q)

  • Stripe使用以资源标识符为前缀的字母数字随机字符串,例如ch_19yUdh2eZvKYlo2CkFVBOZG7用于收费,cus_El7v7DRE34iBPx用于客户

还有几个:

  • StackOverflow使用整数 ID

  • Twilio使用带有资源类型前缀的字符串 ID,类似于 Stripe

  • PayPal使用字母数字 ID

参考文献#911

在 GitHub 上查看

  • @kenbellows报告了某些字符(如尖括号)在某些文章预览中显示不正确的问题。谢谢,@kenbellows!

GitHub 徽标某些字符,如尖括号,在某些文章预览中显示不正确 #2204

kenbellows 头像

kenbellows 发布于2019 年 3 月 25 日

描述bug查看文章的/comments视图时,显示文章的第一行半左右。如果第一位包含带尖括号的内联代码,例如如果你写道:

this is an article about `<span>` tags

这在文章预览中显示为:“这是一篇关于 <span> 标签的文章”。

重现重现行为的步骤:

  1. 转到“https://dev.to/new”。

2、输入minimum front matter,设置`published:true,输入:

this is an article about `<span>` tags
  1. 保存文章。

  2. 导航至{文章 URL}/评论。

5.观察预览文本中的&lt;span&gt;

预期行为 我希望预览会说“这是一篇关于<span>个标签的文章”

屏幕截图示例来自:https://dev.to/kenbellows/stop-using-so-many-divs-an-intro-to-semantic-html-3i9i/comments屏幕截图 2019 -03-25 11:45 AM EST

桌面(请填写以下信息):

  • 操作系统:macOS Mojave 10.14.3

  • 浏览器:Chrome 72.0.3626.121、Opera 58.0.3135.107

在 GitHub 上查看

  • @john_papa报告了夜间模式的问题,即注释中的代码需要对比。谢谢,@john_papa!

GitHub 徽标暗模式 - 注释中的代码需要对比 #2210

johnpapa 头像

johnpapa 发布于2019 年 3 月 26 日

见下文

图像

在 GitHub 上查看

  • @learnbyexample报告了字符串包含⭕的代码块更改为表情符号的问题。谢谢,@learnbyexample!

GitHub 徽标字符串包含⭕的代码块更改为⭕️ #2216

learnbyexample 头像

learnbyexample 发布于2019 年 3 月 26 日

描述错误

包含:o:字符串的代码块(n后面的小写字母被冒号包围)更改为⭕️(可能是表情符号?)

复制

在帖子/评论中使用任何这些代码块并预览它会显示问题。据我检查,在这个序列周围有任何其他字符并不重要。

:o:


```python


':o:'



':o:'

":o:"





**Expected behavior**



Within code blocks, I do not expect any string combination (that I know of) to be interpreted and converted to another string. `:o:` should just be `:o:` not `⭕️`



**Screenshots**



The above code blocks produces this output:



[![code_block_issue](https://res.cloudinary.com/practicaldev/image/fetch/s--c7C3DQ1Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/17766317/54998185-85167700-4ff3-11e9-9f3c-3f2d5cd8b9c1.png)](https://user-images.githubusercontent.com/17766317/54998185-85167700-4ff3-11e9-9f3c-3f2d5cd8b9c1.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2216)



*   [@healeycodes](https://dev.to/healeycodes) reported an issue with night mode where embedded comments are hard to read. Thanks [@healeycodes](https://dev.to/healeycodes)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Bug(Night Mode): Embedded comments are hard to read #2221](https://github.com/thepracticaldev/dev.to/issues/2221)



[![healeycodes avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--1AZ05Lbk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/34559231%3Fv%3D4)](https://github.com/healeycodes)



**[healeycodes](https://github.com/healeycodes)** posted on [Mar 26, 2019](https://github.com/thepracticaldev/dev.to/issues/2221)



**Describe the bug** With Night Mode enabled, embedded comments in articles are hard to read.



They show up as black text against a dark blue background.



**To Reproduce** With Night Mode enabled, go to an article that embeds comments.



Such as [https://dev.to/devteam/top-5-dev-comments-from-the-past-week-gia](https://dev.to/devteam/top-5-dev-comments-from-the-past-week-gia)



**Screenshots**



[![An embedded comment](https://res.cloudinary.com/practicaldev/image/fetch/s--ECrcbAF3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/34559231/55022288-2b617d00-4ff2-11e9-8471-4d6996801291.png)](https://user-images.githubusercontent.com/34559231/55022288-2b617d00-4ff2-11e9-8471-4d6996801291.png)



**Desktop:**



*   OS: Windows 10 OS Build 17134.648

*   Browser: Chrome

*   Version: 73.0.3683.86 (Official Build) (64-bit) (cohort: Stable)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2221)



*   [@andypiper](https://dev.to/andypiper) reported an issue with night mode where an organization's CTA box content is hard to read. Thanks, [@andypiper](https://dev.to/andypiper)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Dark mode - org CTA box content is hard to read (needs contrast) #2222](https://github.com/thepracticaldev/dev.to/issues/2222)



[![andypiper avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--lXFUVuqN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/552452%3Fv%3D4)](https://github.com/andypiper)



**[andypiper](https://github.com/andypiper)** posted on [Mar 26, 2019](https://github.com/thepracticaldev/dev.to/issues/2222)



**Describe the bug** It is difficult to read the black text on dark background in the CTA box on organisation posts.



**To Reproduce** Steps to reproduce the behavior:



1.  Go to [https://dev.to/twilio](https://dev.to/twilio)

2.  Click on any post

3.  Check the sidebar

4.  See below



**Screenshots** [![Screenshot 2019-03-26 at 20 40 43](https://res.cloudinary.com/practicaldev/image/fetch/s--xLdF2LeI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/552452/55031939-ac773f00-5007-11e9-9e77-718ac4e9ed29.png)](https://user-images.githubusercontent.com/552452/55031939-ac773f00-5007-11e9-9e77-718ac4e9ed29.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2222)



*   [@lito](https://dev.to/lito) requested a feature where we add an HTML `<meta>` tag with the current deployed git commit hash. Thanks, [@lito](https://dev.to/lito)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Add a HTML Meta tag with deployed git commit hash #2223](https://github.com/thepracticaldev/dev.to/issues/2223)



[![eusonlito avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--0Hue9-LM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/644551%3Fv%3D4)](https://github.com/eusonlito)



**[eusonlito](https://github.com/eusonlito)** posted on [Mar 27, 2019](https://github.com/thepracticaldev/dev.to/issues/2223)



What about to add a `html` `meta` tag on header with the current git commit deployed?



On this way it's easy to contributors and developers follow website status and deployment compared with github commits.



I don't know if exists some tag for this proposse, but what about something like:



<meta nameu003d"git-commit" contentu003d"6e23483b9421c1e1a03d94093306badf277cc19e">





Regards :)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2223)



*   [@lito](https://dev.to/lito) reported an issue where non-English characters are deleted in tags. Thanks again, [@lito](https://dev.to/lito)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Non english characters are deleted on tags #2226](https://github.com/thepracticaldev/dev.to/issues/2226)



[![eusonlito avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--0Hue9-LM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/644551%3Fv%3D4)](https://github.com/eusonlito)



**[eusonlito](https://github.com/eusonlito)** posted on [Mar 27, 2019](https://github.com/thepracticaldev/dev.to/issues/2226)



**Describe the bug** When you write tags with some non english characters, these characters are deleted on article view.



**To Reproduce**



1.  Use a tag like `Optimización` (Optimization).

2.  Save

3.  Go to article

4.  `Optimización` is now `optimizacin`



**Expected behavior** Show `Optimización` as in markdown editor.



**Screenshots** [![Tags Bug](https://res.cloudinary.com/practicaldev/image/fetch/s--TILbdsbk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/644551/55106274-d0ea1e80-50ce-11e9-8a61-8213f1da75e6.jpg)](https://user-images.githubusercontent.com/644551/55106274-d0ea1e80-50ce-11e9-8a61-8213f1da75e6.jpg)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2226)



*   [@brylie](https://dev.to/brylie) reported an issue where service workers and a privacy extension was blocking images from loading. Thanks, [@brylie](https://dev.to/brylie)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Error loading images #2228](https://github.com/thepracticaldev/dev.to/issues/2228)



[![brylie avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--dkPOsjlX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/17307%3Fv%3D4)](https://github.com/brylie)



**[brylie](https://github.com/brylie)** posted on [Mar 27, 2019](https://github.com/thepracticaldev/dev.to/issues/2228)



I shared a dev.to article on Reddit, and [one of the commenters said images wouldn't load](https://www.reddit.com/r/vuejs/comments/b59cbd/update_routerview_when_vue_route_changes_dev/ejc26j7/).



Here is the rest of their diagnosis:



这些图像:

https://translate.google.com/translate?hl=en&sl=auto&tl=zh&u=https://i.imgur.com/GArpxyC.png

控制台报错:

manifest-36a1d0b68d1e3664106b.js:1 Uncaught SyntaxError: Unexpected token <

供应商-a16759536b738a97f545.js:1 Uncaught SyntaxError: Unexpected token <

搜索-d6be81c747f6325b6aae.js:1 Uncaught SyntaxError: Unexpected token <

base-55719a78ce4c394706e03834ae49c59cddc235c3ef5dbc299c63b4edf0f0b558.js:1 Uncaught SyntaxError: Unexpected token <

webShare-1698d2d09639b4c8b299.js:1 Uncaught SyntaxError: Unexpected token <

reload-router-view-when-vue-route-changes-3cck:1 尝试使用清单中的以下图标时出错:https://practicaldev-herokuapp-com.freetls.fastly.net/assets/devlogo-pwa -192-b92c1c02f2f63967c2889ba04a4d7bc61da640a6dbe419d65703b1282c96b46c.png(下载错误或资源不是有效图片)

serviceworker.js:1 Uncaught (in promise) TypeError: Failed to fetch

如果我转到“Google chrome dev tools”->“Application”->“Service worker”并检查“Bypass for network”,然后重新加载,一切正常

经过更多调试后,我的浏览器中的隐私设置似乎阻止了对 *.freessl.fastly 的 XHR 请求,如果我将来自您域的 XHR 请求的来源列入白名单,它就可以工作





[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2228)



*   [@lightalloy](https://dev.to/lightalloy) raised the issue that merging user accounts should be done in a database transaction. Thanks, Anna!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Merging user accounts should be done in a transaction #2230](https://github.com/thepracticaldev/dev.to/issues/2230)



[![lightalloy avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--yJaexUyj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/30115%3Fv%3D4)](https://github.com/lightalloy)



**[lightalloy](https://github.com/lightalloy)** posted on [Mar 28, 2019](https://github.com/thepracticaldev/dev.to/issues/2230)



I think that for a safer merge at least some of the actions should be done inside a db transaction.



[https://github.com/thepracticaldev/dev.to/blob/7c1418a87c654c2feb56124c2f750ee5a8455f12/app/services/moderator/merge\_user.rb#L15-L26](https://github.com/thepracticaldev/dev.to/blob/7c1418a87c654c2feb56124c2f750ee5a8455f12/app/services/moderator/merge_user.rb#L15-L26)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2230)



*   [@ben](https://dev.to/ben) requested a feature where we v2 editor could also handle plain front matter. Thanks, Ben!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Toggle plain frontmatter editor within v2 #2234](https://github.com/thepracticaldev/dev.to/issues/2234)



[![benhalpern avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--qeETGNZc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/3102842%3Fv%3D4)](https://github.com/benhalpern)



**[benhalpern](https://github.com/benhalpern)** posted on [Mar 28, 2019](https://github.com/thepracticaldev/dev.to/issues/2234)



**Is your feature request related to a problem? Please describe.** Currently if you want to write "simple" markdown, you do so with the original editor, which is fine, but has always been a bit weird and occasionally buggy.



The new editor has rich UI controls, but some folks still want the markdown pasting experience (for a lot of valid reasons beyond just taste!)



It would be nice if "v2" (the preact-built editor) supported our whole range of use cases and we could sunset the old code (perhaps to be maintained by the community)



**Describe the solution you'd like**



Any area to toggle between editor types would be great. Users could have a default editor type but easily switch when needed.



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2234)



*   [@antonrich](https://dev.to/antonrich) requested a feature where you can combine tags together in a search query.



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Combining tags together in a search query. #2238](https://github.com/thepracticaldev/dev.to/issues/2238)



[![AntonRich avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--v7OEW75y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/7220769%3Fv%3D4)](https://github.com/AntonRich)



**[AntonRich](https://github.com/AntonRich)** posted on [Mar 29, 2019](https://github.com/thepracticaldev/dev.to/issues/2238)



It would be great if users could write a search query of the following format: #tag1 #tag2 and receive the results that actually have such tags.



[https://dev.to/antonrich/how-can-i-combine-tags-when-searching-on-dev-to-5b19](https://dev.to/antonrich/how-can-i-combine-tags-when-searching-on-dev-to-5b19)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2238)



*   [@mte90](https://dev.to/mte90) Improve the feed using the tags picked by an user



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Improve the feed using the tags picked by an user #2249](https://github.com/thepracticaldev/dev.to/issues/2249)



[![Mte90 avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--LgwFHxZn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/403283%3Fv%3D4)](https://github.com/Mte90)



**[Mte90](https://github.com/Mte90)** posted on [Mar 31, 2019](https://github.com/thepracticaldev/dev.to/issues/2249)



**Describe the bug** An user pick the tags that want to follow but there isn't any priority to them on the various feed availables.



**To Reproduce** Steps to reproduce the behavior:



1.  Set tags on your user

2.  Check the tags of the post in your feed



**Expected behavior** The feeds has only stuff of the tags that the user is following or else they are useless right now



**Screenshots** [![immagine](https://res.cloudinary.com/practicaldev/image/fetch/s--9ilygT6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/403283/55291366-2def1880-53de-11e9-987d-6ee05c16481f.png)](https://user-images.githubusercontent.com/403283/55291366-2def1880-53de-11e9-987d-6ee05c16481f.png) [![immagine](https://res.cloudinary.com/practicaldev/image/fetch/s--bhPI317S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/403283/55291374-3a737100-53de-11e9-835c-df3469a0a66a.png)](https://user-images.githubusercontent.com/403283/55291374-3a737100-53de-11e9-835c-df3469a0a66a.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2249)



*   [@rhymes](https://dev.to/rhymes) reported a strange issue with the API where `https://dev.to/api/comments?a_id=some_id` wasn't working, even though there seemingly isn't anything wrong with the related code. Thanks for reporting this, [@rhymes](https://dev.to/rhymes)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) API: can't get comments belonging to an article #2250](https://github.com/thepracticaldev/dev.to/issues/2250)



[![rhymes avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--DFq3J7lB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/146201%3Fv%3D4)](https://github.com/rhymes)



**[rhymes](https://github.com/rhymes)** posted on [Mar 31, 2019](https://github.com/thepracticaldev/dev.to/issues/2250)



**Describe the bug**



I can't seem to be able to retrieve articles comments from the DEV API. It works on my local installation but not using the live API.



Given the article API response [https://dev.to/api/articles/95907](https://dev.to/api/articles/95907) - [https://dev.to/kathyra\_/what-security-through-obscurity-is-and-why-it-s-evil-47d5](https://dev.to/kathyra_/what-security-through-obscurity-is-and-why-it-s-evil-47d5) - I tried to retrieve its comments using [https://dev.to/api/comments?a\_id=95907](https://dev.to/api/comments?a_id=95907) but the server returns `HTTP 404`.



At a first glance it should work, according to the code:



[https://github.com/thepracticaldev/dev.to/blob/54ccef47669759b060370c1cde8f527ce6d39333/app/controllers/api/v0/comments\_controller.rb#L15-L18](https://github.com/thepracticaldev/dev.to/blob/54ccef47669759b060370c1cde8f527ce6d39333/app/controllers/api/v0/comments_controller.rb#L15-L18)



The odd thing is that such call works correctly on a local installation.



I'm probably doing something wrong on my end.



**To Reproduce** Steps to reproduce the behavior:



1.  Go to [https://dev.to/api/comments?a\_id=95907](https://dev.to/api/comments?a_id=95907)

2.  See error



**Expected behavior**



I'd expect this endpoint to return all the comments of the article with id `95907` which should be the following: [https://dev.to/kathyra\_/what-security-through-obscurity-is-and-why-it-s-evil-47d5](https://dev.to/kathyra_/what-security-through-obscurity-is-and-why-it-s-evil-47d5)



**Screenshots**



[![Screenshot 2019-03-31 at 6 50 42 PM](https://res.cloudinary.com/practicaldev/image/fetch/s---FtRGk8E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/146201/55292018-f1271f80-53e5-11e9-81be-d8954c52ead6.png)](https://user-images.githubusercontent.com/146201/55292018-f1271f80-53e5-11e9-81be-d8954c52ead6.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2250)



*   [@mjraadi](https://dev.to/mjraadi) reported an issue with night mode where the comment preview text is unreadable. Thanks, [@mjraadi](https://dev.to/mjraadi)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) \[Night Mode\]: Article's Comment Preview Needs to be Fixed #2286](https://github.com/thepracticaldev/dev.to/issues/2286)



[![mjraadi avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--UjYbKeqx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/20579660%3Fv%3D4)](https://github.com/mjraadi)



**[mjraadi](https://github.com/mjraadi)** posted on [Apr 02, 2019](https://github.com/thepracticaldev/dev.to/issues/2286)



**Describe the bug** Comment preview of an article needs to be updated according to the night mode color scheme. Background color is yellow and font color is white and the text is unreadable.



**To Reproduce** Steps to reproduce the behavior:



1.  Go to any article

2.  In the comment box type anything

3.  Click on "Preview"

4.  See the behavior



**Expected behavior** Contrast between background color and text color.



**Screenshots** [![Screenshot_20190402_144338](https://res.cloudinary.com/practicaldev/image/fetch/s--uCtKZfAH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/20579660/55394990-e4c1d480-5555-11e9-818e-3740ee057274.png)](https://user-images.githubusercontent.com/20579660/55394990-e4c1d480-5555-11e9-818e-3740ee057274.png)



**Desktop (please complete the following information):**



*   OS: Arch Linux Manjaro

*   Browser Chrome



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2286)



*   [@learnbyexample](https://dev.to/learnbyexample) reported an issue where inline code with double backslash becomes a single backslash if it is part of nested bullet list.



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Inline code with double backslash becomes single if it is part of nested bullet list #2288](https://github.com/thepracticaldev/dev.to/issues/2288)



[![learnbyexample avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--CJPlxdCQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/17766317%3Fv%3D4)](https://github.com/learnbyexample)



**[learnbyexample](https://github.com/learnbyexample)** posted on [Apr 02, 2019](https://github.com/thepracticaldev/dev.to/issues/2288)



**Describe the bug**



Double backslash inside code blocks in nested listing results in single backslash instead of two.



**To Reproduce**



From any post/comment, try these non-nested and nested bullet lists:



  • 使用\\1\\2

  • 巴兹
  • 使用\\1\\2




**Expected behavior**



Double backslash shouldn't become single, as shown below for GitHub markdown rendering:



*   foo

    *   baz

*   use `\\1`, `\\2`, etc



**Screenshots**



Screenshot for above non-nested (correctly rendering) and nested list (incorrect):



[![nested_bullet_double_backslash](https://res.cloudinary.com/practicaldev/image/fetch/s--r4cy09h5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/17766317/55397518-088c1700-5564-11e9-8203-50386f196e05.png)](https://user-images.githubusercontent.com/17766317/55397518-088c1700-5564-11e9-8203-50386f196e05.png)



Not sure if this is related to: [https://github.com/thepracticaldev/dev.to/issues/960](https://github.com/thepracticaldev/dev.to/issues/960)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2288)



*   [@jess](https://dev.to/jess) reported an issue where a Code Sandbox Liquid tag w/ focus input causes the page to jump. Thanks, Jess!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Code sandbox liquid tag w/ focus input causes scrolling on page load #2290](https://github.com/thepracticaldev/dev.to/issues/2290)



[![jessleenyc avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--J5IMWuce--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/14931921%3Fv%3D4)](https://github.com/jessleenyc)



**[jessleenyc](https://github.com/jessleenyc)** posted on [Apr 02, 2019](https://github.com/thepracticaldev/dev.to/issues/2290)



**Describe the bug** Reported by a user trying to embed a codesandbox that focuses an input. The page 'jumps'/scrolls to the embed when it loads.



**To Reproduce** Create a new post w/ this liquid tag: `{% codesandbox pyqq0o9mk7 %}`. Make sure it appears below the fold so you can see the jump.



**Expected behavior** Liquid Tag shouldn't cause scrolling on page load.



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2290)



*   [@forsh3y](https://dev.to/forsh3y) opened a discussion about the font weight of night mode. Thanks, [@forsh3y](https://dev.to/forsh3y)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Dark Mode text weight/kerning #2295](https://github.com/thepracticaldev/dev.to/issues/2295)



[![forsh3y avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--j74RWOCv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/34724411%3Fv%3D4)](https://github.com/forsh3y)



**[forsh3y](https://github.com/forsh3y)** posted on [Apr 03, 2019](https://github.com/thepracticaldev/dev.to/issues/2295)



**Is your feature request related to a problem? Please describe.** I'm in no way visually disabled, but reading large groupings of text in nightmode makes my eyes hurt!



**Describe the solution you'd like** A lighter font weight for regular text in dark mode. [Details here:](https://css-tricks.com/dark-modes-with-css/#article-header-id-2)



**Describe alternatives you've considered** Unsure, I imagine this will be far far far down on the totem pole anyhow.



**Additional context** This showcases how the font weight is hard to distinguish and how "clumped" the text is. [![image](https://res.cloudinary.com/practicaldev/image/fetch/s--jzEqBasF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/34724411/55447298-6890b680-5580-11e9-9f77-13ec2d216afc.png)](https://user-images.githubusercontent.com/34724411/55447298-6890b680-5580-11e9-9f77-13ec2d216afc.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2295)



*   [@jaydm](https://dev.to/jaydm) opened a discussion about making reading times an 'opt-in' feature. Thanks, [@jaydm](https://dev.to/jaydm)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Consider making reading times an 'opt-in' feature #2304](https://github.com/thepracticaldev/dev.to/issues/2304)



[![jaydm avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--Wu0wUN-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars1.githubusercontent.com/u/595062%3Fv%3D4)](https://github.com/jaydm)



**[jaydm](https://github.com/jaydm)** posted on [Apr 03, 2019](https://github.com/thepracticaldev/dev.to/issues/2304)



**Is your feature request related to a problem? Please describe.** People with dyslexia may find reading times unpleasant: [![image](https://res.cloudinary.com/practicaldev/image/fetch/s--gjeUOtVT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/595062/55516478-f1682a80-5632-11e9-8a67-0ff40e13562b.png)](https://user-images.githubusercontent.com/595062/55516478-f1682a80-5632-11e9-8a67-0ff40e13562b.png)



**Describe the solution you'd like** Suggest that the reading time either be removed or provide an option to opt-in to see them (so that by default they are hidden).



**Describe alternatives you've considered** See above - either remove reading times or provide an opt-in to enable them (cookie?)



**Additional context** Here is one blog post showing the reading time: [![image](https://res.cloudinary.com/practicaldev/image/fetch/s--pPBY1r30--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/595062/55516417-c41b7c80-5632-11e9-9fd2-629a645d4904.png)](https://user-images.githubusercontent.com/595062/55516417-c41b7c80-5632-11e9-9fd2-629a645d4904.png)



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2304)



*   [@rhymes](https://dev.to/rhymes) opened a discussion about possible improvements and ideas for handling the data of our analytics. Thanks, [@rhymes](https://dev.to/rhymes)!



#  [![GitHub logo](https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg) Analytics service: possible improvements and ideas for the future #2311](https://github.com/thepracticaldev/dev.to/issues/2311)



[![rhymes avatar](https://res.cloudinary.com/practicaldev/image/fetch/s--DFq3J7lB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/146201%3Fv%3D4)](https://github.com/rhymes)



**[rhymes](https://github.com/rhymes)** posted on [Apr 05, 2019](https://github.com/thepracticaldev/dev.to/issues/2311)



**Is your feature request related to a problem? Please describe.**



This has been opened to collect all possible improvements, in case of need, for the analytics API after questions about performance have been raised in #2307 prior to the refactoring in #2308 (AFAIK yet to be measured/verified for the use case that lead to #2307).



**Describe the solution you'd like**



There are possible incremental solutions (not all alternatives to each other, some can be applied incrementally). Some suggested solutions require a trivial amount of effort, others require more work.



Theoretically all should be measured against the status quo to understand if needed or not.



# [](#possible-solutions)Possible solutions



## [](#hard-limiting-the-date-range-of-analytics-that-can-be-requested)Hard limiting the date range of analytics that can be requested



The proposed solution would forcibly limit how wide the range of dates for the analytics can a client request. As mentioned by @Zhao-Andy some public API's like Twitter limit requests up to 30 days.



### [](#pros)Pros



*   setting a cap on the amount of data a client can request is a good idea for obvious reasons

*   most analytics clients will use rolling windows on dates anyway or are interested in a specific period



### [](#cons)Cons



*   would probably require special care if any client is to be treated differently (for commercial partnership where the client asks to access more data at same time)

*   it could lead to more HTTP requests for clients interested in a wider range and hence more queries if the client is after data for more than 30 days



### [](#my-recommendation)My recommendation



I think it's a great idea and should definitely be considered, though applied as a result of a clear data policy (maybe even explicitly explained in the documentation) not just for performance reasons (those if encountered should be solved at the best of our abilities, not just "hidden" by limiting the date range)



## [](#adding-indexes-to-columns-in-where-conditions)Adding indexes to columns in where conditions



Most queries in the `AnalyticsService` work on `created_at` columns of the tables `reactions`, `comments`, `page_views`. The proposed solution is to add indexes on those columns to improve speed of retrieval for large data sets.



### [](#pros-1)Pros



*   a request that asks for a large number of articles over a large interval of date should be aided by indexes



### [](#cons-1)Cons



*   indexes can slow down writes for tables with a high frequency of writes

*   as it currently stands the code splits the queries over each day, the difference in most cases might not be noticeable



### [](#my-recommendation-1)My recommendation



I think this is a quick win and should seriously be considered as a companion to any other solution. Where conditions on dates are a classic place where an index can benefit. Ideally one show open the SQL console and measure the before and after of the query with explain analyze but it's not mandatory. I also don't believe, AFAIK, there's going to be any impact on writes because what I perceive to be the biggest table among the three, `reactions`, doesn't get millions of `INSERT`s at a time. Anyhow that can be monitored with the slow query tab on Heroku in case the problem presents itself in the future.



## [](#use-grouping)Use grouping



The proposed solution is to let the DB group data and return aggregates instead of computing aggregates with following queries per each day in the range of dates.



### [](#pros-2)Pros



*   the database is generally really good at mixing grouping and where conditions (provided there are indexes on the needed columns)

*   it would lower the amount of queries



### [](#cons-2)Cons



*   it requires testing. Ideally one should write a test that populates the DB with a data sample over 2 or 3 days, write an assertion/expectation about the result, then go about improving the internals of the service to make sure the expected data matches the new structure of querying (usual testing, nothing to see here hehe)

*   it requires some trial and error and knowledge of [PostgreSQL group by clause](http://www.postgresqltutorial.com/postgresql-group-by/) (the link points to a tutorial)



### [](#my-recommendation-2)My recommendation



I'm obviously biased in favor of this (let the DB do its job as a mantra) if the expected result allow for it (I haven't looked deeply into it so it might not be feasible). Rails natively supports `GROUP BY` and `HAVING` (both clauses needed to grouping and filtering on groups) through ActiveRecord methods [group](https://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-group) and [having](https://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-having). [@lightalloy](https://dev.to/lightalloy) has mentioned the existence of the gem [groupdate](https://github.com/ankane/groupdate) geared specifically at grouping by dates using an agnostic interface that works on all supported DBs, that could come in handy for this and future date based aggregations (though the syntax in vanilla Rails is pretty straightforward:



\[7\] pry(main)\> PageView.where(created\_at: 2.days.ago..Time.current).group("date(created\_at)").sum(:counts\_for\_number\_of\_views)

   (0.8ms)  SELECT SUM("page\_views"."counts\_for\_number\_of\_views") AS sum\_counts\_for\_number\_of\_views, date(created\_at) AS date\_created\_at FROM "page\_views" WHERE "page\_views"."created\_at" BETWEEN $1 AND $2 GROUP BY date(created\_at)  \[\["created\_at", "2019-04-03 08:47:39.869415"\], \["created\_at", "2019-04-05 08:47:39.869509"\]\] \[sql\_query\]

=> {Thu, 04 Apr 2019\=>7}



Enter fullscreen mode Exit fullscreen mode



you can verify how the query works correctly by a quick look at the data:



\[8\] pry(main)\> PageView.all.pluck(:counts\_for\_number\_of\_views, :created\_at)

   (0.5ms)  SELECT "page\_views"."counts\_for\_number\_of\_views", "page\_views"."created\_at" FROM "page\_views" \[sql\_query\]

=> \[\[1, Thu, 04 Apr 2019 21:28:07 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 21:28:56 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 21:39:25 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 22:39:33 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 22:41:03 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 22:43:49 UTC +00:00\],

 \[1, Thu, 04 Apr 2019 22:45:07 UTC +00:00\]\]



Enter fullscreen mode Exit fullscreen mode



## [](#pre-compute-data-using-batching-and-compute-the-difference-in-real-time)Pre-compute data using batching and compute the difference in real time



The proposed solution is to add an analytics table that contain aggregated data populated by a scheduled recurring job



### [](#pros-3)Pros



*   this has the obvious pro of having near instantaneous read time. The client asks for a date range, a `SELECT` is issued to the aggregated table and the data is returned

*   it can lead to further optimizations down the line (if combined to caching or other changing business requirements I can't foresee right now)



### [](#cons-3)Cons



*   it requires a bit of effort upfront

*   it requires a merge function (if the aggregated data is less than the required data) that still has to go to the live tables

*   it may require an eviction policy (how long are aggregates kept in storage?)

*   what happens to the old rows of aggregated data if there's a bug in the analytics function or if new metrics are added?



### [](#my-recommendation-3)My recommendation



I'd consider this when the other options have been exhausted. If there's a massive amount of data continuously requested by HTTP clients and indexes and grouping are failing you, then a switch in the approach is a way to go. I'm always a big reluctant into going "batching first" because most of the times there are avenues to be exhausted before. Batching also requires some logic on merging, eviction and coping with stale data (or having to recompute older rows in the background)



## [](#low-level-caching-on-results)Low level caching on results



The proposed solution is to guard one or each metric with a cache, so that an individual client requiring a specific range twice will have its data returned from memory the second time



### [](#pros-4)Pros



*   as with batching the data can be returned quickly once the cache is primed

*   by knowing in advance one could pre-compute cached values for specific users/organizations that have particularly massive computations ahead of them

*   it shouldn't have a big impact on the memory occupied by the caching server



### [](#cons-4)Cons



*   it's unlikely that an organization is going to ask for the same date range multiple times often, hence caching might defeat the purpose (organization usually write scheduled scripts that retrieve analytics and update internal dashboards :D)

*   caching individual dates would require too many trips to the caching server, and a SQL query might be faster in that case

*   as with batching (which is basically a cache written to disk), caches need to be handled in the sense that if tomorrow a new metric is added, there has to be a mechanism to re-populate older caches or at least empty all existing ones, this requires a bit of analysis



### [](#my-recommendation-4)My recommendation



I'd go down this route after exhausting all "live optimizations" though it can be extremely beneficial for bigger organizations or extremely popular users or organization/users whose analytics are asked in a continuos manner though usually aggregated analytics are asked for once a day by each client so it's easy to plan the impact on the systems.



[View on GitHub](https://github.com/thepracticaldev/dev.to/issues/2311)



# [](#devios)DEV-iOS



We haven't had any new issues or PRs merged lately. Feel free to check out the [iOS repo](https://github.com/thepracticaldev/dev-ios), or download [our iOS app on the App Store.](https://itunes.apple.com/us/app/dev-community/id1439094790)



That's it for this week! Next week, I promise we'll be covering April 6 to April 12 and be on a regular weekly schedule. 🙇‍♂️

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐