2023年8月

一半以上的 Arm 服务器部署在亚马逊

之前我们 报道 过,据一份报告估计,全球近 10% 的服务器采用了 Arm 处理器,其中 40% 位于中国。但令人吃惊的是,超过全球总数一半的 Arm 服务器 CPU 都部署在 AWS 的数据中心。亚马逊目前使用的是它在 2018 年推出 Graviton 系列芯片。一般认为,Arm 内核可能更节能,但性能却低于 x86 芯片。不过,据亚马逊的客户称,在与同类 x86 芯片性能相同的情况下,Arm 芯片成本降低了 20% 至 70%。

消息来源:The Register
老王点评:这么说在服务器上 Arm 还是颇有好处的。

谷歌推出基于浏览器的全新人工智能开发环境

谷歌今天宣布推出 “Project IDX”,提供基于浏览器的人工智能开发环境,用于构建全栈网络和多平台应用程序。它目前支持 Angular、Flutter、Next.js、React 和 Vue 等框架,以及 JavaScript 和 Dart 等语言,还将支持 Python、Go 和其他语言。它基于 VSCode,集成了基于谷歌 PaLM 2 的编程任务基础模型 Codey,因而支持智能代码自动补全、类似 ChatGPT/Bard 的聊天机器人。

消息来源:Tech Crunch
老王点评:看起来谷歌也不甘于在 AI 编程方面落后啊。

谷歌信息应用将默认使用 RCS 短信

谷歌今天宣布将默认使用 RCS 短信,使谷歌信息应用更加安全。RCS 是一种旨在取代短信的协议,与苹果 iMessage 的高级功能类似。谷歌表示,通过这次更新,用户在谷歌信息中的所有对话,无论是一对一还是群聊,现在都将保持私密。自 2019 年向美国安卓用户推出 RCS 以来,谷歌一直在努力向苹果施压,希望苹果在自己的信息服务 iMessage 中采用这项技术。去年,谷歌甚至专门推出了一个网站敦促苹果,但苹果无动于衷。

消息来源:Tech Crunch
老王点评:RCS 或许挺好,奈何苹果就是不上钩。

根据个人需求,每个人使用计算机的方式都不同。你可能是一位设计师,需要在计算机上安装各种设计软件。或者你可能是一位游戏玩家,所以需要一个支持你喜欢的游戏的操作系统。有时候我们没有足够的时间来准备一个支持我们需求的操作系统。Fedora Linux 实验室版本就是为了满足这个需求而存在的。Fedora 实验室是由 Fedora 社区成员精心策划和维护的用于特定目的的软件和内容的集合。本文将对 Fedora Linux 实验室版本进行更详细的介绍。

你可以在我之前的文章《Fedora Linux 的各种版本》中找到所有 Fedora Linux 变种的概述。

Fedora 天文学版

Fedora 天文学 Astronomy 版适用于业余和专业天文学家。你可以通过这个 Fedora Linux 版本进行各种与天文学相关的活动。Fedora 天文学版中包含的一些应用程序有 Astropy、Kstars、Celestia、Virtualplanet、Astromatic 等。Fedora 天文学版默认使用 KDE Plasma 作为其桌面环境。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 天文学版

Fedora 计算神经科学版

Fedora 计算神经科学 Comp Neuro 版是由 NeuroFedora 团队创建的,旨在支持计算神经科学。Fedora Linux 中包含的一些应用程序有 Neuron、Brian、Genesis、SciPy、Moose、NeuroML、NetPyNE 等。这些应用程序可以支持你的工作,包括建模软件、分析工具和常规生产工具。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 计算神经科学版

Fedora 设计套件版

如果你是一位设计师,那么这个 Fedora Linux 版本就适合你。你将获得一个完整的 Fedora Linux,其中包含各种设计工具,如 GIMP、Inkscape、Blender、Darktable、Krita、Pitivi 等。使用这些工具,你可以创建各种创意作品,如网页设计、海报、传单、3D 模型、视频和动画。这个 Fedora 设计套件 Design Suite 版是由设计师为设计师创建的。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 设计套件版

Fedora 游戏版

玩游戏很有趣,你可以使用 Fedora 游戏 Games 版来尽情享受。这个 Fedora Linux 版本提供了各种游戏类型,如第一人称射击游戏、实时和回合制策略游戏以及益智游戏。Fedora Linux 上的一些游戏包括 Extreme Tux Racer、Wesnoth、Hedgewars、Colossus、BZFlag、Freeciv、Warzone 2011、MegaGlest 和 Fillets。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 游戏版

