0x01 环境

  • nodejs   
  • Ubuntu 16.04
  • docsify
  • Nginx

0x02 搭建nodejs

  • 解压:tar -zxvf node-v10.15.0-linux-x64.tar.gz
  • 修改名字:mv node-v10.15.0-linux-x64 nodejs
  • 移动到/usr/local目录下(这个自己能找到就行):mv nodejs /usr/local
  • 建立全局软连:
    1
    2
    ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
    ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
    upload successful

0x03 安装docsify

  • npm全局安装:npm i docsify-cli -g

  • 若安装完执行docsify找不到命令,那就建立一个软连接:

    1
    ln -s /usr/local/nodejs/bin/docsify /usr/local/bin/docsify
  • docsify命令:

    1
    2
    初始化:docsify init ./docs
    本地预览:docsify serve docs

    upload successful
    upload successful

  • 更多详情请参考官方文档:https://docsify.js.org/#/zh-cn/quickstart

0x04 配置访问权限

  • Nginx配置反向代理和Basic Authentication 401认证

    • 编辑nginx的配置文件/etc/nginx/nginx.conf如下:
      upload successful

    • 生成密码文件 sudo htpasswd -c /etc/nginx/conf/htpasswd username 根据提示输入密码 

  • 重新加载nginx: sudo service nginx reload

  •   再次登录,提示弹出框,输入用户名和密码
    upload successful

0x05 其他

  • pandoc批量将docx文件转markdown文件

    • 官方链接:https://www.pandoc.org,pandoc是文档格式转化工具,能够多种文档格式转换。
    • 命令格式:pandoc -o f.md f.docx -extract-media=f
    • 批量递归替换文件名和文件夹名中的空格或者特殊字符:
      upload successful
      批量替换空格或者其他特殊字符
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      @echo off
      setlocal enabledelayedexpansion
      chcp 65001

      :: 如果要指定绝对路径,用以下两行,注释 set path=. 所在行。也就是用以下两行代替 set path=. 这一行。
      :: set path="C:\temp\test"
      :: cd "/d %path%"

      set path=.
      :: echo.&set /p path=please input path:

      set str_space=
      set str_heng=-

      :: 删除特殊字符,记得替换成你自己需要删除的
      set adv=
      :: echo.&set /p adv=please input to be delete characters:

      call:renameFiles

      for /f "delims=" %%i in ('dir /ad/b/s "%path%"') do (
      cd %%i
      call:renameFiles
      )

      echo.
      echo 处理完毕
      echo.

      pause

      :: 子过程一般放在最后,主程序最后要加上exit或跳转语句,避免错误的进入子过程。
      :: 如果没有 exit,子程序还会被执行(而不是调用)一次,这样在执行 echo %1 时,因为没有参数,会提示:ECHO is off.
      exit

      :renameFiles
      echo 正在处理的目录:【%cd%】 ...

      :: 先删除空格
      for /f "delims=" %%i in ('dir /b *.*') do (
      set "foo=%%i"
      ren "%%~i" "!foo:%str_space%=%str_heng%!"
      )

      for /f "delims=" %%i in ('dir /b *%adv%*') do (
      :: echo %%i
      set var=%%i
      set var=!var:%adv%=!
      echo rename "%%i" to "!var!"
      ren "%%i" "!var!"
      )

      echo.
      goto:eof

    •   批量将当前目录中的docx文档转换为markdown格式:
      upload successful
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import os

    # 当前目录下所有文件的名字
    all_files_name = os.listdir()

    # 保存所有docx文件的名字
    all_docx_files = []

    # 获取目录下的docx文件, 并保存
    for file_name in all_files_name:
    try:
    if file_name[-5:] == ".docx":
    all_docx_files.append(file_name)
    except Exception as e:
    print(e)
    # 将docx文件批量装换为md
    for docx_file in all_docx_files:
    try:
    tmp_md_name = docx_file[0: -5] + ".md"
    new_command = "pandoc "+ docx_file + " -o " + tmp_md_name + " --extract-media=" + docx_file[0: -5]
    result = os.popen(new_command).readlines()
    if len(result) == 0:
    print(docx_file, "转换成功")
    except Exception as e:
    print(e)
  • 批量生成docsify目录md文档

    • 插件地址:https://github.com/julianxhokaxhiu/gitbook-plugin-summary
    • 安装:npm i gitbook-plugin-summary
    • 即可使用命令:book sm生成SUMMARY.md
    • 可将SUMMARY.md的内容复制到docsify目录下的_navbar.md文件中,即可批量生成目录。(注意:路径中不要有空格和[]&等特殊字符)

0x06 FAQ

  • docsify中有许多好用的小插件,可以选择性的加载。
    upload successful