Skip to content

feat: replace some vue pages with md files #137

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 22 commits into
base: website-nuxt
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f278ddc
feat: infer content path from route path in CommonContent
SkyBird233 Aug 2, 2025
da17e64
chore: relnotes to md files
SkyBird233 Aug 2, 2025
32d80ad
fix: asahi relnote path
SkyBird233 Aug 2, 2025
d6c07f3
feat: replace about page with md file
SkyBird233 Aug 3, 2025
3e51056
chore: copy ProseH2
SkyBird233 Aug 3, 2025
dca8275
feat: replace afterglow index with md file
SkyBird233 Aug 3, 2025
5c1a887
feat: implement anchor scrolling and highlighting for async components
SkyBird233 Aug 3, 2025
b4cd20c
feat: replace afterglow pages with md files
SkyBird233 Aug 4, 2025
33caf4f
feat: replace AOSC OS pages with md files
SkyBird233 Aug 4, 2025
d684088
feat: replace contact page with md file
SkyBird233 Aug 4, 2025
e379342
fix: exclude unnecessary files in content config
SkyBird233 Aug 4, 2025
3042c47
feat: update styles in crowdsourcing page
SkyBird233 Aug 4, 2025
7dd0975
feat: replace events page with md file
SkyBird233 Aug 4, 2025
643d136
feat: replace guidelines page with md file
SkyBird233 Aug 4, 2025
5b930b0
feat: replace internship page with md file
SkyBird233 Aug 4, 2025
58149e4
feat: replace l10n page with md file
SkyBird233 Aug 4, 2025
d03360f
feat: replace liblol page with md file
SkyBird233 Aug 4, 2025
3d275eb
feat: replace oma page with md file
SkyBird233 Aug 4, 2025
a0641b1
fix: strange anchor behavior in Chrome
SkyBird233 Aug 11, 2025
831757d
chore: 清理过时的组件
HouLiXieBuRou Aug 11, 2025
0e8d1e0
chore: 清理无用代码
HouLiXieBuRou Aug 14, 2025
0b84738
chore: 统一 md 生成页面路由入口并清理无用文件
HouLiXieBuRou Aug 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions app/router.options.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import type { RouterConfig } from '@nuxt/schema';
import { useScrollStore } from '~/stores/scroll';

export default <RouterConfig>{
scrollBehavior(to, _from, savedPosition) {
if (savedPosition) return savedPosition;
else if (to.hash) useScrollStore().scrollOrSet(to.hash);
}
};
3 changes: 2 additions & 1 deletion assets/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ $common-margin: 24px;
margin-bottom: $common-margin;

h2 {
margin-bottom: $common-margin;
margin-block: $common-margin;
}

h2,
Expand Down Expand Up @@ -70,6 +70,7 @@ $common-margin: 24px;

table {
max-width: calc(100% - 2 * $common-margin);
table-layout: auto;
}
}

Expand Down
49 changes: 36 additions & 13 deletions components/CommonContent.vue
Original file line number Diff line number Diff line change
@@ -1,28 +1,51 @@
<script lang="ts" setup>
const props = defineProps<{ category: string }>();
import { useScrollStore } from '~/stores/scroll';

const props = defineProps<{ path?: string }>();

const route = useRoute();
const { locale } = useI18n();
const scrollStore = useScrollStore();
const contentRef = useTemplateRef('contentRef');


