分类: 学习笔记

  • MediaWiki使用手记

    MediaWiki使用手记

    MediaWiki使用手记

    删除历史修订记录

    php maintenance/deleteOldRevisions.php --delete

    插入视频并控制视频尺寸

    EmbedVideo

    1. 安装==EmbedVideo==插件

    下载文件并将文件放入你的extensions/文件夹中名为EmbedVideo的目录下。
    在你的LocalSettings.php文件底部添加以下代码:

    wfLoadExtension( 'EmbedVideo' );

    完成——转到你的维基的Special:Version页面,以验证扩展是否已成功安装。

    1. 在B站上传视频(当然,服务器允许也可以直接添加到服务器)
    2. 获取视频的ID,https://www.bilibili.com/video/BV1bJUVY7EBi/ 连接中的BV1bJUVY7EBi即为视频ID.
    3. 在MediaWiki的内容中插入以下代码:
    {{#ev:bilibili|BV1bJUVY7EBi|width=800|autoresize=true}}

    即可插入来自B站的对应视频,并将视频的宽度设置为800px

    1. 为确保手机端的播放效果,可以在MediaWiki:Common.css页面加入以下代码:
    @media only screen and (max-width: 600px) {
      /* 针对手机的样式 */
      .ev-video {
        width: 100%;
        height: auto;
      }
    }
    image-20241114161813121

    启用MediaWiki缓存:

    # 以下为未登陆用户启用缓存-2024年11月18日
    $wgUseFileCache = true; // default: false
    $wgFileCacheDirectory = "$IP/images/cache"; // default: "{$wgUploadDirectory}/cache" which equals to "$IP/images/cache"
    
    # 启用EMCACHED缓存-2024年11月18日
    $wgMainCacheType = CACHE_MEMCACHED;
    $wgParserCacheType = CACHE_MEMCACHED; // optional
    $wgMessageCacheType = CACHE_MEMCACHED; // optional
    $wgMemCachedServers = [ '127.0.0.1:11211' ];
    $wgSessionsInObjectCache = true; // optional -- removed in 1.33+
    $wgSessionCacheType = CACHE_MEMCACHED; // optional

  • 曲线救国,实现在MediaWiKi中插入外链视频

    曲线救国,实现在MediaWiKi中插入外链视频

    曲线救国,实现在MediaWiKi中插入外链视频

    MediaWiKi出于安全考虑是禁止插入外链媒体的,外链图片尚可通过css配置解决,但视频反复尝试都无法实现。

    在腾讯云的对象存储中,发现了一段视频播放器的代码,想到一个曲线救国的方式。也就是将视频上传到COS中,然后在服务器上建一个HTML文件,将以下播放器代码复制进去。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      <meta
        name="viewport"
        content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"
      >
      <title>播放器</title>
      <link
        href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.2.1/tcplayer.min.css"
        rel="stylesheet"
      >
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.5.2/libs/flv.min.1.6.2.js">
      </script>
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.2.1/libs/hls.min.0.13.2m.js">
      </script>
      <script src="https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/lib/dash.all.min.js">
      </script>
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.5.0/tcplayer.v4.5.0.min.js">
      </script>
      <style>
        html,body{
          margin: 0;
          padding: 0;
          overflow: hidden;
          height: 100%;
        }
        .tcplayer {
          margin: 0 auto;
          width: 100%;
          height: 100%;
        }
      </style>
    </head>
    <body>
    <video
      id="player-container-id"
      preload="auto" width="100%"
      height="100%"
      playsinline
      webkit-playsinline
    ></video>
    <script>
      var tcplayer = TCPlayer("player-container-id", {
        reportable: false,
      });
      tcplayer.src('https://www.guohao.asia/picgo/202411121424692.mp4')
    </script>
    </body>
    </html>

    在MediaWiKi编辑过程中,插入以下代码,以<iframe>方式插入外链视频。

    <html>
    <head>
        <title>播放器</title>
        <style>
            .responsive-iframe {
                width: 100%; /* 宽度自适应 */
                height: 100vh; /* 高度自适应 */
                border: none;
            }
        </style>
    </head>
    <body>
        <iframe class="responsive-iframe" src="https://docs.guohao.asia/video/shr/1.html" frameborder="0" allowfullscreen></iframe>
    </body>
    </html>
  • 在VM Virtualbox 的ubuntu设置共享文件夹

    在VM Virtualbox 的ubuntu设置共享文件夹

    在VM Virtualbox 的ubuntu设置共享文件夹

    VM Virtualbox 不同于VMware,无法直接通过复制粘贴方式将宿主机上的文件传输到虚拟机内,所以只能用【共享文件夹】的方式解决。

    1. 在宿主机上新建一个文件夹,这里我将文件夹命名为ubuntu
    2. 在VM Virtualbox 中依次点击【设置】-【共享文件夹】–【文件夹】-【新增】
    image-20241029161641669
    1. 【共享文件夹路径】选定到刚刚新建的ubuntu文件夹,然后分别设置【共享文件夹名称】和【挂载点】;
    image-20241029161937326

    至此,宿主机的配置结束,接下来转到ubuntu虚拟机中:

    1. 打开【中端】,输入sudo mkdir /ubuntu后回车,新建一个同名的文件夹;
    image-20241029162232672
    1. 在【中端】中输入sudo mount -t vboxsf ubuntu /ubuntu建立挂载关系。

    之后就可以在共享文件夹中传输文件了。

    image-20241029162432240
  • 失业保险相关法律问题

    失业保险相关法律问题

    失业保险相关法律问题

    享受失业保险待遇的相关条件

    《社会保险法》1

     第四十五条 失业人员符合下列条件的,从失业保险基金中领取失业保险金:
      (一)失业前用人单位和本人已经缴纳失业保险费满一年的;
      (二)非因本人意愿中断就业的;
      (三)已经进行失业登记,并有求职要求的。

    《失业保险条例》2

    第十四条 具备下列条件的失业人员,可以领取失业保险金:
    (一)按照规定参加失业保险,所在单位和本人已按照规定履行缴费义务满1年的;
    (二)非因本人意愿中断就业的;
    (三)已办理失业登记,并有求职要求的。

    实施《中华人民共和国社会保险法》若干规定3

     第十三条 失业人员符合社会保险法第四十五条规定条件的,可以申请领取失业保险金并享受其他失业保险待遇。其中,非因本人意愿中断就业包括下列情形:
    (一)依照劳动合同法第四十四条第一项、第四项、第五项规定终止劳动合同的;
    (二)由用人单位依照劳动合同法第三十九条、第四十条、第四十一条规定解除劳动合同的;
    (三)用人单位依照劳动合同法第三十六条规定向劳动者提出解除劳动合同并与劳动者协商一致解除劳动合同的;
    (四)由用人单位提出解除聘用合同或者被用人单位辞退、除名、开除的;
    (五)劳动者本人依照劳动合同法第三十八条规定解除劳动合同的;
    (六)法律、法规、规章规定的其他情形。

    法律责任

    《社会保险法》1

     第八十八条 以欺诈、伪造证明材料或者其他手段骗取社会保险待遇的,由社会保险行政部门责令退回骗取的社会保险金,处骗取金额二倍以上五倍以下的罚款。
     
     第九十四条 违反本法规定,构成犯罪的,依法追究刑事责任。
     
     ### 《失业保险条例》2

    第二十八条 不符合享受失业保险待遇条件,骗取失业保险金和其他失业保险待遇的,由社会保险经办机构责令退还;情节严重的,由劳动保障行政部门处骗取金额1倍以上3倍以下的罚款。

    《中华人民共和国刑法》4

    第二百六十六条规定,诈骗公私财物,数额较大的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金;数额巨大或者有其他严重情节的,处三年以上十年以下有期徒刑,并处罚金;数额特别巨大或者有其他特别严重情节的,处十年以上有期徒刑或者无期徒刑,并处罚金或者没收财产。本法另有规定的,依照规定。

    全国人民代表大会常务委员会关于《中华人民共和国刑法》第二百六十六条的解释5

    以欺诈、伪造证明材料或者其他手段骗取养老、医疗、工伤、失业、生育等社会保险金或者其他社会保障待遇的,属于刑法第二百六十六条规定的诈骗公私财物的行为。

    相关判例

    潘强、卞浩等诈骗罪一审刑事判决书

    (2018)苏0591刑初10号6

    经审理查明,被告人潘强、袁加荣系合伙经营房产中介关系;2016年7月至2017年5月期间,被告人潘强、卞浩、袁加荣、何运良、范建喜为非法获利,在明知他人不符合失业保险金领取条件的情况下,被告人卞浩利用其成立的苏州某科技有限公司,被告人潘强利用其成立的苏州某咨询有限公司及苏州某科技有限公司,登陆社会保险机构网站,虚构离职原因和劳动合同进行网上录入和报送,骗领失业保险金;其中,经被告人卞浩成立的苏州某科技有限公司骗取的失业保险金共计60万余元,经被告人潘强成立的苏州某咨询有限公司骗取的失业保险金共计17万余元。其中,被告人潘强参与诈骗共计35万余元(其利用苏州某科技有限公司参与诈骗共计18万余元,利用苏州某咨询有限公司参与诈骗共计17万余元);被告人卞浩参与诈骗60万余元(其直接利用苏州某科技有限公司参与诈骗共计19万余元);相关人员向被告人袁加荣介绍不符合领取失业保险金的人员领取金额共计55377元;被告人何运良向被告人潘强介绍不符合领取失业保险金的人员领取金额共计61430元;被告人范建喜向被告人何运良介绍不符合领取失业保险金的人员领取金额共计21662元。

    一、被告人潘强犯诈骗罪,判处有期徒刑四年三个月,并处罚金人民币五万元。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2017年7月4日起至2021年10月3日止。罚金自判决生效后第二日起一个月内缴纳,并上缴国库)。

    二、被告人卞浩犯诈骗罪,判处有期徒刑四年三个月,并处罚金人民币四万元。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2017年7月4日起至2021年10月3日止。罚金自判决生效后第二日起一个月内缴纳,并上缴国库)。

    三、被告人袁加荣犯诈骗罪,判处有期徒刑一年九个月十天,并处罚金人民币一万元。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2017年7月4日起至2019年4月13日止。罚金自判决生效后第二日起一个月内缴纳,并上缴国库)。

    四、被告人何运良犯诈骗罪,判处有期徒刑一年九个月十天,并处罚金人民币一万元。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自2017年7月5日起至2019年4月14日止。罚金自判决生效后第二日起一个月内缴纳,并上缴国库)。

    五、被告人范建喜犯诈骗罪,判处有期徒刑八个月,缓刑一年,并处罚金人民币五千元。(缓刑考验期限,从判决确定之日起计算。罚金自判决生效后第二日起一个月内缴纳,并上缴国库)。

    六、暂扣的赃款发还被害单位,不足部分责令各被告人在参与诈骗的范围内伙同他人予以退赔(详见清单)。

    相关新闻

    虚构劳动关系骗取失业保险金,获刑十年半!_澎湃号·政务_澎湃新闻-The Paper

    严查骗取失业金,有人被刑拘!五种情形应停止领取失业保险金!_腾讯新闻 (qq.com)

    组织虚构劳动关系骗取失业保险待遇,最高罚5倍!判无期!_腾讯新闻 (qq.com)

    沈阳市失业保险相关政策及信息

    关于发布失业保险援企稳岗工作的公告7

    三、防范基金风险。加强待遇领取资格审核和发放环节数据比对,对同一单位当月超过10人集中离职申领失业保险金、申领失业保险金人数超过参保总人数的50%、在最后参保单位缴费不足3个月即申领失业保险金等情形重点开展核查,严厉打击违规领取、冒领、骗取基金行为。

    严厉打击骗取套取失业保险基金行为8

    img

    img

  • VBA处理excel工作表中的注释信息

    VBA处理excel工作表中的注释信息

    以下代码可实现:

    将当前工作表中的所有注释内容复制到新工作表的单元格中,复制后的内容在同一列由上向下排列

    Attribute VB_Name = "当前工作表内所有注释复制到新工作表"
    Sub CopyCellCommentsToNewSheet()
        Dim wsSource As Worksheet
        Dim wsTarget As Worksheet
        Dim i As Long
        Dim r As Range
        Dim lastRow As Long
    
        ' 设置源工作表为当前活动工作表
        Set wsSource = ActiveSheet
    
        ' 创建新工作表并设置为目标工作表
        Set wsTarget = Sheets.Add(After:=Sheets(Sheets.Count))
        wsTarget.Name = "Comments"
    
        ' 遍历源工作表中的所有单元格
        i = 1
        For Each r In wsSource.UsedRange
            If Not r.comment Is Nothing Then
                ' 如果单元格有注释,将其内容复制到新工作表的A列
                wsTarget.Cells(i, 1).Value = r.comment.Text
                ' 更新i以指向新行
                i = i + 1
            End If
        Next r
    
        ' 计算新工作表中最后一个非空单元格的行号
        lastRow = wsTarget.Cells(wsTarget.Rows.Count, 1).End(xlUp).Row
    
        ' 可选:自动调整列宽以适应内容
        wsTarget.Columns("A").AutoFit
    
        ' 可选:清除新工作表中的空白单元格
        If lastRow < wsTarget.Rows.Count Then
            wsTarget.Range(wsTarget.Cells(lastRow + 1, 1), wsTarget.Cells(wsTarget.Rows.Count, 1)).ClearContents
        End If
    
        ' 可选:提示用户完成操作
        MsgBox "所有注释已成功复制到新工作表。", vbInformation, "完成"
    End Sub

    线程式批注和注释之间的区别 – Microsoft 支持

  • 整合NextCloud及腾讯云COS搭建私有云

    整合NextCloud及腾讯云COS搭建私有云

    <?php
    $CONFIG = array(
      'objectstore' => array(
        'class' => '\\OC\\Files\\ObjectStore\\S3',
        'arguments' => array(
          'bucket' => 'nextcloud-*******', // 存储桶名称(空间名称)
          'autocreate' => false,
          'key'  => 'AKID***********', // 替换为用户的 SecretId
          'secret' => '**********', // 替换为用户的 SecretKey
          'hostname' => 'cos.<Region>.myqcloud.com', // 将 <Region> 修改为所属地域,如 ap-shanghai
          'use_ssl' => true,
        ),
      ),
      'instanceid' => 'oc82tpo2f',
      'passwordsalt' => '2GdQCVNsIVYF1KLP3fT3woH69X',
      'secret' => 'VSy0Y+/2wV7g4kvbiKSE0dSa2Yp1ajtvvZpgdV14Lsc',
      'trusted_domains' => array(
        0 => 'nextcloud.***.***',
    	), // nextcloud域名
      'datadirectory' => '/www/nextcloud/data', // data路径,请根据实际情况修改
      'dbtype' => 'mysql',
      'version' => '27.1.5.1',
      'overwrite.cli.url' => 'https://nextcloud.***.***/nextcloud',
      'dbname' => 'nextcloud',
      'dbhost' => 'localhost',
      'dbport' => '',
      'dbtableprefix' => 'oc_',
      'mysql.utf8mb4' => true,
      'dbuser' => 'nextcloud', // 数据库用户名
      'dbpassword' => '******', // 数据库密码
      'installed' => true,
      'maintenance' => false,
      'updater.secret' => '\$2y\$10\$0eTb6aJ4u3NAWwlQk2qkUOTlI3.0O6TGLwAQOCyUtH/wmCpC',
      'theme' => '',
      'loglevel' => 2,
      'filelocking.enabled' => true,
      'memcache.local' => '\\OC\\Memcache\\Redis',
      'memcache.locking' => '\\OC\\Memcache\\Redis',
      'redis' => array(
        'host' => '127.0.0.1',
        'port' => 6379,
        'timeout' => 0.0,
        'password' => '', // redis密码
      ),
      'mail_smtpmode' => 'smtp',
      'mail_sendmailmode' => 'smtp',
      'mail_from_address' => '****', // 请根据实际情况修改
      'mail_domain' => 'outlook.com', // 请根据实际情况修改
      'mail_smtpauth' => 1,
      'mail_smtphost' => 'smtp-mail.outlook.com', // 请根据实际情况修改
      'mail_smtpport' => '587', // 请根据实际情况修改
      'mail_smtpname' => '*****', // 请根据实际情况修改
      'mail_smtppassword' => '****', // 请根据实际情况修改
      'enabledPreviewProviders' => [
        'OC\Preview\MP3',
        'OC\Preview\TXT',
        'OC\Preview\MarkDown',
        'OC\Preview\OpenDocument',
        'OC\Preview\Krita',
        'OC\Preview\Imaginary',
      ],
      'preview_imaginary_url' => 'http://<url of imaginary>',
    );
    
  • 在Typora中使用“霞骛文楷”字体

    在Typora中使用“霞骛文楷”字体

    一直非常喜欢霞骛文楷的字体,这个站点为了使用这个字体甚至不惜牺牲了加载速度。现在终于找到了在Typora中使用这个字体的方法。

    步骤如下:

    • 在Typora的主题文件夹中新建一个==xiawu.css==文件;
    • 将以下代码复制到文件中保存;
    • 主题选择==xiawu==
    :root {
      /* dark color for background*/
      /* default color */
      --bg-color1: hsl(220, 13%, 18%);
      /* for most panel, context, header, etc */
      --bg-color2: rgb(33, 37, 43);
      /* for toc and table edit panel */
      --bg-color3: rgba(16, 17, 20, 0.5);
      /* for tips */
      --bg-color4: black;
      /* for blockquote, codeblock, input, etc */
      --bg-color5: rgb(29, 31, 35);
      /* light color for text and icon*/
      /* default color */
      --text-color1: hsl(220, 6%, 71%);
      /* for text on panel */
      --text-color2: rgb(220, 220, 220);
      /* for checkbox and radio */
      --text-color3: hsl(192, 6%, 40%);
      /* for tips */
      --text-color4: white;
      /* for focus mode */
      --text-color5: rgba(170, 178, 180, 0.5);
      /* link color */
      --link-color: rgb(197, 202, 210);
      /* table color */
      --table-border-color: rgb(100, 104, 116);
      --table-thead-color: rgb(31, 35, 40);
      --table-bg-color: rgb(40, 44, 52);
      --table-bg-darker-color: rgb(35, 40, 46);
      /* hover color */
      /* default hover background color */
      --hover-bg-color1: rgb(62, 66, 73);
      /* for input item */
      --hover-bg-color2: hsl(220, 9%, 14%);
      /* for button on toc and table edit panel */
      --hover-bg-color3: rgba(62, 66, 73, 0.8);
      /* default hover text color */
      --hover-text-color: white;
      /* active color */
      --active-color: var(--hover-bg-color1);
      /* input color */
      --input-color: rgb(29, 31, 35);
      /* menu divider color */
      /*   --menu-divider-color: rgb(95, 97, 101); */
      --menu-divider-color: hsl(220, 5%, 40%);
      /* scrollbar color */
      --scrollbar-thumb-color: var(--menu-divider-color);
      --scrollbar-track-color: rgba(95, 97, 101, 0.3);
      /* theme select color */
      --theme-select-color: rgba(255, 255, 255, 0.5);
      --button-color: rgb(62, 66, 73);
      --select-color: rgb(33, 37, 43);
      /* focus color */
      --focus-color: rgba(100, 100, 100, 0.8);
      --focus-ring-color: var(--focus-color);
      /* codeblock color */
      --code-red-color: hsl(355, 65%, 65%);
      --code-yellow-color: hsl(39, 67%, 69%);
      --code-cyan-color: hsl(187, 47%, 55%);
      --code-blue-color: hsl(207, 82%, 66%);
      --code-purple-color: hsl(286, 60%, 67%);
      --code-orange-color: hsl(29, 54%, 61%);
      --code-green-color: hsl(95, 38%, 62%);
      --code-grey-color: hsl(220, 9%, 55%);
    
      --code-select-bg-color: rgb(59,68,84);
      --code-cursor-color: hsl(220, 100%, 66%);
      /* implicit selecttion text bg color */
      --select-text-bg-color: rgb(64,72,89);
      /* implicit button color */
      --primary-color: var(--button-color);
      --primary-btn-border-color: transparent;
      --primary-btn-text-color: var(--text-color2);
      /* implicit sidebar color */
      --side-bar-bg-color: var(--bg-color2);
      --control-text-color: var(--text-color2);
      /* implicit text color */
      --text-color: var(--text-color1);
      /* implicit background color for setting menu */
      --bg-color: var(--bg-color1);
      /* implicit hover color */
      --item-hover-bg-color: var(--hover-bg-color1);
      --item-hover-text-color: var(--hover-text-color);
      /* implicit active color */
      --active-file-bg-color: var(--hover-bg-color);
      /* implicit mathjax edit panel background color */
      --rawblock-edit-panel-bd: var(--bg-color5);
      /* implicit focus mode color */
      --blur-text-color: var(--text-color5);
      /* implicit search result select color */
      --search-select-bg-color: rgb(56, 71, 95);
    
      --control-text-hover-color: var(--hover-text-color);
      /* implicit active file color in sidebar file menu treeview */
      --active-file-text-color: var(--hover-text-color);
      --active-file-border-color: var(--hover-text-color);
    
      --node-border: var(--menu-divider-color);
      --node-fill: var(--bg-color2);
      /* implicit border color in export menu of setting */
      --border-color: var(--menu-divider-color);
    }
    
    /* font */
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: normal;
      src: local("Open Sans Regular"), url("./onedark/400.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: normal;
      src: local("Open Sans Italic"), url("./onedark/400i.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: bold;
      src: local("Open Sans Bold"), url("./onedark/700.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: bold;
      src: local("Open Sans Bold Italic"), url("./onedark/700i.woff") format("woff");
    }
    
    /* basic style */
    html {
      font-size: 16px;
    }
    
    body {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;, "Clear Sans", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
      color: var(--text-color1);
      background: var(--bg-color1);
      line-height: 1.6;
    }
    
    /* text selection background color */
    .in-text-selection {
      background-color: --select-text-bg-color;
    }
    
    /* link */
    #write a:not([role="menuitem"]) {
      color: var(--link-color) !important;
    }
    
    #write a:not([role="menuitem"]):hover {
      color: var(--hover-text-color) !important;
    }
    
    /* h1-h6 */
    #write h1,
    #write h2,
    #write h3,
    #write h4,
    #write h5,
    #write h6 {
      margin-top: 0.5em;
      margin-bottom: 0em;
      line-height: 1em;
      text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
      padding-top: 0.3em;
    }
    
    #write h1 {
      font-size: 2.5em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    
    }
    
    /* #write h1:before {
      content: "\00A7  ";
    }
     */
    #write h2 {
      font-size: 2em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    }
    
    /* #write h2:before {
      content: "\00A7  ";
    }
     */
    #write h3 {
      font-size: 1.75em;
      padding-bottom: 0.5em;
      border-bottom: 1px solid var(--text-color5);
    }
    
    #write h4 {
      font-size: 1.55em;
    }
    
    #write h5 {
      font-size: 1.35em;
    }
    
    #write h6 {
      font-size: 1.2em;
    }
    
    /* horizontal divider */
    hr {
      height: 1px;
      background-color: var(--text-color5);
      border: 0px;
    }
    
    /* list */
    ul,
    ol {
      padding-left: 30px;
    }
    
    /* blockquote */
    blockquote {
      border-left: 4px solid var(--text-color1);
      padding: 4px 15px;
      color: var(--text-color1);
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    blockquote blockquote {
      padding-right: 0em;
    }
    
    /* table */
    .md-rawblock > .md-rawblock-container table,
    .md-table-fig,
    .md-table-fig:active {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    table thead tr {
      background-color: var(--table-thead-color);
    }
    
    table tr th {
      font-weight: bold;
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tbody tr {
      border-top: 1px solid var(--table-border-color);
      margin: 0;
      padding: 0;
    }
    
    table tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    table tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    table tr td {
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tr th:first-child,
    table tr td:first-child {
      border-left-width: 0px;
    }
    
    table tr th:last-child,
    table tr td:last-child {
      border-right-width: 0px;
    }
    
    /* table edit panel */
    .ty-table-edit {
      background-color: var(--bg-color3);
      border: 0px;
      border-radius: 6px;
      padding-top: 2px;
      padding-bottom: 2px;
      padding-left: 6px;
      padding-right: 6px;
      margin-top: -29px !important;
    }
    
    /* button on table edit panel */
    .ty-table-edit button {
      background-color: transparent;
      color: var(--text-color2);
      border: 0px;
      margin-left: 0px !important;
    }
    
    /* button hover on table edit panel */
    .ty-table-edit button:hover {
      background-color: var(--hover-bg-color3);
      color: var(--hover-text-color);
    }
    
    /* adjusting table panel */
    .popover {
      background-color: var(--bg-color2);
      box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* arrow of adjusting table panel */
    .popover.bottom > .arrow:after {
      border-bottom-color: var(--bg-color2);
    }
    
    /* divider in adjust table panel */
    .md-grid-board-wrap .popover-title {
      border-top-color: var(--menu-divider-color);
    }
    
    /* grid size */
    .md-grid-board a {
      width: 15px;
      height: 15px;
    }
    
    /* existing thread grid */
    .md-grid-board tr[row="1"] .md-grid-ext {
      background-color: rgb(60, 60, 60);
    }
    
    /* not existing thread grid */
    .md-grid-board tr[row="1"] {
      background-color: rgb(220, 220, 220);
    }
    
    /* existing grid */
    .md-grid-board .md-grid-ext {
      background-color: rgb(120, 120, 120);
    }
    
    /* selected thread grid */
    .md-grid-board tr[row="1"] a.md-active,
    .md-grid-board tr[row="1"] a:hover {
      background-color: rgb(60, 60, 60);
    }
    
    /* selected grid */
    .md-grid-board a.md-active,
    .md-grid-board a:hover {
      border-color: var(--menu-divider-color);
      background-color: rgb(120, 120, 120);
    }
    
    /* task */
    .md-task-list-item > input {
      margin-left: -1.3em;
    }
    
    /* footnote */
    sup.md-footnote {
      color: var(--text-color1);
      background-color: var(--bg-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* mathjax */
    /* .mathjax-block>.code-tooltip {
        bottom: .375rem;
    }
    .md-mathjax-midline {
        background: #fafafa;
    } */
    .md-inline-math script {
      color: var(--text-color1);
    }
    
    .on-focus-mode #write svg {
      opacity: 1;
    }
    
    .md-rawblock > .md-rawblock-container {
      transition: 0.5s;
    }
    
    .md-rawblock > .md-rawblock-tooltip {
      transition: 0.5s;
      display: block;
      visibility: hidden;
      opacity: 0;
    }
    
    .md-rawblock:hover > .md-rawblock-tooltip {
      transition: 0.5s;
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* meta information of image */
    .md-image > .md-meta {
      border: 0px;
      padding: 2px 0px 0px 4px;
      font-size: 0.9em;
      color: var(--text-color1);
    }
    
    /* input */
    input {
      background-color: var(--input-color) !important;
      border: 0px !important;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* input hover */
    /* input:hover {
        background-color: var(--hover-bg-color2) !important;
    } */
    /* checkbox */
    input[type="checkbox"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 3px;
      background-color: var(--input-color);
      margin-top: -0.5rem;
      margin-left: -0.2rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* checkbox hover */
    input[type="checkbox"]:not([disabled]):not(:checked):hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color3);
    }
    
    /* checkbox checked*/
    input[type="checkbox"]:checked:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color2);
    }
    
    /* checkbox checked hover*/
    input[type="checkbox"]:checked:hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--hover-text-color);
    }
    
    /* radio */
    input[type="radio"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 0.55rem;
      background-color: var(--input-color);
      margin-top: -0.4rem;
      margin-left: -0.1rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* radio hover */
    input[type="radio"]:not([disabled]):not(:checked):hover:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color3);
    }
    
    /* radio checked */
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color2);
    }
    
    /* radio checked hover*/
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--hover-text-color);
    }
    
    /* default focus style */
    :focus {
      outline-color: var(--focus-color);
    }
    
    /* exit source view button */
    .typora-sourceview-on #toggle-sourceview-btn {
      background-color: var(--bg-color2);
    }
    
    .typora-sourceview-on #toggle-sourceview-btn:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* shadow for image item*/
    .md-image img {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc */
    .md-toc {
      background-color: var(--bg-color3);
      border-radius: 6px;
      padding: 0px 0px 0px 0px;
      margin: 0px 0px 0px 0px;
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc content */
    .md-toc-content {
      padding-top: 5px;
      padding-bottom: 8px;
      margin-top: 15px;
      margin-bottom: 0px;
    }
    
    /* remove outline when toc is selected */
    .md-toc:focus .md-toc-content {
      border: 0px;
      margin: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc item */
    .md-toc-item {
      margin: 2px;
    }
    
    /* toc edit panel */
    #write div.md-toc-tooltip {
      border: 0px;
      padding-left: 10px;
      padding-right: 10px;
      background-color: var(--bg-color3);
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      opacity: 0;
      visibility: hidden;
      display: block !important;
      transition: 0.3s;
    }
    
    #write .md-toc:focus div.md-toc-tooltip {
      visibility: visible;
      opacity: 1;
    }
    
    #write .md-toc:focus {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
    }
    
    /* toc delete button */
    .md-delete-toc {
      background-color: transparent;
    }
    
    /* html block */
    .md-htmlblock:hover .md-htmlblock-container {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      border-top-right-radius: 0px;
    }
    
    /* search panel */
    #md-searchpanel {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* ignore case button and find whole word button */
    .searchpanel-search-option-btn {
      border: 0px;
    }
    
    /* button on search panel */
    #md-searchpanel .btn:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* remove shadow around input in search panel*/
    #md-searchpanel input {
      box-shadow: none;
    }
    
    /* search option button hover */
    .searchpanel-search-option-btn:not(.active):hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    /* close button in search panel */
    #md-searchpanel .input-group-addon.close-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* replaceall button */
    .ty-replace-panel-row #search-panel-replaceall-btn {
      padding-left: 8px;
      padding-right: 6px !important;
    }
    
    /* replace button */
    .ty-replace-panel-row #search-panel-replace-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* sidebar */
    .sidebar-menu {
      color: var(--text-color2);
    }
    
    /* sidebar shadow */
    #typora-sidebar,
    .typora-node #typora-sidebar {
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider between file item and search */
    .ty-sidebar-search-panel {
      border-color: var(--menu-divider-color);
    }
    
    /* file item in sidebar */
    #file-library .file-list-item {
      border-bottom: 0px;
      opacity: 1;
      border-left: 4px solid;
      border-color: var(--bg-color2);
    }
    
    /* file item hover */
    #file-library .file-list-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-bg-color1);
    }
    
    /* file item active */
    #file-library .file-list-item.active {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-text-color);
    }
    
    /* suffix of file item*/
    .file-list-item-file-ext-part {
      opacity: 0.8;
    }
    
    /* sidebar file menu */
    #sidebar-files-menu {
      border: 0px;
      box-shadow: -2px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* sidebar file menu item */
    .dropdown-menu > li > a {
      color: var(--text-color2);
    }
    
    .dropdown-menu > li > a:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file menu close button */
    #close-sidebar-menu-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file nemu divider */
    #sidebar-files-menu > .show + .menuitem-group-label.show {
      border-color: var(--menu-divider-color);
    }
    
    /* sidebar osx tab */
    .html-for-mac .sidebar-osx-tab > .sidebar-tabs {
      border: 0px;
      box-shadow: 0 4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    .html-for-mac .sidebar-content {
      z-index: -1; /* so that the background doesn't overlap with the shadow */
    }
    
    /* sidebar footer */
    .sidebar-footer {
      border: 0px;
      box-shadow: 0 -4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    /* remove outline when file item in treeview is selected*/
    .file-library-node:not(.file-node-root):focus > .file-node-content {
      outline: none;
    }
    
    /* sort button on sidebar file menu */
    .ty-side-sort-btn.active,
    .ty-side-sort-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* setting */
    /* header in setting */
    .window-header {
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5) !important;
    }
    
    /* sidebar in setting */
    .sidebar {
      background-color: var(--bg-color2) !important;
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    .list-group-content {
      margin-left: 10px !important;
    }
    
    /* sidebar button in setting menu */
    .nav-group-item {
      color: var(--text-color2) !important;
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
    }
    
    /* sidebar button hover in setting menu */
    .nav-group-item:hover,
    .nav-group-item:active,
    .nav-group-item.active {
      background-color: var(--hover-bg-color1) !important;
      color: var(--hover-text-color) !important;
    }
    
    /* remove up and down button from number type input*/
    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none !important;
    }
    
    /* the indent example in setting.editor */
    div[data-index="2"] .label-input-group td:last-child div {
      border: 0px !important;
      border-radius: 6px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin: 10px !important;
    }
    
    /* button in setting menu */
    .ty-preferences button.btn-default {
      border: 0px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
    }
    
    /* button hover in setting menu */
    .ty-preferences .btn-default:not([disabled]):hover {
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* return button in setting menu */
    .window-header button:hover {
      color: var(--text-color2) !important;
    }
    
    /* search input in setting menu */
    .search-input {
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
      margin-top: 10px !important;
      margin-bottom: 10px !important;
      margin-left: 10px !important;
    }
    
    .search-input:focus {
      border: none !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2) !important;
    }
    
    /* select item (mostly in setting menu) */
    select {
      border: 0px;
      border-radius: 6px;
      background-color: var(--input-color) !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* enabled select item hover */
    select:not([disabled]):hover {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* disabled select item hover */
    select[disabled]:hover {
      opacity: 0.5;
    }
    
    /* mega menu */
    .megamenu-content,
    .megamenu-opened header {
      background: var(--bg-color1);
    }
    
    .megamenu-content {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .megamenu-opened .megamenu-content {
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* mega menu sidebar*/
    .megamenu-menu {
      background-color: var(--bg-color2);
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* return button in mega menu */
    #megamenu-menu-sidebar .menu-style-btn {
      border: 0px;
    }
    
    /* remove divider in mega menu */
    .megamenu-menu-header {
      border-color: var(--menu-divider-color);
    }
    
    /* return button color in mega menu */
    .megamenu-menu-header #megamenu-menu-header-title {
      color: var(--text-color2);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover #megamenu-menu-header-title {
      color: var(--hover-text-color);
    }
    
    /* long button in mega menu */
    .long-btn {
      border: 0px;
      background-color: var(--bg-color5);
      color: var(--text-color1);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin-bottom: 10px;
      margin-left: 10px;
    }
    
    /* recent file in mega menu */
    #recent-file-panel {
      padding: 10px;
    }
    
    #recent-document-table {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel-action-btn {
      background: var(--bg-color5);
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel thead tr {
      background-color: var(--table-thead-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    #recent-file-panel-action-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--text-color2);
    }
    
    /* theme preview */
    .theme-preview-div {
      box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.8);
    }
    
    /* theme preview hover */
    .theme-preview-div:hover {
      border-color: var(--theme-select-color);
    }
    
    /* context menu and spell check panel */
    .dropdown-menu:not(.megamenu-menu-list) {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider in context menu and spell check panel */
    .dropdown-menu .divider {
      border-color: var(--menu-divider-color);
    }
    
    /* remove divider outline */
    .dropdown-menu {
      border: 0px;
    }
    
    /* footer */
    footer.ty-footer {
      border-top: 0px !important;
      background-color: var(--bg-color2) !important;
      /*     color: var(--text-color2); */
      box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* footer item */
    .footer-item,
    #outline-btn,
    #footer-word-count {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* footer item hover */
    .footer-item:hover,
    #outline-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* button on some panel */
    .btn {
      border: 0px;
      outline-width: 0px !important;
    }
    
    .btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* traffic button hover */
    #top-titlebar .toolbar-icon.btn:hover {
      color: var(--text-color2);
      background-color: var(--hover-bg-color1);
    }
    
    /* traffic button hover */
    #top-titlebar #w-close:hover {
      background-color: #e81123 !important;
    }
    
    /* adjust maxmize restore button height */
    .typora-maxmized #w-restore {
      height: 24px;
    }
    
    /* left upper button hover */
    .ty-menu-btn-area:hover .ty-menu-btn-area-sub {
      color: var(--text-color2) !important;
    }
    
    /* scrollbar */
    ::-webkit-scrollbar {
      width: 8px;
      padding-right: 10px;
      background-color: rgba(0, 0, 0, 0);
    }
    
    /* scrollbar track */
    ::-webkit-scrollbar-track:hover {
      background-color: var(--scrollbar-track-color) !important;
      border-radius: 4px;
    }
    
    /* scrollbar thumb */
    ::-webkit-scrollbar-thumb,
    ::-webkit-scrollbar-thumb:active {
      background-color: var(--scrollbar-thumb-color) !important;
      border-radius: 4px;
    }
    
    /* tip when hover on a button */
    #ty-tooltip {
      background-color: var(--bg-color4);
      color: var(--text-color4);
    }
    
    /* item container hover in context menu */
    .menu-item-container:hover {
      background-color: var(--bg-color2);
    }
    
    /* item in context menu */
    .menu-item-container .menu-style-btn {
      border-color: var(--menu-divider-color);
    }
    
    /* mathjax edit panel*/
    .md-rawblock-before {
      border-top-left-radius: 6px;
    }
    
    .md-rawblock-after {
      border-bottom-left-radius: 6px;
      border-bottom-right-radius: 6px;
    }
    
    /* mathjax focus */
    .MathJax_SVG:focus {
      outline: none;
      background-color: transparent;
    }
    
    /* notification panel */
    #md-notification {
      background-color: var(--bg-color2) !important;
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    #ty-surpress-mode-warning-close-btn {
      float: unset !important;
      margin: 0px !important;
    }
    
    .unibody-window #md-notification p {
      bottom: -4px !important;
    }
    
    /* inline codeblock */
    code {
      font-size: 0.9em;
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 4px 4px 4px 4px;
      margin: 0px 0px 0px 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* codeblock */
    .md-fences,
    .md-fences:active {
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 8px 4px 8px 4px !important;
      margin-top: 15px;
      margin-bottom: 15px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .md-fences .code-tooltip {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
      background-color: var(--bg-color3);
    }
    
    .md-fences.md-focus .code-tooltip {
      opacity: 1;
      visibility: visible;
    }
    
    .CodeMirror-lines {
      padding-left: 4px;
    }
    
    /* selected text and cursor */
    .CodeMirror-selected,
    .CodeMirror-selectedtext {
      background: var(--code-select-bg-color) !important;
    }
    
    .CodeMirror div.CodeMirror-cursor {
      border-left: 2px solid var(--code-cursor-color);
      z-index: 3;
    }
    
    .CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
      border-left: 3px solid var(--code-cursor-color);
    }
    
    /* highlight */
    .cm-s-inner .cm-property {
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-operator {
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-keyword {
      color: var(--code-purple-color) !important;
    }
    
    .cm-s-inner .cm-tag {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-attribute {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-string {
      color: var(--code-green-color) !important;
    }
    
    .cm-s-inner .cm-comment,
    .cm-s-inner.cm-comment {
      /*     color: var(--code-orange-color) !important; */
      color: var(--code-grey-color) !important;
      font-style: italic;
    }
    
    .cm-s-inner .cm-header,
    .cm-s-inner .cm-def,
    .cm-s-inner.cm-header,
    .cm-s-inner.cm-def {
      /*     color: var(--code-red-color) !important; */
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-meta,
    .cm-s-inner .cm-qualifier {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-builtin {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-bracket {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-number {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-variable {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-variable-2 {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-yellow-color) !important;
    }
    
    .cm-s-typora-default .cm-header,
    .cm-s-typora-default .cm-property {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-typora-default .cm-string {
      /*     color: var(--code-blue-color); */
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-atom {
      color: var(--code-grey-color);
      font-style: italic;
    }
    
    .cm-s-typora-default .cm-number {
      color: var(--code-orange-color);
      font-style: normal !important;
    }
    
    .cm-s-typora-default .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .CodeMirror-activeline-background {
      background: var(--hover-bg-color1);
    }
    
    .cm-s-typora-default .cm-comment,
    .cm-s-typora-default .cm-code {
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-tag {
      /*     color: var(--code-red-color); */
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .cm-strong,
    .cm-s-typora-default .cm-em,
    .cm-s-typora-default .cm-del {
      /*     color: var(--code-green-color); */
      color: var(--code-orange-color);
    }
    
    .cm-s-typora-default .cm-block-start.cm-variable-2 {
      /*     color: var(--code-orange-color); */
      color: var(--code-red-color);
    }
    
    .cm-formatting-task .cm-formatting-task {
      color: var(--code-red-color);
    }
    
    /* math formula tag */
    .cm-s-inner .cm-atom,
    .cm-s-inner.cm-atom {
      color: var(--code-blue-color);
    }
    
    /* inline codeblock in source mode */
    .cm-s-typora-default .cm-comment {
      color: var(--code-green-color);
    }
    
    /* horizontal divider when language is markdown */
    .cm-s-inner .cm-hr {
      color: var(--text-color1);
    }
    
    /* variable type when language is c/cpp */
    .cm-s-inner .cm-variable-3 {
      color: var(--code-purple-color);
    }
    
    /* in pie chart and flowchart */
    .cm-s-inner .cm-quote,
    .cm-s-inner.cm-quote {
      color: var(--code-green-color);
    }
    
    /* unknown highlight keyword */
    .cm-s-inner .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-inner .cm-negative {
      color: #d95050;
    }
    
    .cm-s-inner .cm-positive {
      color: #50e650;
    }
    
    .cm-s-inner .cm-string-2 {
      color: #f50;
    }
    
    .CodeMirror-gutters {
      border-right: none;
    }
    
    /* focus mode */
    .on-focus-mode .md-end-block:not(.md-focus) .md-toc-item {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h2:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h2:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h3:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    /* YAML block */
    pre.md-meta-block,
    pre.md-meta-block:active {
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      padding: 10px;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    /* switch between different mode */
    #typora-source {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .typora-sourceview-on #typora-source {
      visibility: visible;
      opacity: 1;
    }
    
    #typora-source .CodeMirror-lines {
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    #write {
      display: block !important;
      visibility: visible;
      opacity: 1;
      transition: 0.3s;
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    .typora-sourceview-on #write {
      visibility: hidden;
      opacity: 0;
    }
    
    /* #md-searchpanel {
        visibility: hidden;
        opacity: 0;
        transition: 0.3s !important;
    }
    
    .on-search-panel-open #md-searchpanel {
        visibility: visible;
        opacity: 1;
    } */
    
    .uni-preference-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .show-preference-panel .uni-preference-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* quick open menu */
    .typora-quick-open-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* insert table panel */
    .modal-content {
      border: 0px !important;
      border-radius: 6px !important;
    }
    
    .modal-content .btn-primary {
      background-color: transparent;
      color: var(--text-color1);
      outline-width: 0px;
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-default {
      background-color: var(--hover-bg-color1);
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-primary:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    .modal-content .form-control,
    .modal-content .form-control:focus {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* zoom  */
    #zoom-hint #zoom-hint-reset {
      color: var(--text-color1);
    }
    
    #zoom-hint .zoom-hint-button:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* word count */
    #footer-word-count-info {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-word-count #footer-word-count-info {
      visibility: visible;
      opacity: 1;
    }
    
    /* spell check */
    #spell-check-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-spell-check #spell-check-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* search result */
    .md-search-select {
      border: 2px solid rgb(69, 125, 255);
      box-sizing: content-box;
      color: var(--text-color1) !important;
    }
    
    .md-search-hit {
      background-color: var(--search-select-bg-color);
    }
    
    /* search panel message */
    #searchpanel-msg {
      background-color: var(--bg-color2);
      color: var(--text-color2);
    }
    
    .searchpanel-msg-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* language selection for codeblock */
    .auto-suggest-container {
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      background-color: var(--bg-color2);
    }
    
    /* sidebar outline item hover and active */
    .outline-item:hover {
      color: var(--hover-text-color);
    }
    
    .outline-label:hover {
      text-decoration: none;
    }
    
    .pin-outline .outline-active {
      color: var(--hover-text-color);
    }
    
    /* sidebar title hover */
    .info-panel-tab:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* active file in sidebar file menu treeview */
    .file-tree-node.active > .file-node-background {
      background-color: var(--hover-bg-color1);
    }
    
    /* hover file in sidebar file menu treeview */
    .file-node-content:hover {
      cursor: pointer;
    }
    
    /* saved button in megamenu */
    #m-saved:hover {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      cursor: default;
    }
    
    /* mermaid flowchart */
    .node rect,
    .node circle,
    .node ellipse,
    .node polygon,
    .node path {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .path {
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .arrowheadPath {
      fill: var(--menu-divider-color) !important;
    }
    
    .label {
      color: var(--text-color1) !important;
    }
    
    .edgeLabel rect {
      fill: transparent !important;
    }
    
    .cluster rect {
      fill: var(--bg-color5) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid sequence*/
    rect.actor {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.actor tspan {
      fill: var(--text-color1) !important;
    }
    
    #crosshead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    #arrowhead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageLine0,
    .messageLine1 {
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageText {
      fill: var(--text-color1) !important;
    }
    
    rect[class*="activation"] {
      fill: var(--bg-color2) !important;
    }
    
    .actor-line {
      stroke-width: 1px !important;
    }
    
    .labelBox {
      fill: var(--bg-color2) !important;
      stroke: rgb(150, 150, 150) !important;
    }
    
    .labelText {
      fill: var(--text-color1) !important;
    }
    
    .loopText,
    .loopText tspan
    {
      fill: var(--text-color1) !important;
    }
    
    .loopLine {
      stroke: rgb(180, 180, 180) !important;
    }
    
    .note {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .noteText tspan {
      fill: var(--text-color1) !important;
    }
    
    rect.rect {
      fill: var(--bg-color3);
    }
    
    /* mermaid class */
    g.classGroup text {
      fill: var(--text-color1) !important;
    }
    
    g.classGroup rect {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color2) !important;
    }
    
    g.classGroup line {
      stroke: var(--menu-divider-color) !important;
    }
    
    .classLabel .label {
      fill: var(--text-color1) !important;
    }
    
    .relation {
      stroke: var(--menu-divider-color) !important;
    }
    
    #compositionStart path,
    #compositionEnd path,
    #aggregationStart path,
    #aggregationEnd path,
    #dependencyStart path,
    #dependencyStart path,
    #extensionStart path,
    #extensionEnd path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cardinality text {
      fill: var(--text-color1) !important;
    }
    
    .classLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    /* mermaid state v1 */
    .stateGroup rect,
    .stateGroup line {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup text {
      fill: var(--text-color1) !important;
    }
    
    .stateGroup circle {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup .composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 17%) !important;
    }
    
    .stateGroup .alt-composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
    }
    
    .state-note rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .state-note text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    #dependencyEnd {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid state v2 */
    circle.state-start {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.state-end {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color4) !important;
    }
    
    .divider {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color5) !important;
      fill: hsl(218, 13%, 13.5%) !important;
    }
    
    rect.fork-join {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .title-state {
      fill: var(--bg-color2) !important;
    }
    
    .statediagram-cluster .outer {
      fill: var(--bg-color3) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cluster-label span {
      color: var(--text-color1);
    }
    
    .statediagram-cluster .inner {
      /*   fill: var(--bg-color2) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .statediagram-cluster-alt .inner {
      /*   fill: var(--bg-color5) !important; */
      fill: hsl(218, 13%, 16%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .transition {
      stroke: var(--menu-divider-color) !important;
    }
    
    #statediagram-barbEnd {
      fill: var(--menu-divider-color) !important;
    }
    
    /* mermaid erDiagram */
    rect.er.entityBox {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.er.entityLabel {
      fill: var(--text-color1) !important;
    }
    
    #ONLY_ONE_START path,
    #ONLY_ONE_END path,
    #ZERO_OR_ONE_START path,
    #ZERO_OR_ONE_END path,
    #ONE_OR_MORE_START path,
    #ONE_OR_MORE_END path,
    #ZERO_OR_MORE_START path,
    #ZERO_OR_MORE_END path {
      stroke: var(--menu-divider-color) !important;
    }
    
    #ZERO_OR_ONE_START circle,
    #ZERO_OR_ONE_END circle,
    #ZERO_OR_MORE_START circle,
    #ZERO_OR_MORE_END circle {
      fill: var(--bg-color) !important;
    }
    
    path.er.relationshipLine {
      stroke: var(--menu-divider-color) !important;
    }
    
    rect.er.relationshipLabelBox {
      fill: var(--bg-color3) !important;
    }
    
    text.er.relationshipLabel {
      fill: var(--text-color1) !important;
    }
    
    /* mermaid journey */
    .journey-section {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .task {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1px !important;
    }
    
    #arrowhead {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 0.3px !important;
    }
    
    text.legend {
      fill: var(--text-color1) !important;
    }
    
    pre[mermaid-type="journey"] svg > line {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 2px !important;
    }
    
    pre[mermaid-type="journey"] svg > text {
      fill: var(--text-color1) !important;
    }
    
    .task-line {
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.face {
      fill: var(--bg-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    circle.face + g > circle {
      fill: var(--text-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    path.mouth,
    line.mouth {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid gantt */
    text.sectionTitle tspan{
      fill: var(--text-color1) !important;
    }
    
    .section0,
    .section2 {
      fill: var(--bg-color4) !important;
    }
    
    .section1,
    .section3 {
      fill: var(--table-bg-color) !important;
    }
    
    .task0,
    .task1,
    .task2,
    .task3 {
      fill: rgb(80, 84, 90) !important;
      stroke: rgb(80, 84, 90) !important;
    }
    
    taskText0,
    .taskText1,
    .taskText2,
    .taskText3 {
      fill: var(--text-color2) !important;
    }
    
    .active0,
    .active1,
    .active2,
    .active3 {
      fill: rgb(100, 104, 110) !important;
      stroke: rgb(100, 104, 110) !important;
    }
    
    .activeText0,
    .activeText1,
    .activeText2,
    .activeText3 {
      fill: var(--text-color2) !important;
    }
    
    .done0,
    .done1,
    .done2,
    .done3 {
      fill: rgb(48, 51, 58) !important;
      stroke: rgb(48, 51, 58) !important;
    }
    
    .crit0,
    .crit1,
    .crit2,
    .crit3 {
      fill: rgb(150, 150, 150) !important;
      stroke: var(--text-color1) !important;
    }
    
    .activeCrit0,
    .activeCrit1,
    .activeCrit2,
    .activeCrit3 {
      fill: rgb(100, 104, 110) !important;
      stroke: var(--text-color1) !important;
    }
    
    .doneCrit0,
    .doneCrit1,
    .doneCrit2,
    .doneCrit3 {
      fill: rgb(48, 51, 58) !important;
      stroke: var(--text-color1) !important;
    }
    
    .taskTextOutside0,
    .taskTextOutside1,
    .taskTextOutside2,
    .taskTextOutside3 {
      fill: var(--text-color1) !important;
    }
    
    .grid text {
      fill: var(--text-color1) !important;
    }
    
    .today {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid pie chart */
    .pieTitleText {
      fill: var(--text-color1) !important;
    }
    
    
    g.legend > text {
      fill: var(--text-color1) !important;
    }
    
    g.legend > rect {
      stroke: var(--bg-color) !important;
    }
    
    g > path {
      stroke: var(--bg-color) !important;
    }
    
    g > text.slice {
      fill: var(--bg-color) !important;
    }
    
    /* flow diagram */
    .md-fences[lang="flow"] .md-diagram-panel-preview rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] .md-diagram-panel-preview path {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] #cond {
      fill: var(--bg-color2) !important;
    }
    
    /* sequence diagram */
    .md-fences[lang="sequence"] .md-diagram-panel-preview rect:not([fill="none"]) {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] .md-diagram-panel-preview path {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] text,
    .md-fences[lang="flow"] text {
      font-family: "Consolas" !important;
    }
    
    /* remove box shadow when not edit graph */
    .md-fences[lang="sequence"]:not(.md-focus),
    .md-fences[lang="mermaid"]:not(.md-focus),
    .md-fences[lang="flow"]:not(.md-focus) {
      box-shadow: none;
    }
    
    /* remove border when edit graph */
    .md-diagram-panel {
      border: none !important;
    }
    
    kbd {
      background: var(--bg-color5);
      color: var(--text-color1);
      font-family: "Lucida Console";
      border-color: var(--menu-divider-color);
      box-shadow: 0 2px 0 var(--menu-divider-color);
    }
    
    /* new export menu in setting */
    .export-detail {
      color: var(--text-color1) !important;
      background: transparent !important;
    }
    
    .export-item.active {
      background: var(--hover-bg-color1) !important;
      border-radius: 6px !important;
    }
    
    .export-detail textarea{
      background: var(--bg-color5);
      border: none;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .export-items-list-control {
      background: var(--bg-color2) !important;
      border-radius: 6px !important;
    }
    
    .icon-dot-3:before {
      color: var(--text-color1);
      z-index: 1;
    }
    
    .row.text-input select {
      width: 510px !important;
    }
  • 在Typora中使用“霞骛文楷”字体

    在Typora中使用“霞骛文楷”字体

    一直非常喜欢霞骛文楷的字体,这个站点为了使用这个字体甚至不惜牺牲了加载速度。现在终于找到了在Typora中使用这个字体的方法。

    步骤如下:

    • 在Typora的主题文件夹中新建一个==xiawu.css==文件;
    • 将以下代码复制到文件中保存;
    • 主题选择==xiawu==
    :root {
      /* dark color for background*/
      /* default color */
      --bg-color1: hsl(220, 13%, 18%);
      /* for most panel, context, header, etc */
      --bg-color2: rgb(33, 37, 43);
      /* for toc and table edit panel */
      --bg-color3: rgba(16, 17, 20, 0.5);
      /* for tips */
      --bg-color4: black;
      /* for blockquote, codeblock, input, etc */
      --bg-color5: rgb(29, 31, 35);
      /* light color for text and icon*/
      /* default color */
      --text-color1: hsl(220, 6%, 71%);
      /* for text on panel */
      --text-color2: rgb(220, 220, 220);
      /* for checkbox and radio */
      --text-color3: hsl(192, 6%, 40%);
      /* for tips */
      --text-color4: white;
      /* for focus mode */
      --text-color5: rgba(170, 178, 180, 0.5);
      /* link color */
      --link-color: rgb(197, 202, 210);
      /* table color */
      --table-border-color: rgb(100, 104, 116);
      --table-thead-color: rgb(31, 35, 40);
      --table-bg-color: rgb(40, 44, 52);
      --table-bg-darker-color: rgb(35, 40, 46);
      /* hover color */
      /* default hover background color */
      --hover-bg-color1: rgb(62, 66, 73);
      /* for input item */
      --hover-bg-color2: hsl(220, 9%, 14%);
      /* for button on toc and table edit panel */
      --hover-bg-color3: rgba(62, 66, 73, 0.8);
      /* default hover text color */
      --hover-text-color: white;
      /* active color */
      --active-color: var(--hover-bg-color1);
      /* input color */
      --input-color: rgb(29, 31, 35);
      /* menu divider color */
      /*   --menu-divider-color: rgb(95, 97, 101); */
      --menu-divider-color: hsl(220, 5%, 40%);
      /* scrollbar color */
      --scrollbar-thumb-color: var(--menu-divider-color);
      --scrollbar-track-color: rgba(95, 97, 101, 0.3);
      /* theme select color */
      --theme-select-color: rgba(255, 255, 255, 0.5);
      --button-color: rgb(62, 66, 73);
      --select-color: rgb(33, 37, 43);
      /* focus color */
      --focus-color: rgba(100, 100, 100, 0.8);
      --focus-ring-color: var(--focus-color);
      /* codeblock color */
      --code-red-color: hsl(355, 65%, 65%);
      --code-yellow-color: hsl(39, 67%, 69%);
      --code-cyan-color: hsl(187, 47%, 55%);
      --code-blue-color: hsl(207, 82%, 66%);
      --code-purple-color: hsl(286, 60%, 67%);
      --code-orange-color: hsl(29, 54%, 61%);
      --code-green-color: hsl(95, 38%, 62%);
      --code-grey-color: hsl(220, 9%, 55%);
    
      --code-select-bg-color: rgb(59,68,84);
      --code-cursor-color: hsl(220, 100%, 66%);
      /* implicit selecttion text bg color */
      --select-text-bg-color: rgb(64,72,89);
      /* implicit button color */
      --primary-color: var(--button-color);
      --primary-btn-border-color: transparent;
      --primary-btn-text-color: var(--text-color2);
      /* implicit sidebar color */
      --side-bar-bg-color: var(--bg-color2);
      --control-text-color: var(--text-color2);
      /* implicit text color */
      --text-color: var(--text-color1);
      /* implicit background color for setting menu */
      --bg-color: var(--bg-color1);
      /* implicit hover color */
      --item-hover-bg-color: var(--hover-bg-color1);
      --item-hover-text-color: var(--hover-text-color);
      /* implicit active color */
      --active-file-bg-color: var(--hover-bg-color);
      /* implicit mathjax edit panel background color */
      --rawblock-edit-panel-bd: var(--bg-color5);
      /* implicit focus mode color */
      --blur-text-color: var(--text-color5);
      /* implicit search result select color */
      --search-select-bg-color: rgb(56, 71, 95);
    
      --control-text-hover-color: var(--hover-text-color);
      /* implicit active file color in sidebar file menu treeview */
      --active-file-text-color: var(--hover-text-color);
      --active-file-border-color: var(--hover-text-color);
    
      --node-border: var(--menu-divider-color);
      --node-fill: var(--bg-color2);
      /* implicit border color in export menu of setting */
      --border-color: var(--menu-divider-color);
    }
    
    /* font */
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: normal;
      src: local("Open Sans Regular"), url("./onedark/400.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: normal;
      src: local("Open Sans Italic"), url("./onedark/400i.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: bold;
      src: local("Open Sans Bold"), url("./onedark/700.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: bold;
      src: local("Open Sans Bold Italic"), url("./onedark/700i.woff") format("woff");
    }
    
    /* basic style */
    html {
      font-size: 16px;
    }
    
    body {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;, "Clear Sans", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
      color: var(--text-color1);
      background: var(--bg-color1);
      line-height: 1.6;
    }
    
    /* text selection background color */
    .in-text-selection {
      background-color: --select-text-bg-color;
    }
    
    /* link */
    #write a:not([role="menuitem"]) {
      color: var(--link-color) !important;
    }
    
    #write a:not([role="menuitem"]):hover {
      color: var(--hover-text-color) !important;
    }
    
    /* h1-h6 */
    #write h1,
    #write h2,
    #write h3,
    #write h4,
    #write h5,
    #write h6 {
      margin-top: 0.5em;
      margin-bottom: 0em;
      line-height: 1em;
      text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
      padding-top: 0.3em;
    }
    
    #write h1 {
      font-size: 2.5em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    
    }
    
    /* #write h1:before {
      content: "\00A7  ";
    }
     */
    #write h2 {
      font-size: 2em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    }
    
    /* #write h2:before {
      content: "\00A7  ";
    }
     */
    #write h3 {
      font-size: 1.75em;
      padding-bottom: 0.5em;
      border-bottom: 1px solid var(--text-color5);
    }
    
    #write h4 {
      font-size: 1.55em;
    }
    
    #write h5 {
      font-size: 1.35em;
    }
    
    #write h6 {
      font-size: 1.2em;
    }
    
    /* horizontal divider */
    hr {
      height: 1px;
      background-color: var(--text-color5);
      border: 0px;
    }
    
    /* list */
    ul,
    ol {
      padding-left: 30px;
    }
    
    /* blockquote */
    blockquote {
      border-left: 4px solid var(--text-color1);
      padding: 4px 15px;
      color: var(--text-color1);
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    blockquote blockquote {
      padding-right: 0em;
    }
    
    /* table */
    .md-rawblock > .md-rawblock-container table,
    .md-table-fig,
    .md-table-fig:active {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    table thead tr {
      background-color: var(--table-thead-color);
    }
    
    table tr th {
      font-weight: bold;
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tbody tr {
      border-top: 1px solid var(--table-border-color);
      margin: 0;
      padding: 0;
    }
    
    table tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    table tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    table tr td {
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tr th:first-child,
    table tr td:first-child {
      border-left-width: 0px;
    }
    
    table tr th:last-child,
    table tr td:last-child {
      border-right-width: 0px;
    }
    
    /* table edit panel */
    .ty-table-edit {
      background-color: var(--bg-color3);
      border: 0px;
      border-radius: 6px;
      padding-top: 2px;
      padding-bottom: 2px;
      padding-left: 6px;
      padding-right: 6px;
      margin-top: -29px !important;
    }
    
    /* button on table edit panel */
    .ty-table-edit button {
      background-color: transparent;
      color: var(--text-color2);
      border: 0px;
      margin-left: 0px !important;
    }
    
    /* button hover on table edit panel */
    .ty-table-edit button:hover {
      background-color: var(--hover-bg-color3);
      color: var(--hover-text-color);
    }
    
    /* adjusting table panel */
    .popover {
      background-color: var(--bg-color2);
      box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* arrow of adjusting table panel */
    .popover.bottom > .arrow:after {
      border-bottom-color: var(--bg-color2);
    }
    
    /* divider in adjust table panel */
    .md-grid-board-wrap .popover-title {
      border-top-color: var(--menu-divider-color);
    }
    
    /* grid size */
    .md-grid-board a {
      width: 15px;
      height: 15px;
    }
    
    /* existing thread grid */
    .md-grid-board tr[row="1"] .md-grid-ext {
      background-color: rgb(60, 60, 60);
    }
    
    /* not existing thread grid */
    .md-grid-board tr[row="1"] {
      background-color: rgb(220, 220, 220);
    }
    
    /* existing grid */
    .md-grid-board .md-grid-ext {
      background-color: rgb(120, 120, 120);
    }
    
    /* selected thread grid */
    .md-grid-board tr[row="1"] a.md-active,
    .md-grid-board tr[row="1"] a:hover {
      background-color: rgb(60, 60, 60);
    }
    
    /* selected grid */
    .md-grid-board a.md-active,
    .md-grid-board a:hover {
      border-color: var(--menu-divider-color);
      background-color: rgb(120, 120, 120);
    }
    
    /* task */
    .md-task-list-item > input {
      margin-left: -1.3em;
    }
    
    /* footnote */
    sup.md-footnote {
      color: var(--text-color1);
      background-color: var(--bg-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* mathjax */
    /* .mathjax-block>.code-tooltip {
        bottom: .375rem;
    }
    .md-mathjax-midline {
        background: #fafafa;
    } */
    .md-inline-math script {
      color: var(--text-color1);
    }
    
    .on-focus-mode #write svg {
      opacity: 1;
    }
    
    .md-rawblock > .md-rawblock-container {
      transition: 0.5s;
    }
    
    .md-rawblock > .md-rawblock-tooltip {
      transition: 0.5s;
      display: block;
      visibility: hidden;
      opacity: 0;
    }
    
    .md-rawblock:hover > .md-rawblock-tooltip {
      transition: 0.5s;
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* meta information of image */
    .md-image > .md-meta {
      border: 0px;
      padding: 2px 0px 0px 4px;
      font-size: 0.9em;
      color: var(--text-color1);
    }
    
    /* input */
    input {
      background-color: var(--input-color) !important;
      border: 0px !important;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* input hover */
    /* input:hover {
        background-color: var(--hover-bg-color2) !important;
    } */
    /* checkbox */
    input[type="checkbox"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 3px;
      background-color: var(--input-color);
      margin-top: -0.5rem;
      margin-left: -0.2rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* checkbox hover */
    input[type="checkbox"]:not([disabled]):not(:checked):hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color3);
    }
    
    /* checkbox checked*/
    input[type="checkbox"]:checked:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color2);
    }
    
    /* checkbox checked hover*/
    input[type="checkbox"]:checked:hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--hover-text-color);
    }
    
    /* radio */
    input[type="radio"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 0.55rem;
      background-color: var(--input-color);
      margin-top: -0.4rem;
      margin-left: -0.1rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* radio hover */
    input[type="radio"]:not([disabled]):not(:checked):hover:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color3);
    }
    
    /* radio checked */
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color2);
    }
    
    /* radio checked hover*/
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--hover-text-color);
    }
    
    /* default focus style */
    :focus {
      outline-color: var(--focus-color);
    }
    
    /* exit source view button */
    .typora-sourceview-on #toggle-sourceview-btn {
      background-color: var(--bg-color2);
    }
    
    .typora-sourceview-on #toggle-sourceview-btn:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* shadow for image item*/
    .md-image img {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc */
    .md-toc {
      background-color: var(--bg-color3);
      border-radius: 6px;
      padding: 0px 0px 0px 0px;
      margin: 0px 0px 0px 0px;
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc content */
    .md-toc-content {
      padding-top: 5px;
      padding-bottom: 8px;
      margin-top: 15px;
      margin-bottom: 0px;
    }
    
    /* remove outline when toc is selected */
    .md-toc:focus .md-toc-content {
      border: 0px;
      margin: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc item */
    .md-toc-item {
      margin: 2px;
    }
    
    /* toc edit panel */
    #write div.md-toc-tooltip {
      border: 0px;
      padding-left: 10px;
      padding-right: 10px;
      background-color: var(--bg-color3);
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      opacity: 0;
      visibility: hidden;
      display: block !important;
      transition: 0.3s;
    }
    
    #write .md-toc:focus div.md-toc-tooltip {
      visibility: visible;
      opacity: 1;
    }
    
    #write .md-toc:focus {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
    }
    
    /* toc delete button */
    .md-delete-toc {
      background-color: transparent;
    }
    
    /* html block */
    .md-htmlblock:hover .md-htmlblock-container {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      border-top-right-radius: 0px;
    }
    
    /* search panel */
    #md-searchpanel {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* ignore case button and find whole word button */
    .searchpanel-search-option-btn {
      border: 0px;
    }
    
    /* button on search panel */
    #md-searchpanel .btn:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* remove shadow around input in search panel*/
    #md-searchpanel input {
      box-shadow: none;
    }
    
    /* search option button hover */
    .searchpanel-search-option-btn:not(.active):hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    /* close button in search panel */
    #md-searchpanel .input-group-addon.close-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* replaceall button */
    .ty-replace-panel-row #search-panel-replaceall-btn {
      padding-left: 8px;
      padding-right: 6px !important;
    }
    
    /* replace button */
    .ty-replace-panel-row #search-panel-replace-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* sidebar */
    .sidebar-menu {
      color: var(--text-color2);
    }
    
    /* sidebar shadow */
    #typora-sidebar,
    .typora-node #typora-sidebar {
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider between file item and search */
    .ty-sidebar-search-panel {
      border-color: var(--menu-divider-color);
    }
    
    /* file item in sidebar */
    #file-library .file-list-item {
      border-bottom: 0px;
      opacity: 1;
      border-left: 4px solid;
      border-color: var(--bg-color2);
    }
    
    /* file item hover */
    #file-library .file-list-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-bg-color1);
    }
    
    /* file item active */
    #file-library .file-list-item.active {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-text-color);
    }
    
    /* suffix of file item*/
    .file-list-item-file-ext-part {
      opacity: 0.8;
    }
    
    /* sidebar file menu */
    #sidebar-files-menu {
      border: 0px;
      box-shadow: -2px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* sidebar file menu item */
    .dropdown-menu > li > a {
      color: var(--text-color2);
    }
    
    .dropdown-menu > li > a:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file menu close button */
    #close-sidebar-menu-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file nemu divider */
    #sidebar-files-menu > .show + .menuitem-group-label.show {
      border-color: var(--menu-divider-color);
    }
    
    /* sidebar osx tab */
    .html-for-mac .sidebar-osx-tab > .sidebar-tabs {
      border: 0px;
      box-shadow: 0 4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    .html-for-mac .sidebar-content {
      z-index: -1; /* so that the background doesn't overlap with the shadow */
    }
    
    /* sidebar footer */
    .sidebar-footer {
      border: 0px;
      box-shadow: 0 -4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    /* remove outline when file item in treeview is selected*/
    .file-library-node:not(.file-node-root):focus > .file-node-content {
      outline: none;
    }
    
    /* sort button on sidebar file menu */
    .ty-side-sort-btn.active,
    .ty-side-sort-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* setting */
    /* header in setting */
    .window-header {
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5) !important;
    }
    
    /* sidebar in setting */
    .sidebar {
      background-color: var(--bg-color2) !important;
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    .list-group-content {
      margin-left: 10px !important;
    }
    
    /* sidebar button in setting menu */
    .nav-group-item {
      color: var(--text-color2) !important;
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
    }
    
    /* sidebar button hover in setting menu */
    .nav-group-item:hover,
    .nav-group-item:active,
    .nav-group-item.active {
      background-color: var(--hover-bg-color1) !important;
      color: var(--hover-text-color) !important;
    }
    
    /* remove up and down button from number type input*/
    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none !important;
    }
    
    /* the indent example in setting.editor */
    div[data-index="2"] .label-input-group td:last-child div {
      border: 0px !important;
      border-radius: 6px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin: 10px !important;
    }
    
    /* button in setting menu */
    .ty-preferences button.btn-default {
      border: 0px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
    }
    
    /* button hover in setting menu */
    .ty-preferences .btn-default:not([disabled]):hover {
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* return button in setting menu */
    .window-header button:hover {
      color: var(--text-color2) !important;
    }
    
    /* search input in setting menu */
    .search-input {
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
      margin-top: 10px !important;
      margin-bottom: 10px !important;
      margin-left: 10px !important;
    }
    
    .search-input:focus {
      border: none !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2) !important;
    }
    
    /* select item (mostly in setting menu) */
    select {
      border: 0px;
      border-radius: 6px;
      background-color: var(--input-color) !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* enabled select item hover */
    select:not([disabled]):hover {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* disabled select item hover */
    select[disabled]:hover {
      opacity: 0.5;
    }
    
    /* mega menu */
    .megamenu-content,
    .megamenu-opened header {
      background: var(--bg-color1);
    }
    
    .megamenu-content {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .megamenu-opened .megamenu-content {
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* mega menu sidebar*/
    .megamenu-menu {
      background-color: var(--bg-color2);
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* return button in mega menu */
    #megamenu-menu-sidebar .menu-style-btn {
      border: 0px;
    }
    
    /* remove divider in mega menu */
    .megamenu-menu-header {
      border-color: var(--menu-divider-color);
    }
    
    /* return button color in mega menu */
    .megamenu-menu-header #megamenu-menu-header-title {
      color: var(--text-color2);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover #megamenu-menu-header-title {
      color: var(--hover-text-color);
    }
    
    /* long button in mega menu */
    .long-btn {
      border: 0px;
      background-color: var(--bg-color5);
      color: var(--text-color1);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin-bottom: 10px;
      margin-left: 10px;
    }
    
    /* recent file in mega menu */
    #recent-file-panel {
      padding: 10px;
    }
    
    #recent-document-table {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel-action-btn {
      background: var(--bg-color5);
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel thead tr {
      background-color: var(--table-thead-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    #recent-file-panel-action-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--text-color2);
    }
    
    /* theme preview */
    .theme-preview-div {
      box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.8);
    }
    
    /* theme preview hover */
    .theme-preview-div:hover {
      border-color: var(--theme-select-color);
    }
    
    /* context menu and spell check panel */
    .dropdown-menu:not(.megamenu-menu-list) {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider in context menu and spell check panel */
    .dropdown-menu .divider {
      border-color: var(--menu-divider-color);
    }
    
    /* remove divider outline */
    .dropdown-menu {
      border: 0px;
    }
    
    /* footer */
    footer.ty-footer {
      border-top: 0px !important;
      background-color: var(--bg-color2) !important;
      /*     color: var(--text-color2); */
      box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* footer item */
    .footer-item,
    #outline-btn,
    #footer-word-count {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* footer item hover */
    .footer-item:hover,
    #outline-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* button on some panel */
    .btn {
      border: 0px;
      outline-width: 0px !important;
    }
    
    .btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* traffic button hover */
    #top-titlebar .toolbar-icon.btn:hover {
      color: var(--text-color2);
      background-color: var(--hover-bg-color1);
    }
    
    /* traffic button hover */
    #top-titlebar #w-close:hover {
      background-color: #e81123 !important;
    }
    
    /* adjust maxmize restore button height */
    .typora-maxmized #w-restore {
      height: 24px;
    }
    
    /* left upper button hover */
    .ty-menu-btn-area:hover .ty-menu-btn-area-sub {
      color: var(--text-color2) !important;
    }
    
    /* scrollbar */
    ::-webkit-scrollbar {
      width: 8px;
      padding-right: 10px;
      background-color: rgba(0, 0, 0, 0);
    }
    
    /* scrollbar track */
    ::-webkit-scrollbar-track:hover {
      background-color: var(--scrollbar-track-color) !important;
      border-radius: 4px;
    }
    
    /* scrollbar thumb */
    ::-webkit-scrollbar-thumb,
    ::-webkit-scrollbar-thumb:active {
      background-color: var(--scrollbar-thumb-color) !important;
      border-radius: 4px;
    }
    
    /* tip when hover on a button */
    #ty-tooltip {
      background-color: var(--bg-color4);
      color: var(--text-color4);
    }
    
    /* item container hover in context menu */
    .menu-item-container:hover {
      background-color: var(--bg-color2);
    }
    
    /* item in context menu */
    .menu-item-container .menu-style-btn {
      border-color: var(--menu-divider-color);
    }
    
    /* mathjax edit panel*/
    .md-rawblock-before {
      border-top-left-radius: 6px;
    }
    
    .md-rawblock-after {
      border-bottom-left-radius: 6px;
      border-bottom-right-radius: 6px;
    }
    
    /* mathjax focus */
    .MathJax_SVG:focus {
      outline: none;
      background-color: transparent;
    }
    
    /* notification panel */
    #md-notification {
      background-color: var(--bg-color2) !important;
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    #ty-surpress-mode-warning-close-btn {
      float: unset !important;
      margin: 0px !important;
    }
    
    .unibody-window #md-notification p {
      bottom: -4px !important;
    }
    
    /* inline codeblock */
    code {
      font-size: 0.9em;
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 4px 4px 4px 4px;
      margin: 0px 0px 0px 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* codeblock */
    .md-fences,
    .md-fences:active {
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 8px 4px 8px 4px !important;
      margin-top: 15px;
      margin-bottom: 15px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .md-fences .code-tooltip {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
      background-color: var(--bg-color3);
    }
    
    .md-fences.md-focus .code-tooltip {
      opacity: 1;
      visibility: visible;
    }
    
    .CodeMirror-lines {
      padding-left: 4px;
    }
    
    /* selected text and cursor */
    .CodeMirror-selected,
    .CodeMirror-selectedtext {
      background: var(--code-select-bg-color) !important;
    }
    
    .CodeMirror div.CodeMirror-cursor {
      border-left: 2px solid var(--code-cursor-color);
      z-index: 3;
    }
    
    .CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
      border-left: 3px solid var(--code-cursor-color);
    }
    
    /* highlight */
    .cm-s-inner .cm-property {
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-operator {
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-keyword {
      color: var(--code-purple-color) !important;
    }
    
    .cm-s-inner .cm-tag {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-attribute {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-string {
      color: var(--code-green-color) !important;
    }
    
    .cm-s-inner .cm-comment,
    .cm-s-inner.cm-comment {
      /*     color: var(--code-orange-color) !important; */
      color: var(--code-grey-color) !important;
      font-style: italic;
    }
    
    .cm-s-inner .cm-header,
    .cm-s-inner .cm-def,
    .cm-s-inner.cm-header,
    .cm-s-inner.cm-def {
      /*     color: var(--code-red-color) !important; */
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-meta,
    .cm-s-inner .cm-qualifier {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-builtin {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-bracket {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-number {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-variable {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-variable-2 {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-yellow-color) !important;
    }
    
    .cm-s-typora-default .cm-header,
    .cm-s-typora-default .cm-property {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-typora-default .cm-string {
      /*     color: var(--code-blue-color); */
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-atom {
      color: var(--code-grey-color);
      font-style: italic;
    }
    
    .cm-s-typora-default .cm-number {
      color: var(--code-orange-color);
      font-style: normal !important;
    }
    
    .cm-s-typora-default .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .CodeMirror-activeline-background {
      background: var(--hover-bg-color1);
    }
    
    .cm-s-typora-default .cm-comment,
    .cm-s-typora-default .cm-code {
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-tag {
      /*     color: var(--code-red-color); */
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .cm-strong,
    .cm-s-typora-default .cm-em,
    .cm-s-typora-default .cm-del {
      /*     color: var(--code-green-color); */
      color: var(--code-orange-color);
    }
    
    .cm-s-typora-default .cm-block-start.cm-variable-2 {
      /*     color: var(--code-orange-color); */
      color: var(--code-red-color);
    }
    
    .cm-formatting-task .cm-formatting-task {
      color: var(--code-red-color);
    }
    
    /* math formula tag */
    .cm-s-inner .cm-atom,
    .cm-s-inner.cm-atom {
      color: var(--code-blue-color);
    }
    
    /* inline codeblock in source mode */
    .cm-s-typora-default .cm-comment {
      color: var(--code-green-color);
    }
    
    /* horizontal divider when language is markdown */
    .cm-s-inner .cm-hr {
      color: var(--text-color1);
    }
    
    /* variable type when language is c/cpp */
    .cm-s-inner .cm-variable-3 {
      color: var(--code-purple-color);
    }
    
    /* in pie chart and flowchart */
    .cm-s-inner .cm-quote,
    .cm-s-inner.cm-quote {
      color: var(--code-green-color);
    }
    
    /* unknown highlight keyword */
    .cm-s-inner .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-inner .cm-negative {
      color: #d95050;
    }
    
    .cm-s-inner .cm-positive {
      color: #50e650;
    }
    
    .cm-s-inner .cm-string-2 {
      color: #f50;
    }
    
    .CodeMirror-gutters {
      border-right: none;
    }
    
    /* focus mode */
    .on-focus-mode .md-end-block:not(.md-focus) .md-toc-item {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h2:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h2:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h3:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    /* YAML block */
    pre.md-meta-block,
    pre.md-meta-block:active {
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      padding: 10px;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    /* switch between different mode */
    #typora-source {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .typora-sourceview-on #typora-source {
      visibility: visible;
      opacity: 1;
    }
    
    #typora-source .CodeMirror-lines {
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    #write {
      display: block !important;
      visibility: visible;
      opacity: 1;
      transition: 0.3s;
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    .typora-sourceview-on #write {
      visibility: hidden;
      opacity: 0;
    }
    
    /* #md-searchpanel {
        visibility: hidden;
        opacity: 0;
        transition: 0.3s !important;
    }
    
    .on-search-panel-open #md-searchpanel {
        visibility: visible;
        opacity: 1;
    } */
    
    .uni-preference-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .show-preference-panel .uni-preference-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* quick open menu */
    .typora-quick-open-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* insert table panel */
    .modal-content {
      border: 0px !important;
      border-radius: 6px !important;
    }
    
    .modal-content .btn-primary {
      background-color: transparent;
      color: var(--text-color1);
      outline-width: 0px;
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-default {
      background-color: var(--hover-bg-color1);
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-primary:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    .modal-content .form-control,
    .modal-content .form-control:focus {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* zoom  */
    #zoom-hint #zoom-hint-reset {
      color: var(--text-color1);
    }
    
    #zoom-hint .zoom-hint-button:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* word count */
    #footer-word-count-info {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-word-count #footer-word-count-info {
      visibility: visible;
      opacity: 1;
    }
    
    /* spell check */
    #spell-check-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-spell-check #spell-check-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* search result */
    .md-search-select {
      border: 2px solid rgb(69, 125, 255);
      box-sizing: content-box;
      color: var(--text-color1) !important;
    }
    
    .md-search-hit {
      background-color: var(--search-select-bg-color);
    }
    
    /* search panel message */
    #searchpanel-msg {
      background-color: var(--bg-color2);
      color: var(--text-color2);
    }
    
    .searchpanel-msg-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* language selection for codeblock */
    .auto-suggest-container {
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      background-color: var(--bg-color2);
    }
    
    /* sidebar outline item hover and active */
    .outline-item:hover {
      color: var(--hover-text-color);
    }
    
    .outline-label:hover {
      text-decoration: none;
    }
    
    .pin-outline .outline-active {
      color: var(--hover-text-color);
    }
    
    /* sidebar title hover */
    .info-panel-tab:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* active file in sidebar file menu treeview */
    .file-tree-node.active > .file-node-background {
      background-color: var(--hover-bg-color1);
    }
    
    /* hover file in sidebar file menu treeview */
    .file-node-content:hover {
      cursor: pointer;
    }
    
    /* saved button in megamenu */
    #m-saved:hover {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      cursor: default;
    }
    
    /* mermaid flowchart */
    .node rect,
    .node circle,
    .node ellipse,
    .node polygon,
    .node path {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .path {
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .arrowheadPath {
      fill: var(--menu-divider-color) !important;
    }
    
    .label {
      color: var(--text-color1) !important;
    }
    
    .edgeLabel rect {
      fill: transparent !important;
    }
    
    .cluster rect {
      fill: var(--bg-color5) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid sequence*/
    rect.actor {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.actor tspan {
      fill: var(--text-color1) !important;
    }
    
    #crosshead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    #arrowhead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageLine0,
    .messageLine1 {
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageText {
      fill: var(--text-color1) !important;
    }
    
    rect[class*="activation"] {
      fill: var(--bg-color2) !important;
    }
    
    .actor-line {
      stroke-width: 1px !important;
    }
    
    .labelBox {
      fill: var(--bg-color2) !important;
      stroke: rgb(150, 150, 150) !important;
    }
    
    .labelText {
      fill: var(--text-color1) !important;
    }
    
    .loopText,
    .loopText tspan
    {
      fill: var(--text-color1) !important;
    }
    
    .loopLine {
      stroke: rgb(180, 180, 180) !important;
    }
    
    .note {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .noteText tspan {
      fill: var(--text-color1) !important;
    }
    
    rect.rect {
      fill: var(--bg-color3);
    }
    
    /* mermaid class */
    g.classGroup text {
      fill: var(--text-color1) !important;
    }
    
    g.classGroup rect {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color2) !important;
    }
    
    g.classGroup line {
      stroke: var(--menu-divider-color) !important;
    }
    
    .classLabel .label {
      fill: var(--text-color1) !important;
    }
    
    .relation {
      stroke: var(--menu-divider-color) !important;
    }
    
    #compositionStart path,
    #compositionEnd path,
    #aggregationStart path,
    #aggregationEnd path,
    #dependencyStart path,
    #dependencyStart path,
    #extensionStart path,
    #extensionEnd path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cardinality text {
      fill: var(--text-color1) !important;
    }
    
    .classLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    /* mermaid state v1 */
    .stateGroup rect,
    .stateGroup line {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup text {
      fill: var(--text-color1) !important;
    }
    
    .stateGroup circle {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup .composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 17%) !important;
    }
    
    .stateGroup .alt-composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
    }
    
    .state-note rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .state-note text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    #dependencyEnd {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid state v2 */
    circle.state-start {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.state-end {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color4) !important;
    }
    
    .divider {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color5) !important;
      fill: hsl(218, 13%, 13.5%) !important;
    }
    
    rect.fork-join {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .title-state {
      fill: var(--bg-color2) !important;
    }
    
    .statediagram-cluster .outer {
      fill: var(--bg-color3) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cluster-label span {
      color: var(--text-color1);
    }
    
    .statediagram-cluster .inner {
      /*   fill: var(--bg-color2) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .statediagram-cluster-alt .inner {
      /*   fill: var(--bg-color5) !important; */
      fill: hsl(218, 13%, 16%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .transition {
      stroke: var(--menu-divider-color) !important;
    }
    
    #statediagram-barbEnd {
      fill: var(--menu-divider-color) !important;
    }
    
    /* mermaid erDiagram */
    rect.er.entityBox {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.er.entityLabel {
      fill: var(--text-color1) !important;
    }
    
    #ONLY_ONE_START path,
    #ONLY_ONE_END path,
    #ZERO_OR_ONE_START path,
    #ZERO_OR_ONE_END path,
    #ONE_OR_MORE_START path,
    #ONE_OR_MORE_END path,
    #ZERO_OR_MORE_START path,
    #ZERO_OR_MORE_END path {
      stroke: var(--menu-divider-color) !important;
    }
    
    #ZERO_OR_ONE_START circle,
    #ZERO_OR_ONE_END circle,
    #ZERO_OR_MORE_START circle,
    #ZERO_OR_MORE_END circle {
      fill: var(--bg-color) !important;
    }
    
    path.er.relationshipLine {
      stroke: var(--menu-divider-color) !important;
    }
    
    rect.er.relationshipLabelBox {
      fill: var(--bg-color3) !important;
    }
    
    text.er.relationshipLabel {
      fill: var(--text-color1) !important;
    }
    
    /* mermaid journey */
    .journey-section {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .task {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1px !important;
    }
    
    #arrowhead {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 0.3px !important;
    }
    
    text.legend {
      fill: var(--text-color1) !important;
    }
    
    pre[mermaid-type="journey"] svg > line {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 2px !important;
    }
    
    pre[mermaid-type="journey"] svg > text {
      fill: var(--text-color1) !important;
    }
    
    .task-line {
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.face {
      fill: var(--bg-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    circle.face + g > circle {
      fill: var(--text-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    path.mouth,
    line.mouth {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid gantt */
    text.sectionTitle tspan{
      fill: var(--text-color1) !important;
    }
    
    .section0,
    .section2 {
      fill: var(--bg-color4) !important;
    }
    
    .section1,
    .section3 {
      fill: var(--table-bg-color) !important;
    }
    
    .task0,
    .task1,
    .task2,
    .task3 {
      fill: rgb(80, 84, 90) !important;
      stroke: rgb(80, 84, 90) !important;
    }
    
    taskText0,
    .taskText1,
    .taskText2,
    .taskText3 {
      fill: var(--text-color2) !important;
    }
    
    .active0,
    .active1,
    .active2,
    .active3 {
      fill: rgb(100, 104, 110) !important;
      stroke: rgb(100, 104, 110) !important;
    }
    
    .activeText0,
    .activeText1,
    .activeText2,
    .activeText3 {
      fill: var(--text-color2) !important;
    }
    
    .done0,
    .done1,
    .done2,
    .done3 {
      fill: rgb(48, 51, 58) !important;
      stroke: rgb(48, 51, 58) !important;
    }
    
    .crit0,
    .crit1,
    .crit2,
    .crit3 {
      fill: rgb(150, 150, 150) !important;
      stroke: var(--text-color1) !important;
    }
    
    .activeCrit0,
    .activeCrit1,
    .activeCrit2,
    .activeCrit3 {
      fill: rgb(100, 104, 110) !important;
      stroke: var(--text-color1) !important;
    }
    
    .doneCrit0,
    .doneCrit1,
    .doneCrit2,
    .doneCrit3 {
      fill: rgb(48, 51, 58) !important;
      stroke: var(--text-color1) !important;
    }
    
    .taskTextOutside0,
    .taskTextOutside1,
    .taskTextOutside2,
    .taskTextOutside3 {
      fill: var(--text-color1) !important;
    }
    
    .grid text {
      fill: var(--text-color1) !important;
    }
    
    .today {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid pie chart */
    .pieTitleText {
      fill: var(--text-color1) !important;
    }
    
    
    g.legend > text {
      fill: var(--text-color1) !important;
    }
    
    g.legend > rect {
      stroke: var(--bg-color) !important;
    }
    
    g > path {
      stroke: var(--bg-color) !important;
    }
    
    g > text.slice {
      fill: var(--bg-color) !important;
    }
    
    /* flow diagram */
    .md-fences[lang="flow"] .md-diagram-panel-preview rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] .md-diagram-panel-preview path {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] #cond {
      fill: var(--bg-color2) !important;
    }
    
    /* sequence diagram */
    .md-fences[lang="sequence"] .md-diagram-panel-preview rect:not([fill="none"]) {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] .md-diagram-panel-preview path {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] text,
    .md-fences[lang="flow"] text {
      font-family: "Consolas" !important;
    }
    
    /* remove box shadow when not edit graph */
    .md-fences[lang="sequence"]:not(.md-focus),
    .md-fences[lang="mermaid"]:not(.md-focus),
    .md-fences[lang="flow"]:not(.md-focus) {
      box-shadow: none;
    }
    
    /* remove border when edit graph */
    .md-diagram-panel {
      border: none !important;
    }
    
    kbd {
      background: var(--bg-color5);
      color: var(--text-color1);
      font-family: "Lucida Console";
      border-color: var(--menu-divider-color);
      box-shadow: 0 2px 0 var(--menu-divider-color);
    }
    
    /* new export menu in setting */
    .export-detail {
      color: var(--text-color1) !important;
      background: transparent !important;
    }
    
    .export-item.active {
      background: var(--hover-bg-color1) !important;
      border-radius: 6px !important;
    }
    
    .export-detail textarea{
      background: var(--bg-color5);
      border: none;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .export-items-list-control {
      background: var(--bg-color2) !important;
      border-radius: 6px !important;
    }
    
    .icon-dot-3:before {
      color: var(--text-color1);
      z-index: 1;
    }
    
    .row.text-input select {
      width: 510px !important;
    }
  • 前端使用js代码在加载过程中替换指定链接

    前端使用js代码在加载过程中替换指定链接

    在页面中使用JavaScript动态替换由cdnjs.cloudflare.com加速的内容为由自己的CDN加速的示例代码:

    // 获取所有链接元素
    var links = document.getElementsByTagName("link");
    
    // 遍历所有链接元素
    for (var i = 0; i < links.length; i++) {
      var link = links[i];
      var href = link.href;
    
      // 将链接中的cdnjs.cloudflare.com替换为自己的CDN主机名
      if (href.indexOf("cdnjs.cloudflare.com") !== -1) {
        link.href = href.replace("cdnjs.cloudflare.com", "yourcdn.com");
      }
    }
    
    // 获取所有脚本元素
    var scripts = document.getElementsByTagName("script");
    
    // 遍历所有脚本元素
    for (var i = 0; i < scripts.length; i++) {
      var script = scripts[i];
      var src = script.src;
    
      // 将脚本中的cdnjs.cloudflare.com替换为自己的CDN主机名
      if (src.indexOf("cdnjs.cloudflare.com") !== -1) {
        script.src = src.replace("cdnjs.cloudflare.com", "yourcdn.com");
      }
    }

    这段代码会遍历页面上的所有链接元素和脚本元素,并将其中由cdnjs.cloudflare.com加速的链接替换为由自己的CDN加速的链接。如果需要替换其他类型的资源链接,只需修改代码以匹配相应的元素即可。

    需要注意的是,这种方式可能会影响页面性能,因为可能会增加页面的加载时间。而且,如果你的CDN主机名与主域名不同,则可能会受到浏览器的同源策略的限制。因此,最好的方法是在服务器端进行替换,以便保证性能和安全。

  • 《职工带薪年休假条例》及《企业职工带薪年休假实施办法》

    《职工带薪年休假条例》及《企业职工带薪年休假实施办法》

    索引号717823004/2007-00236分类劳动标准;国务院令
    发布单位法规司发文日期2007年12月14日
    标题职工带薪年休假条例发文字号国务院令第514号
    是否有效有效废止时间

    中华人民共和国国务院令

    第514号

    《职工带薪年休假条例》已经2007年12月7日国务院第198次常务会议通过,现予公布,自2008年1月1日起施行。

    总理 温家宝

    二○○七年十二月十四日


    职工带薪年休假条例

    第一条 为了维护职工休息休假权利,调动职工工作积极性,根据劳动法和公务员法,制定本条例。

    第二条 机关、团体、企业、事业单位、民办非企业单位、有雇工的个体工商户等单位的职工连续工作1年以上的,享受带薪年休假(以下简称年休假)。单位应当保证职工享受年休假。职工在年休假期间享受与正常工作期间相同的工资收入。

    第三条 职工累计工作已满1年不满10年的,年休假5天;已满10年不满20年的,年休假10天;已满20年的,年休假15天。

    国家法定休假日、休息日不计入年休假的假期。

    第四条 职工有下列情形之一的,不享受当年的年休假:

    (一)职工依法享受寒暑假,其休假天数多于年休假天数的;

    (二)职工请事假累计20天以上且单位按照规定不扣工资的;

    (三)累计工作满1年不满10年的职工,请病假累计2个月以上的;

    (四)累计工作满10年不满20年的职工,请病假累计3个月以上的;

    (五)累计工作满20年以上的职工,请病假累计4个月以上的。

    第五条 单位根据生产、工作的具体情况,并考虑职工本人意愿,统筹安排职工年休假。

    年休假在1个年度内可以集中安排,也可以分段安排,一般不跨年度安排。单位因生产、工作特点确有必要跨年度安排职工年休假的,可以跨1个年度安排。

    单位确因工作需要不能安排职工休年休假的,经职工本人同意,可以不安排职工休年休假。对职工应休未休的年休假天数,单位应当按照该职工日工资收入的300%支付年休假工资报酬。

    第六条 县级以上地方人民政府人事部门、劳动保障部门应当依据职权对单位执行本条例的情况主动进行监督检查。

    工会组织依法维护职工的年休假权利。

    第七条 单位不安排职工休年休假又不依照本条例规定给予年休假工资报酬的,由县级以上地方人民政府人事部门或者劳动保障部门依据职权责令限期改正;对逾期不改正的,除责令该单位支付年休假工资报酬外,单位还应当按照年休假工资报酬的数额向职工加付赔偿金;对拒不支付年休假工资报酬、赔偿金的,属于公务员和参照公务员法管理的人员所在单位的,对直接负责的主管人员以及其他直接责任人员依法给予处分;属于其他单位的,由劳动保障部门、人事部门或者职工申请人民法院强制执行。

    第八条 职工与单位因年休假发生的争议,依照国家有关法律、行政法规的规定处理。

    第九条 国务院人事部门、国务院劳动保障部门依据职权,分别制定本条例的实施办法。

    第十条 本条例自2008年1月1日起施行。


    企业职工带薪年休假实施办法

    (2008年9月18日人力资源社会保障部令第1号公布 自公布之日起施行)

    第一条 为了实施《职工带薪年休假条例》(以下简称条例),制定本实施办法。

    第二条 中华人民共和国境内的企业、民办非企业单位、有雇工的个体工商户等单位(以下称用人单位)和与其建立劳动关系的职工,适用本办法。

    第三条 职工连续工作满12个月以上的,享受带薪年休假(以下简称年休假)。

    第四条 年休假天数根据职工累计工作时间确定。职工在同一或者不同用人单位工作期间,以及依照法律、行政法规或者国务院规定视同工作期间,应当计为累计工作时间。

    第五条 职工新进用人单位且符合本办法第三条规定的,当年度年休假天数,按照在本单位剩余日历天数折算确定,折算后不足1整天的部分不享受年休假。

    前款规定的折算方法为:(当年度在本单位剩余日历天数÷365天)×职工本人全年应当享受的年休假天数。

    第六条 职工依法享受的探亲假、婚丧假、产假等国家规定的假期以及因工伤停工留薪期间不计入年休假假期。

    第七条 职工享受寒暑假天数多于其年休假天数的,不享受当年的年休假。确因工作需要,职工享受的寒暑假天数少于其年休假天数的,用人单位应当安排补足年休假天数。

    第八条 职工已享受当年的年休假,年度内又出现条例第四条第 (二)、(三)、(四)、(五)项规定情形之一的,不享受下一年度的年休假。

    第九条 用人单位根据生产、工作的具体情况,并考虑职工本人意愿,统筹安排年休假。用人单位确因工作需要不能安排职工年休假或者跨1个年度安排年休假的,应征得职工本人同意。

    第十条 用人单位经职工同意不安排年休假或者安排职工年休假天数少于应休年休假天数,应当在本年度内对职工应休未休年休假天数,按照其日工资收入的300%支付未休年休假工资报酬,其中包含用人单位支付职工正常工作期间的工资收入。

    用人单位安排职工休年休假,但是职工因本人原因且书面提出不休年休假的,用人单位可以只支付其正常工作期间的工资收入。

    第十一条 计算未休年休假工资报酬的日工资收入按照职工本人的月工资除以月计薪天数 (21.75天)进行折算。

    前款所称月工资是指职工在用人单位支付其未休年休假工资报酬前12个月剔除加班工资后的月平均工资。在本用人单位工作时间不满12个月的,按实际月份计算月平均工资。

    职工在年休假期间享受与正常工作期间相同的工资收入。实行计件工资、提成工资或者其他绩效工资制的职工,日工资收入的计发办法按照本条第一款、第二款的规定执行。

    第十二条 用人单位与职工解除或者终止劳动合同时,当年度未安排职工休满应休年休假天数的,应当按照职工当年已工作时间折算应休未休年休假天数并支付未休年休假工资报酬,但折算后不足1整天的部分不支付未休年休假工资报酬。

    前款规定的折算方法为:(当年度在本单位已过日历天数÷365天)×职工本人全年应当享受的年休假天数-当年度已安排年休假天数。

    用人单位当年已安排职工年休假的,多于折算应休年休假的天数不再扣回。

    第十三条 劳动合同、集体合同约定的或者用人单位规章制度规定的年休假天数、未休年休假工资报酬高于法定标准的,用人单位应当按照有关约定或者规定执行。

    第十四条 劳务派遣单位的职工符合本办法第三条规定条件的,享受年休假。

    被派遣职工在劳动合同期限内无工作期间由劳务派遣单位依法支付劳动报酬的天数多于其全年应当享受的年休假天数的,不享受当年的年休假;少于其全年应当享受的年休假天数的,劳务派遣单位、用工单位应当协商安排补足被派遣职工年休假天数。

    第十五条 县级以上地方人民政府劳动行政部门应当依法监督检查用人单位执行条例及本办法的情况。

    用人单位不安排职工休年休假又不依照条例及本办法规定支付未休年休假工资报酬的,由县级以上地方人民政府劳动行政部门依据职权责令限期改正;对逾期不改正的,除责令该用人单位支付未休年休假工资报酬外,用人单位还应当按照未休年休假工资报酬的数额向职工加付赔偿金;对拒不执行支付未休年休假工资报酬、赔偿金行政处理决定的,由劳动行政部门申请人民法院强制执行。

    第十六条 职工与用人单位因年休假发生劳动争议的,依照劳动争议处理的规定处理。

    第十七条 除法律、行政法规或者国务院另有规定外,机关、事业单位、社会团体和与其建立劳动关系的职工,依照本办法执行。

    船员的年休假按《中华人民共和国船员条例》执行。

    第十八条 本办法中的 “年度”是指公历年度。

    第十九条 本办法自发布之日起施行。

AI 助手