幕布是款亲测好用的大纲笔记,而anki是款flash card工具。
大段时间可将笔记整理到幕布,碎片时间则可以抽查记忆。

功能:支持三层大纲制作,比如

以下代码可直接使用

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;import java.io.*;
import java.net.URLDecoder;
import java.util.*;public class ParseMuBuOpml {public static void main(String[] args) throws UnsupportedEncodingException {String path = "C:\\Users\\wxmgc\\Downloads\\设计模式.opml";Map<String, String> map = parseOpml(path);String outputPath = "C:\\Users\\wxmgc\\Desktop\\anki.txt";try (FileWriter fileWriter = new FileWriter(outputPath)) {for (Map.Entry<String, String> entry : map.entrySet()) {fileWriter.append(String.format("%s\t%s\n",entry.getKey(),entry.getValue()));}} catch (IOException e) {throw new RuntimeException(e);}}public static Map<String,String> parseOpml(String filepath) throws UnsupportedEncodingException {Map<String,String> map = new HashMap<>();String htmlStr = toHtmlString(new File(filepath));//解析字符串为Document对象Document doc = Jsoup.parse(htmlStr);String title = doc.title();Elements outline = doc.body().getElementsByTag("outline");Set<String> keys = new HashSet<>();for (int i = 0; i < outline.size(); i++) {Element element = outline.get(i);if(element.childNodes().size() == 0){// 跳过没有答案String question = element.parent().attributes().get("text");if(question.equals(title)){continue;}//根据key滤重,处理多行答案if(keys.contains(question)){continue;}keys.add(question);List<Node> nodes = element.parent().childNodes();StringBuffer sb = new StringBuffer();for (Node node : nodes) {if(node.attributes().get("text").trim().length() == 0){continue;}String answer = URLDecoder.decode(node.attributes().get("_mubu_text"),"utf-8");sb.append(answer).append("<br/>");}map.put(question,sb.toString());}}return map;}public static String toHtmlString(File file) {StringBuffer htmlSb = new StringBuffer();try {BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "utf-8"));//unicodewhile (br.ready()) {htmlSb.append(br.readLine());}br.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}String htmlStr = htmlSb.toString();return htmlStr;}
}

引入pom依赖

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.8.3</version>
</dependency>

幕布笔记批量导入到anki相关推荐

  1. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库

    Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...

  2. 使用Anki批量导入选择题实录

    使用Anki批量导入选择题实录 一.前言 二.预备工具 1.参考资料 2.工具下载 三. 操作流程 四.批量导入填空题 一.前言 自用. Mac下不用插件,单凭WPS的通配符批量向Anki导入选择题的 ...

  3. MySQL深入学习——第六章 查询优化批量导入操作学习笔记

    一.SQL优化-优化实战 1.尽量全值匹配 CREATE TABLE `staffs`(id int primary key auto_increment,name varchar(24) not n ...

  4. 富文本支持粘贴excel表格_Anki插件-OneNote importer(富文本批量导入)

    首先我要承认自己在上一篇文章(黄河的六一:Anki+思维导图的两种方法(Anki+表格,Anki+幕布))中犯了些思维定式的错误,anki+幕布不需要我演示的这么麻烦,直接复制粘贴就好了.而且不是&q ...

  5. c# mysql 批量导入_C#:MySql批量数量导入

    现在对数据库(以MySql为例)的操作大多会封装成一个类,如下例所示: namespace TESTDATABASE { public enum DBStatusCode { ALL_OK, MySq ...

  6. 怎么接收layui上传的文件_layui 上传文件_批量导入数据UI的方法

    使用layui的文件上传组件,可以方便的弹出文件上传界面. 效果如下: 点击[批量导入]按钮调用js脚本importData(config)就可以实现数据上传到服务器. 脚本: /*** * 批量导入 ...

  7. AD下批量导入域用户

    如果您的域环境比较大,那么设置用户可能会不方便,就"新建用户"都可能重复做上几十遍....是不是很.....呵呵... 下面介绍一个工具"csvde.exe", ...

  8. 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

    c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){th ...

  9. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

最新文章

  1. 美妆彩妆宣传PPT模板
  2. MySql 基于C_API的数据库封装
  3. Halcon算子盘点:Chapter 19:轮廓线XLD
  4. [云炬创业基础笔记]第十一章创业计划书测试10
  5. 存储变革 IBM V5000四大优势助用户破旧立新
  6. WPF 框架全构建环境虚拟机硬盘分享
  7. MaxCompute Hash Clustering介绍
  8. 今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2...
  9. python入门——P46魔法方法:描述符(Property的原理)
  10. 微软图表控件MsChart使用初探
  11. IDA install keystone
  12. html中class类怎么写,HTML class 属性 | 菜鸟教程
  13. 怎么把u盘做成启动盘装系统?
  14. 华为手机USB调试搜不到设备
  15. JavaScript牛客面试题总结
  16. JAVA集合中常见的List和Map用法
  17. Edge浏览器检查更新时出错: 无法创建该组件(错误代码 3: 0x80004002 -- system level)如何更新
  18. 步进电机c语言驱动原理,《步进电机【驱动电路+C语言驱动程序】》.doc
  19. 1011 A+B 和 C (15分)(输出格式 数据类型范围)
  20. python感叹号的作用_Python的作用

热门文章

  1. 春天防治“上火”8个败火小妙招
  2. 【附源码】Python计算机毕业设计社区论坛
  3. android整合好视通sdk经验总结(二)
  4. mysql索引 物理文件_MySQL索引详解
  5. win10 软路由_为软路由选择系统,从零打造自己的专属软路由系统
  6. 安卓开发学习笔记(1)使用Bundle在Activity之间交换数据(实例:模拟淘宝的填写并显示收货地址的功能)
  7. session,sessionid,cookie之间的关系解析
  8. java mp3格式要jmf吗_JMF java播放MP3文件
  9. 将gridview导出成Excel
  10. Air724连接MQTT流程