Skip to content

Commit

Permalink
[WIP] fix: 30x (#1470)
Browse files Browse the repository at this point in the history
* fix: 30x links

* fix: 30x links

* fix: overwrite newcontent, was using only the last loop value

* chore: codestyle

* chore: adjusts semrush replace links module
  • Loading branch information
robsongajunior authored Jan 26, 2025
1 parent 84db36c commit 21187ad
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 27 deletions.
22 changes: 11 additions & 11 deletions backend/semrush-replace-url/index.i18n.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,32 @@ const PATH = {

async function processFile(filePath, redirects) {
try {
let newContent = await fs.readFile(filePath, 'utf-8');
const content = await fs.readFile(filePath, 'utf-8');

let newContent = content;
let fileModified = false;

for (const item of redirects) {
const url30x = isFromRoot(item.initialUrl) ? wwwazioncom() : removeHostAndLangFromUrl(item.initialUrl);
const url200 = removeHostAndLangFromUrl(item.destinationUrl);
const isRoot = isFromRoot(url30x);

const rgx = new RegExp(`'${url30x}'`, 'g');
const contentMatch = newContent.match(rgx);


const rgxSingleQuote = new RegExp(`'${url30x}'`, 'g');
const rgxDoubleQuote = new RegExp(`"${url30x}"`, 'g');

const contentMatchSingleQuote = newContent.match(rgxSingleQuote);

const rgxDoubleQuote = new RegExp(`"${url30x}"`, 'g');
const contentMatchDoubleQuote = newContent.match(rgxDoubleQuote);

if (!contentMatchSingleQuote || !contentMatchDoubleQuote) continue;
if (!contentMatchSingleQuote && !contentMatchDoubleQuote) continue;

counterFoundLinks++;
fileModified = true;

console.log({
isRoot,
file: filePath,
rgx: rgx.toString(),
rgxSingleQuote: rgxSingleQuote.toString(),
rgxDoubleQuote: rgxDoubleQuote.toString(),
url30x,
url200,
contentMatchCount: contentMatch.length,
Expand All @@ -46,14 +46,14 @@ async function processFile(filePath, redirects) {

if(contentMatchSingleQuote.length) {
newContent = newContent.replace(
isRoot ? /'https\:\/\/www\.azion\.com\/'/ : rgx,
isRoot ? /'https\:\/\/www\.azion\.com\/'/ : rgxSingleQuote,
`'${url200}'`
);
}

if(contentMatchDoubleQuote.length) {
newContent = newContent.replace(
isRoot ? /"https\:\/\/www\.azion\.com\/"/ : rgx,
isRoot ? /"https\:\/\/www\.azion\.com\/"/ : rgxDoubleQuote,
`'${url200}'`
);
}
Expand Down
35 changes: 21 additions & 14 deletions backend/semrush-replace-url/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import matter from 'gray-matter'
// import matter from 'gray-matter'
import { promises as fs } from 'fs';
import path from 'path'

Expand All @@ -17,38 +17,45 @@ function findReplace(content, oldUrl, newUrl) {

async function processFile(filePath, redirects) {
try {
let fileModified = false;

const content = await fs.readFile(filePath, 'utf-8');
const { data, content: markdownContent } = matter(content)
const utf8Content = Buffer.from(content).toString('utf-8')

let newContent = content;
let fileModified = false;

for (const item of redirects) {
const pagePermalink = removeHostFromUrl(item.page)
const url30x = isFromRoot(item.initialUrl) ? wwwazioncom() : removeHostFromUrl(item.initialUrl);
const url200 = removeHostFromUrl(item.destinationUrl)
const isRoot = isFromRoot(url30x)
const rgx = new RegExp(`\\(${url30x}\\)`, 'g')
const contentMatch = utf8Content.match(rgx)

if(!contentMatch) continue

const rgxMdLink = new RegExp(`\\(${url30x}\\)`, 'g')
const contentMatchMdLink = newContent.match(rgxMdLink)

const rgxMdLinkAnchor = new RegExp(`\\(${url30x}\\#`, 'g')
const contentMatchMdLinkAnchor = newContent.match(rgxMdLinkAnchor)

if (!contentMatchMdLink && !contentMatchMdLinkAnchor) continue;

counterFoundLinks++
fileModified = true

if(contentMatchMdLinkAnchor.length)
newContent = findReplace(newContent, isRoot ? /\\(https\:\/\/www\.azion\.com\/\\)/ : rgxMdLink, `(${url200})`)

const newContent = findReplace(utf8Content, isRoot ? /\\(https\:\/\/www\.azion\.com\/\\)/ : rgx, `(${url200})`)
if(contentMatchMdLinkAnchor.length)
newContent = findReplace(newContent, isRoot ? /\\(https\:\/\/www\.azion\.com\/\\)/ : rgxMdLinkAnchor, `(${url200}#`)

console.log(`{
isRoot: ${isRoot},
pagePermalink: ${pagePermalink},
file: ${filePath},
permalink: ${data.permalink},
rgx: ${rgx},
rgxMdLink: ${rgxMdLink},
contentMatchMdLink: ${contentMatchMdLink},
rgxMdLinkAnchor: ${rgxMdLinkAnchor},
contentMatchMdLinkAnchor: ${contentMatchMdLinkAnchor},
initialUrl: ${item.initialUrl},
url30x: ${url30x},
url200: ${url200},
contentMatch: ${contentMatch},
contentMatchCount: ${contentMatch.length},
processedCount: ${counterFoundLinks}
}`)

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/pt-br/pages/changelog/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -390,11 +390,11 @@ Corrigida a ocorrência de timeout ao gerenciar **Edge Functions** e **Edge Serv

**Marketplace**

- **Azion Marketplace** já está disponível para uso. O Marketplace é um catálogo digital que torna mais fácil encontrar, testar e implementar softwares que rodam no edge em qualquer lugar. Com uma ampla variedade de soluções, clientes Azion podem utilizá-lo para aprimorar, compor ou personalizar suas aplicações. O Marketplace também oferece meios para que fornecedores independentes de software (ISVs), desenvolvedores de software e comunidades abertas distribuam softwares que rodam no edge para uma audiência de milhares de compradores ativos. Saiba mais sobre o Marketplace [aqui](/pt-br/documentacao/produtos/marketplace).
- **Azion Marketplace** já está disponível para uso. O Marketplace é um catálogo digital que torna mais fácil encontrar, testar e implementar softwares que rodam no edge em qualquer lugar. Com uma ampla variedade de soluções, clientes Azion podem utilizá-lo para aprimorar, compor ou personalizar suas aplicações. O Marketplace também oferece meios para que fornecedores independentes de software (ISVs), desenvolvedores de software e comunidades abertas distribuam softwares que rodam no edge para uma audiência de milhares de compradores ativos. Saiba mais sobre o Marketplace [aqui](/pt-br/documentacao/produtos/marketplace/).

**Azion CLI**

- **Beta Release:** agora, é possível publicar suas aplicações Javascript, Next.js e Flareact na Azion. Além disso, clientes Azion podem gerenciar suas **Edge Functions** e **Edge Services** através de linhas de comando. Saiba mais sobre a Azion CLI [aqui](/pt-br/documentacao/produtos/cli).
- **Beta Release:** agora, é possível publicar suas aplicações Javascript, Next.js e Flareact na Azion. Além disso, clientes Azion podem gerenciar suas **Edge Functions** e **Edge Services** através de linhas de comando. Saiba mais sobre a Azion CLI [aqui](/pt-br/documentacao/produtos/azion-cli/visao-geral/).

------

Expand Down

0 comments on commit 21187ad

Please sign in to comment.