網路上的window.speechSynthesis教學主要都只有說切換指定語言
像是這樣就能切換成中文語音:
const synth = window.speechSynthesis;
const speak = (msg) => {本地环境为Windows。
###0. 下载putty
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
putty 和 puttygenputtygen生成ssh public key,保存至服务商配置处###1. 配置服务器
mathclub是最近做的一个个人项目,帮助考SAT的同学通过在线做题、回顾、问答提高成绩。用户功能有:计次/计时做题、成绩单、错题分布、错题回顾、提问、汇总以及注册登录。管理后台主要是题库管理、学员管理、成绩单管理、问题回复。怎么看都像学校里的课设,的确项目本身并不出奇,开发上选用的一些方案或许更有意思。
整个项目一个人从产品需求、原型设计、前后端开发到部署历时2周左右。可以从截图上感受一下:
技术选型上服务端是Node.js,应用框架选了老牌的Express(4.x变化挺大不少中间件都废了),数据服务用的是MongoLab(MongoDB的云服务平台),图片上传用的是又拍云,程序部署在Nodejitsu上。模板引擎没选主流的Jade或ejs,而是用Express React Views它实现了在服务端渲染React组件。前端框架是用React,这次有意想追求前后端全部组件化的组织。之前是用Webpack实现CommonJS模块打包,这次用Browserify配置更简单,它有丰富的transform很赞,其中的reactify转换React的JSX很完美。CSS用Sass+autoprefixer让人省心。将这一切串起来的自动构建工具是Gulp。我其实崇尚用最精简的工具组合开发,上述组合在我看来比较精简了。(帖纸留念)
: | |
| def run(self, edit, action='compact'): | |
| rule_starts = self.view.find_all('\{') | |
| rule_ends = self.view.find_all('\}') | 
| // Template | |
| // (c) 2011 Jason Byrne, MileSplit | |
| // May be freely distributed under the MIT license, with attribution. | |
| // | |
| // ** Usage ** | |
| // | |
| // HTML: | |
| // <script type="text/html" id="tmplArticle"><h1>${Title}</h1></script> | |
| // | |
| // JavaScript: |