hexojs / hexo

A fast, simple & powerful blog framework, powered by Node.js.
https://hexo.io
MIT License
38.83k stars 4.75k forks source link

Image links incorrect in a mix of markdown and html. #5307

Closed chilly closed 8 months ago

chilly commented 9 months ago

Check List

Please check followings before submitting a new issue.

Expected behavior

Image links can be displayed normally in a mix of markdown and html.

Actual behavior

Can not be displayed.

How to reproduce?

<div align=center>
![flow2.png](/images/jdk9/flow/flow2.png)
** figure 1**
</div>

but it is work with below:

<div align=center>

![flow2.png](/images/jdk9/flow/flow2.png)

** figure 1**
</div>

Is the problem still there under "Safe mode"?

Environment & Settings

Node.js & npm version(node -v && npm -v)

v18.18.0

Your site _config.yml (Optional)

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: 帐前卒专栏
subtitle: 'code, software architect, articles and novels.<br/>代码,软件架构,博客和小说'
description: ''
keywords: 有意思的代码,有意思的架构, 有趣的小说, 好看的故事, code, software, articles, novel, architect
author: 帐前卒
language: en
timezone: ''

# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: http://chillyc.info
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
  trailing_index: false # Set to false to remove trailing 'index.html' from permalinks
  trailing_html: false # Set to false to remove trailing '.html' from permalinks

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: true # Transform title into titlecase
external_link:
  enable: true # Open external links in new tab
  field: site # Apply to the whole site
  exclude: ''
filename_case: 0
render_drafts: true
post_asset_folder: false
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: false
  tab_replace: ''
  wrap: true
  hljs: false
prismjs:
  enable: false
  preprocess: true
  line_number: true
  tab_replace: ''

# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ''
  per_page: 10
  order_by: -date

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime'

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: git@github.com:chilly/chilly.github.io.git
  branch: master

Hexo and Plugin version(npm ls --depth 0)

hexo-site@0.0.0 D:\blog
├── hexo-asset-link@2.2.2
├── hexo-deployer-git@4.0.0
├── hexo-generator-archive@2.0.0      
├── hexo-generator-baidu-sitemap@0.1.9
├── hexo-generator-category@2.0.0     
├── hexo-generator-index@3.0.0        
├── hexo-generator-sitemap@3.0.1      
├── hexo-generator-tag@2.0.0
├── hexo-renderer-ejs@2.0.0
├── hexo-renderer-marked@6.1.1
├── hexo-renderer-stylus@3.0.0
├── hexo-server@3.0.0
├── hexo-theme-landscape@1.0.0
├── hexo-theme-next@8.18.1
└── hexo@6.3.0

Your package.json package.json

{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "build": "hexo generate",
    "clean": "hexo clean",
    "deploy": "hexo deploy",
    "server": "hexo server"
  },
  "hexo": {
    "version": "6.3.0"
  },
  "dependencies": {
    "hexo": "^6.3.0",
    "hexo-asset-link": "^2.2.2",
    "hexo-deployer-git": "^4.0.0",
    "hexo-generator-archive": "^2.0.0",
    "hexo-generator-baidu-sitemap": "^0.1.9",
    "hexo-generator-category": "^2.0.0",
    "hexo-generator-index": "^3.0.0",
    "hexo-generator-sitemap": "^3.0.1",
    "hexo-generator-tag": "^2.0.0",
    "hexo-renderer-ejs": "^2.0.0",
    "hexo-renderer-marked": "^6.0.0",
    "hexo-renderer-stylus": "^3.0.0",
    "hexo-server": "^3.0.0",
    "hexo-theme-landscape": "^1.0.0",
    "hexo-theme-next": "^8.18.1"
  }
}

Others

D-Sketon commented 9 months ago

https://www.markdownguide.org/basic-syntax/#html

You can’t use Markdown syntax inside block-level HTML tags.

D-Sketon commented 9 months ago

please try

<span>

![flow2.png](/images/jdk9/flow/flow2.png)

** figure 1**
</span>
uiolee commented 8 months ago

but it is work with below:

<div align=center>

![flow2.png](/images/jdk9/flow/flow2.png)

** figure 1**
</div>

As you said, it works fine. I guess it's just a style issue. We know Markdown uses blank line to separate paragraph.

I tested on marked and markdown-it, they behave the same, but pandoc didn't. This is not an issue caused by hexo. I think it should be resolved by markdown-renderer.