首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Wiki.js 离线部署方法 | 离线拉取语言包

最近想在内网搭建一套 Wiki,在调研了各种 wiki 的搭建方式、功能之后,选择了 wiki.js。但是在部署过程中,发现其默认是通过公网拉取语言包等资源,内网安装需要一些特别的方法。...这篇文章就来介绍内网部署 wiki.js 并拉取语言包方法。...安装方法# 按照 官网安装方法,可以较快的将整个服务启动起来: Step1 - 快速启动# # 安装前请确保安装了 node npm $ apt-get install node npm # 若内网服务器没有安装...# 内网环境无法直接下载语言包,此时需要按照如下步骤手动导入语言包: 修改配置文件 首先需要告诉 wiki.js 当前运行在离线环境中,因此在配置文件中进行如下修改: - offline: false...获取语言包 官方提供的语言包资源可以在这里下载:https://github.com/Requarks/wiki-localization 务必下载 locales.json ,之后下载您需要的语言包

63010
您找到你想要的搜索结果了吗?
是的
没有找到

js实现replaceAll方法

js本来有replace方法,请看w3school的说明: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。...---- js中是没有replaceAll方法的,那么如何实现替换所有匹配的字符串呢,即在js实现replaceAll方法: 1....使用具有全局标志g的正则表达式 var str = "dogdogdog"; var str2 = str.replace(/dog/g,"cat"); console.log(str2); 实现替换全部匹配字符串...(new RegExp(s1, "gm"), s2); } 这样就可以像使用replace方法一样使用replaceAll方法: var str = "dogdogdog"; var str2 = str.replaceAll...使用先split,再join的方法 评论区@默默之分享的这个方法太赞了,拉到正文里以免有人不看评论,感谢@默默之分享。

1.8K30

Prism.js动态加载所需语言包

其次,基本上只有语言包支持Node.js环境,插件基本都是基于DOM实现没有对Node.js环境进行兼容。...于是我实现了这个功能,并且应用于自己的网站上,网站可以选择主题进行代码高亮,最重要的他会将页面中代码块使用到的高亮语言包进行拼接返回,实现了按需分配。...(其实也不是难事,官网download页面也是这样) 最终效果: image.png 实现 需要进行保存的: components中的prism-core,这个是核心包 components中的其他文件是语言包...同时判断方法需要看HTML结构而定,我之前使用过很多富文本编辑器和Markdown编辑器来写博客,每个编辑器代码块结构又略有不同,所以只能考虑多种情况,麻烦一点。...(js)+主题(css)+语言包js)+插件(css、js)进行拼接 返回拼接的CSS和JS字符串

3.2K20

JS深拷贝几种实现方法

1、使用递归(循环)的方式实现深拷贝 //使用递归的方式实现数组、对象的深拷贝 function deepClone1(obj) { //判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝...objClone[key] = obj[key]; } } } return objClone; } return obj; } 2、lodash函数库实现深拷贝...lodash很热门的函数库,提供了 lodash.cloneDeep()实现深拷贝 3、通过 JSON 对象实现深拷贝 //通过js的内置对象JSON来进行数组对象的深拷贝 function deepClone2...objClone = JSON.parse(_obj); return objClone; } 4、Object.assign()拷贝(并不深,一级拷贝) 当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝...,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

1.5K20

JS实现继承的几种方法总结

文章目录 一、基本代码 二、实现继承的方法: 1.原型链继承 2.构造继承: 3.实例继承 4.拷贝继承: 5.组合继承: 6.寄生组合继承: 7.class – extends – – ES6 一...); } ---- 二、实现继承的方法: 1.原型链继承 //核心:将父类的实例作为子类的原型 function Dog() { } Dog.prototype = new Animal().../原型属性,子类都能访问的到 简单 缺点 要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中 无法实现继承多个 来自原型对象的所有属性被所有实例共享 创建子类实例时...(call多个父类对象) 缺点: 实例并不是父类的实例,只是子类的实例 只能继承父类的实例属性和方法,不能继承原型属性/方法 无法实现函数复用,每个子类都有父类实例函数的副本,影响性能 ---- 3.实例继承...(for in不能访问到的) ---- 5.组合继承: //核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用 function Cat(name) {

1.1K40

JS 实现网页截屏五种方法

https://segmentfault.com/a/1190000037673677 最近研究了下如何利用JavaScript实现网页截屏,包括在浏览器运行的JS,以及在后台运行的nodeJs的方法...实现截屏的代码,假设文件名为github.js: // 创建一个网页实例 var page = require('webpage').create(); // 加载页面 page.open('http:...实现截屏的代码example.js: const puppeteer = require('puppeteer'); (async () => { const browser = await...接下来看下screenshot方法实现原理: screenshot的源码位于lib/cjs/puppeteer/common/Page.js文件中,是一个异步方法: async screenshot...网上查了下感觉有一篇文章写的挺好的:浅析 js 实现网页截图的两种方式。感兴趣的可以看下。 未验证的猜想 虽然后面这两种是前端的实现方式,但是结合前面讲的headless库,也是可以实现后端截屏的。

6.7K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券