Update Theme
Update astro theme pure to the latest version
Breaking Changes#
v4.0.6#
- Changed the project card var name to
projectsinstead ofproject.
v4.0.5#
- Changed the UnoCSS preset from
Wind3toMini. Some features are removed, likegradient,animation,container, etc.
v4.0.3#
Changed footer registration config to
links. This will give you more flexibility to add more links or other information:src/site.config.ts
tsexport const theme: ThemeUserConfig = { footer: { links: [ { title: 'Moe ICP 114514', link: 'https://icp.gov.moe/?keyword=114514', 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#
Consider moving tool icons to a new path such as
src/assets/tools/; this may help users know which ones are relevant to tools.Changed links
applyTipto a 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 the env variable
BUN_LINK_PKG. Set this totrueto automatically refer to the packageastro-purein the pathpackages/pureinstead ofnode_modules/astro-pure. This may help users develop the theme or change code for themselves (not recommended for production).Changed the CSS framework to UnoCSS. This will affect
unocss.config.tsand typography class name settings.
v4.0.1-beta#
Changed 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 changes 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 'virtual:config'Built-in astro config supported. package
astro-purewill automatically config some integrations likeunocss/astro,@astrojs/mdx,@astrojs/sitemap, also with some rehypePlugins and remarkPlugins.Changed 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).
Changed some
BaseHeadtags config tosrc/site.config.ts.
v3.1.4#
Move config
siteConfig.content.typographyProsetointegrationConfig.typography.classinsrc/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
Substatsconfig to related pagesrc/pages/about/index.astro.Changed Github Card component to
GithubCardinsrc/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-alertplugin to componentAside. Check User Components #Aside to know how to migrate.
v3.1.2 (pre-release)#
- Move some configuration items like
telegram,walineServerURLto new structure insrc/site.config.ts.
v3.1.1#
- Move the internal parts in the
src/utilstosrc/plugins. - Modify the configuration file
astro.config.tstoastro.config.mjs. - Update ESLint to latest version and migrate configuration file
.eslintrc.jstoeslint.config.mjs. - Modify the
prettier.config.jstoprettier.config.mjs.
v3.1.0 (pre-release)#
- Changed common content markdown formatter
coverImagetoheroImage. You need to modify all your markdown files to replacecoverImagewithheroImage.
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 the git histories are not the same, you might need to merge the theme repository into your project manually.
A practical way for Windows users is to use the tool WinMerge ↗.
A filter list 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 filesdiff