Fedora 音乐版

几乎每个人都喜欢音乐。你们中的一些人可能是音乐家或音乐制作人。或者你可能是喜欢玩音频的人。那么这个 Fedora 音乐 Jam 版就是为你而设计的,它带有 JACK、ALSA、PulseAudio 和各种音频和音乐支持。Fedora 音乐版中的一些默认应用程序包括 Ardor、Qtractor、Hydrogen、MuseScore、TuxGuitar、SooperLooper 等。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 音乐版

Fedora Python 教室版

如果你是一位 Python 开发者、教师或讲师,Fedora Python 教室 Python Classroom 版将使你与 Python 相关的工作更加容易。Fedora Python 教室版预先安装了各种重要的内容。Fedora Linux 上的一些默认应用程序包括 IPython、Jupyter Notebook、git、tox、Python 3 IDLE 等。Fedora Python 教室版有三个变种,你可以以 GNOME 图形界面方式运行,也可以使用 Vagrant 或 Docker 容器。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora Python 教室版

Fedora 安全实验室版

Fedora 安全实验室 Security Lab 版是为安全测试人员和开发人员打造的 Fedora Linux。Xfce 是默认的桌面环境,并进行了定制以满足安全审计、取证、系统救援等需求。这个 Fedora Linux 提供了一些默认安装的应用程序,以支持你在安全领域的工作,如 Etherape、Ettercap、Medusa、Nmap、Scap-workbench、Skipfish、Sqlninja、Wireshark 和 Yersinia。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 安全实验室版

Fedora 机器人套件版

Fedora 机器人套件 Robotics Suite 版是一款带有各种自由开源机器人软件包的 Fedora Linux。这个 Fedora Linux 版本适用于与机器人相关的专业人士或爱好者。一些默认应用程序包括 Player、SimSpark、Fawkes、Gazebo、Stage、PCL、Arduino、Eclipse 和 MRPT。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 机器人套件版

Fedora 科学版

Fedora 科学 Scientific 版将使你在科学和数值工作方面更加便利。这个 Fedora Linux 提供了各种有用的开源科学和数值工具。默认桌面环境为 KDE Plasma,配备了各种应用程序,包括 IPython、Pandas、Gnuplot、Matplotlib、R、Maxima、LaTeX、GNU Octave 和 GNU Scientific Library 等,这些应用程序将支持你的工作。

有关所包含的应用程序的详细信息和下载链接,请访问此链接:

Fedora 科学版

结论

你有许多 Fedora Linux 版本可供选择,以适应你的工作或爱好。Fedora 实验室使这一切变得轻松。你不需要从头开始进行许多配置,因为 Fedora 实验室将为你完成。你可以在 https://labs.fedoraproject.org/ 找到有关 Fedora 实验室的完整信息。

(题图:MJ/6ac3eb72-eeb5-45dc-af53-91b54d320638)


via: https://fedoramagazine.org/fedora-linux-editions-part-3-labs/

作者:Arman Arisman 选题:lkxed 译者:ChatGPT 校对:wxy

厌倦了窗口混乱和手动调整? GNOME 正在集体讨论一个自动化且用户友好的窗口管理系统。这是你需要了解的情况。

窗口管理是桌面计算的一个重要方面,几十年来一直是人们着迷和探索的话题。然而,尽管进行了多次尝试,仍然没有人能够破解完美的窗口管理解决方案的密码。GNOME 开发人员现在开始致力于彻底改变窗口管理,旨在提高生产力和用户体验。

GNOME 开发人员 Tobias Bernard 发表了一篇 详细的文章,介绍了开发人员如何考虑为未来创新 GNOME 桌面。

传统窗口系统的挑战

传统的窗口系统为我们提供了很好的服务,允许应用生成可以手动移动和调整大小的矩形窗口。然而,随着窗口数量和尺寸的增加,问题开始出现。重叠的窗口很快就会变得一团糟,使得在不隐藏其他应用的情况下访问特定应序变得困难。最大化窗口可能会遮挡桌面上的其他所有内容,从而导致混乱和效率低下。

多年来,各种操作系统引入了工作区、任务栏和切换器等解决方法来处理这些问题。然而,窗口管理的核心问题仍未解决。特别是对于儿童和老年人等计算机新手来说,手动排列窗口可能会很麻烦且乏味。

引入平铺窗口管理器

