markdown解析器正确性测试

@Ta 2020-08-15发布,2020-08-15修改 1391点击
被下沉

备注:按照这个教程安装的版本目前是450.57,以后可能会是更新的版本。文中出现的版本号450.57仅供参考。


重大故障警告:
操作不慎可能会导致系统完全无法启动!
即使完全按照教程进行操作,也不一定会成功!
如果失败,你将无法进入图形界面,只能进入Linux控制台(纯文本命令行界面)进行驱动修复工作!
在最坏的情况下,系统会完全没有图像显示,你只能启动到另一个系统进行修复工作,或者必须进行重装!

如果你没有Linux命令行经验,但还是想进行尝试,请立即备份数据,并做好系统无法恢复、必须重装的准备!


UOS 20 自带的Nvidia闭源驱动是440.59,Nvidia官网最新的Linux驱动是450.57。虽然UOS官方软件源(软件仓库)没有450.57驱动,但我们可以通过添加其他Linux发行版(这里是 Debian sid 不稳定版)的软件源来实现升级到450.57驱动。

升级有什么好处?在运行Wine应用的时候,黑窗口出现的频率减少了。此外,游戏性能方面可能也会有些许改善。但总体上差别不大,如果你担心系统损坏,强烈建议你不要升级!


升级方法:

  1. 打开开发者模式(控制中心 > 通用 > 开发者模式)。

  2. 打开终端(在应用列表里找“终端”),粘贴如下命令后回车(此操作是为了确保你已经安装旧版Nvidia闭源驱动的所有组件):

sudo  apt  install  -y  nvidia-driver  nvidia-smi  nvidia-settings  deepin-nvidia-prime  nvidia-vulkan-icd  vulkan-utils  nvidia-driver-libs:i386

此时会提示你输入密码,输入你的UOS开机密码即可。输入时不会显示任何内容,这是正常现象,输完回车即可。

如果提示找不到deepin-nvidia-prime,换成以下两条命令:

wget https://file.winegame.net/packages/deepin/nvidia/deepin-nvidia-prime_1.0.0-1_amd64.deb

sudo  apt  install  -y  nvidia-driver  nvidia-smi  nvidia-settings  deepin-nvidia-prime  nvidia-vulkan-icd  vulkan-utils  nvidia-driver-libs:i386  ./deepin-nvidia-prime_1.0.0-1_amd64.deb

