Update Theme
Update astro theme pure to the latest version
Breaking Changes
v4.0.2-beta
-
Considering move tools icons to new path like
src/assets/tools/
, this may help user know which ones are relevant to tools. -
Change links
applyTip
to custom array style:export const integ: IntegrationUserConfig = { links: { applyTip: [ { name: 'Name', val: theme.title }, // [!code highlight:4] { name: 'Desc', val: theme.description || 'Null' }, { name: 'Link', val: 'https://astro-pure.js.org/' }, { name: 'Avatar', val: 'https://astro-pure.js.org/favicon/favicon.ico' } // You can also add more fields ] } }
-
Add env
BUN_LINK_PKG
, set this totrue
where automatically refer the packageastro-pure
in pathpackages/pure
instead ofnode_modules/astro-pure
. This may help user to develop the theme or change code for them (may not be recommended for production). -
Change CSS framework to UnoCSS. Will affect
unocss.config.ts
& typography classname setting.
v4.0.1-beta
-
Change svg deliver import to custom import svg element. This will affect using component for
ToolSelection
. You should change:(Optional) Move icons to new path like
src/assets/icons/
Then change using code (default at
src/pages/about/index.astro
)<ToolSection tools={[ { name: 'Arch Linux', description: 'Linux Distribution', href: 'https://archlinux.org/', iconPath: 'archlinux' // [!code --] icon: import('@/assets/icons/archlinux.svg?raw') // [!code ++] } ]}, />
-
This change import a new component
Svg
. See User Components #Svg Loader for usage.
v4.0.0-alpha
-
Move all components, types and utils that are reused to new npm packages
astro-pure
. Affected components are included in . Import method is also changed:import { Button } from '@/components/user' // [!code --] import { Button } from '../../../theme/components/user' // [!code ++]
-
New format config file
src/site.config.ts
. There will be zod schema to validate the config file, and use of config will be changed to:import { siteConfig } from '@/site-config' // [!code --] import config from '@/site-config' // [!code ++] // Or if you want to use the config that is after processed or transformed import config from 'vertual:config' // [!code ++]
-
Built-in astro config supported. package
astro-pure
will automatically config some integrations like@astrojs/tailwind
,@astrojs/mdx
,@astrojs/sitemap
, also with some rehypePlugins and remarkPlugins. -
Change search engine to pagefind ↗, mainly because Astro v5 will not allow getting collection data directly from client (that is core working mode of Fuse.js search engine).
-
Change some
BaseHead
tags config tosrc/site.config.ts
.
v3.1.4
-
Move config
siteConfig.content.typographyProse
tointegrationConfig.typography.class
insrc/site.config.ts
. -
Move advanced components to
src/components/advanced
. Affected components are included in Advanced Components. Import method is also changed:import LinkPreview from '@/components/LinkPreview.astro' // [!code --] import { LinkPreview } from '../../../theme/components/advanced' // [!code ++] <LinkPreview href='https://www.cloudflare.com/' />
-
Move
Substats
config to related pagesrc/pages/about/index.astro
. -
Change Github Card component to
GithubCard
insrc/components/advanced
. See Advanced Components #Github Card ↗ for usage. -
Move Links Logbook to
src/site.config.ts
. See Friend Links #Basic Configurations.
v3.1.3
-
Move user components to
src/components/user
. Affected components are included in User Components. Import method is also changed:import Button from '@/components/Button' // [!code --] import { Button } from '../../../theme/components/user' // [!code ++]
-
Replace
remark-github-blockquote-alert
plugin to componentAside
. Check User Components #Aside to know how to migrate.
v3.1.2 (pre-release)
- Move some configuration items like
telegram
,walineServelURL
to new structure insrc/site.config.ts
.
v3.1.1
- Move the internal parts in the
src/utils
tosrc/plugins
. - Modify the configuration file
astro.config.ts
toastro.config.mjs
. - Update ESLint to latest version and migrate configuration file
.eslintrc.js
toeslint.config.mjs
. - Modify the
prettier.config.js
toprettier.config.mjs
.
v3.1.0 (pre-release)
- Change common content markdown formatter
coverImage
toheroImage
. You need to modify all your markdown files to replacecoverImage
withheroImage
.
v3.0.9
A stable version.
Pending update…
Update Method
Rebase
If you create a new project using fork, you can just rebase the theme repository to the latest version.
Merge Manually
As there’s not the same git history, you might need to merge the theme repository to your project manually.
A soluable way for Windows user is using tool WinMerge ↗.
A filter list here may be helpful:
## This is a directory/file filter template for WinMerge
name: Astro Theme Pure
desc: Diff for Blog v.s. Astro Theme Pure
## Select if filter is inclusive or exclusive
## Inclusive (loose) filter lets through all items not matching rules
## Exclusive filter lets through only items that match to rule
## include or exclude
def: include
## Filters for filenames begin with f:
## Filters for directories begin with d:
## To exclude some of the files that match the f: pattern, specify f!:
## To exclude some of the folders that match the d: pattern, specify d!:
## (Inline comments begin with " ##" and extend to the end of the line)
### Front-end files ###
d: \\\.git$
d: \\node_modules$
# Astro cache
d: \\\.vercel
d: \\\.astro
### Theme dev ###
d: ^\\packages$
d: ^\\preset$
d: ^\\test$
f: ^LICENSE$
f: ^README\.md$
f: ^README-zh-CN\.md$
f: ^CODE_OF_CONDUCT\.md$
# Project
f: ^bun\.lockb$
f: \.code-workspace$
f: ^ignore\.md$
### Astro theme pure ###
# Static
d: ^\\public\\favicon$
f: ^public\\links\.json$
f: ^public\\images\\social-card\.png$
# Assets
f: ^src\\assets\\avatar\.png$
d: ^\\src\\assets\\projects$
d: ^\\src\\assets\\tools$
# Content
d: ^\\src\\content\\blog$
d: ^\\src\\content\\docs$
d: ^\\src\\pages\\docs$
f: ^src\\pages\\terms\\.*\.md$
### Blog ###
# Your own files