让写作省心一点——Markdown和CSS实践
1 引言
今天这篇推送和以往不太一样,乍一看就能发现格式有了变化。没错,这是我专门设计的品牌模板,也就是本公众号以后创作的文章可直接套用,获得一致的风格样式。
除此以外,文章里的全部元素(包括标题、表格、图片、列表、引用等)都能直接复制到其它博客平台(如wordpress、CSDN、博客园、知乎等)发布,且无需重新排版或上传图片。
本文中,我会先简要地介绍两个概念——Markdown和CSS——然后介绍一个通过编辑器软件Typora把它们结合起来使用,从而提升撰写和发布文章效率的方法。写文章的过程,对微信公众号平台来说,有近似“所见即所得”的体验。连内容带格式,写完直接复制粘贴到编辑器就可以发布了。
话不多说,我们开始吧。
2 保留格式的Markdown
当我们辛辛苦苦写完一篇图文后,如果想到不同的网站发布,用传统方式会很麻烦——格式需要重新调整,图也需要重新上传——而Markdown语言可以解决这个问题。
2.1 MarkDown语言
Markdown是一种可以使用普通文本编辑器编写的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。
——百度百科
假设我们在A网站的Markdown编辑器中,使用Markdown语法把一段文字标记为“一级标题”,那么当我们把这段内容复制到B、C、D网站,它同样也会被识别为一级标题,而不会被误认为普通正文、引用或链接等其它元素,也就是说,格式可以保留。下面是一个例子。
上图中彩色符号即为Markdown标记
把文字和Markdown标记全选复制,粘贴到各个网站或平台的Markdown编辑器中,就能在预览界面看到正确格式了,如下图所示:
右图展示了实际呈现效果
至此,文本的一次书写、多次使用,就实现了。
可能大家会疑惑:难道写文章时,还需要额外记忆和输入各种符号?不用担心,在电脑和手机端,分别通过快捷键和点击屏幕就行了,无需手打,各类Markdown编辑器通常都支持。
除了上述便于复制的优点以外,Markdown同样改变了写作体验。它可以使得我们在手不离开键盘的情况下,既能输出内容,又能排版,从而提高效率。
2.2 Markdown支持的常见格式
Markdown所能标记的文字格式,对于普通写公众号或博客的需求已经基本够用,以下列出一部分常用的:
- 标题,从H1到H6,字体大小递减
- 有序/无序列表
- 引用
- 代码块
- 公式块
- 分割线、脚注、链接
- 简单表格
本文就完全是用Markdown来写的。到目前为止,已经出现了标题、引用、无序列表,在下文会有更多格式出现。
2.3 图床
之前的叙述都是关于文字,下面说图片。图片对于内容表达的重要性不言而喻,一篇文章中可能含有多达数十张图片。当同一篇文章在不同平台要发布时,按原始方法,需要把图片分别在不同地方一张张重新上传并插入至正确位置,非常繁琐。要解决这个问题,需要使用图床。
图床就是专门用来存放图片,同时允许你把图片对外连接的网上空间。
——百度百科
图床是专门存放图片的地方,其中每张图片都会得到一个URL地址(在网络上的唯一地址,类似于网站地址),写文章时填写该地址就找到对应的图片并插入。因为图片的URL是唯一的,所以我们在Markdown代码中对图片的引用,无论复制到哪个Markdown编辑器都起效(除非该网站禁止图片外部链接)。
本文用到的所有图片都存放在七牛云图床的10GB免费对象存储空间中,但七牛云仅提供一个月的临时域名供测试,如果想长期使用,就需要绑定中国大陆已备案的域名。域名备案需要有域名和服务器,有一定成本产生,我会把相关经验放在本文的附录部分。也有免费图床方案,但研究它们的时间成本过高,我没有采用。
3 决定排版样式的CSS
Markdown可以定义文章中内容属性——这句话是正文,那句话是标题——整篇文章都安排得明明白白,但它不能定义它们的外观,比如一号标题的大小,是什么颜色,有没有边框等。这些是由CSS完成的。
3.1 CSS语言
CSS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言)的一个应用或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
——百度百科
听起来,CSS是计算机语言,对普通人来说太复杂,但其实它很容易上手,用记事本就能写,把后缀名改为.css就可以。下面举个例子。
h3 {
font-size: 1em;
/*字号*/
line-height: 1.43;
/*行高*/
text-shadow: 0.08em 0em rgb(144,174,176);
/*字体阴影粗细、方向、颜色*/
padding-left:3px;
/* 左缩进 */
}
这就是本文中3号标题的css代码。我们把字号,行高的数字改改,颜色换一个rgb值或16进制值,再保存,就能改变相应样式。所以,在现成的CSS模板上稍加修改,是效率最高的方法。
3.2 我的CSS规范
我用下面两个“表格”列出本文的CSS规范,你们可以很容易地看出它们的“身份”不是图片。另外,样式上有一些瑕疵,不够美观。其实,这一方面是因为Markdown本身对于表格的编辑功能有限,另一方面是因为受到了微信公众号的默认CSS规范的影响。
颜色规范如下:
主题 | 内容 | 备注 |
---|---|---|
主品牌色 | 红色 | H2标题 |
副品牌色 | 青色1 | 引用 |
字体色 | 深灰 | |
辅助色 | 淡灰 | 分割线、表格 |
备注色 | 青色2 | 备注、文字阴影 |
模块色 | 青色3 | H1标题 |
HTML元素规范如下:
元素 | 属性 | 用途 |
---|---|---|
H1 | 斜体+阴影 | |
H2 | 主题色边框+粗体 | |
H3 | 字体阴影 | |
H5 | 备注色,缩小字符间距 | 图片注解 |
H6 | 引用色、斜体、右对齐 | 作者、出处等 |
有序列表 | 第一层数字、第二层小写字母 | |
引用 | 引用色、斜体 |
4 结合Markdown与CSS
4.1 Typora
至此,好戏终于即将上演。给大家介绍一款软件——Typora,它有Mac版和Windows版,目前还在测试阶段,是免费的。
首先,它是一个写作体验良好的Markdown编辑器。其次,它可以调用CSS文件来更改显示效果——我们可以自定义CSS文件来建立个人风格。最后,图文写完后可以直接全选复制,粘贴到各类支持Markdown的编辑器中。对于微信公众号来说, 最后展现效果绝大部分和Typora中写作时相同。
4.2 Typora的主题选项
主题实质为调用css文件
下面,通过动图来感受一下,同样的内容在不同主题下的效果。
如图,选择不同主题可立刻改变全文排版
4.3 写作体验
下面是我录制的一段Demo动画。可以看到,通过简单的快捷键,就可以实时地调整格式+样式。写文章真正有了行云流水的感觉。
主要内容到这里就结束了,希望对大家有用。如果有更多内容想探讨,可以给我号内留言,我知道的都可以分享。下面是附录,额外补充一些技术信息。
附录
关于域名备案
为了使用图床,我采用的是阿里云的域名+服务器+域名备案服务。步骤如下:
- 阿里云购买ecs云服务器:新人第一次购买有优惠(3年不到200),到期后更换最便宜的即可。(分钟级)
- 阿里云购买域名:按需选择,便宜的贵的都有,越短越贵。(秒级)
- 阿里云备案产品服务,提交备案:过程中如遇到域名曾经备案过持有人,须办理域名过户。(小时级)
- 阿里云备案初审。(1天内客服会打电话确认信息)
- 管局审核,大约10天开通成功,收到通知短信提示将已备案标识放置在网页中。
文章多发的其它方法
我试过在Word里面编写图文,通过插件导入的方式上传到公众号或者Wordpress博客,这种方法使用场景有限制,大多数网站都没有这样的插件,而且操作毕竟繁琐,不推荐。
参考资料推荐
https://zhuanlan.zhihu.com/p/97868759
- 介绍markdown多平台发布及七牛图床使用
- 关于公众号的排版规范和CSS
- 颜色16进制和RGB转换
原文地址:https://www.cnblogs.com/gujin/p/12909163.html
- Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合
- Kafka的生产者和消费者代码解析
- Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout
- 作为完美主义者(强迫症)如何将linux的eth1网卡修改为eth0网卡
- 【入门篇】一个小白在Jetson TX2上安装caffe的踩坑之旅
- 【入门篇】Jetson TX2深度学习Inference初体验
- zeromq的安装,部署(号称最快的消息队列,消息中间件)
- OpenDaylight新建HelloWorld工程并集成版本
- 摸索出来的chrom调试前后台数据(Java&&Ajax)交互的方法分享一下咯!!!
- 机器学习:单词拼写纠正器python实现
- java.lang.Exception: 资源处理失败,失败原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown
- Server Tomcat v7.0 Server at localhost failed to start.
- Ovs+Dpdk简单实践
- Spark入门,概述,部署,以及学习(Spark是一种快速、通用、可扩展的大数据分析引擎)
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Android编程之创建自己的内容提供器实现方法
- Android自定义View圆形和拖动圆、跟随手指拖动效果
- Android开发之OkHttpUtils的具体使用方法
- Xshell5连接虚拟机中的Linux的方法以及失败原因解决
- Android 多线程的实现方法总结
- Android编程之SQLite数据库操作方法详解
- 浅谈android组件化之ARouter简单使用
- Android ScrollView实现下拉弹回动画效果
- Android实现用文字生成图片的示例代码
- Android bindservice失败解决方法
- Android 悬浮窗权限各机型各系统适配大全(总结)
- Android中Fragment相互切换间不被回收的实现方法
- Android手机管理工具类详解
- 通过代码学Sutton强化学习第四章动态规划
- android通过okhttpClient下载网页内容的实例代码