平铺窗口管理器提供了防止窗口重叠的替代解决方案。虽然它们在某些情况下运行良好,但也有其局限性。平铺窗口可能会导致效率低下,因为应用通常是针对特定尺寸和纵横比设计的。此外,这些窗口管理器缺乏关于窗口内容和上下文的知识,需要额外的手动调整,并违背了简化工作流程的目的。更不用说记住很多键盘快捷键了。

GNOME 当前的平铺功能

GNOME 已经在 GNOME 3 系列中尝试了基本的平铺功能。然而,现有的实现有一些局限性。这是一个手动过程,仅支持两个窗口,缺乏复杂布局的可扩展性,并且不会将平铺窗口分组到窗口栈中。

窗口管理的新愿景

该团队提出了一种新的窗口管理方法,重点关注符合用户期望和需求的自动化系统。他们的概念涉及窗口的三种潜在布局状态:马赛克、边缘平铺和浮动。

马赛克模式将成为默认行为,根据用户偏好和可用屏幕空间智能定位窗口并调整窗口大小。随着新窗口的打开,现有窗口将进行调整以适应新来者。如果窗口不适合当前布局,它将被放置在自己的工作区中。当屏幕接近布满时,窗口将自动平铺。

用户还可以通过将窗口拖动到现有窗口或空白区域上来手动平铺窗口。该系统提供了灵活性和便利性,使其更容易高效地执行多任务。

维护用户友好的浮动窗口

虽然平铺提供了多种好处,但 GNOME 开发人员明白,总会有用户更喜欢手动定位窗口的情况。因此,经典的浮动行为仍然适用于这些特定情况,但随着新的马赛克系统的引入,它可能不太常见。

利用窗口元数据增强性能

GNOME 旨在优化平铺体验,以从窗口收集有关其内容的更多信息。这包括窗口的最大所需尺寸以及应用最佳运行的理想尺寸范围等详细信息。通过使用这些元数据,系统可以定制窗口布局以满足用户的需求,从而提高整体可用性。

展望未来

虽然 GNOME 开发人员对这个新的窗口管理方向感到兴奋,但他们也承认与这种新颖方法相关的风险。他们计划进行用户研究以验证他们的假设并完善交互。尽管没有具体的实施时间表,但该项目可能会跨越多个开发周期,并成为 GNOME 46 或更高版本的一部分。

截至发布此内容时,还没有草案合并请求,你可以参与其中并提供反馈。

参考自 Tobias 的博客

(题图:MJ/04285b09-a074-4f6f-a32e-ae5af06f1d1f)


via: https://debugpointnews.com/gnome-window-management-proposal/

作者:arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

谷歌可能重新考虑在 Chrome 中支持 JPEG-XL

谷歌去年表示,由于没有足够的 兴趣 和其他因素,他们决定取消 Chrome/Chromium 浏览器对 JPEG-XL 图像的支持。但苹果公司今年决定在其 Safari 网页浏览器中支持 JPEG-XL,社区建议谷歌重新考虑对 JPEG-XL 的支持。今天,对该提议的追踪有了更新,谷歌要求“相关开发团队的人员对此进行调查,以便进一步更新。”

消息来源:Phoronix
老王点评:我们将拭目以待,看看 JPEG-XL 支持是否会重返 Chrome 浏览器。

Window Maker 发布了三年来的首次更新

Window Maker 0.96 于本周末发布,它是一款受 NeXTSTEP 图形用户界面启发的 X11 窗口管理器。这是该窗口管理器自 2020 年以来的首次更新,并没有什么特别大的功能更新。

消息来源:Phoronix
老王点评:很多人都没用过这个窗口管理器,之所以提到它只是因为我个人曾经特别喜欢这个窗口管理器。Window Maker 在当时看起来很漂亮,甚至就是现在看起来虽然不够炫,但是依然够精细。可惜就是这样逐渐式微了。

间谍软件制造商 LetMeSpy 被黑后关闭

总部位于波兰的间谍软件 LetMeSpy 在 6 月份的 数据泄露 事件后被迫关闭了服务器。LetMeSpy 发布公告称将永久关闭间谍软件服务,并将于 8 月底停止运营。LetMeSpy 是一款安卓手机监控应用程序,它被特意设计成隐藏在受害者的手机主屏幕上,使应用程序难以被发现和删除。

消息来源:Tech Crunch
老王点评:这就像江湖,偷东西的遇到了打劫的。?

