关于本站

关于本站 ✨📒 详细记录一下此次建站过程 开始 之前的博客是基于jekyll打造的,要添加和定制化的东西都只能基于html+js+css完成,有些麻烦,所以一直有想更换引擎的想法 直到偶然间发现vuepress,首先是被vue3+typescript+vite吸引,然后看到默认主题属实有点不合符我的期待,自己动手成本又太高,也没有太急着去折腾,直到无...

2023/3/15
articleCard.readMore

关于我

关于我 Profile Exploration & geek enthusiast, full-stack front-end engineer, UX Designer | Currently focusing on cross-platform development with main directions in iOS, ReactNative...

2023/3/12
articleCard.readMore

如何利用GitHub Action提交URL到搜索引擎

相关信息 这是一个GitHub Actions的配置文件,整体思路是,获取本次更新的url (通过对比两次提交的sitemap.xml文件),所以触发条件是deploy分支有推送并修改了sitemap.xml文件,再利用python脚本进行url推送到百度、Bing、Google 脚本代码请看这里👉提交URL到搜索引擎(百度、Bing、Google)

2023/4/17
articleCard.readMore

评论系统从多说迁移到disqus指南

由于多说评论系统将于 6 月 1 日下线,所以准备迁移至disqus,相比较的话对于国内环境还是多说好用一点,毕竟加载快,支持各大媒体的分享,也不用小伙伴们翻墙;而 disqus 分享也只支持 Facebook 和 twitter。。PS:貌似现在又被墙了,以后有时间再换吧,目前就先这样,国内据说畅言还不错 迁移过程 1.首先为了不丢失原有评论,导出多...

2017/4/14
articleCard.readMore

Jekyll旧站回忆

“Yeah It's on. ” 前言 Oragekk 的 Blog 就这么开通了。 跳过废话,直接看技术实现 2016 年,11 月 总算有个地方可以好好写点东西了。 作为一个程序员, 看多了别人的 Blog 这种轮子都是酷炫的不要不要的,自己其实一种想搞一个,前两天发现了 GitHub Pages +Jekyll 的技术方案,一下子就上瘾了。 终于...

2016/11/3
articleCard.readMore

评论插件 Waline 之邮件通知配置

评论插件 Waline 之邮件通知配置 ✨ 陆续优化中……这次到了评论的邮件通知,由于 waline 带后端,可以开启评论通知,我是部署在 Vercel 上的,配置一下就可以了,模版要感谢小波同学 前置注意点 1.邮件要注意每日发信限制,短时密集评论会导致直接被封,禁止发信 2.最好不要使用自己平常使用的邮箱,使用一个单独的邮箱来操作 3.有服务器的同...

2023/3/29
articleCard.readMore

Markdown 展示

VuePress 主要从 Markdown 文件生成页面。因此,你可以使用它轻松生成文档或博客站点。 你应该创建和编写 Markdown 文件,以便 VuePress 可以根据文件结构将它们转换为不同的页面。

2023/2/11
articleCard.readMore

幻灯片页

2020/1/1
articleCard.readMore

一人一句宋词

Bing 每日壁纸Bing 每日壁纸 写来留待日后慢慢欣赏 😜 苏轼 十年生死两茫茫, 不思量,自难忘。 陆游 红酥手,黄藤酒, 满城春色宫墙柳。 李清照 此情无计可消除, 才下眉头,却上心头。 辛弃疾 众里寻他千百度。 蓦然回首,那人却在,灯火阑珊处。 柳永 多情自古伤离别, 更那堪冷落清秋节! 范仲淹 羌管悠悠霜满地, 人不寐,将军白发征夫泪。 ...

2017/1/16
articleCard.readMore

素材设计

相关信息 素材、设计相关好用的网站 工具类

2023/4/11
articleCard.readMore

公开API

相关信息 免费公开的API网站,提供多种公共接口服务

2023/3/28
articleCard.readMore

谷歌发布多平台应用开发神器Project IDX!PaLM 2加持

Project IDX,PaLM 2加持,代码效率翻倍

2023/8/15
articleCard.readMore

终端究极美化iTerm2+Pure

