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:src/site.config.ts
tsexport const integ: IntegrationUserConfig = { links: { applyTip: [ { name: 'Name', val: theme.title }, { 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
)src/pages/about/index.astro
ts<ToolSection tools={[ { name: 'Arch Linux', description: 'Linux Distribution', href: 'https://archlinux.org/', iconPath: 'archlinux' icon: import('@/assets/icons/archlinux.svg?raw') } ]}, />
-
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:
tsimport { Button } from '@/components/user' import { Button } from 'astro-pure/user'
-
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:
tsimport { siteConfig } from '@/site-config' import config from '@/site-config' // Or if you want to use the config that is after processed or transformed import config from 'vertual:config'
-
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:
tsimport LinkPreview from '@/components/LinkPreview.astro' import { LinkPreview } from 'astro-pure/advanced' <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:
tsimport Button from '@/components/Button' import { Button } from 'astro-pure/user'
-
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
diff