GitLab 是一个开源平台,提供了强大且功能丰富的解决方案,用于管理仓库、问题、CI/CD 管道等。如果你是 Ubuntu 22.04 或 20.04 用户,并且想要设置自己的 GitLab 实例来简化你的 DevOps 工作流程,那么你来对地方了。

本分步指南将引导你完成 Ubuntu 22.04 或 20.04 上 GitLab 的安装过程。GItlab 提供企业版(Gitlab EE)和社区版(Gitlab CE)。在这篇文章中,我们将介绍社区版。

先决条件:

  • 运行 Ubuntu 22.04 或 20.04 且具有 SSH 访问权限的虚拟或专用服务器。
  • 静态主机名(gitlab.linuxtechi.net
  • 具有管理员权限的 Sudo 用户
  • 2GB 内存或更多
  • 2 个或更多 vCPU
  • 互联网连接

1、更新系统包

让我们首先更新软件包列表并将任何现有软件包升级到最新版本。

$ sudo apt update
$ sudo apt upgrade -y

应用更新后重新启动系统。

$ sudo reboot

2、安装依赖项

GitLab 需要一些依赖项才能正常运行。使用以下命令安装它们:

$ sudo apt install -y curl openssh-server ca-certificates postfix

在 postfix 安装过程中,会出现一个配置窗口。选择 “Internet Site”并输入服务器的主机名作为邮件服务器名称。这将允许 GitLab 发送电子邮件通知。

选择 “Internet Site”,然后选择 “OK”。

检查系统的主机名并选择 “OK”。

3、添加 GitLab Apt 存储库

现在,我们将添加 GitLab 仓库,运行以下 curl 命令。它将自动检测你的 Ubuntu 版本并相应地设置仓库。

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

4、安装 Gitlab

运行以下命令在你的 ubuntu 系统上自动安装和配置 gitlab-ce,将服务器的主机名替换为你的设置,

$ sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce

上述命令成功执行后,我们将得到如下输出。

上面的输出确认 GitLab 已成功安装。gitlab web 界面的用户名是 root,密码存储在 /etc/gitlab/initial_root_password

注意:如果你的 ubuntu 系统上启用了操作系统防火墙,那请允许 80 和 443 端口。

$ sudo ufw allow http
$ sudo ufw allow https

5、访问 GitLab Web 界面

安装并配置 GitLab 后,打开 Web 浏览器并输入服务器的 IP 地址或主机名。

http://<Server-IP-Address-or-Hostname>
  • 用户名:root
  • 密码:从 /etc/gitlab/initial_root_password 获取密码

点击“ 登录 Sign in ”。

很好,上面确认我们已经成功登录 Gitlab Web 界面。

目前我们的 GitLab 服务器运行在 http(80)协议上,如果你想为你的 GitLab 启用 https,请参考以下步骤。

6、为 GitLab Web 界面设置 HTTPS

为提高安全性,可使用自签名证书或 Let's Encrypt 为 GitLab 实例配置 HTTPS。Let's Encrypt 只适用于互联网上有 A 记录的公有域。但在本例中,我们使用的是私有域,因此将使用自签名证书来确保 GitLab 的安全。

现在,让我们创建以下文件夹并使用 openssl 命令生成自签名证书:

$ sudo mkdir -p /etc/gitlab/ssl
$ sudo chmod 755 /etc/gitlab/ssl

使用以下 openssl 命令生成私钥:

$ sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key 2048

输入密码并记住它。

使用以下命令创建 CSR:

$ sudo openssl req -new -key /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

从密钥中删除密码串,依次执行以下命令:

$ sudo cp -v /etc/gitlab/ssl/gitlab.linuxtechi.net.{key,original}
$ sudo openssl rsa -in /etc/gitlab/ssl/gitlab.linuxtechi.net.original -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.original

创建证书文件:

$ sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.linuxtechi.net.csr -signkey /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

使用下面的 rm 命令删除 CSR 文件:

$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

设置密钥和证书文件的权限:

$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

Gitlab 服务器的所有重要配置均由文件 /etc/gitlab/gitlab.rb 控制,因此编辑此文件,搜索 external_url 并添加 https://gitlab.linuxtechi.net

$ sudo vi /etc/gitlab/gitlab.rb
----------------------------------------------------------
external_url 'https://gitlab.linuxtechi.net'
----------------------------------------------------------

保存并退出文件,使用下面的命令重新配置 gitlab,以便其 Web 界面可以使用 HTTPS。

$ sudo gitlab-ctl reconfigure

成功执行上述命令后,你的 GitLab 界面应该可以通过 HTTPS 协议访问,在我的例子中,URL 为:https://gitlab.linuxtechi.net/

当你第一次访问它时,它会说你的连接不安全,点击“接受风险并继续”。

结论

恭喜! 你已在 Ubuntu 22.04 或 20.04 系统上成功安装 GitLab。随着 GitLab 的启动和运行,你现在可以创建仓库,与你的团队协作,并通过 GitLab 令人印象深刻的功能增强你的开发工作流程。享受无缝版本控制、持续集成等,一切尽在你的掌控之中!

(题图:MJ/c6a3e27e-fe58-4184-b133-9e9c67224316)


via: https://www.linuxtechi.com/how-to-install-gitlab-on-ubuntu/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

文档对于开源软件项目至关重要。我们询问了我们的贡献者,他们在文档编写中最喜欢使用的标记语言是什么。

文档很重要,而易读的文档更重要。在开源软件世界中,文档可以告诉我们如何使用或贡献一个应用程序,就像 游戏 的规则书一样。

有很多不同类型的文档:

  • 教程
  • 操作指南
  • 参考指南
  • 软件架构
  • 产品手册

我们向一些贡献者询问了他们的技术文档工作流程,他们更喜欢使用哪种标记语言,以及为什么会选择其中一种。以下是他们的回答。

AsciiDoc

过去几年中,Markdown 一直是我的标准语言。但最近我决定尝试一下 AsciiDoc 。这种语法并不难,我在 Linux 桌面上的 Gedit 就支持它。我计划暂时坚持使用它一段时间。

—- Alan Formy-Duval

就低语法标记语言而言,我更喜欢 AsciiDoc。我喜欢它,是因为其转换过程一致且可预测,没有令人困惑的“口味”变化 。我还喜欢将它输出为 Docbook,这是一种我信任其持久性和灵活性的标记语言,它有大量的语法标记。

但“正确”的选择往往取决于项目已经在使用什么。如果项目使用某种口味的 Markdown,我就不会使用 AsciiDoc。嗯,公平地说,我可能会使用 AsciiDoc,然后使用 Pandoc 将其转换为草莓味的 Markdown。

当然,我认为 Markdown 有其应用的时间和场合。我发现它比 AsciiDoc 更易读。AsciiDoc 中的链接是这样:

http://example.com [Example website]

而 Markdown 中的链接是这样:

[Example.com](http://example.com)

Markdown 的语法直观,以读取 HTML 的方式呈现信息,大多数人都以相同的方式解析此类数据(“Example website……哦,那是蓝色的文本,我将悬停一下以查看它指向哪里……它指向 example.com”)。

换句话说,当我的受众是人类读者时,我通常会选择 Markdown,因为它的语法简单,但仍具有足够的语法可以进行转换,因此仍然是一种可接受的存储格式。

虽然像 AsciiDoc 这样简洁的语法看起来更令人吃惊,但如果我的受众是要解析文件的计算机,我会选择 AsciiDoc。

—- Seth Kenlon

reStructuredText

我是 代码即文档 的忠实支持者,它将开发者工具融入到内容流程中。这样可以更轻松地进行高效的审查和协作,尤其是如果工程师是贡献者。

作为一个标记语言的行家,我在 O'Reilly 写了整整一本关于 AsciiDoc 的书,还使用 Markdown 在各个平台上发布了上千篇博文。但目前,我转向使用 reStructuredText,并维护一些相关工具。

—— Lorna Mitchell

不得不提到 reStructuredText。在我大量使用 Python 编程时,它已成为我的首选。它也是 Python 长期以来用于文档源码和代码注释的标准。

与 Markdown 相比,我喜欢它不会受到非标准规范的困扰。话虽如此,当我处理更复杂的文档时,确实还得使用许多 Sphinx 的功能和扩展。

—— Jeremy Stanley

HTML

能不用标记语言我就不用。

不过,我发现 HTML 比其他标记语言更易于使用。

—— Rikard Grossman-Nielsen

对我来说,撰写文档有各种方式。这取决于文档将要放在何处,是作为网站的一部分、软件包的一部分,还是可下载的内容。

对于 Scribus 来说,其内部文档采用 HTML 格式,因为需要使用内部浏览器来访问。对于网站,可能需要使用维基语言。而对于可下载的内容,可以创建 PDF 或 EPUB 格式。

我倾向于在纯文本编辑器中编写文档。我可能会使用 XHTML,以便将这些文件导入到像 Sigil 这样的 EPUB 制作工具中。当然,对于创建 PDF,我会使用 Scribus,虽然我可能会导入用文本编辑器创建的文本文件。Scribus 具有包含图形并精确控制其布局的优势。

Markdown 从未吸引我,我也从未尝试过 AsciiDoc。

—— Greg Pittman

我目前正在使用 HTML 撰写大量文档,所以我要为 HTML 代言一下。你可以使用 HTML 创建网站或创建文档。请注意,这两者实际上并不相同 —— 当你创建网站时,大多数设计师关注的是呈现。但是当你编写文档时,技术作者应该专注于内容。

当我用 HTML 撰写文档时,我遵循 HTML 定义的标签和元素,并不关心它的外观。换句话说,我用“未经样式化”的 HTML 编写文档。稍后我总是可以添加样式表。因此,如果我需要强调文本的某一部分(比如警告),或者给单词或短语加重语气,我可能会使用 <strong><em> 标签,像这样:

<p><strong>警告:激光!</strong>不要用你剩下的那只眼睛看向激光。</p>

或者在段落中提供一个简短的代码示例,我可能会这样写:

<p><code>puts</code> 函数将一些文本输出给用户。</p>

要在文档中格式化一段代码块,我使用 <pre><code>..</code></pre>,如下所示:

void
print_array(int *array, int size)
{
  for (int i = 0; i < size; i++) {
    printf("array[%d] = %d\n", i, array[i]);
  }
}

HTML 的好处在于你可以立即在任何 Web 浏览器中查看结果。而你使用未经样式化的 HTML 编写的任何文档都可以通过添加样式表来美化。

—— Jim Hall

意料之外的答案:LibreOffice

在上世纪 80/90 年代,当我在 System V Unix、SunOS,最后是 Solaris 上工作时,我使用了 nrofftroff 和最终的 groffmm 宏。你可以了解一下使用 groff_mm 的 MM(前提是你已经安装了它们)。

MM 并不是真正的标记语言,但它感觉像是。它是一套非常语义化的 troff 和 groff 宏。它具备标记语言用户所期望的大多数功能,如标题、有序列表等等。

我的第一台 Unix 机器上也安装了 “Writers' Workbench”,这对我们组织中需要撰写技术报告但没有特别进行“引人入胜”写作的许多人来说是一个福音。它的一些工具已经进入了 BSD 或 Linux 环境,比如样式(style)、用词检查(diction)和外观(look)。

我还记得早在上世纪 90 年代初期,Solaris 附带了一个标准通用标记语言(SGML)工具,也可能是我们购买了这个工具。我曾经使用它一段时间,这可能解释了为什么我不介意手动输入 HTML。

我使用过很多 Markdown,我应该说是“哪种 Markdown”,因为它有无数种风格和功能级别。正因为如此,我并不是 Markdown 的铁杆粉丝。我想,如果我有很多 Markdown 要处理,我可能会尝试使用一些 CommonMark 的实现,因为它实际上有一个正式的定义。例如,Pandoc 支持 CommonMark(以及其他几种)。

我开始使用 AsciiDoc,相比于 Markdown,我更喜欢 AsciiDoc,因为它避免了“你使用的是哪个版本”的讨论,并提供了许多有用的功能。过去,让我对 AsciiDoc 感到困扰的是,有一段时间似乎需要安装 Asciidoctor,这是一个我不太想安装的 Ruby 工具链。但是现在,在我所用的 Linux 发行版中,有了更多的实现方式。奇怪的是,Pandoc 可以输出 AsciiDoc,但不支持读取 AsciiDoc。

那些嘲笑我不愿意为 AsciiDoc 安装 Ruby 工具链,却乐意安装 Pandoc 的 Haskell 工具链的人……我听到你们的笑声了。

我羞愧地承认,我现在主要使用 LibreOffice。

——Chris Hermansen

现在就编写文档吧!

文档编写可以通过多种不同的途径来完成,正如这里的作者们展示的那样。对于代码的使用方法,特别是在开源领域,进行文档编写非常重要。这确保其他人能够正确地使用和贡献你的代码。同时,告诉未来的用户你的代码提供了什么也是明智之举。

(题图:MJ/9543e029-322d-479f-b609-442abc036b73)


via: https://opensource.com/article/22/12/markup-languages-documentation

作者:Opensource.com 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出