提示 之前介绍了ZSH的安装和使用,这次把最终成果介绍一下,就是ZSH + iTerm2 + Pure 前置工作:安装ZSH,请参照之前的文章👉zsh安装

2023/3/25
articleCard.readMore

Unix/Linux 扫盲笔记

This document is not completed and will be updated anytime. Catagory Catagory Unix Unix-like Single UNIX Specification Apple iOS XNU Kernel Linux Linux Kernel GNU Project Androi...

2015/4/14
articleCard.readMore

更优雅强大的终端ZSH

MacOS 自带的 bash 作为几乎所有 Linux 发行版的默认终端,正常使用时没什么问题的 这里介绍一个更强大的终端神器 目录 背景介绍 在 unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算. shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键盘输入一种自己容易记忆识别的符号标识(shell 命令)...

2019/7/24
articleCard.readMore

使用Bing API提交网站URL

提示 最近在做SEO,因为链接没有做同步,需要清除之前旧站的链接,重新提交,让搜索引擎尽快索引,google search console的已经基本做差不多了 bing最近因为 New Bing 的原因也用的比较多,所以做了一些工作,很方便的是,它可以直接同步GSC的站点数据,不过就只是域数据,URL还是要自己提交 为了尽快索引,只提交sitemap是...

2023/3/24
articleCard.readMore

提交URL到搜索引擎(百度、Bing、Google)

相关信息 这是一个利用GitHub Actions自动触发的工作流进行解析更新的url并推送到搜索引擎的python脚本,除了之前介绍过的bing api之外,还增加了百度和Google的相关内容 关于GitHub Actions的介绍可以看这里👉GitHub Actions 关于GitHub Actions的配置可以看这里👉如何利用GitHub ...

2023/4/17
articleCard.readMore

初识Rust

Rust 发展历程 Rust 最早是 Mozilla 雇员 Graydon Hoare 的个人项目。从 2009 年开始,得到了 Mozilla 研究院的资助,2010 年项目对外公布,2010 ~ 2011 年间实现自举。自此以后,Rust 在部分重构 -> 崩溃的边缘反复横跳(历程极其艰辛),终于,在 2015 年 5 月 15 日发布 1.0 版...

2023/12/8
articleCard.readMore

前端-Q&A

浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。

2023/4/6
articleCard.readMore

Jenkins 远程触发构建踩坑记

CSRF crumbk,Jenkins,

2024/1/12
articleCard.readMore

Vercel deploy忽略指定分支

Vercel Ignored Build Step使用

2023/3/31
articleCard.readMore

vuepress-plugin-meting2

支持vuepress2.x的音乐播放器

2023/10/11
articleCard.readMore

GitHub Actions 使用介绍

GitHub Actions 是什么? Github Actions 是 Github 官方出的持续集成服务, 挺早之前就推出了。类似的还有如微软的DevOps、GitLab CI、Circle CI、Travis CI等等。大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 ...

2023/4/14
articleCard.readMore

Git SSH 密钥配置

在 GitLab 中配置 SSH 密钥 生成 SSH 密钥对 如果您还没有 SSH 密钥对,请首先生成一对密钥。在终端中执行以下命令: 这将生成一个 RSA 类型的密钥对,并将私钥保存在 ~/.ssh/id_rsa,公钥保存在 ~/.ssh/id_rsa.pub。 复制公钥内容 打开公钥文件 ~/.ssh/id_rsa.pub,将其中的内容复制到剪贴板...

2024/1/11
articleCard.readMore

浏览器的事件循环

浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程

2023/4/6
articleCard.readMore

CSS 属性计算过程

CSS 属性计算过程 你是否了解 CSS 的属性计算过程呢? 有的同学可能会讲,CSS属性我倒是知道,例如: 上面的 CSS 代码中,p 是元素选择器,color 就是其中的一个 CSS 属性。 但是要说 CSS 属性的计算过程,还真的不是很清楚。 没关系,通过此篇文章,能够让你彻底明白什么是 CSS 属性的计算流程。 image-2022081314...

2023/4/6
articleCard.readMore

