Update Theme
Update astro theme pure to the latest version
Breaking Changes#
v4.0.3#
-
Change footer registration config to
links
. This will give you more flexibility to add more links or other information:src/site.config.ts export const theme: ThemeUserConfig = {footer: {links: [ // [!code highlight:12]{title: 'Moe ICP APTX4869',link: 'https://icp.gov.moe/?keyword=APTX4869',style: 'text-sm' // Uno/TW CSS class},{title: 'Site Policy',link: '/terms/list',pos: 2 // position set to 2 will be appended to copyright line}]}}
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 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
)src/pages/about/index.astro <ToolSectiontools={[{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 'astro-pure/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 transformedimport config from 'vertual:config' // [!code ++] -
Built-in astro config supported. package
astro-pure
will automatically config some integrations likeunocss/astro
,@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 'astro-pure/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 'astro-pure/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 WinMergename: Astro Theme Puredesc: 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 excludedef: 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 cached: \\\.verceld: \\\.astro
### Theme dev ###d: ^\\packages$d: ^\\preset$d: ^\\test$f: ^LICENSE$f: ^README\.md$f: ^README-zh-CN\.md$f: ^CODE_OF_CONDUCT\.md$
# Projectf: ^bun\.lockb$f: \.code-workspace$f: ^ignore\.md$
### Astro theme pure #### Staticd: ^\\public\\favicon$f: ^public\\links\.json$f: ^public\\images\\social-card\.png$
# Assetsf: ^src\\assets\\avatar\.png$d: ^\\src\\assets\\projects$d: ^\\src\\assets\\tools$
# Contentd: ^\\src\\content\\blog$d: ^\\src\\content\\docs$d: ^\\src\\pages\\docs$f: ^src\\pages\\terms\\.*\.md$
### Blog #### Your own files