@@ -57,7 +57,7 @@ npm run typora-watch <theme_file_path>
5757
58581 . 在 ` src/themes ` 目录下创建新的主题文件 ` mweb-xxx.scss ` 或 ` typora-xxx.scss `
59592 . 编写样式内容
60- 3 . 如果是 MWeb 主题,还需要在 ` src/themes/config.js ` 中增加主题配置项
60+ 3 . 在 ` src/themes/mweb-config.js ` 或 ` src/themes/typora- config.js ` 中增加主题配置项
6161
6262### 生成 CSS 文件
6363
@@ -79,6 +79,166 @@ npm run compile-typora # 等同于上一条命令
7979
8080注意:传递参数时,必须添加 ` -- ` 分隔符。
8181
82+ ## MWeb 主题开发
83+ 1 . 代码块:` pre code[class*="language-"] `
84+ 2 . 代码块语法颜色:见 ` prism.scss `
85+
86+ ## Typora 主题开发
87+ 注意事项:
88+ 1 . 所有样式内容放在 ` #write ` 块内
89+ 2 . 代码块:
90+
91+ ``` scss
92+ pre .md-fences ,
93+ pre .md-meta-block ,
94+ .md-rawblock-control :not (.md-rawblock-tooltip ) .md-rawblock-input {
95+ color : #f8f8f2 ;
96+ background : #272822 ;
97+ font-family : Consolas, Monaco, ' Andale Mono' , ' Ubuntu Mono' , monospace ;
98+ font-size : 1em ;
99+ }
100+ ```
101+
102+ 3. 代码块指针颜色:`.CodeMirror div .CodeMirror-cursor { border-color : $font-color ; }`
103+ 4. 代码块语法颜色:见 `typora-bear .scss` → `.cm-s-inner {}`
104+
105+ ```scss
106+ // 代码高亮 CodeMirror
107+ .cm-s-inner {
108+ // .cm-meta ?
109+ // .cm-hr ?
110+ // .cm-link ?
111+
112+ .cm-comment {
113+ color : $prism-color-comment ;
114+ }
115+
116+ .cm-property ,
117+ .cm-tag { // html tag,需要在 bracket 之前
118+ color : $prism-color-property ;
119+ }
120+
121+ .cm-bracket , // <、>
122+ .cm-punctuation {
123+ color : $prism-color-punctuation ;
124+ }
125+
126+ .cm-number {
127+ color : $prism-color-number ;
128+ }
129+
130+ .cm-qualifier , // css selector
131+ .cm-string , .cm-string-2 , // 2 什么意思?
132+ .cm-builtin {
133+ color : $prism-color-selector ;
134+ }
135+
136+ .cm-attribute {
137+ color : $prism-color-attr-name ;
138+ }
139+
140+ .cm-operator {
141+ color : $prism-color-operator ;
142+ }
143+
144+ .cm-atom , // null, true, false
145+ .cm-keyword {
146+ color : $prism-color-keyword ;
147+ }
148+
149+ .cm-def , // 变量声明语句中的变量名
150+ .cm-variable ,
151+ .cm-variable-2 , .cm-variable-3 { // 2, 3 什么含义?
152+ color : $prism-color-variable ;
153+ }
154+
155+ .cm-type { // type 什么含义?
156+ color : darken ($prism-color-variable , 25% );
157+ }
158+ }
159+ ```
160+
161+ 5. 任务列表:
162+
163+ ```scss
164+ $primary-color : #353535 ; // 复选框选中时的背景颜色,建议和加粗字体的颜色一致
165+ $del-font-color : #525252 ; // 复选框选中时的字体颜色
166+ $body-bg-color : white ; // 复选框未选中时的背景颜色
167+ $border-color : #bfbfbf ; // 复选框未选中时的边框颜色,建议和表格边框的颜色一致
168+
169+ // task list
170+ .task-list-item {
171+ padding-left : 0.3rem
172+ list-style-type : none ;;
173+
174+ > p {
175+ transition : color 0.3s , opacity 0.3s ;
176+ }
177+
178+ & .task-list-done > p {
179+ color : $del-font-color ;
180+ text-decoration : line-through ;
181+
182+ > .md-emoji {
183+ opacity : .5 ;
184+ }
185+
186+ > .md-link > a {
187+ opacity : .6 ;
188+ }
189+ }
190+
191+ > input {
192+ -webkit-appearance : initial ;
193+ display : block ;
194+ position : absolute ;
195+ border : 1px solid $border-color ;
196+ border-radius : .25rem ;
197+ // margin-top: .1rem;
198+ margin-left : -1.5rem ;
199+ height : 1.2rem ;
200+ width : 1.2rem ;
201+ transition : border-color 0.3s ;
202+ background-color : $body-bg-color ;
203+ }
204+
205+ > input :focus {
206+ outline : none ;
207+ box-shadow : none ;
208+ }
209+
210+ > input :hover {
211+ border-color : $primary-color ;
212+ }
213+
214+ > input [checked ] {
215+ & ::before {
216+ content : ' ' ;
217+ position : absolute ;
218+ top : 20% ;
219+ left : 50% ;
220+ height : 60% ;
221+ width : 2px ;
222+ transform : rotate (40deg );
223+ background : $primary-color ;
224+ }
225+
226+ & ::after {
227+ content : ' ' ;
228+ position : absolute ;
229+ top : 46% ;
230+ left : 25% ;
231+ height : 30% ;
232+ width : 2px ;
233+ transform : rotate (-40deg );
234+ background : $primary-color ;
235+ }
236+ }
237+ }
238+ ```
239+
240+ 6.
241+
82242## Q & A
83243
84244### 如何自定义代码块的主题?
0 commit comments