Compare commits
1 commit
main
...
fix/image-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df0bc8beab |
1 changed files with 24 additions and 4 deletions
28
index.js
28
index.js
|
|
@ -132,7 +132,12 @@ export default async function now() {
|
||||||
const imageId = `${item.id}-image`
|
const imageId = `${item.id}-image`
|
||||||
const videoId = `${item.id}-video`
|
const videoId = `${item.id}-video`
|
||||||
if (latest.image) {
|
if (latest.image) {
|
||||||
// html image replacement
|
// html image replacement - match by data-service attribute to allow repeated updates
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`(<img[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
|
||||||
|
`$1${latest.image}$2`,
|
||||||
|
)
|
||||||
|
// also handle initial placeholder case
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`(<img[^>]+src=["'])${imageId}(["'][^>]*>)`, 'gi'),
|
new RegExp(`(<img[^>]+src=["'])${imageId}(["'][^>]*>)`, 'gi'),
|
||||||
`$1${latest.image}$2`,
|
`$1${latest.image}$2`,
|
||||||
|
|
@ -143,7 +148,12 @@ export default async function now() {
|
||||||
`$1${latest.image}$2`,
|
`$1${latest.image}$2`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
// remove img tags if no image available (handle multi-line tags and any attribute order)
|
// remove img tags if no image available - match by data-service attribute
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`\\s*<img\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>\\s*`, 'gis'),
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
// also remove by placeholder src
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`\\s*<img\\b[^>]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'),
|
new RegExp(`\\s*<img\\b[^>]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'),
|
||||||
'',
|
'',
|
||||||
|
|
@ -156,13 +166,23 @@ export default async function now() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (latest.video) {
|
if (latest.video) {
|
||||||
// html video replacement
|
// html video replacement - match by data-service attribute to allow repeated updates
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`(<video[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
|
||||||
|
`$1${latest.video}$2`,
|
||||||
|
)
|
||||||
|
// also handle initial placeholder case
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`(<video[^>]+src=["'])${videoId}(["'][^>]*>)`, 'gi'),
|
new RegExp(`(<video[^>]+src=["'])${videoId}(["'][^>]*>)`, 'gi'),
|
||||||
`$1${latest.video}$2`,
|
`$1${latest.video}$2`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
// remove video tags if no video available
|
// remove video tags if no video available - match by data-service attribute
|
||||||
|
newNow = newNow.replace(
|
||||||
|
new RegExp(`\\s*<video\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
// also remove by placeholder src
|
||||||
newNow = newNow.replace(
|
newNow = newNow.replace(
|
||||||
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
||||||
'',
|
'',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue