-
2021-03-14 16:30:24
前一段时间老在做同一个java工程的不同版本代码对比,很多都是因为代码的排版而有差异,最后想出一个办法。对每个版本的代码用同一个规则统一做 一次代码排版,这样互相比较的话就会排除大部分的代码格式差异。哈哈~~
批量排版方法1---在eclipse中直接排版:
在eclipse的Java开发视图中,选中代码的文件夹,然后点右键->Source->Format,可以对整个目录下的java代码做 一次排版
优点:好操作
缺点:时间会很长,并且有时候会导致eclipse的内存不足(我对4000多个文件排版后,eclipse直接死掉了)
批量排版方法2---在命令行中用eclipse做批量排版
eclipse本身就是一个实现了OSGI规范的platform,其中的很多功能都被做成了一个模块(bundle),所以有的功能比如排版可以独立于 eclipse的IDE来执行。
执行排版功能的命令如下:
eclipse -vm -application org.eclipse.jdt.core.JavaCodeFormatter -config
-vm为java虚拟机的路径,如:D:\jdk1.6.0_14\bin\javaw.exe
命令参数说明:
-config 可以用这个参数指定一个排版的模板,如果对一个项目设定了个性化的排版,即所谓的"Enable project specific settings",那么该java项目.settings目录下会有一个org.eclipse.jdt.core.prefs文件,这个就是模板文件,里面存的都是排版代码 的一些设置
指的是要排版的文件或文件夹
命令行使用例子:
eclipse -vm D:\jdk1.6.0_14\bin\javaw.exe -application org.eclipse.jdt.core.JavaCodeFormatter -config ./org.eclipse.jdt.core.prefs ./src
更多相关内容 -
matlab代码排版-hello-world:你好,世界
2021-05-26 15:48:11matlab代码编写你好,世界 2017年3月18日,星期六,@广州 ...LaTeX,用于文档排版,例如纸张和便笺 Stata,用于经济学/指标研究 R,用于数据挖掘,统计信息,也许还有其他内容,尚不确定 对于此帐户及其所有者来说 -
matlab代码排版-Fortran-OOP:在Fortran中实现的面向对象编程的示例
2021-05-26 15:45:12matlab代码排版 是世界上最早出现的计算机高级程序设计语言,主要用于科学与工程计算领域。Fortran的几个重要的版本是: FORTRAN 77,现在仍然可以看到很多使用该版本写的代码,比如Lapack里面的代码。 Fortran 90,... -
matlab代码排版-LaTeX-Beamer-USTB:北京科技大学LaTeX-beamer模板、report课程报告模板
2021-05-26 15:45:07matlab代码排版 Beamer-Style-of-USTB 北京科技大学LaTeX-beamer幻灯片模板 两个模板对在LaTeX中常用的格式,包括itemize, enumerate, description, 图片,表格,代码,伪代码等等,都给出了示例。 两个模板都支持以... -
在线排版工具源代码
2021-03-18 12:43:00在线排版工具功能介绍 1、可以快速排版文章 2、统计文章字数 3、添加空行、删除空行 -
【代码排版】js代码排版工具
2013-02-04 16:59:21【代码排版】js代码排版工具 精简实用,瞬间js排版,相当整齐,再也不怕别人的js代码乱了; -
你熟悉Python的代码规范吗?如何一键实现代码排版
2020-12-04 13:18:04如何一键实现代码排版首先,各个编程语言都有自己的代码规范,统一的代码规范,不仅能提高代码的可读性,还能提升代码的维护性,团队内部的集成也会更加顺畅,同时也能更轻易发现代码的问题。团队编程的目标,所有人...你熟悉Python的代码规范吗?如何一键实现代码排版
首先,各个编程语言都有自己的代码规范,统一的代码规范,不仅能提高代码的可读性,还能提升代码的维护性,
团队内部的集成也会更加顺畅,同时也能更轻易发现代码的问题。团队编程的目标,所有人写的代码像一个人写出来的。
Python之禅
都说Python是一门优雅的语言,那就更少不了装饰和美化。Python在开发之初,已经规范了代码的整体原则,那就是Python之禅。
在交互式解释器中输入import this就会显示 Tim Peters 的 “The Zen of Python”
整体意思就是Python以优雅简洁为目标。具体翻译,大家可以参考下:
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
官网推荐的编码规范
目前比较通用的是pep8规范,大家可以根据下方的官方文档进行学习,其中的PEP8是Style Guide for Python Code,译为:Python代码样式指南。
pep8 官网规范地址
下面是pep8规范中主要的一些要求:
每级缩进用4个空格。
# 对准左括号
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 不对准左括号,但加多一层缩进,以和后面内容区别。
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# 悬挂缩进必须加多一层缩进.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
右边括号也可以另起一行。有两种格式,建议第2种。
# 右括号不回退,个人不推荐
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
# 右括号回退
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
空格或Tab?在 list, dict, tuple, set, 参数列表的 , 后面加一个空格
在 dict 的 : 后面加一个空格
空格是首选的缩进方法。
Tab仅仅在已经使用tab缩进的代码中为了保持一致性而使用。
Python 3中不允许混合使用Tab和空格缩进。
最大行宽限制所有行的最大行宽为79字符。
文本长块,比如文档字符串或注释,行长度应限制为72个字符。
空行function 和 class 顶上两个空行
class 的 method 之间一个空行
函数内逻辑无关的段落之间空一行,不要过度使用空行
不要把多个语句写在一行,然后用 ; 隔开
if/for/while 语句中,即使执行语句只有一句,也要另起一行
导入在单独行推荐:
import os
import sys
from subprocess import Popen, PIPE
导入位置:在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。
导入顺序:标准库,相关的第三方库,本地库。各组的导入之间要有空行。
禁止使用通配符导入:通配符导入(from import *)应该避免,因为它不清楚命名空间有哪些名称存,混淆读者和许多自动化的工具。
括号里边避免空格
# 括号里边避免空格
#推荐
spam(ham[1], {eggs: 2})
# 不推荐
spam( ham[ 1 ], { eggs: 2 } )
逗号,冒号,分号之前避免空格
if x == 4: print x, y; x, y = y, x
函数调用的左括号之前不能有空格
# 推荐
spam(1)
dct['key'] = lst[index]
spam (1)
dct ['key'] = lst [index]
赋值等操作符前后不能因为对齐而添加多个空格
x = 1
y = 2
variable = 3
二元运算符两边放置一个空格
涉及 =、符合操作符 ( += , -=等)、比较( == , < , > , != , <> , <= , >= , in , not in , is , is not )、布尔( and , or , not )。
优先级高的运算符或操作符的前后不建议有空格。
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
关键字参数和默认值参数的前后不要加空格
def complex(real, imag=0.0):
return magic(r=real, i=imag)
包和模块名
模块名要简短,全部用小写字母,可使用下划线以提高可读性。包名和模块名类似,但不推荐使用下划线。
避免采用如下名字
决不要用字符'l'(小写字母el),'O'(大写字母oh),或 'I'(大写字母eye) 作为单个字符的变量名。一些字体中,这些字符不能与数字1和0区别。用'L' 代替'l'时。
有什么工具,可以自动帮我们,快速实现简洁优雅,符合pep8规范的代码呢?
autopep8工具
autopep8是一个开源的命令行工具,它能够将Python代码自动格式化为PEP8风格,可以继承到pycharm中,从而便捷的实现代码排版。
autopep8可以直接使用pip进行安装:
pip install autopep8
PyCharm -> Preferences -> Tools -> Extends Tools -> 点击+加号
在Create Tool的设置如下:
name:随意写一个,建议写autopep8
Programs:autopep8 (前提是你已经安装了哦)
Parameters:--in-place --aggressive --aggressive $FilePath$
Working directory:$ProjectFileDir$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*
在pycharm代码编辑界面,鼠标右键,选择autopep8就能对当前代码进行自动排版。
比如下面这段代码,左侧是原始代码,右侧代码是经过autopep8工具排版过的,怎么样,是不是优雅简洁了很多。
-
微信公众号文章怎么使用代码排版?
2021-06-12 00:43:43有了微信公众号后,就要对微信公众号进行运营,微信运营的方式就是推广文章,好的微信文章是最好的吸粉手段,那微信公众号文章怎么使用代码排版?我们一起来看看下文的例子吧。欢迎大家来阅读。需求简单介绍下西窗烛 ...有了微信公众号后,就要对微信公众号进行运营,微信运营的方式就是推广文章,好的微信文章是最好的吸粉手段,那微信公众号文章怎么使用代码排版?我们一起来看看下文的例子吧。欢迎大家来阅读。
需求
简单介绍下西窗烛 App
的信息结构,这是一款古诗词赏析应用,内置了很多经典诗词,用户可以围绕诗词发表三种类型的内容:笔记(文字)、写字(图片)、语音(音频)。
需求就是,如何实现一款工具, 让“UGC->微信公众号文章”这个过程尽量自动化 。
我想,这也是机器文明的理想之一:让机器人做它们最擅长做的事情,将人类从单调的工作解放出来,获得更多的自由去做更有趣的事情。
首先我们分析一下整个过程,如果没有机器的参与,我要怎样做这件事?大概有以下的步骤:
选择:从 UGC 中选择优质内容
排版:将内容排版成微信公众号文章
发表:将文章发表到公众号上
哪些步骤是机器可能完成的?其实都可以:
选择:UGC 已有点赞数、评论数等评价指标,机器可以通过这些指标判断是否为优质内容
排版:机器可以将内容拼接成 HTML 代码段,并赋予 CSS 样式
发表:机器可以每天定时将排版好的文章上传到微信,并自动发表
以上基本是最理想的情况,即整个过程完全无需人的参与,100%
由机器完成。无论可能遇到怎样的现实约束,我们可以先把最理想的情况描绘出来,然后去探索。
选择
按上面的分析,选择是完全可以由机器完成的,可以根据 UGC
的点赞数、评论数计算出一个质量指数,超过一个阈值即标记为优质。但这个过程,机器可能做得不好,比如点赞可能是刷出来的、评论可能是互相对骂(当然,如果加入语言情感分析,是可以解决这个问题,然而这就太麻烦了)。权衡之后,我觉得
选择 还是自己来做,花不了太多时间,效果却可以比机器好得多。
并不是机器能够做,就让它做。需在两个指标:(1)能在多大程度上节省人力(2)完成效果如何 进行权衡后,再做决定。
排版
排版这件事,会耗费太多的人力,而机器完全可以做到人可以达到的效果,那就让它去做吧。
所以我们要达到的效果是:选择内容,自动生成微信文章。这是一个典型的数据驱动 UI 的结构,使用 React、Vue 这些 data-driven
的前端框架再适合不过。
我对 React 比较熟一点,所以用到了 React。整个思路非常简单:从服务器端加载当天的 UGC
数据,显示在左边,然后提供一个“选择”按钮,选中的数据就会在 React 的驱动下自动生成 HTML,呈现在右边:
具体代码就不贴了。有个小坑说一下,微信不支持 div 标签,解决办法是用 section 标签作为替代。
素材上传
微信不允许使用外链的音频、图片,所以文章中的音频、图片都需要上传到素材库。好在微信已经提供了用于管理素材的 API( 微信文档 ),你可以通过
Ajax 来调用,也可以直接用各语言的微信 SDK,比如 Node 的 wechat-api 、Python 的 wechat-python-sdk
。所以这个过程也是非常适合机器去做的。
微信对上传的素材有挺多限制:
图片:大小不超过 2M,支持bmp/png/jpeg/jpg/gif 格式
语音:大小不超过 5M,长度不超过 60 秒,支持 mp3/wma/wav/amr 格式,每篇文章仅限插入一条语音
对于图片来说,格式不是问题,问题是如何保证图片的大小不超过 2M?我的思路是对图片的宽和高进行限制,均不超过
1500px,经验表明,这种尺寸的图片大小一般都不会超过 2M。
对于语音来说就麻烦了,首先是格式,微信只支持这四种格式的话,那就需要自己来做格式转换了,我用到了 FFmpeg 这个库,在服务器上执行 ffmpeg
命令即可:
import shutil
import os
filename = url.split('/')[-1]
filename_without_extension = filename.split('.')[0]
download_path = '/tmp/' + filename
convert_path = '/tmp/' + filename_without_extension + '.mp3'
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(download_path, 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
if not any([url.endswith(extension) for extension in ['.mp3', '.wma',
'.wav', '.amr']]):
os.system("ffmpeg -y -i " + download_path + " " + convert_path)
格式问题还是能够解决的,然而微信对音频的大小 & 时长限制就很头疼了,因为用户产生的语音肯定会超过 1
分钟。这样的话,音频的上传就无法自动化了,只能人工上传(人工上传没有大小和时长的限制)。
好吧,理想丰满,现实骨感...不过没关系,至少我们曾经努力过 :)
最终的操作界面如下所示,多了2个按钮:“上传图片”、“下载音频”:
整个排版的过程就是:
点击“选择”按钮选择内容
点击“上传图片”,将文章中的图片上传到微信,并替换原有的 url
点击“下载音频”,下载转换格式后的语音文件
发表
排版完成后,就可以在微信公众号发表了。接下来要做的,就是如何将排版结果上传到微信的“图文素材”。这方面的接口微信已经有了( 微信文档-新增永久图文素材
),但问题在于,如何将 CSS 内联到 HTML 标签中,大概有 2 种方案:
手写内联 CSS
使用外部 CSS,生成文章时,通过代码将 CSS 插入到 HTML 中
第一种方案最直接。第二种方案最优雅,比如可以使用 Python 的 premailer 、 pynliner 来进行这种转换。
如果你既不想写内联 CSS,又觉得样式转换太麻烦,还有第三种方法:手动复制网页上的文章,粘贴到微信编辑器上...好吧,我就是这么做的...
对了,还可以用下面的代码帮你自动选中并复制到剪切板:
var selection = window.getSelection();
var range = document.createRange();
// 选中
range.selectNodeContents(document.getElementById('wechat-post'));
selection.removeAllRanges();
selection.addRange(range);
// 复制
document.execCommand('copy');
不幸的是,Chrome 不支持第三方 js 执行 document.execCommand('copy')
,有一些解决方案,但太麻烦,就没折腾了。
自动选中的效果如下:
按下复制键(Ctrl/Command + C),粘贴到微信编辑器就可以啦~
程序员是懒惰的,一旦发现某个事情重复而枯燥,就会尝试用技术的方式去尽量它自动化起来,节省的时间,就可以去做自己更感兴趣的事情啦。
你可能会觉得自动化是一件非常稀奇的事情,但其实不是,生活的方方面面都有自动化的存在,比如洗衣机、网购、打电话,可以说有机器、有代码、有技术的地方,就有自动化。
如果从个体的视角去看待自动化,其实可以把自动化理解为:将某件事情 委托 给外界去做,个体只需 发出指令、接收结果
。那么,即使某个过程有人类的参与,也可以说是自动化的,比如你通过美团点一份外卖,外部世界就会自动帮助你完成这个过程(外卖软件、餐厅、配送人员),做饭的时间因此被节省,你只需要在敲门声响起的时候,说声“你好,谢谢!”,就拿到了自动化的成果:一份便当。
自动化无处不在,并且随着人工智能技术的不断发展,会越来越深刻地影响每个人的生活。
但从人的角度讲,重要的不是一件事情是否能够自动化,重要的是选择。一件事情,即使完全可以 100%
自动化(而且可能比你做得更好),但只要你喜欢、觉得有意义,就完全可以不自动化。
你饿了,你想美餐一顿,你完全可以拿起手机点一份外卖。但如果你喜欢做饭,享受这个过程,就完全没必要节省时间。因为时间,就应该浪费在你觉得有意义的事情上。
那些你选择不自动化完成的事情,充实了你的一生。
这就是微信公众号文章怎么使用代码排版?的全部内容,希望能够对需要的朋友有一些帮助,想要了解更多的微信素材,可以访问微微风网站哦!
推荐阅读:
-
vb6 源代码排版工具
2013-09-05 15:39:12强大的vb6源代码排版工具,集成在vb6中使用,所见即所得的排版工具,自动对齐,自动缩进等等,在打开vb6源代码以后,鼠标右键菜单,选择此工具,排版,即可把vb6源代码调整的非常整齐美观。 -
office2016 word 代码排版
2019-07-02 11:12:22【参考资料】 https://www.xiazaiba.com/jiaocheng/27428.html ... ... 在word中代码排版 将代码文件用Notepad++打开,选中要复制的代码,右键如图选择。 Ctrl+v 粘贴到word...【参考资料】
https://www.xiazaiba.com/jiaocheng/27428.html
http://www.docin.com/p-1811661594.html
http://xinzhi.wenda.so.com/a/1521463451617025在word中代码排版,效果图:
将代码文件用【Notepad++】打开,选中要复制的代码,右键选择,如下图:
【Ctrl+v 】粘贴到word。
选中代码,进行如图操作,打开【底纹】设置。
选择【底纹颜色】和【段落】,点击确定。
效果图:
想要四边加【黑框】,选择【外侧框线】,如下操作:
效果图:
【去掉波浪线】,操作如下:
选择【审阅】-【拼写和语法】-【全部忽略】
效果图: -
L3-019 代码排版 (30')
2019-03-16 12:04:36L3-019 代码排版 题目分析: 即将一行字符串处理为满足一系列要求的格式进行输出 具体要求如下: 须考虑{{{{{}}}} 默认程序起始没有缩进;每一级缩进是 2 个空格; 每行开头除了规定的缩进空格外,不输出... -
L3-019 代码排版 (30 分)-PAT 团体程序设计天梯赛 GPLT
2021-10-15 15:38:01为了对付这种选手,现请你编写一个代码排版程序,将写成一行的程序重新排版。当然要写一个完美的排版程序可太难了,这里只简单地要求处理C语言里的for、while、if-else这三种特殊结构,而将其他所有句子都当成顺序... -
js代码排版
2012-11-10 17:46:41javascript代码自动排版,让你摆脱代码混乱不堪的局面 -
代码排版工具Uncrustify使用说明.参考分享.doc
2020-11-11 20:40:15开发管理平台专项 代码排版工具 Uncrustify 使用说明 设备型号 产品代号 项目代号 部 门 烽火通信科技股份有限公司宽带产品部 拟 制 王玮 2017 年 10 月 27 日 审 核 年 月 日 批 准 年 月 日 目 录 1. 版本记录 ... -
【CCCC】L3-019 代码排版 (30分),大模拟
2020-10-22 17:30:47L3-019 代码排版 (30分) 某编程大赛中设计有一个挑战环节,选手可以查看其他选手的代码,发现错误后,提交一组测试数据将对手挑落马下。为了减小被挑战的几率,有些选手会故意将代码写得很难看懂,比如把所有回车... -
Typora中的代码块中代码排版错乱
2021-04-14 15:34:18ctrl+A全选中代码,使用组合快捷键shift+tab即可自动排版 -
Vscode下vue文件代码排版修改
2020-12-04 15:43:39最近学习vue 用的是vscode,感觉自动格式化代码很乱 所以网上搜索了一下设置 未设置之前的效果 设置之后的效果 具体设置如下 -
VB代码:自动排版,生成输出到Word.rar
2019-07-09 20:59:04vb源码实现文字自动排版并生成Word,最近一直在做核磁图像工作站导出到word模板,终于找到了一个功能简单的vb方法,能够把诊断报告导出到word中,这个源代码真不错,推荐给大家吧。 -
matlab代码排版-QM_Algorithm:Matlab中的Quine–McCluskey算法
2021-05-26 15:46:55matlab代码编写QM_算法 Matlab中的Quine–McCluskey算法。 它是在半年前完成的,此后没有进行任何优化。 特征 哈恩的第一个GitHub存储库 朴素的Matlab编码(具有184行的单个函数) 天真的LaTeX排版(实际上是我第一... -
代码排版工具Artistic Style的使用
2019-08-14 17:02:02代码排版工具Artistic Style的使用,介绍了其一般性的用法。。 -
L3-019 代码排版 (30 分) 别看 没改完
2019-03-08 18:45:30太复杂了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 不做了 #include<iostream> #include<cstdio> using namespace std; string s;...... -
VBA代码排版工具
2017-11-09 22:22:58VBA代码排版工具下载 -
vb代码排版优化工具
2011-06-08 14:24:56vb代码编写排版小工具,可自动缩进,注释等。。。 -
L3-019 代码排版 (30 分)
2019-03-26 09:24:00某编程大赛中设计有一个挑战环节,选手可以查看...为了对付这种选手,现请你编写一个代码排版程序,将写成一行的程序重新排版。当然要写一个完美的排版程序可太难了,这里只简单地要求处理C语言里的for、while、if-... -
代码排版和文件处理工具
2010-05-24 17:41:31此工具可以对选定文件夹中的文件进行排版操作,免除人工排版之苦。 在选定文件夹的文件中查找指定的目标字符串,并打印出行号,不需要借助资源管理器,提高了搜索效率。 对文件夹连续进行复制、压缩和删除操作,实现... -
Latex下代码的排版
2021-12-12 16:59:58showspaces=false, showstringspaces=false, showtabs=false, tabsize=2 } \lstset{style=mystyle} \begin{document} %% 下面为具体代码 \begin{lstlisting}[language=Python, caption= DataGen] def gen_datas... -
keil代码排版问题
2022-01-11 10:51:14keil工程代码缩进有的不是按照四个空格缩进,一行一行的Tab键很麻烦,可以设置一下自动排版,以后只要在打开的.c/.h中,点一下“自动排版”,那么整个文件就会自动排好了。 方法: 1) 首先下载插件Artistic Style ... -
一句代码搞定按钮多次点击以及排版样式
2021-07-09 12:23:48一句代码搞定按钮多次点击以及排版样式 -
SVG排版公众号文章〖点击图片左右晃动〗模板代码
2021-08-27 10:19:10SVG排版公众号文章〖点击图片左右晃动〗模板代码