const contentPath = computed(() => {
if (props.path) return props.path;

const { data: page } = await useAsyncData(
computed(() => `${locale.value}:${props.category}:${route.params.slug}`),
() => {
return queryCollection(locale.value)
.path(`/${props.category}/${route.params.slug}`)
.first();
}
// For `prefix_except_default`
const prefix = `/${locale.value}`;
return route.path.startsWith(prefix)
? route.path.substring(prefix.length) || '/'
: route.path;
});

const { data: page, error } = await useAsyncData(
computed(() => `${locale.value}:${contentPath.value}`),
() => queryCollection(locale.value).path(contentPath.value).first()
);
useHead({ title: page.value?.title });

if (error.value || !page.value) {
throw createError({
statusCode: 404,
statusMessage: 'Page Not Found',
fatal: true
});
}

watch(contentRef, () => {
if (route.hash) scrollStore.scrollAndClear();
});
</script>

<template>
<article v-if="page">
<category-second
v-if="page?.body.value[0][0] !== 'h2'"
:id="page?.title"
:title="page?.title"
:right-text="page?.date.substring(0, 10)"
v-if="page.body.value[0][0] !== 'h2'"
:id="page.title"
:title="page.title"
:right-text="page.date?.substring(0, 10)"
:title-url="`${route.path}#${page.title}`" />
<ContentRenderer :value="page" class="heti" />
<ContentRenderer ref="contentRef" :value="page" class="heti" />
</article>
</template>
38 changes: 0 additions & 38 deletions components/app/AppSupport.vue

This file was deleted.

5 changes: 1 addition & 4 deletions components/bar/BarRight.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ const localLink = linkValue.local;
const distroList = [
{
img: '/distros/aosc-os.svg',
links: [
useHIndex(localLink.download, 0),
useHIndex(localLink.aoscRelnote, 0)
],
links: [useHIndex(localLink.download, 0), localLink.aoscRelnote],
description: textValue.description1,
title: textValue.title3
},
Expand Down
20 changes: 20 additions & 0 deletions components/content/ProseH2.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<template>
<h2 :id="props.id">
<AppLink
v-if="props.id && generate"
:to="`${$route.path}#${props.id}`"
>
<slot mdc-unwrap="p" />
</AppLink>
<slot v-else />
</h2>
</template>

<script setup lang="ts">
import { computed, useRuntimeConfig } from '#imports'

const props = defineProps<{ id?: string }>()

const { headings } = useRuntimeConfig().public.mdc
const generate = computed(() => props.id && ((typeof headings?.anchorLinks === 'boolean' && headings?.anchorLinks === true) || (typeof headings?.anchorLinks === 'object' && headings?.anchorLinks?.h2)))
</script>
6 changes: 4 additions & 2 deletions content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,17 @@ export default defineContentConfig({
zh: defineCollection({
source: {
include: 'zh/**',
prefix: '/' // prefixes handled by @nuxtjs/i18n
prefix: '/', // prefixes handled by @nuxtjs/i18n
exclude: ['**/_*']
},
type: 'page',
schema: newsSchema
}),
en: defineCollection({
source: {
include: 'en/**',
prefix: '/'
prefix: '/',
exclude: ['**/_*']
},
type: 'page',
schema: newsSchema
Expand Down
49 changes: 49 additions & 0 deletions content/en/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: 关于社区
---

安同开源社区(Anthon Open Source Community,简称 AOSC)成立于 2011 年末,是一个由计算机爱好者志愿组织工作,主要活动于线上的开源社区。我社的主要工作目标分为技术、文化和社会三个方面。

技术方面,社区的主要项目为安同 OS(英译:AOSC OS),是一款以“简明可靠”为设计及维护目标的 Linux 发行版。安同 OS 主要面向有一定 Linux 使用经验的用户,针对个人桌面设备优化体验,致力于为用户提供开箱即用、系统管理简洁和可靠的工作环境。在维护安同 OS 的同时,我们亦通过开发小熊猫包管理 (oma) 、libLoL 龙架构新旧世界兼容层等周边软件项目,进一步提升系统的使用体验。作为一个贡献者主要为汉语母语用户的社区,我们也通过包括字体搭配及渲染调优、直接参与上游软件本地化工作和软件选择等手段,改善简中环境的使用体验。

文化方面,我社命名“安同”,本意“安于同学合作”。安:我社致力于树立和维护以人为本的核心文化,在推进日常工作的同时,不忘维系社区贡献者和成员之间的良好人际关系 —— 在我社,我们先是朋友,才是同事。同:技术的积累源自于实践,而技术的发展离不开共享和传授 —— 不论新老,相互学习方才是进步之道。安于同学合作,才不至于孤立无缘,故步自封。

社会方面,我社重视围绕开源软件生态协作共进及技能共享。作为一个成员成分丰富的社区,我们自 2011 年成立起便以不同方式参与社会工作,协同各地区 Linux 爱好者、校园社团和企业单位宣扬开源软件的广泛应用。自 2015 年起,社区每年暑期均会举办名为 AOSCC 的年度聚会,邀请包括社区贡献者、成员、校园社团、企业和个人参与,在向外界宣传社区工作的同时,为爱好者和行业代表提供了分享技术技巧和行业知识及动向的平台。近年来,我社每年还以导师身份安排贡献者参与国内外的开源项目推进活动,如中国科学院软件研究所的“开源之夏”活动,带领国内外高校学生锻炼应用和研发能力、积累专业经验。

## 主要项目

我社主要项目围绕 AOSC OS 和 Afterglow 两大系统项目设计开发,亦有维护一系列周边应用和实用工具,以及各类开发维护用工具。

### 安同 OS

安同 OS(英译:AOSC OS)是一款以“简明可靠”为设计及维护目标的 Linux 发行版。本系统主要面向有一定 Linux 使用经验的用户,针对个人桌面设备优化体验,致力于为用户提供开箱即用和简便可靠的工作环境。

AOSC OS 支持众多处理器架构,包括 x86_64、AArch64、基于 MIPS 的龙芯 3 和龙架构(LoongArch 新世界),以及如 RISC-V 等新兴架构;在提供架构支持的同时,我们也有针对不同设备类型进行体验测试和调优,致力于在各种不同架构和类型的设备上实现开箱即用的体验。

### 星霞 OS

星霞 OS(英译:Afterglow)基于安同 OS 开发,通过精简特性、配置调优和软件精选等手段,致力于为各类老旧设备提供持续软件和技术更新,通过持续维护良好体验和性能让老旧设备焕发新生、让用户们“重拾旧爱”。

### 小熊猫包管理

小熊猫包管理 (oma,全称 oh-my-ailurus) 是一款注重操作简化、可靠性和使用效率的软件包管理前端。该包管理前端在操作和功能上兼容 APT,并基于这一基础引入历史查阅、操作撤销、文件检索等功能。

### libLoL

libLoL (LoongArch on LoongArch) 旧世界 ABI 常用于为龙芯官方的 Loongnix 参考发行和统信 UOS 设计的商业软件,如腾讯 QQ、金山 WPS for Linux 和龙芯浏览器等。由于这些应用程序尚未移植到新世界 ABI 上,本运行时旨在为新世界发行版用户提供运行上述应用程序的便利。

### Ciel

Ciel 是一款容器化软件包构建环境管理工具,用于标准化软件包构建环境,以保障特性均等和内容可靠。

### Autobuild4

Autobuild4 是一款半自动软件包构建工具,可根据定义文件和脚本等自动下载、构建和生成软件包,亦支持利用构建和命令模板简化构建脚本编写流程。

## 历史沿革

安同开源社区 (AOSC) 的最初形态是由白铭骢与他的两位同学于 2011 年末创立的安同开发团队 (Anthon.Dev)。开发团队因组织管理不善于一年内夭折,而后于 2012 年末重组为开源社区并延续至今。

我社主要项目安同 OS 最初名为“AnthonOS”,是一款基于现已弃用的 SUSE Studio 制作的 openSUSE 衍生发行版。一年后转而基于 Debian 衍生开发,着重于 CJK(中文、日文及韩文)支持并基于 KDE 4 设计了一套定制用户界面。2014 年,得益于原东方之心 Linux 开发者 Icenowy Zheng 的帮助,社区以 Anthon \:Next 为名立项,将安同 OS 转为独立构建。 安同 OS 独立后更名为 AOSC OS,即我社目前维护的通用 Linux 发行版。随后几年,维护者们不断扩充 AOSC OS 的软件源体积,并引入了多架构支持。如今,得力于开发者们的持续贡献,AOSC OS 的软硬件支持仍在不断扩充壮大,并围绕其发起了众多支持性项目。

我社的年度聚会 AOSCC 始于 2014 年的暑期贡献者聚会,后于 2015 年开始组织暑期线下聚会,在各企业和院校社团赞助的场地举办。每年聚会均邀请开源软件业界相关人士参与和分享经验,免费开放给各地社区好友参与。
32 changes: 32 additions & 0 deletions content/en/afterglow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: 星霞 OS
---

星霞 OS(英译:Afterglow)基于安同 OS 开发,通过精简特性、配置调优和软件精选等手段,致力于为各类老旧设备提供持续软件和技术更新,通过持续维护良好体验和性能让老旧设备焕发新生、让用户们“重拾旧爱”。

[下载系统](/download#afterglow-download) | [系统特性](/afterglow#features) | [发行注记](/afterglow/relnote) | [系统配置需求](/afterglow/requirements) | [支持文档](/afterglow#support)

![Afterglow screenshot](/afterglow/afterglow.jpg)

::h2{id="features"}
系统特性
::

### 因地制宜

星霞 OS 支持已经年近三旬的设备,如搭载 486 处理器的 PC 机和 m68k 处理器麦金塔 (Macintosh) 电脑,也支持较新的设备,如来自 2010 年前后搭载的 Intel 凌动 (Atom) 上网本或 PowerPC 处理器的 Mac。通过配置调优和特性分级等手段,星霞 OS 可确保各类老旧设备上良好的使用体验。

### 持续维护

让老旧设备继续发光发热的基本前提就是持续且完整的软件支持,星霞 OS 提供持续的特性更新和安全漏洞修复,让您放心地在各类场景继续使用老旧设备。

### 面向未来

我们计划在未来数年继续维护星霞 OS 并周期性地发布更新包,让您安心地继续享用和把玩曾经给您带来过快乐和承载早年记忆的电脑。

::h2{id="support"}
支持文档
::

- [系统配置需求表](/afterglow/requirements)
- [架构支持规格表](/afterglow/isa)
28 changes: 28 additions & 0 deletions content/en/afterglow/isa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: 星霞 OS 架构支持规格表
---

星霞 OS 支持多种处理器架构,本表介绍支持的各类处理器架构及相应的微架构指令集扩展支持、软件包架构名及编译器目标名等信息。

::div{id="afterglow-isa-table"}
| 处理器架构名 | 微架构指令集扩展支持要求 | 软件包架构名 | 编译器目标名 |
| ----------------------------- | ------------------------ | ------------ | ------------------------------ |
| Alpha | 无 | `alpha` | `alpha-aosc-linux-gnu` |
| ARMv4 | 无 | `armv4` | `arm-aosc-linux-gnueabi` |
| ARMv6(硬浮点) | Thumb-2, NEON | `armv6hf` | `arm-aosc-linux-gnueabihf` |
| ARMv7(硬浮点) | Thumb-2, NEON | `armv7hf` | `arm-aosc-linux-gnueabihf` |
| 基于 MIPS 的龙芯二号处理器\* | LoongMMI | `loongson2f` | `mips64el-aosc-linux-gnuabi64` |
| Intel 80486 或更新 | 无 | `i486` | `i486-aosc-linux-gnu` |
| Motorola 68000 系列处理器\*\* | 无 | `m68k` | `m68k-aosc-linux-gnu` |
| PowerPC(32 位,大端序) | 无 | `powerpc` | `powerpc-aosc-linux-gnu` |
| PowerPC(64 位,大端序) | AltiVec | `ppc64` | `powerpc64-aosc-linux-gnu` |
| SPARC(64 位) | SPARC V9, VIS 1.0 | `sparc64` | `sparc64-aosc-linux-gnu` |
::

\*: 该架构移植仅支持龙芯 2F 处理器,不支持 2E 及之前的处理器型号

\*\*: 该架构移植仅支持 68020 及更新的,带有内存管理单元 (MMU) 的处理器型号

## 支持文档

- [星霞 OS 系统需求配置表](/afterglow/requirements#afterglow-requirements-table)
5 changes: 5 additions & 0 deletions content/en/afterglow/relnote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: 发行注记
---

(敬请期待)
25 changes: 25 additions & 0 deletions content/en/afterglow/requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: 星霞 OS 系统配置需求表
---

星霞 OS 是一款面向老旧设备、功能受限的操作系统,预装软件和基础管理特性等对设备处理器、显卡、存储和互联网连接等均有一定的需求。根据我们的测试,我们总结出了如下以使用体验良好为基本基准的系统配置需求表。

::div{id="afterglow-requirements-table"}
| 硬件组件 | 配置需求 |
| -------- | -------------------------------------------------- |
| 处理器 | 任意与星霞 OS 兼容的处理器 |
| 内存 | 至少 64MiB |
| 显卡 | 任意支持显示信号输出的显卡或帧缓冲卡、抑或串口终端 |
| 存储 | 至少 1GiB(基本版)或 3GiB(桌面版) |
| 网络连接 | 国际互联网连接 |
::

## 补充说明

- 关于星霞 OS 兼容的处理器,详请见[星霞 OS 架构支持规格表](/afterglow/isa)
- 对于带有图形界面的桌面版来说,需要至少支持 SVGA 分辨率和色深(800×600 分辨率,16 位色深 / 65535 色)
- 关于存储需求的建议是基于系统安装后还有足够空间进行日常工作和系统更新设定的;如果您的设备内存较大,安装程序创建的默认交换空间(虚拟内存文件)尺寸也会随之变大,因此您在分区时也要进行相关的考虑

## 支持文档

- [星霞 OS 架构支持规格表](/afterglow/isa#afterglow-isa-table)
41 changes: 41 additions & 0 deletions content/en/aosc-os.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: 安同 OS
---

安同 OS(英译:AOSC OS)是一款以“简明可靠”为设计及维护目标的 Linux 发行版。本系统主要面向有一定 Linux 使用经验的用户,针对个人桌面设备优化体验,致力于为用户提供开箱即用和简便可靠的工作环境。

[下载系统](/download#aosc-os-download) | [系统特性](/aosc-os#features) | [发行注记](/aosc-os/relnote) | [系统配置需求](/aosc-os/requirements) | [支持文档](/aosc-os#support)

![AOSC OS screenshot](/aosc-os/aosc-os.webp)

::h2{id="features"}
系统特性
::

### 高效工作

以开箱即用作为主要设计目标,安同 OS 是您日常工作的得力助手。从文字办公到服务器运维,摄影后期到 3D 建模,课堂笔记到文档翻译,我们的系统助您快速部署、高效工作、尽情创作。

### 易于管理

从安装到系统更新,从组件管理到日常维护,安同 OS 内建许多易于使用的管理工具,助您轻松管理、舒心使用。例如安同 OS 内建的小熊猫包管理 (oma) ,其简明且人性化的界面让系统管理尽可能低风险、低耗时、高可靠。

### 高兼容性

我们相信,操作系统是应用程序和生产力的舞台。除软件源中提供的经官方验证的软件外,安同 OS 还支持如意玲珑、Flatpak、Snap 和 AppImage 等跨发行版生态,扩充软件支持的范畴;此外,Spiral 兼容性标记可提供 Debian 及 Ubuntu 软件包兼容性。

### 随处可用

基于灵活性极高的 Linux 内核构建,安同 OS 支持台式机、笔记本、单片机和服务器等多种类型、基于各类主流处理器架构的设备,且为各类使用场景调优,助您发挥各类设备的潜力。

### 如影随形

::h2{id="support"}
支持文档
::

我社一向以友好负责的支持工作著称。尊重用户的时间与精力是我们的工作准则,社区也是信息共享的强大后盾——在各社区聊天群组,我们时刻准备着为您排忧解难。

- [安同 OS 适合我吗?](/aosc-os/right-for-me)
- [系统配置需求表](/aosc-os/requirements)
- [架构支持规格表](/aosc-os/isa)
16 changes: 16 additions & 0 deletions content/en/aosc-os/asahi/relnote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: 发行注记:2025 年 6 月
---

安同 OS (Apple Silicon) 是面向基于 Apple 芯片的 Mac 设备发布的系统版本,本次更新包含如下主要内容。

## 组件更新

本次发行属常规更新,包含截至 2024 年 2 月 15 日的所有系统更新;其中,Linux 内核版本更新至 6.12.12 版本,带有最新 Asahi Linux 补丁集。

## 已知问题

当前发行包含如下已知问题,我们将尽快修复:

- 由于先前缺少测试设备且并未引入相关支持组件,MacBook Air (M1, 2020) 的音箱暂未正确驱动
- OpenGL 图形加速暂不可用,我们正在整理 Asahi Linux 补丁集
Loading