Code Monkey home page Code Monkey logo

ohmymn's Introduction

ohmymn's People

Contributors

bryanhuang66 avatar ourongxing avatar zzhirong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ohmymn's Issues

在Autotitle中保留摘录,用正则表达式提取特定摘录内容作为标题

开发者好,我当前使用时遇到一个问题:我想实现摘录一段中英混合文本时,自动用正则表达式提取英文并形成“英文;”这样的标题,同时也保留摘录。
在Autotitle功能中,我实现了提取英文并形成标题,但不能同时保留摘录。
我希望能够设置一个控制,让用户自主选择是否开启摘录转标题。如果配合正则表达式,实际上可以实现自动提取摘录中特定内容成为标题,这是比直接摘录转标题更高级的功能。
谢谢!

【AutoTag】非常实用的功能建议:批量选中特定正则表达式筛选的笔记并添加标签

作者好,感谢快速回复!刚刚看到你之前在另一个加标签的插件里回复,这里想提一个ohmymn能实现的很实用的加标签功能,即用正则表达式筛选出包含特定字符的笔记(比如标题中有“自然语言处理”),然后再利用官方加标签的方式加入标签。

这个功能的用处在于,很多人不喜欢摘录时操作太多,但事后整理时需要用标签,所以事后添加标签是非常常见的。但问题在于标签需要选中大量笔记,这个耗时耗力,反而是ohmymn里的正则表达式可以实现很容易的批量筛选操作,所以只要选中后用官方的加标签方式加标签就很方便了。

希望作者考虑实现,应该非常容易。

谢谢!

关于国际化 i18n 的相关讨论

ohmymn 中大量功能都是为中文用户设计的,如果单纯翻译为英文,会有大量功能无法使用。而且本身翻译的工作量就很大,还有文档也要翻译,不然他们还是不会用。

英文文档由 MN 工作人员翻译:英文文档

选中文本自动搜索

本来不想做选中文本就搜索的功能,因为需要用完就关,这是我非常讨厌的,一切应该在需要的时候自动出现,不需要的时候自动躲得远远的。不过我最近确实也有类似的需求,再加上我发现可以判断是从左到右选中还是从右到左选中,这样我可以把不常用的从右到左选中设置为触发条件,再加上正则来匹配不同的内容,长度来自定义,搜索 url,基本不会出现误触的问题,算是比较完美的解决方案。

ohmymn 后续发展的思考

随着 ohmymn 中各种 AutoX 的功能越来越多,用户也越来越希望能更精细化的处理摘录,比如现在按字数来判断是否转为标题,但是有人又希望按字数设置颜色,设置样式,那我就需要设置 3 次字数,判断 3 次字数。这其实会带来很多冗余,就像现在的正则一样,每次摘录都需要判断七八个正则,从而执行不同的处理。这不是一个很好的处理办法,更好的办法是一个条件执行多个操作,但由于插件无法实现这么复杂的 UI,基本不可能办到。

FR:添加输入功能

需求:能否在autoreplace上添加手动输入功能?

描述:比如制作选择题,在完成摘录后,弹出输入框,由用户手动输入/选择某些值,比如答题记录,然后通过预设的正则表达式合并成。这样可以边摘录边做题,提高效率。

手势操作