重大故障警告:
在完成教程的第4步之前,不要运行 apt upgrade 命令或其他任何命令对系统进行升级,否则系统肯定会出问题。如果在此期间,系统的自动更新功能检测到可升级内容,不要点击安装!
此外,给高手的提醒:不建议升级 nvidia-settings 这个软件包,因为它的依赖太多,升级后恐怕会陷入依赖包地狱,以后安装UOS官方源的软件会异常困难。不升级 nvidia-settings 不会影响Nvidia控制面板的正常使用。

  1. 继续在终端输入如下命令,一行一行粘贴并回车(不包括 # 井号开头的行):
# 添加包含Nvidia 450.57驱动的软件源
echo 'deb http://mirrors.aliyun.com/debian sid main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-sid.list

# 更新软件包列表
sudo  apt  update

# 运行完会提示你“有 1492 个软件包可以升级”,不要激动。这不是我们系统的升级包,不要升级,否则系统肯定会出问题!

# 安装新版驱动
sudo  apt  install  nvidia-driver  libnvcuvid1  libnvidia-encode1  nvidia-vdpau-driver  vdpau-va-driver

# 需要输入y并回车来确认安装。
# 正常情况下应该提示“升级了 42 个软件包”,多十几个少十几个也是正常的。
# 如果看到升级几百个软件包的情况,说明教程已过时,你应该输入n拒绝安装,然后直接执行第4步的清理工作。
# 安装过程中会出现“失败:目录非空”等字样,这是正常现象,无需在意。
# 此外还会弹出“加载了不匹配的 NVIDIA 内核模块”提示框,按回车进行“确定”即可。

# 升级新版驱动的附加组件
dpkg -l | grep nvidia | grep 440 | awk '{print $2}' | xargs apt install

# 正常情况下应该提示“升级了 4 个软件包”,多十几个少十几个也是正常的,并且无需输入y进行确认。
# 要求你输入y,并且看到升级几百个软件包的情况,说明教程已过时,你应该输入n拒绝安装,然后直接执行第4步的清理工作。
  1. 清理工作:上述升级过程借用了 Debian sid 不稳定版的软件源,该仓库除了新版Nvidia驱动,还有一千多个其他软件的所谓“新版本”,但这些“新版本”和UOS不兼容,会对日后UOS系统的软件安装升级造成负面影响。所以在完成Nvidia驱动升级后,我们必须清理掉这个新加的软件源,以下是方法:

继续在终端中粘贴命令:

# 删除刚加的软件源
sudo  rm  /etc/apt/sources.list.d/debian-sid.list

# 清理软件源缓存
sudo  apt  clean

# 清理多余的软件包
sudo  apt  autoclean
  1. 完成第4步后,就可以重启电脑了。重启后如果顺利出现图形界面,你就可以打开“NVIDIA X 服务器设置”应用来确认是不是升级成功了。升级成功后界面上应该有如下文字:
NVIDIA Driver Version:  450.57

如果无法进入图形界面,请进行下面提到的恢复操作。


安装失败,恢复旧版驱动:

  1. 以下方法适用于虽然进不去图形界面,但是显示器仍然有显示的情况。如果显示器完全没有显示,请自行搜索解决方案。如果你没有任何思路,请考虑重装。

  2. 在系统启动一段时间(不用关心它是不是卡住)后,按 Ctrl + Alt + F2 组合键。系统应该会进入文本命令行界面。
    注意:如果你有多个显示器,文本命令行界面可能会显示在非常用显示器上(比如笔记本的自带屏幕上),请自行寻找一下。
    如果要返回之前的界面,按 按 Ctrl + Alt + F1 组合键。

  3. 输入你的系统用户名,就是你设置开机密码的时候设置的用户名,然后回车。

  4. 输入密码,回车。

  5. 如果用户名和密码正确,你将进入类似图形界面中“终端”的输入模式,出现以“$”结尾的提示字符,然后你可以自由输入命令。
    如果用户名或密码错误

  6. 文本命令行界面不支持中文。为了防止显示方块,需要运行如下命令切换为英文:

export  LANGUAGE=en
  1. 运行如下命令安装旧版驱动:
# 确认你已经删除了新版驱动的软件源。
# 提示“rm: cannot remove '/etc/apt/sou*d/deb*sid.list': No such file or directory”是正常的,说明之前已经删了。
sudo  rm  /etc/apt/sou*d/deb*sid.list

# 更新软件包列表
sudo  apt  update

# 如果你连的Wifi,出现网络问题,你可能需要使用网线。

# 卸载新版驱动
sudo  apt  purge  -y  nvidia*

# 安装旧版驱动
sudo  aptitude  install  -y  nvidia-driver  nvidia-smi  nvidia-settings  deepin-nvidia-prime

注意:最后一步使用了aptitude命令,因为要对一些软件包进行降级,使用apt命令无法完成。不要输错。

命令完成后重启。

回复列表(4|隐藏机器人聊天)
  • @Ta / 2020-08-15 / /

    markdown代码引用多层反引号嵌套

    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
  • @Ta / 2020-08-15 / /

    markdown代码引用多层反引号嵌套

    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
  • @Ta / 2020-08-15 / /

    markdown代码引用多层反引号嵌套

    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
    ``````
    `````
    ```
    <?php
    phpinfo();
    ?>
    ```
    `````
    ``````
    
  • @Ta / 2020-08-15 / /

    markdown开始标记

    这个开始标记不是markdown标准,仅用于虎绿林。其他部分都和github的markdown标准兼容。

    如果要使用markdown,第一行必须放置如下内容:

    <!-- markdown -->
    

    或者如下内容:

    <!md>
    

    如果第一行不是这两者之一,markdown不会生效,你只能使用UBB。

    如果第一行是这两者之一,则markdown模式激活,你可以同时使用markdown和UBB。


    加粗、斜体、删除线

    *斜体文本*
    _斜体文本_
    **加粗文本**
    __加粗文本__
    ***粗斜体文本***
    ___粗斜体文本___
    ~~删除线文本~~
    [u]markdown没有下划线文本,只能用UBB[/u]
    注意,因为星号和下划线代表斜体,多个星号(* *)和下划线(_ _)可能会成组消失,必须用\*和\_表示才行。打公式和代码时要特别注意,比如
    1*2+3*4
    __autoload__
    不行,
    1\*2+3\*4
    \_\_autoload\_\_
    才行。
    这个星号和下划线消失问题,也是虎绿林没有默认开启markdown,需要自行放置开始标记的最大原因。
    

    斜体文本
    斜体文本
    加粗文本
    加粗文本
    粗斜体文本
    粗斜体文本
    删除线文本
    markdown没有下划线文本,只能用UBB
    注意,因为星号和下划线代表斜体,多个星号( )和下划线( )可能会成组消失,必须用*和_表示才行。打公式和代码时要特别注意,比如
    12+34
    autoload
    不行,
    1*2+3*4
    __autoload__
    才行。
    这个星号和下划线消失问题,也是虎绿林没有默认开启markdown,需要自行放置开始标记的最大原因。


    代码引用

    代码引用相当于UBB的[code]标签,是由多个反引号包围的内容,包含单行代码和多行代码两种。

    单行代码

    单行代码不能高亮,但可以用来解决星号和下划线消失问题,也可以用于区分标识符和普通文本。

    使用成对的反引号即可,数量不限。

    虎绿林使用`PHP`开发,支持`php5.4`和`php7`。
    ``q.php``是虎绿林的路由文件,`config.inc.php`是主配置文件,``config``文件夹中有更多配置文件。
    
    在代码引用中的星号和下划线不会消失。
    `1*2+3*4`
    `__autoload__`
    可以。
    
    如果要表示反引号本身,那就用更多的反引号来包围。
    ``SELECT * FROM `hu60_user` WHERE uid=1``
    

    虎绿林使用PHP开发,支持php5.4php7
    q.php是虎绿林的路由文件,config.inc.php是主配置文件,config文件夹中有更多配置文件。

    在代码引用中的星号和下划线不会消失。
    1*2+3*4
    __autoload__
    可以。

    如果要表示反引号本身,那就用更多的反引号来包围。
    SELECT * FROM `hu60_user` WHERE uid=1

    多行代码

    多行代码以三个以上的反引号开头,三个以上的反引号结尾,开头和结尾的反引号都要独立成行,如:

    ```
    <?php
    phpinfo();
    ?>
    ```
    

    代码高亮

    可以在开头的反引号后面加上要高亮的编程语言:

    ```php
    <a href="<?php echo $_SERVER['PHP_SELF']; ?>">链接</a>
    ```
    

    PHP高亮效果:

    <a href="<?php echo $_SERVER['PHP_SELF']; ?>">链接</a>
    

    换成高亮HTML:

    ```html
        <a href="<?php echo $_SERVER['PHP_SELF']; ?>">链接</a>
    ```
    

    HTML高亮效果:

    <a href="<?php echo $_SERVER['PHP_SELF']; ?>">链接</a>
    

    此外多行代码还要一种表示方式,就是在所有代码前面都加上4个空格。虎绿林在嵌套多层反引号时解析有问题(是虎绿林UBB的问题,不是markdown解析器的问题),我就是靠前面加4个空格把演示内容显示出来的。但是请注意,这种方法无法避免被虎绿林的UBB解析器干扰,显示出来的代码会是经过UBB解析器处理之后的,比如里面的@xxx就会被转换为链接。所以如无必要不推荐这种方法。

    LaTeX数学公式

    高亮语言设为latex即可使用LaTeX语法生成数学公式:

    ```latex
    \[
    \begin{cases}\int_\Omega \nabla \mathbf{F}&=\int_\Gamma \mathbf{F}\cdot d\mathbf{S} \\
        u&=g_0,\quad \Gamma_D \\
        \partial_n u&=g_1 ,\quad \Gamma_N
    \end{cases} \]
    ```
    
    \[ \begin{cases}\int_\Omega \nabla \mathbf{F}&=\int_\Gamma \mathbf{F}\cdot d\mathbf{S} \\ u&=g_0,\quad \Gamma_D \\ \partial_n u&=g_1 ,\quad \Gamma_N \end{cases} \]

    区块引用

    用于引用别人创作的文字,会转换为<blockquote>标签。语法为大于号>开头:

    > 虎绿林是一个由老虎会游泳创建的网站。
    > 他在2008年就购买了hu60.cn这个域名。
    后来他又购买了hu60.net域名。
    
    只有第一行需要`>`,后续可以省略。通过空行结束引用。
    

    虎绿林是一个由老虎会游泳创建的网站。
    他在2008年就购买了hu60.cn这个域名。
    后来他又购买了hu60.net域名。

    只有第一行需要>,后续可以省略。通过空行结束引用。


    标题

    标题有两种形式,第一种形式是以一系列#号开头,后接文字:

    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    

    一级标题

    二级标题

    三级标题

    四级标题

    五级标题(已经比正文字小了)

    第二种形式是文字在第一行,第二行打一系列等号=或者减号-

    一级标题
    =======
    
    二级标题
    -------
    

    一级标题

    二级标题

    这种形式最多只能有两级。


    分割线

    分割线就是单独成行的三个以上减号-,注意和其他行要有至少一个空行隔开,否则可能会意外变成二级标题:

    没有空行,不是分割线,是二级标题
    ---
    
    这才是分割线
    
    ---
    
    这也是分割线
    
    -----
    
    这还是分割线
    
    ------
    

    没有空行,不是分割线,是二级标题

    这才是分割线


    这也是分割线


    这还是分割线


    项目符号

    项目符号有两种,一种是有序的,一种是无序的。

    有序列表

    有序的项目符号就是数字加小数点加空格开头,就和平时手写项目符号时一样,不过小数点后必须空格。

    它会被转换为html的<ol>标签。所以前面的序号可以乱写,偷懒的话全写1.也行,显示时会自动按顺序递增。

    1. 第一项
    2. 第二项
    2. 第二项?不,是第三项。
    5. 第五项?不,是第四项。
    6.点后没空格,不是一项。
    
    1. 第一项
    2. 第二项
    3. 第二项?不,是第三项。
    4. 第五项?不,是第四项。
      6.点后没空格,不是一项。

    有序项目符号会转换为<ol>标签,所以不是内容的一部分,复制时这些1. 2. 都是不会被复制到的。这有时候是个缺点,需要注意。

    无序列表

    无序项目符号则是以星号和空格开头,空格是必须的。它会被转换为<ul>标签。

    * 又
    * 双
    * 叒
    *无空格非叕
    

    • *无空格非叕

    多级列表

    列表可以多级呈现,用三个空格缩进即可成为第二级。

    * 第一级
       * 第二级
          * 第三级
             *无空格不是第四级
    
    1. aaa
       1. ccc
       2. ddd
    2. bbb
       1. eee
       2. fff
    
    1. 有序
       * 和无序
       * 也可以混合使用
    
    * 无序
       1. 和有序
       2. 也可以混合使用
    
    • 第一级
      • 第二级
        • 第三级
          *无空格不是第四级
    1. aaa

      1. ccc
      2. ddd
    2. bbb

      1. eee
      2. fff
    3. 有序

      • 和无序
      • 也可以混合使用
    • 无序
      1. 和有序
      2. 也可以混合使用

    多行内容

    列表内容可能会有多行,用空格缩进保持和第一行对齐即可。

    * 第一行
      第二行
       1. 第一行
          第二行
    
    用空行来结束列表。
    
    • 第一行
      第二行
      1. 第一行
        第二行

    用空行来结束列表。


    链接

    使用以下语法生成链接:

    [Wine游戏助手](https://winegame.net)
    

    Wine游戏助手


    图片

    使用以下语法嵌入图片:

    ![可选的描述](https://hu60.cn/tpl/jhin/img/logo_u16392_3.png)
    ![](https://hu60.cn/tpl/jhin/img/logo_u16392_3.png)
    

    可选的描述

    注意:通过这种方法嵌入的图片不会包含大图链接。


    图片链接

    使用以下语法为图片添加链接:

    [![可选的描述](https://winegame.net/media/cache/cb/ed/cbeddaf0f718819281c82205074fd78e.jpg)](https://winegame.net/games/overwatch/)
    

    可选的描述


    表格

    使用以下语法生成表格:

    |  表头   | 表头  |
    |  ----  | ----  |
    | 单元格  | 单元格 |
    | 单元格  | 单元格 |
    
    表头 表头
    单元格 单元格
    单元格 单元格

    单元格内容不支持对齐控制(居左、居右),只能居中。


    论坛UBB

    markdown也可以嵌入普通的虎绿林UBB,方括号风格、书名号风格都是支持的,也支持花括号表情,详见这个帖子:

    https://hu60.cn/q.php/bbs.topic.80645.1.html

添加新回复
回复需要登录