Update Theme
Update astro theme pure to the latest version
Breaking Changes
v4.1.2
- Move
src/pages/terms/list.astrotosrc/pages/terms/index.astro.
v4.1.1
- Move shiki custom transformers to
src/plugins/shiki-custom-transformers.ts. - Move shiki official transformers to
src/plugins/shiki-offical/transformers.ts. - Improve config file with new order and comments. This will affect both
src/site.config.tsandastro.config.ts(09dc44d ↗). - Add collapse code function with default (7281077 ↗, 22b8847 ↗)
- Refactor palette and border radius styles. If you use color like
--primary-foreground, update it to--card.
v4.1.0
- Moved custom css file
global.csstosrc/assets/styles/global.css. - Changed the font loader to Astro built-in font loader ↗.
v4.0.9
- Support caching links avatar (Arthals)
v4.0.8
No breaking changes.
v4.0.7
-
Changed the
Buttoncomponent to usevariantprop instead ofstyleprop. This can help you add custom styles without conflicts. You should change your code like this:
jsx<Button title='My Button' style='primary' /> <Button title='My Button' variant='primary' /> -
Changed the
ExternalLinksconfiguration insrc/site.config.ts. You should change your config like this:src/site.config.ts
tsexport const theme: ThemeUserConfig = { content: { externalLinksContent: ' ↗', /** External links configuration */ externalLinks: { content: ' ↗', /** Properties for the external links element */ properties: { style: 'user-select:none' } }, /** Blog page size for pagination (optional) */ blogPageSize: 8, externalLinkArrow: true // show external link arrow } }- Changed the Waline files out of package! Checkout Commit 5119694 ↗ to see how to change your existing pages & layouts. Don’t forget to copy files at
src/components/walineto your project.
- Changed the Waline files out of package! Checkout Commit 5119694 ↗ to see how to change your existing pages & layouts. Don’t forget to copy files at
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