简单了解onetastic宏开发

onetastic宏与VBA相近,接下来基于一个实例简单了解一下onetastic的宏开发

我习惯用OneNote编写笔记,并且使用缩进进行排版,但是当我将onenote的笔记复制到博客园的markdown编辑器时,发现缩进都没了。(当然,现在如果我要把OneNote笔记转移到博客园,那么我会选择使用TinyMCE5编辑器

 

OneNote中的内容如图示意:

段 落 一 缩 进 
段 落 二 缩 进 
段 落 二 的 字 段 落 缩 进

 

这是复制到博客园的markdown编辑器的效果:

I 
汶 是 标 题 
段 落 一 缩 进 
段 落 二 缩 进 
段 落 一 的 字 段 落 缩 
Aa 
A 
a 
HI 
H2 
H3 
H4 
H5 
H6 
O 
0 
是 标 题 
落 一 缩 进 
落 二 縮 进 
落 二 的 字 段 落 缩 进

 

这其实涉及一个老生常谈的问题——markdown中如何缩进,答案是使用“   "

在段落前加上一个“   ”就等价于一个缩进

 

所以只需要在OneNote的段落文本前根据缩进量加上“   ”就行了,那么要怎么加呢?

考虑到笔记中存在大量的缩进,而且每个缩进的缩进量不同,所以最好的办法是使用onetastic的宏进行自动添加。

 

具体的思考如下:

首先百度了一下onetastic的宏代码,看了一下别人的教程,通过查看官方文档以及例子初步掌握语法(如果之前接触过VBA,那么会感觉很熟悉)

开发onetastic宏的官方帮助文档

Welcome - Onetastic Macro Documentation (getonetastic.com)

相关的中文教程

onenote三方插件Onetastic :内置对象与函数解析 | 小斯想 (cas01.com)

 

从教程以及官方文档中可以知道onetastic能读取到段落Paragraph的缩进indent,此时可以先去看看有没有人已经造了轮子,查看onetastic的商店

输入MD或者markdown 但是都没有结果,搜索缩进也没有结果,但是indent还是有点收获。

Macros from Macroland 
Less Popular (6) 
Indent Paragraphs 
Set rpm 
Indenting+Style 
prio 
z 
indent 
Popularity 
A q. Remove All Indents 
From All Paragraphs 
First line indent 
Set rpm Indenting

 

通过查看别人写好的“Remove All……"的代码,发现就是很简单的foreach循环,所以直接在别人的代码上进行修改,添加if判断,然后直接使用语法糖 + 进行字符串拼接,最终得到了需要的自定义宏

 

虽然有点麻烦,但是效果还是不错的:

- Macro Editor 
Help 
File Edit View Insert Function Debug 
"    
"    
Function Main() 
1 Expression 
2 For 
3 ForEach 
5 Else If 
6 Else 
7 Switch 
8 Case 
9 Default 
ForEach ($ParagraphObject_1 in GetCurrentPage())) 
If 
If 
If 
If 
($ParagraphObject 
$ParagraphObject 
($ParagraphObject 
$ParagraphObject 
($ParagraphObject 
$ParagraphObject 
($ParagraphObject 
$ParagraphObject 
1 
1 
1 
1 
1 
1 
1 
1 
indent 
text 
indent 
text 
indent 
text 
indent 
text 
1) 
"    
2) 
4) 
$ParagraphObject_1. text 
&emsp ; &emsp ; 
     " + 
"         " + 
$ParagraphObject_1. text 
$ParagraphObject_1. text 
$ParagraphObject_1. text

 

效果图:

   
   
     

 

此时直接复制到博客园效果:

 
  gem sp ; 
  gem sp ; 
gemsp gemsp;  
 
简而言之,根据自己的需求,去分析需要宏自动进行哪些处理,通过查看官网文档确定需要操作的元素是否存在以及相关的属性,然后在商店查看是否已经有造好的轮子可以拿来修改。
宏作为脚本,是比较个人定制化的,如果发现别人写的轮子不太匹配需求,不妨自己动手造一个
posted @ 2021-08-31 22:56  夏·舍  阅读(478)  评论(0编辑  收藏  举报