来自于 all in one
all in one 的策略是给整个 study view 添加手势的识别检测。但是由于 MN 本身的手势优先级更高,所有只有少数几个 UI 组件上执行手势才会生效。

    notebookWillOpen: function(notebookid) {
          var swipeGestureRecognizer4 = new UITapGestureRecognizer(self, 'handleSwipe4:');
          swipeGestureRecognizer4.numberOfTapsRequired = 2;
          Application.sharedInstance().studyController(self.window).view.addGestureRecognizer(swipeGestureRecognizer4);
          var swipeGestureRecognizer5 = new UISwipeGestureRecognizer(self, 'handleSwipe5:');
          swipeGestureRecognizer5.numberOfTouchesRequired = 1;
          swipeGestureRecognizer5.direction = 1 << 0;
          Application.sharedInstance().studyController(self.window).view.addGestureRecognizer(swipeGestureRecognizer5);
          Application.sharedInstance().studyController(self.window).view.addSubview(self.webController.view);
          self.layoutWebController();
          var pan = new UIPanGestureRecognizer(self,'handlePan:');
          pan.maximumNumberOfTouches = 1;
          pan.minimumNumberOfTouches = 1;
          self.webController.view.addGestureRecognizer(pan);
        var LongPress = new UIPanGestureRecognizer(self,'handleLongPress:');
          LongPress.maximumNumberOfTouches = 2;
          LongPress.minimumNumberOfTouches = 2;
        self.webController.view.addGestureRecognizer(LongPress);
        		if(self.hide == true){
                self.webController.view.hidden = true;
              }
              else{  
        	    self.webController.view.hidden = false;};
          Application.sharedInstance().studyController(self.window).refreshAddonCommands();
          NSTimer.scheduledTimerWithTimeInterval(0.2,false,function(){ 
            Application.sharedInstance().studyController(self.window).becomeFirstResponder(); //For dismiss keyboard on iOS
          });
        }
      });
    },
 handleSwipe4:function(sender) {
       if(self.hide == false){
		self.hide = true;
        self.webController.view.hidden = true;
        NSUserDefaults.standardUserDefaults().setObjectForKey(true,'my_marginnote_hidden');
      }
      else{  
	    self.hide = false;
	    self.webController.view.hidden = false;
        NSUserDefaults.standardUserDefaults().setObjectForKey(false,'my_marginnote_hidden');};
 },
 handleSwipe5:function(sender) {
   if(self.webController.view.hidden == true){
         self.webController.view.hidden = false;}
         else{
           self.webController.view.hidden = true;
         };
  },
  handlePan: function(sender) {
    var point = sender.translationInView(sender.view);
    var center = sender.view.center;
    sender.view.center = {x: center.x + point.x, y: center.y + point.y};
    sender.setTranslationInView({x: 0, y: 0}, sender.view);
        	self.movedposition = sender.view.frame
        	self.layoutWebController();
            NSUserDefaults.standardUserDefaults().setObjectForKey(sender.view.frame,'my_marginnote_position');
    },
  handleLongPress: function(sender) {
    var point = sender.translationInView(sender.view);
    var movedframe = sender.view.frame;
    sender.view.frame = {x: movedframe.x, y:movedframe.y, width: movedframe.width + point.x, height: movedframe.height + point.y};
    sender.setTranslationInView({x: 0, y: 0}, sender.view);
        	self.movedposition = sender.view.frame
        	self.layoutWebController();
            NSUserDefaults.standardUserDefaults().setObjectForKey(sender.view.frame,'my_marginnote_position');
    },
};

反馈建议:希望增加内置词典,自动填充词义可从内置的权威词典添加

onmymn现在可以填充词义的功能确实比较方便了,但是希望可以内置权威的词典,如朗文、柯林斯、牛津等等的mdx格式的词典,在释义的丰富性和准确性上优势极大。如果制作过程需要优质词典库经过作者同意我可以无偿提供,自己通过论坛等渠道收集了不少了。
觉得比较有实现的可能,因为已经有插件把mdx词典集成到mn的插件里了
放上几张柯林斯、朗文等等权威词典的截图
image
image
image
image
image
image

能不能加入讯飞ocr的API

chatgpt解答很多问题需有公式识别会方便很多,不过百度马上要下线公式ocr的服务,mathpix api的也改成按次收费了,现在价格便宜还比较好用的公式ocr好像只有讯飞了,感觉加个讯飞的ocr会比较好

批量重命名界面疑似Bug

开发者你好!非常感谢你开发了一个这么好用的插件!这几天用下来感觉原地起飞爽死了!!!
目前遇到一个bug是,iPad版本批量重命名标题后弹出的对话框,无法使用外接键盘的左右方向键调整光标,而会移动后面的脑图画布。。。我不大清楚这个是插件的bug还是MN的bug,毕竟要在框内输入正则表达式,您看看能不能解决呢?麻烦啦!

功能建议:全局顶部开关

希望在插件最上层添加一排小图标,对应下面功能中的摘录时自动执行的开关。
并且增加一个,一键关闭 和 一键恢复上次开启过 两个按钮。
这样就不用每次去翻页查找。
希望,控制界面可以做的更小一点,或者可以增加用户自定义调整大小。例如拖拽按比例调整。

最后感谢开发者的努力和共享。
最后希望以后可以按到正则表达式进行 搜索的插件可以出现。官方搜索,太难用了。

【AutoStyle】自动修改摘录样式

