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 videoId = `${item.id}-video`
|
||||
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(
|
||||
new RegExp(`(<img[^>]+src=["'])${imageId}(["'][^>]*>)`, 'gi'),
|
||||
`$1${latest.image}$2`,
|
||||
|
|
@ -143,7 +148,12 @@ export default async function now() {
|
|||
`$1${latest.image}$2`,
|
||||
)
|
||||
} 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(
|
||||
new RegExp(`\\s*<img\\b[^>]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'),
|
||||
'',
|
||||
|
|
@ -156,13 +166,23 @@ export default async function now() {
|
|||
}
|
||||
|
||||
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(
|
||||
new RegExp(`(<video[^>]+src=["'])${videoId}(["'][^>]*>)`, 'gi'),
|
||||
`$1${latest.video}$2`,
|
||||
)
|
||||
} 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(
|
||||
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
|
||||
'',
|
||||
|
|
|
|||
Loading…
Reference in a new issue