你不知道的 CSS 之包含块

你不知道的 CSS 之包含块 一说到 CSS 盒模型,这是很多小伙伴耳熟能详的知识,甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块,有的小伙伴就懵圈了,什么是包含块?好像从来没有听说过这玩意儿。 image-20220814222004395 好吧,如果你对包含块的知识一无所知...

2023/4/6
articleCard.readMore

CommonJS,RequireJS,SeaJS 归纳笔记

Foreword Here comes Module! 随着网站逐渐变成「互联网应用程序」,嵌入网页的 JavaScript 代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试……我们不得不使用软件工程的方法,来管理网页的业务逻辑。 于是,JavaScript 的模块化成为迫切需求。在 ES6 Module 来临...

2015/5/25
articleCard.readMore

JavaScript ES6

JavaScript 有着很奇怪的命名史。 1995 年,它作为网景浏览器(Netscape Navigator)的一部分首次发布,网景给这个新语言命名为 LiveScript。一年后,为了搭上当时媒体热炒 Java 的顺风车,临时改名为了 JavaScript (当然,Java 和 JavaScript 的关系,就和雷锋和雷锋塔一样 —— 并没有什么...

2015/9/22
articleCard.readMore

通过UserAgent判断设备

通过 js 判断 moblie 端和 pc 端进而加载不同的 css 或者 js 废话不多说,上代码 需要注意的是字符转义和引号嵌套的问题

2017/2/7
articleCard.readMore

Vue常见优化手段

相关信息 永远不要过早优化,优化也有相应的代价 开发时间变长 开发成本增加 代码难以阅读 增加维护成本 何时优化,因地制宜,是一门艺术,尽量把优化的思想带入写代码的过程中 本文章的优化手段基于vue2

2023/5/17
articleCard.readMore

Vue2响应式原理解析

前言 首先要知道vue2 是2013年 基于 ES5开发出来的,我们常说的重渲染就是重新运行render函数 vue2 的响应式原理是利⽤ES5 的⼀个 API ,Object.defineProperty()对数据进⾏劫持结合发布订阅模式的⽅式来实现的。

2023/5/16
articleCard.readMore

一个 waline 评论系统bug引发的思考

提示 前言: Waline 评论系统这个 bug 有几个月了,现象就是回复完其他人的评论后,评论内容会保留在顶部输入框中,而且不会自动清空。具体见 👉GitHub issuse #2173 许久未见修复,正好我有空,就看看这个问题,接下来跟我一起分析一下这个问题 1. 定位问题 问题现象上边已经描述过了,我们先来定位一下问题。 1.1. 关键 关键在...

2024/5/23
articleCard.readMore

使用n命令管理node版本

鉴于使用 ReactNative 时,会需要不同的 node 版本,提供一种版本切换方式 使用 n command 来进行 node 版本管理 概念 n Node version manager 提供了一个更简单的 CLI,用于在 Node 版本之间进行安装和切换。它仅在 Linux 或 Mac 操作系统上受到支持。 安装 如果你已经安装某个版本的 N...

2020/4/3
articleCard.readMore

Dart 中的并发

Dart 通过 async-await、isolate 以及一些异步类型概念(例如 Future 和 Stream)支持了并发代码编程。本篇文章会对 async-await、Future 和 Stream 进行简略的介绍,而侧重点放在 isolate 的讲解上。 在应用中,所有的 Dart 代码都在 isolate 中运行。每一个 Dart 的 iso...

2023/4/26
articleCard.readMore

Flutter 基础大集合

Flutter初学,demo

2023/3/20
articleCard.readMore

Flutter 工作原理

Flutter 工作原理 本文档解释了使 Flutter API 正常工作的 Flutter 工具包内部工作原理。由于 Flutter widget 是以积极组合的形式构建的,所以使用 Flutter 构建的用户界面含有大量 widget。为了支撑这些负载,Flutter 使用了次线性算法来布局和构建 widget,这些数据结构使树形结构优化更加高效,...

2023/4/26
articleCard.readMore

ReactNative介绍

前置知识点介绍

2019/8/24
articleCard.readMore

ReactNative开发环境配置,ES6语法介绍

ReactNative开发环境配置,ES6语法介绍

2019/8/25
articleCard.readMore

ReactNative State(状态)

ReactNative State(状态)

2019/11/12
articleCard.readMore

WebViewJavascriptBridge

最近一直在忙,今天抽空写一下 H5 和 Native 的交互 一、选择 项目本身 webview 使用的是 WKWebview,其实 WKWebview 自带的 messageHandle 也可以满足此需求 JSContext,源自于 JavaScriptCore 框架中的东西,最后不使用此方案源于一下几点 但是其中繁杂的字符串使用,让我觉的可能会由于...

2018/8/5
articleCard.readMore

初探机器学习框架CoreML

CoreML 是 iOS 11 新推出的机器学习框架,是人工智能的核心内容,他可以在训练好的机器学习模型应用到 APP 中 所谓已训练模型 (trained model)指的是对一组训练数据应用了某个机器学习算法后,所生成的一组结果 Core ML 是领域特定 (domain-specific) 框架和功能的基础所在。Core ML 为 Vision ...

2017/11/21
articleCard.readMore

Test Three ways to call

LabelPhoneNum 使用 YYtext 实现 label 中的某些文字点击拨打电话---Github 真机测试结果 设备型号:iphone6s 系统:10.1.1 Xcode 版本:8.1 三种打电话的方法 方法一:网上说使用此方法,电话结束后进入联系人列表,测试结果为:正常,电话结束后返回程序 方法二:测试结果为先弹窗后拨打,呼叫结束后返回程...

2016/11/12
articleCard.readMore

神经网络模型训练

神经网络模型训练 经过之前 coreML 的介绍,自己训练一个模型 使用 xcodeplayground 训练简单神经网络模型 详细: 去年,苹果(Apple)推出了 Core ML:这是一种快速的方法,可以让你用尽可能少的代码将预先培训好的机器学习模型导入应用程序中!今年,有了 Create ML,苹果给了我们开发人员创建我们自己的机器学习模型直接进...

2019/7/24
articleCard.readMore

AFNetworking A memory leak

细心的你是否也发现了 AFN 的内存泄漏的问题了呢. 解决方法 将有问题的语句全部替换成单例后,再用 instruments 检查,再也没有出现泄漏的红叉了。O(∩_∩)O 哈哈~

2017/1/19
articleCard.readMore

WCDB漫谈

前言 移动端的数据库选型一直是一个难题,直到前段时间看到了 WeMobileDev(微信前端团队)放出了第三个开源组件-WCDB WCDB(WeChat DataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案 微信团队怎么说 基于 SQLCipher WCDB-iOS/Mac WCDB-Android 数据库损坏...

2018/1/18
articleCard.readMore

YYCache优秀的缓存设计

1.1. 前言 开发中总会用到各种缓存,但是各位有没有考虑过什么样的缓存才能被叫做优秀的缓存,或者说优秀的缓存应该具备哪些特质? 本文将结合 YYCache 的源码逐步带大家找到答案。 YYCache 是一个线程安全的高性能键值缓存(该项目是 YYKit 组件之一) YYCache 的代码逻辑清晰,注释详尽,加上自身不算太大的代码量使得其阅读非常简单,...

2019/4/27
articleCard.readMore

深入理解swift中闭包的捕捉语义

参考链接:losures Capture Semantics, Part 1: Catch them all! 概述 原文中先定义一个 Pokemon 类 延时执行的闭包 默认捕捉语法 在 swift 中默认的捕捉语法是:被捕获的变量在闭包被执行的时候才被定值1 . 我们能说它捕获到了这个变量的引用(或者 指针)。 这个闭包会在 demo1() 方法函...

2017/10/19
articleCard.readMore

NSError

前言 整理一下在iOS开发中NSError的错误代码 NSError NSError是系统错误信息类 初始化方法两个 属性 @property (readonly) NSInteger code;//错误代码 @property (readonly, copy) NSDictionary *userInfo;//错误信息 @property (read...

2018/5/31
articleCard.readMore

NSOperatioin

一. NSOperatioin 1.目的 开启线程 提供一些 GCD 不具备的功能 OC 框架,内部封装的是 GCD 2.区别 GCD 执行效率高于 NSOperation NSOperation 提供了一些 GCD 中不具备的功能(暂停/恢复/取消)---管理操作-NSOperation 的高级用法 3.NSOperation 本身是一个抽象类不可以...

2016/12/26
articleCard.readMore

减小iOS-App或者静态库体积

把打包好的.ipa 文件的后缀改为.zip 并解压。右键.appbundle 选择显示包内容。有些情况下,大一点的文件压缩后反而比小一点的文件压缩后的体积小,而我们真正关心的时候解压后的真实体积,所以一定要解压里面的资源文件,看解压后的 size。从 APP Store 下载的.ipa 文件要比自己本地打包的要大,因为 APP Store 对 ipa ...

2016/11/5
articleCard.readMore

WKWebView拦截URL

本文介绍使用 WKWebView 拦截 url 进行原生界面跳转 3.gif3.gif 使用代理方法 decidePolicyForNavigationAction 自定义方法传过来 url 进行判断,需要 html 元素本身就有跳转链接,才可以拦截,如没有,拦截不到。下文 app://xxx 链接为自定义链接

2017/5/27
articleCard.readMore

WKWebView使用及自适应高度

记录一下 iOS8 之后的新控件 WKWebView,用以替代之前的 UIWebView,因为需求是在 TableView 的 Cell 中放一个 WebView。就产生了滑动手势冲突,为了解决这个问题就需要让 webView 高度自适应 一、新特性 在性能、稳定性、功能方面有很大的提升,最明显的就是内存占用降低了很多。 允许 JavaScript 的...

2017/5/26
articleCard.readMore

Runloop

Runloop Runloop 是什么 Runloop 是事件接收和分发机制的一个实现。 Runloop 提供了一种异步执行代码的机制,不能并行执行任务。 在主队列中,Main RunLoop 直接配合任务的执行,负责处理 UI 事件、定时器以及其他内核相关事件。 ###Runloop 的主要目的 保证执行程序的线程不会被终止 ###什么时候使用 Ru...

2016/12/26
articleCard.readMore

OC 中的枚举类型

进入正题,今天介绍一下objective-c中的枚举 提要 首先要知道的是,枚举值 它是一个整形(int) 并且,它不参加内存的占用和释放 枚举定义变量即可直接使用,不用初始化 三种类型的枚举 enum 在iOS6之前一般我们采用C风格的enum关键字可以定义枚举类型 在iOS6之后引入两个宏来定义枚举实际上是将enum定义和typedef合二为一,并...

2017/1/6
articleCard.readMore

iOS Cookie的配置及使用

本文介绍 iOS 中 cookie 的使用包含 AFNetWorking 3.0 中的使用,常用于登录状态信息保存 什么是 Cookies? Cookie 是由服务器保存在用户浏览器(客户端)上的一块数据,它可以包含有关用户的信息,比如果登陆的状态,用户标识等。 Cookie 有什么作用? 主要用在以下三个方面: 会话状态管理(如用户登录状态、购物车)...

2017/7/5
articleCard.readMore

iOS程序启动原理(上)

本文介绍 iOS 程序中的 Info.plist,pch 文件,UIApplication,openURL 以及 UIWindow 的常用属性及方法; info.plist 常见设置 建立一个工程后,会在 Supporting files 文件夹下看到一个"工程名-Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除. 在旧...

2016/12/30
articleCard.readMore

iOS程序启动原理(下)

接上篇 下图是一个 iOS 程序启动的完整过程 图 main 函数中执行了一个 UIApplicationMain 这个函数. argc, argv:直接传递给 UIApplicationMain 进行相关处理即可; principalClassName:指定应用程序类名(app 象征),该类必须是 UIApplication(或子类).如果为 nil...

2016/12/31
articleCard.readMore

iOS 10.3 keychain 重大更新

转载自微信公众号《Mrpeak 杂货铺》 Paste_Image.pngPaste_Image.png iOS 10.3 还未正式发布,beta 版中一个关于 keychain 特性的小修改,就已经引起了广泛的关注。 改动如下 如果 App 被删除,之前存储于 keychain 中的数据也会一同被清除。 如果使用了 keychain group,只要当...

2017/3/14
articleCard.readMore

利用Runtime进行快速归档

使用 runtime 进行归档,对我们的最大遍历就是高效,快速。尤其适用于 model 中属性非常多的时候 Person.h person.m viewController.m printResult

2017/4/13
articleCard.readMore

Update Cocoapods 1.1.1

之前采用正常的 sudo gem install cocoapods更新 cocoapods 版本一直不成功,下面为和我遇到同样问题的兄弟们提供一个解决办法 先切换 gem 源 gem sources --remove https://rubygems.org/ gem source -a https://gems.ruby-china.org 查看是...

2016/11/9
articleCard.readMore

ijkPlayer 集成

参考地址 ijkplayer 是一款做视频直播的框架,基于 FFmpeg,支持 Android 和 iOS。这里介绍一下 iOS 中集成 ijkplayer 一、FFmpeg FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库 libavcodec 等。 libavformat:用于各种...

2017/8/30
articleCard.readMore

iOS - Image compression algorithm

由于最近公司在做图片相册选择上传的功能,对于图片的压缩算法这里我借鉴了 ochina 的 ios 端 App。其中有涉及到图片压缩的算法,这里贴出来留待后用; GACompressionPicHandle.h GACompressionPicHandle.m

2016/12/31
articleCard.readMore

iOS 配置https

昨天试验了 iOS 11 beta6 发现原有的 https 自建证书不能使用,可能是新版本要对 ATS 加强验证,之前一直说的要全面 https 估计在不久的将来就要来临,未接入的可能要像 Apple 说的不允许上架。所以把配置过程记录在此 要求 启用 ATS 必须符合以下标准,不满足条件的 HTTPS 证书,ATS 都会拒绝链接: 服务器所有的链接...

2017/8/16
articleCard.readMore

Cell的accessoryType属性标记单元格之后,出现的重用问题

今天项目里出现一个问题,就是做一个列表选择,然后点击导航栏的确定按钮返回上级界面,并把选择的 cell 数据传递到上级界面。再使用 accessoryType 属性标记单元格之后会出现重用问题。 解决办法 把 tableView 的 allowsMultipleSelection 属性设为了 YES; 在 didSelectRowAtIndexPath...

2017/2/13
articleCard.readMore

TableView性能优化

此子必成大器 本文介绍内容主要是 tableView 的性能优化之不使用 cornerRadius 设置图片圆角 有人问我为什么 tableView 滑动不流畅,甚至闪退,其实和 cell 中的圆角头像使用了 cornerRadius 有关 优化点 行高一定要缓存 不要动态创建子视图 所有子视图都要预先创建 如果不需要显示可以设置 hidden 所有的...

2016/12/26
articleCard.readMore

textfield限制输入字符

记录一下限制输入字符的判断。不仅局限于中文或英文 首先在 ViewDidLoad 中注册通知 下面是判断逻辑 由于需求有中文键盘下的字母数字输入,所以其中那部分判断如不需要可以去除

2017/5/21
articleCard.readMore

iOS timelineLogistics

timelineLogistics 是模仿淘宝物流信息时间轴界面的自定义 View 效果 MarkdownMarkdown 使用正则表达式判断字符是否为电话号码,用 YYLable 进行富文本电话拨打 使用 引入 Masonry,YYkit 库 使用了 MAsonry 进行布局 使用了 YYkit 中的 YYLable 进行富文本电话号码点击拨打电话 ...

2017/7/12
articleCard.readMore

优雅的实现TableViewCell单选

最近有些忙,好久没有写博客了。 分享一个 cell 做单选的思路 可行的思路 在 tableview 的控制器中设立一个变量记录选择的 indexPath,点击 cell 之后刷新表格来和现有 indexPath 对比 和第一种大同小异,做一个和 dataArr 同样的数组,记录 indexPath,循环确定当前 cell 是否为选中 cell 利用 ...

2018/1/12
articleCard.readMore