暂时还在思考是否和 AutoColor 统一成 AutoStyle。
摘录样式具体指的是,摘录区域是填充还是边框。#25 提供了一个很有趣的需求,

建议:可以根据字数/单词数判断是否将mn的摘录样式设置为边框+填充/仅边框/仅填充;字数少的设置为边框+填充;字数多的设置为仅边框。既可以让少数重要的概念保持醒目,也避免大量摘录分散注意力。

我认为确实有必要,甚至框选的摘录也应该单独使用一种样式,因为框选的区域会很大一块。

而在颜色方面,由于会显示在脑图上,颜色会有更大的作用,也更需要更自由的修改。我现在能想到的是

  • 跟随卡片的颜色,同一个卡片内的摘录颜色应该是一样的。
  • 跟随父节点,或者同层级颜色相同。
  • 当然还可以使用正则,字数等等来自定义颜色。

这里面的逻辑非常的复杂,首先,一个卡片里可以包含多个摘录,而卡片的颜色是第一个摘录的颜色,之后的摘录其实只是作为评论存在。

摘录时自动翻译英文句子

基于彩云翻译 API 实现摘录英文自动翻译并设置为评论,或者设置英文为标题,翻译为摘录。这个模块需要与 AutoComplete 相协同。

显示插件面板的图标不显示

用的是ipad2020,启用插件后没有任何插件面板图标的显示,其它插件启用后在文档内都会有相应的图标可以打开它

v3 计划更新功能,欢迎参与讨论

现在先记录一下,防止到时候搞忘了

  1. 所有配置项都可以设置为仅文档生效,会通过一个特殊的配置项来设定哪些配置需要仅文档生效。 改为多配置文件的形式,提供 5 套配置文件,可自由组合。
  2. 关闭某个内部插件后,不显示其菜单。不开启自定义时不显示输入框。 已实现 。
  3. 添加一个新的工具栏给 MagicAction,类似与现在 MN 的插件栏,就显示几个图标。可以自由设置显示哪些功能,以及二级菜单里的功能,这样就可以一步到位,当然,这增加了误触的风险。 用手势操作代替 #33 ,以后还可能会用快捷键。
  4. #27
  5. #26
  6. 新插件 AutoStyle:提供自动修改摘录样式和颜色的功能。#31
  7. 新插件 AutoTag:提供自动添加标签的功能,通过正则匹配。#8
  8. #30
  9. 合并卡片的同时合并标题 已实现

v4 版本预期更新内容

  1. 平台化发展,搭建框架,更方便基于 OhMyMM 开发新的功能。OhMyMN 将直接接管摘录处理,选中文字的处理,选中卡片的处理三大板块。接管这三个板块的原因是涉及到这三板块的功能易发生冲突,需要一个统一的管理。
  2. 摘录处理更加完美,能够识别是否开启了在线矫正。
  3. #46
  4. #47 ,目前首先会有 Export to Anki
  5. #48
  6. #44
  7. #45

Feature: Enhanced Regex Engine

可以尝试使用xregexp替代原生js引擎,有提供兼容层支持negative lookbehide等Safari不支持的高级功能,最后也会编译为原生RegExp对象

关于 AutoTitle 在已有标题情况下的改进

目前其实分为两种情况

  • 打开了 标题摘录转为标题链接,就会把符合条件的摘录变成标题链接。
  • 没打开就会覆盖原有标题

改进:添加一个设置项,有三个选项

已有标题,符合条件的摘录将

  • 仍然作为摘录
  • 作为标题链接
  • 覆盖现有标题

能否在AutoReplace中实现对标题的同步替换?

作者好,感谢你的工作!目前遇到一个问题,我使用AutoReplace实现了对ocr错误空格在摘录中的替换,但mn中经常存在的另一个操作是选中一段话设为标题,能否让AutoReplace实现对这种操作中错误的替换?谢谢~

AutoReplace: the double quote “ is not accepted

The double quote is not accepted in the replacement syntax.
For example, (/xxx/, "111") would work but (/xxx/, ”111”) wouldn’t. The difference is only the double quotes, " vs .
As is the default double quote in iPad virtual keyboard, it creates a lot of confusion. It took me quite a while to realize what goes wrong with .

大佬你好可不可以等你考研完做一个可以更改摘录字体的插件呢:)

