next-theme / hexo-theme-next

🎉 Elegant and powerful theme for Hexo.
https://theme-next.js.org
Other
2.41k stars 426 forks source link

exturl replaces "&" with "&" #364

Closed mans0n closed 3 years ago

mans0n commented 3 years ago

Please follow this Issue template to provide relevant information, such as source code repository, website URL and screenshots, which will help us investigate. 请按照此 Issue 模版提供相关信息,例如源码仓库、网站链接和屏幕截图,这将有助于我们进行调查。

Issue Checklist


Expected behavior

exturl should return the correct URL.

Actual behavior

When with hexo-renderer-markdown-it, exturl replaces & in the URL with &.

Screenshot_20210905_143509

When exturl is turned off, URL does not change.

Screenshot_20210905_144936

If hexo-renderer-markdown-it is not installed, the correct URL is showed.

Steps to reproduce the behavior

I ran this on Arch Linux.

sudo npm install -g hexo-cli
mkdir hexo && cd hexo
hexo init
git clone https://github.com/next-theme/hexo-theme-next themes/next
sed -i "s/theme: landscape/theme: next/" _config.yml
echo -e "\ntheme_config:\n  exturl: true" >> _config.yml
echo '[DuckDuckGo](https://duckduckgo.com/?q=markdown+syntax&t=hy&va=g)' >> source/_posts/hello-world.md
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-markdown-it --save
npm update
hexo server

I can upload my repo page, but it uses a different config. (but shows the same symptom)

Environment Information

Node.js and NPM Information

$ node -v && npm -v
v16.8.0
7.21.1

Package dependencies Information

$ npm ls --depth 0
hexo-site@0.0.0 /tmp/blog-new
├── hexo-generator-archive@1.0.0
├── hexo-generator-category@1.0.0
├── hexo-generator-index@2.0.0
├── hexo-generator-tag@1.0.0
├── hexo-renderer-ejs@1.0.0
├── hexo-renderer-markdown-it@5.0.0
├── hexo-renderer-stylus@2.0.1
├── hexo-server@2.0.0
├── hexo-theme-landscape@0.0.3
└── hexo@5.4.0

Hexo Configuration

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

# Site
title: Hexo
subtitle: ''
description: ''
keywords:
author: John Doe
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://example.com
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
  trailing_html: true # 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: false # 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: false
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: ''

theme_config:
  exturl: true

NexT Configuration

The changed part is in the Hexo config:

theme_config:
  exturl: true

Other Information

stevenjoezhang commented 3 years ago

Fixed in d1bf101cc101bff43a536df926bb66b549902cb0

mans0n commented 3 years ago

Works well now. Thanks for the fix!

github-actions[bot] commented 2 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. It is possible issue was solved or at least outdated. Feel free to open new for related bugs.