From 5d2af49c4d8bffa152daf254876ba71649b6a327 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Jun 2023 05:47:05 +0000 Subject: [PATCH] change: update blog articles. --- v2/images/header-images/lua-ram.jpg | Bin 0 -> 17569 bytes v2/lua/openresty_org/templates.lua | 52 ++++++++++++++-------------- v2/templates/news-cn.tt2 | 6 ++-- v2/templates/news-en.tt2 | 6 ++-- v2/templates/posts-slide-cn.tt2 | 10 +++--- v2/templates/posts-slide-en.tt2 | 10 +++--- 6 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 v2/images/header-images/lua-ram.jpg diff --git a/v2/images/header-images/lua-ram.jpg b/v2/images/header-images/lua-ram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7627dd86c2efd06682e4114d9de3ecf5ba4c0c0 GIT binary patch literal 17569 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 aahT_W87|crE8X4)kX2=6Wp)H?&;Qviji%B7 literal 0 HcmV?d00001 diff --git a/v2/lua/openresty_org/templates.lua b/v2/lua/openresty_org/templates.lua index b52fbfe66..85a2de5c6 100644 --- a/v2/lua/openresty_org/templates.lua +++ b/v2/lua/openresty_org/templates.lua @@ -442,58 +442,58 @@ i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' Test::Nginx 0.30 ' -- line 13 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '\n \n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 使用 YSQL 语言对 Nginx 进程进行实时请求计数 ' +i = i + 1 output[i] = ' 使用 OpenResty XRay 的命令行工具定位泄漏的 Lua table ' -- line 16 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty Edge 中的请求 ID ' +i = i + 1 output[i] = ' 使用 YSQL 语言对 Nginx 进程进行实时请求计数 ' -- line 19 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 在 OpenResty Edge 中启用 hCaptcha 验证码图片 ' +i = i + 1 output[i] = ' OpenResty Edge 中的请求 ID ' -- line 22 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty Edge 中 SNI Proxy 类型的应用 ' +i = i + 1 output[i] = ' 在 OpenResty Edge 中启用 hCaptcha 验证码图片 ' -- line 25 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' 在 OpenResty Edge 中使用静态资源 ' +i = i + 1 output[i] = ' OpenResty Edge 中 SNI Proxy 类型的应用 ' -- line 28 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty Edge 内置的验证码 ' +i = i + 1 output[i] = ' 在 OpenResty Edge 中使用静态资源 ' -- line 31 "news-cn.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) i = i + 1 output[i] = '
\n
\n' @@ -522,58 +522,58 @@ i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' 
Test::Nginx 0.30 ' -- line 13 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is now released!' }}) -i = i + 1 output[i] = '\n \n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Real-Time Request Counting against Nginx Processes via YSQL ' +i = i + 1 output[i] = ' Pinpointing leaked Lua tables with OpenResty XRay\'s command-line tool ' -- line 16 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Request ID in OpenResty Edge ' +i = i + 1 output[i] = ' Real-Time Request Counting against Nginx Processes via YSQL ' -- line 19 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Enabling the anti-bot solution hCaptcha in OpenResty Edge ' +i = i + 1 output[i] = ' Request ID in OpenResty Edge ' -- line 22 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' Serve Static Resouces in OpenResty Edge ' +i = i + 1 output[i] = ' Enabling the anti-bot solution hCaptcha in OpenResty Edge ' -- line 25 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' SNI Proxy applications in OpenResty Edge ' +i = i + 1 output[i] = ' Serve Static Resouces in OpenResty Edge ' -- line 28 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) -i = i + 1 output[i] = '
\n
\n
\n
' +i = i + 1 output[i] = '
\n
\n
\n
' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New!' }}) i = i + 1 output[i] = ' ' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'New blog post' }}) -i = i + 1 output[i] = ' OpenResty Edge\'s Built-in Captcha ' +i = i + 1 output[i] = ' SNI Proxy applications in OpenResty Edge ' -- line 31 "news-en.tt2" i = i + 1 output[i] = stash_get(stash, {'c', 0, 'l', { 'is published.' }}) i = i + 1 output[i] = '
\n
\n' @@ -765,7 +765,7 @@ template_map['posts-slide-cn.tt2'] = function (context) i = i + 1 output[i] = '\n\n\n\n\n\n' +i = i + 1 output[i] = '\n
\n
\n
\n
\n
\n
\n
\n \n\n\n\n\n\n' return output end @@ -782,7 +782,7 @@ template_map['posts-slide-en.tt2'] = function (context) i = i + 1 output[i] = '\n\n\n\n\n\n' +i = i + 1 output[i] = '\n
\n
\n
\n
\n
\n
\n
\n \n\n\n\n\n\n' return output end diff --git a/v2/templates/news-cn.tt2 b/v2/templates/news-cn.tt2 index 567391085..4cf43542b 100644 --- a/v2/templates/news-cn.tt2 +++ b/v2/templates/news-cn.tt2 @@ -12,6 +12,9 @@
[% c.l("New!") %] Test::Nginx 0.30 [% c.l("is now released!") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] 使用 OpenResty XRay 的命令行工具定位泄漏的 Lua table [% c.l("is published.") %]
+
[% c.l("New!") %] [% c.l("New blog post") %] 使用 YSQL 语言对 Nginx 进程进行实时请求计数 [% c.l("is published.") %]
@@ -27,7 +30,4 @@
[% c.l("New!") %] [% c.l("New blog post") %] 在 OpenResty Edge 中使用静态资源 [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty Edge 内置的验证码 [% c.l("is published.") %]
-
\ No newline at end of file diff --git a/v2/templates/news-en.tt2 b/v2/templates/news-en.tt2 index 744adf38a..ede34fc81 100644 --- a/v2/templates/news-en.tt2 +++ b/v2/templates/news-en.tt2 @@ -12,6 +12,9 @@
[% c.l("New!") %] Test::Nginx 0.30 [% c.l("is now released!") %]
+
+
[% c.l("New!") %] [% c.l("New blog post") %] Pinpointing leaked Lua tables with OpenResty XRay's command-line tool [% c.l("is published.") %]
+
[% c.l("New!") %] [% c.l("New blog post") %] Real-Time Request Counting against Nginx Processes via YSQL [% c.l("is published.") %]
@@ -27,7 +30,4 @@
[% c.l("New!") %] [% c.l("New blog post") %] SNI Proxy applications in OpenResty Edge [% c.l("is published.") %]
-
-
[% c.l("New!") %] [% c.l("New blog post") %] OpenResty Edge's Built-in Captcha [% c.l("is published.") %]
-
\ No newline at end of file diff --git a/v2/templates/posts-slide-cn.tt2 b/v2/templates/posts-slide-cn.tt2 index 655b3e101..ee247918b 100644 --- a/v2/templates/posts-slide-cn.tt2 +++ b/v2/templates/posts-slide-cn.tt2 @@ -11,6 +11,11 @@