1.需求:就功能而言就类似于一件更改摘录里面所有的颜色那种,选中后将摘录里面的字体更改为某一种字体
2.原因:有时候看多了某一种字体就习惯了,是我个人的不情之请,这个也没什么大不了的只是就我个人而言(。ì _ í。)
3.优先级:等大佬考研完再弄吧,这个我不清楚难度,看社区另一位开发者说法说是很难

反馈建议:希望增加自动更改摘录样式的功能

需求:字数较少的单个生词,或者概念/定义,将其摘录样式设置为边框加填充;对于较长的句子,将其摘录样式设置为仅边框

现阶段mn的摘录样式好像是默认和上一次摘录样式保持一致,需要频繁的手动修改,实在是太过麻烦。现在用ohmymn可以在整理脑图的时候批量修改,但仍然需要自行判断、选中不同的卡片笔记需要什么样式;并且在阅读文档的过程中,摘录样式就会很影响阅读体验了,等到整理脑图笔记的时候再修改样式有一些亡羊补牢的感觉。

建议:可以根据字数/单词数判断是否将mn的摘录样式设置为边框+填充/仅边框/仅填充;字数少的设置为边框+填充;字数多的设置为仅边框。既可以让少数重要的概念保持醒目,也避免大量摘录分散注意力。

与OCR Pro不兼容

AutoComplete用来做英语阅读真的太棒了,感谢开发者。

反馈两个使用这一功能中遇到的两个小问题:

  1. 如果开启了OCR Pro自动在线校正功能的话绝大多数时候自动填充完中文释义又会消失。如果插件能与OCR pro兼容会更完美
  2. 没有手动执行填充单词解释/词频(中文释义)的功能,这一功能应该也可以曲线救国解决问题一。
  3. 暂时发现副词没办法翻译(填充单词解释,词频)

是我的问题,没看仔细,下面是解决方法:

  1. 如果开启了OCR pro的自动在线校正的话,需要在ohmymn插件里打开是否开启了自动矫正
  2. 点击MagicAction里面的补全单词词性,这一功能包含了填充单词解释/词频
  3. 副词和部分单词没法翻译是词库的问题dict.ts,扩充词库是另外的工作了

功能建议:摘录锁定

首先感谢大佬的付出😄,太厉害了!

需求:有时摘录一段文字后,因文字内容有错误或文字内容过于冗余,需要对其进行更改。更改完成后,常常因为文档中摘录选区的再调整(大部分是因为误触),使得摘录内容又变回原样。所以,有没有办法既保留文档的摘录选区,又能锁定脑图的摘录内容,使得脑图的摘录内容不因选区的调整而发生改变?

因为不懂编程,所以也不知道这个功能有没有可行性,难度大不大。再次谢谢!

关于标题别名的建议

目前ohmymn可以给英文单词自动补全词形作为标题别名,也可以通过AnotherAutoTitle插件把符合条件的摘录转换成标题别名。但是在一些外文/专业书籍里的专业名词,自动补全词形里的词汇量不能够涵盖到,而文章里也没有它的别名,只能从维基/Google/欧路词典里面把相应的中文/英文/其它外文的对应概念作为别名,目前把外部的文字内容拖拽进已有的摘录只能形成这个摘录的评论,而实际上是希望它作为标题别名的。现阶段AutoTitle只能把符合条件的摘录转成标题,摘录内容只能来自文章内部,能不能单独开发一个插件把符合条件的评论也转换成标题,或者把它整合到现在的AutoTitle里。感谢大神!

摘录自动合并为标题功能bug

创作者好,感谢你最新的更新,实现了摘录标题自动化生成的功能!

目前使用中出现一个问题:即在只打开“摘录自动合并为标题”功能,却不打开“是单词”和“不含有点号”功能的时候,采用拖拽方式将文本拖入摘录的时候,文本无法自动转化为标题链。只有在打开上述两个功能的时候,才能实现拖拽转文本自动转化标题链的功能。

不知道这是否是一个bug?

希望创作者再接再厉!

Feature: Auto Serial Number

我这里有一个应wslldsdh的需求制作的小插件,打开后可以自动添加序列号到标题前,逻辑和功能都已经实现了,你假如有兴趣可以考虑集成进来,代码可以随意使用:ordered-list

自动矫正后标题没有更新

这涉及到的问题很复杂,我需要整个重构处理摘录这块的代码,这块的逻辑很混乱,需要一点时间。
建议能不打开自动矫正就不打开自动矫正。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.