github pages 博客如何去除 json

How to style JSON block in Github Wiki? - Stack Overflow
to customize your list.
Announcing Stack Overflow Documentation
We started with Q&A. Technical documentation is next, and we need your help.
Whether you're a beginner or an experienced developer, you can contribute.
Is there a way to nicely format/style JSON code in Github Wiki (i.e Markdown preferred)?
Something like this with few colors (or bold) and correct indentation:
5,4912991172
Some color-syntaxing enrichment can be applied with the following blockcode syntax
Here goes your json object definition
Note: This won't prettify the json representation. To do so, one can previously rely on an external service such as
and paste the prettified result in the wiki.
28.2k88693
```javascript
{ "some": "json" }
I tried using json but didn't like the way it looked. javascript looks a bit more pleasing to my eye.
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enabledPages: 1/3
主题 : 【已解决】【内存问题】使用官方释放方法释放动作json,释放不全面。内存越来越大
级别: 侠客
可可豆: 318 CB
威望: 319 点
在线时间: 45(时)
发自: Web Page
【已解决】【内存问题】使用官方释放方法释放动作json,释放不全面。内存越来越大&&&
引用 关于内存不释放。官方已经给出解决方案特此感谢hanrea 和2youyouo2解决办法:cocos2d-x / extensions / CocoStudio / Armature / utils / CCDataReaderHelper.cpp384行 加一行:标红内容elseif(str.compare(&.json&)==0||str.compare(&.ExportJson&)==0)[pre]{CCDataReaderHelper::addDataFromJsonCache(load_str.c_str(), &dataInfo);}CC_SAFE_DELETE_ARRAY(pBytes);}[/pre]如果找不到pBytes。请看368行unsigned char *pBytes = CCFileUtils::sharedFileUtils()-&getFileData(fullPath.c_str() , &r&, &size);;声明的什么就写什么。亲爱的版主。官方工作人员。我公司正在用cocostudio做骨骼动画。游戏内有大量动画。但是我们发现运行几次就会崩溃。最后找到问题。释放内存不全面。 导致运行越久内存越大。直到崩溃。还有个问题就是异步调用。释放内存无效。内存一点都没减少。void HelloWorld::menuCloseCallback(CCObject* pSender){    aaa+=1;    if(aaa== 1){        test = CCSprite::create(&senlin.png&);   //加载森林图片 监控内存变化        test-&setPosition(ccp(0,0));        this-&addChild(test);    }else if (aaa== 2) {        test-&removeFromParent();         CCTextureCache::sharedTextureCache()-&removeAllTextures();   //移出森林图片。 内存恢复原大小    }else if(aaa== 3){        CCArmatureDataManager::sharedArmatureDataManager()-&addArmatureFileInfo(&Armature/arm_10/100.png&,&Armature/arm_10/100.plist&,&Armature/arm_10/10.ExportJson&);//加载骨骼动画文件 检查内存变化。        armature = CCArmature::create(&10&);        armature-&getAnimation()-&setMovementEventCallFunc(this, movementEvent_selector(HelloWorld::Huidiao));        armature-&setPosition(ccp(0,150));        this-&addChild(armature,5);        armature-&getAnimation()-&play(&load&);         CCArmatureDataManager::sharedArmatureDataManager()-&addArmatureFileInfo(&Armature/arm_217/2170.png&,&Armature/arm_217/2170.plist&,&Armature/arm_217/217.ExportJson&);//加载骨骼动画文件        armature2 = CCArmature::create(&217&);        armature2-&getAnimation()-&setMovementEventCallFunc(this, movementEvent_selector(HelloWorld::Huidiao2));        armature2-&setPosition(ccp(150,150));        this-&addChild(armature2,5);        armature2-&getAnimation()-&play(&load&);         CCArmatureDataManager::sharedArmatureDataManager()-&addArmatureFileInfo(&Armature/arm_235/2350.png&,&Armature/arm_235/2350.plist&,&Armature/arm_235/235.ExportJson&);//加载骨骼动画文件        armature3 = CCArmature::create(&235&);        armature3-&getAnimation()-&setMovementEventCallFunc(this, movementEvent_selector(HelloWorld::Huidiao3));        armature3-&setPosition(ccp(300,150));        this-&addChild(armature3,5);        armature3-&getAnimation()-&play(&load&);    }else if(aaa== 4){        armature2-&getAnimation()-&play(&atk&);    }else if(aaa==5){        armature-&getAnimation()-&play(&atk&);    }else{        armature3-&getAnimation()-&play(&atk&);    }}void HelloWorld::Huidiao(cocos2d::extension::CCArmature *armature, cocos2d::extension::MovementEventType type, const char *str){ //移出动画 发现内存没有回原大小。  3个都移出后 内存比原大小增加了0.7MB左右    if(type == COMPLETE){        armature-&removeFromParent();        //armature-&removeFromParentAndCleanup(true);        CCArmatureDataManager::sharedArmatureDataManager()-&removeArmatureFileInfo(&Armature/arm_10/10.ExportJson&);        CCTextureCache::sharedTextureCache()-&removeAllTextures();    }}void HelloWorld::Huidiao2(cocos2d::extension::CCArmature *armature, cocos2d::extension::MovementEventType type, const char *str){    if(type == COMPLETE){        armature-&removeFromParent();        //armature-&removeFromParentAndCleanup(true);        CCArmatureDataManager::sharedArmatureDataManager()-&removeArmatureFileInfo(&Armature/arm_217/217.ExportJson&);        CCTextureCache::sharedTextureCache()-&removeAllTextures();    }}void HelloWorld::Huidiao3(cocos2d::extension::CCArmature *armature, cocos2d::extension::MovementEventType type, const char *str){    if(type == COMPLETE){        armature-&removeFromParent();        //armature-&removeFromParentAndCleanup(true);        CCArmatureDataManager::sharedArmatureDataManager()-&removeArmatureFileInfo(&Armature/arm_235/235.ExportJson&);        CCTextureCache::sharedTextureCache()-&removeAllTextures();    }}[ 此帖被htq在 10:48重新编辑 ]
级别: 风云使者
UID: 183396
发帖: 4830
可可豆: 5556 CB
威望: 5719 点
在线时间: 1804(时)
发自: Web Page
楼主你好,谢谢反馈,这个问题我今天会联系动作编辑器的工程师来跟进,你可以加一下我的Q,方便联系。
请勿再给我发私信啦~~
级别: 新手上路
可可豆: 112 CB
威望: 112 点
在线时间: 47(时)
发自: Web Page
回 1楼(hanrea) 的帖子
我也遇到了同样的问题。。。
级别: 新手上路
UID: 222482
可可豆: 92 CB
威望: 99 点
在线时间: 125(时)
发自: Web Page
我也遇到了同样的问题。。。
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 0(时)
发自: Web Page
我也遇到了同样的问题。。。
级别: 侠客
可可豆: 326 CB
威望: 322 点
在线时间: 136(时)
发自: Web Page
这个确实是有。看下 这个commit :
级别: 新手上路
UID: 240019
可可豆: 220 CB
威望: 202 点
在线时间: 163(时)
发自: Web Page
3.0的也都失效呢。
级别: 侠客
可可豆: 318 CB
威望: 319 点
在线时间: 45(时)
发自: Web Page
官方已经给出解决方案特此感谢hanrea 和2youyouo2
级别: 新手上路
可可豆: 112 CB
威望: 112 点
在线时间: 47(时)
发自: Web Page
楼主,你的问题确认解决了么?内存保持稳定?
级别: 侠客
可可豆: 318 CB
威望: 319 点
在线时间: 45(时)
发自: Web Page
回 8楼(firezym) 的帖子
解决了 以前添加3个释放后 内存会大2mb现在就大0.02mb
Pages: 1/3
关注本帖(如果有新回复会站内信通知您)
3*3+1 正确答案:10
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版利用Jekyll在GitHub Pages上部署博客
利用Jekyll在GitHub Pages上部署博客
开始之前我觉得阮一峰的《》是一个很经典的入门,每个Jekyll初学者都应该先去看一看,另外以及也是遇到问题时首先要查找的站点。需要对Git的基本操作有些了解:Git基本操作[plain]
##设置全局用户名和email,作为每次提交的记录&&git&config&--global&user.name&“name"&&git&config&--global&user.email&“”&&&&##添加一个仓库&&git&remote&add&origin&git@….git&&git&push&-u&origin&master&&&&##当提示权限不够时,添加ssh公钥&&##在用户的.ssh目录下找id_rsa.pub等文件,没有的话去生成&&ssh-keygen&-t&rsa&-C&"”&&&&##设置pull的默认地址&&git&branch&--set-upstream-to=origin/master&&##设置push的默认地址&&git&remote&add&origin&git@….git&&&&##配置别名&&git&config&--global&alias.xx&''&&&&##临时保存工作区&&git&stash&&git&stash&pop&&&&##&回滚&&git&reset&—hard&版本号&&&&##&强行回滚远程服务器&&git&push&-f&&配置别名后会很方便,如果我有一个这样的别名:[plain]
bogon:portfolio&zhangao$&git&config&--global&alias.ci&&commit&-m&&在提交的时候用ci就行了。单个人使用Git,不协同工作的话,还是比较简单的。GitHub PagesGitHub Pages上比较简单,只需要建立一个和你用户名相同的Repository就行了,比如:这样就建立了一个Repository,这样就能通过username.github.io来访问了。你也可以在设置里面选择生成一个默认的页面。下面主要还是说下在使用Jekyll过程中实际的问题评论系统我之前使用的是Disqus,后来感觉速度不怎么样,就换了,多说还是很好用的,适合国内环境。博客搬家我之前没有找到mac版的,就自己做了一个:代码高亮高亮的插件有很多,Jekyll的Pygments就已经超过,使用起来也很简单,在yml配置文件中设置:[plain]
pygments:&true&&然后在需要高亮的代码那里:[plain]
{%&highlight&ruby&%}&&def&foo&&&&puts&'foo'&&end&&{%&endhighlight&%}&&ruby替换为即可。如果设置了pygments之后编译出错的朋友需要再加一条配置:[plain]
excerpt_separator:&""&&这是Jekyll的bug导致的,这样虽然可以用pygments完成代码高亮,却又不能用excerpt取到文章摘要了。最后我使用的是,支持的语言比较多,完全可配置,可定制,能支持Objective-C的高亮:但是和我发表在CSDN上的文章使用的代码高亮插件不一样,我又想要使用这个Sunlight,就只能自己写个用正则查找替换的工具转了:显示分类显示分类:[html]
&h4&分类列表&/h4&&&&&&&&hr&&&&&&&{%&for&category&in&site.categories&%}&&&&&&&li&class="category_list_item"&&a&href="/showCategory.html?categoryName={{&category&|&first&}}"&{{&category&|&first&}}&/a&&({{&category&|&last&|&size&}})&&&&&&&/li&&&&&&&{%&endfor&%}&&显示所有的分类一般都没什么问题,主要在具体分类页面进行处理。基于Jekyll的静态特性,这个地方处理起来不太优雅,我参考了其他人的做法,最后选择将文章列表储存在JSON里面:[javascript]
var&articleList&=&[{%&for&post&in&site.posts&%}&&&&&&&&&&&span&style="white-space:pre"&&&&&&/span&{"title":"{{post.title}}",&&&&&&&&&&&&&&"url":"{{site.url}}{{post.url}}",&&&&&&&span&style="white-space:pre"&&&&&&/span&&&&"date":"{{&post.date&|&date:'%Y-%m-%d'&}}",&&&&&&&&&&&&&&"excerpt":&'{{&post.excerpt&|&strip_html&|&strip_newlines&|&truncate:170&}}'&&&&&&&&&&&&&&{%&if&post.categories&!=&empty&%}&&&&&&&&&&&&&&,&&&&&&&&&&&&&&"categories":[{%&for&category&in&post.categories&%}"{{category}}"{%&if&forloop.last&==&false&%},{%&endif&%}{%&endfor&%}]{%&endif&%}}&&&&&&&&&&&&&&{%&if&forloop.last&==&false&%},{%&endif&%}{%&endfor&%}];&&我在这里判断了文章有没有分类,如果没有分类的话,就不添加到这个JSON里了,另外说下post.excerpt:excerpt 是获取文章的摘要信息,这个信息可以显示在文章列表里面strip_html 是除去HTML标签,因为摘要里面不需要显示图片之类的,纯文本即可strip_newlines 是去掉换行符truncate 这个就是字面意思了,摘要的长度然后在JS里面去取请求的参数,筛选出需要显示的文章,做法比较常规就不说了。如果参数中有特殊符号(比如我就有这样的分类名称:cvs||svn)或是中文(比如“分享”),url就用encodeURI函数转义一下:[html]
&a&href="javascript:void(window.location.href=encodeURI('/showCategory.html?categoryName={{&category&|&first&}}'))"&{{&category&|&first&}}&/a&&&取的时候用decodeURI函数去取。strip_newlines无法去除换行符,或者遇到其他换行符之类的问题比如我有遇到strip_newlines无法去除换行符的问题,如果去不掉的话,某些内容放进JSON的时候,自然而然的就出现问题了,因为不能连接字符串,但是又跨行了。strip_newlines只能去掉Unix的换行符,于是我就再一次使用了我之前写的,做了一次替换:实现分页Jekyll本身对分页限制很多,只支持HTML文件,不支持md,其次,对分类和标签的分页也不支持,这就很令人难受,只能将就用用了。在_config.yml文件里面添加:[html]
paginate:&10&&paginate_path:&"page:num"&&paginate表示开启分页并设置每页的数量;paginate_path是指定分页时Jekyll寻找HTML文件的路径,比如这里设置为page:num,那么Jekyll在分页时,第一页还是你的博客的index.html,第二页就是/page2/index.html,第三页就是/page3/index.html。如果指定的path不存在会自动往上级目录找,直到根目录的index.html,或者这个参数没有设置的话默认值就是page:num。在首页里面对文章进行分页,用一个简单的循环:[html]
{%&for&post&in&paginator.posts&%}&&&&&&&a&href="{{&post.url&}}"&{{&post.title&}}&/a&&&{%&endfor&%}&&为了生成分页的链接,在根目录的index.html文件里面加上:[html]
{%&if&paginator.total_pages&&&1&%}&&&&&&{%&if&paginator.previous_page&%}&&&&&&&&&&&a&href="{{&paginator.previous_page_path&}}"&上一页&/a&&&&&&&{%&endif&%}&&&&&&&&&&&&{%&if&paginator.next_page&%}&&&&&&&&&&&a&href="{{&paginator.next_page_path&}}"&下一页&/a&&&&&&&{%&endif&%}&&{%&endif&%}&&如果想要显示所有的页码:[html]
{%&for&page&in&(1..paginator.total_pages)&%}&&&&&&{%&if&page&==&1&%}&&&&&&&&&&&a&href="/index.html"&{{&page&}}&/a&&&&&&&{%&else&%}&&&&&&&&&&&a&href="{{&site.paginate_path&|&replace:&':num',page&}}"&{{&page&}}&/a&&&&&&&{%&endif&%}&&{%&endfor&%}&&因为第一页是index.html,不是page1,所以要特殊处理一下。这样一个简单的分页就完成了。附分页对象paginator的所有属性:page 当前页码per_page 每页文章数量posts 当前页的文章列表total_posts 总文章数total_pages 总页数previous_page 上一页页码 或 nilprevious_page_path 上一页路径 或 nilnext_page 下一页页码 或 nilnext_page_path 下一页路径 或 nil本来在显示分类页面也准备加上分页的,后来一想,所有的文章信息已经存在JSON里了,做分页也是一个假分页,就作罢了。开始之前我觉得阮一峰的《》是一个很经典的入门,每个Jekyll初学者都应该先去看一看,另外以及也是遇到问题时首先要查找的站点。需要对Git的基本操作有些了解:Git基本操作[plain]
##设置全局用户名和email,作为每次提交的记录&&git&config&--global&user.name&“name"&&git&config&--global&user.email&“”&&&&##添加一个仓库&&git&remote&add&origin&git@….git&&git&push&-u&origin&master&&&&##当提示权限不够时,添加ssh公钥&&##在用户的.ssh目录下找id_rsa.pub等文件,没有的话去生成&&ssh-keygen&-t&rsa&-C&"”&&&&##设置pull的默认地址&&git&branch&--set-upstream-to=origin/master&&##设置push的默认地址&&git&remote&add&origin&git@….git&&&&##配置别名&&git&config&--global&alias.xx&''&&&&##临时保存工作区&&git&stash&&git&stash&pop&&&&##&回滚&&git&reset&—hard&版本号&&&&##&强行回滚远程服务器&&git&push&-f&&配置别名后会很方便,如果我有一个这样的别名:[plain]
bogon:portfolio&zhangao$&git&config&--global&alias.ci&&commit&-m&&在提交的时候用ci就行了。单个人使用Git,不协同工作的话,还是比较简单的。GitHub PagesGitHub Pages上比较简单,只需要建立一个和你用户名相同的Repository就行了,比如:这样就建立了一个Repository,这样就能通过username.github.io来访问了。你也可以在设置里面选择生成一个默认的页面。下面主要还是说下在使用Jekyll过程中实际的问题评论系统我之前使用的是Disqus,后来感觉速度不怎么样,就换了,多说还是很好用的,适合国内环境。博客搬家我之前没有找到mac版的,就自己做了一个:代码高亮高亮的插件有很多,Jekyll的Pygments就已经超过,使用起来也很简单,在yml配置文件中设置:[plain]
pygments:&true&&然后在需要高亮的代码那里:[plain]
{%&highlight&ruby&%}&&def&foo&&&&puts&'foo'&&end&&{%&endhighlight&%}&&ruby替换为即可。如果设置了pygments之后编译出错的朋友需要再加一条配置:[plain]
excerpt_separator:&""&&这是Jekyll的bug导致的,这样虽然可以用pygments完成代码高亮,却又不能用excerpt取到文章摘要了。最后我使用的是,支持的语言比较多,完全可配置,可定制,能支持Objective-C的高亮:但是和我发表在CSDN上的文章使用的代码高亮插件不一样,我又想要使用这个Sunlight,就只能自己写个用正则查找替换的工具转了:显示分类显示分类:[html]
&h4&分类列表&/h4&&&&&&&&hr&&&&&&&{%&for&category&in&site.categories&%}&&&&&&&li&class="category_list_item"&&a&href="/showCategory.html?categoryName={{&category&|&first&}}"&{{&category&|&first&}}&/a&&({{&category&|&last&|&size&}})&&&&&&&/li&&&&&&&{%&endfor&%}&&显示所有的分类一般都没什么问题,主要在具体分类页面进行处理。基于Jekyll的静态特性,这个地方处理起来不太优雅,我参考了其他人的做法,最后选择将文章列表储存在JSON里面:[javascript]
var&articleList&=&[{%&for&post&in&site.posts&%}&&&&&&&&&&&span&style="white-space:pre"&&&&&&/span&{"title":"{{post.title}}",&&&&&&&&&&&&&&"url":"{{site.url}}{{post.url}}",&&&&&&&span&style="white-space:pre"&&&&&&/span&&&&"date":"{{&post.date&|&date:'%Y-%m-%d'&}}",&&&&&&&&&&&&&&"excerpt":&'{{&post.excerpt&|&strip_html&|&strip_newlines&|&truncate:170&}}'&&&&&&&&&&&&&&{%&if&post.categories&!=&empty&%}&&&&&&&&&&&&&&,&&&&&&&&&&&&&&"categories":[{%&for&category&in&post.categories&%}"{{category}}"{%&if&forloop.last&==&false&%},{%&endif&%}{%&endfor&%}]{%&endif&%}}&&&&&&&&&&&&&&{%&if&forloop.last&==&false&%},{%&endif&%}{%&endfor&%}];&&我在这里判断了文章有没有分类,如果没有分类的话,就不添加到这个JSON里了,另外说下post.excerpt:excerpt 是获取文章的摘要信息,这个信息可以显示在文章列表里面strip_html 是除去HTML标签,因为摘要里面不需要显示图片之类的,纯文本即可strip_newlines 是去掉换行符truncate 这个就是字面意思了,摘要的长度然后在JS里面去取请求的参数,筛选出需要显示的文章,做法比较常规就不说了。如果参数中有特殊符号(比如我就有这样的分类名称:cvs||svn)或是中文(比如“分享”),url就用encodeURI函数转义一下:[html]
&a&href="javascript:void(window.location.href=encodeURI('/showCategory.html?categoryName={{&category&|&first&}}'))"&{{&category&|&first&}}&/a&&&取的时候用decodeURI函数去取。strip_newlines无法去除换行符,或者遇到其他换行符之类的问题比如我有遇到strip_newlines无法去除换行符的问题,如果去不掉的话,某些内容放进JSON的时候,自然而然的就出现问题了,因为不能连接字符串,但是又跨行了。strip_newlines只能去掉Unix的换行符,于是我就再一次使用了我之前写的,做了一次替换:实现分页Jekyll本身对分页限制很多,只支持HTML文件,不支持md,其次,对分类和标签的分页也不支持,这就很令人难受,只能将就用用了。在_config.yml文件里面添加:[html]
paginate:&10&&paginate_path:&"page:num"&&paginate表示开启分页并设置每页的数量;paginate_path是指定分页时Jekyll寻找HTML文件的路径,比如这里设置为page:num,那么Jekyll在分页时,第一页还是你的博客的index.html,第二页就是/page2/index.html,第三页就是/page3/index.html。如果指定的path不存在会自动往上级目录找,直到根目录的index.html,或者这个参数没有设置的话默认值就是page:num。在首页里面对文章进行分页,用一个简单的循环:[html]
{%&for&post&in&paginator.posts&%}&&&&&&&a&href="{{&post.url&}}"&{{&post.title&}}&/a&&&{%&endfor&%}&&为了生成分页的链接,在根目录的index.html文件里面加上:[html]
{%&if&paginator.total_pages&&&1&%}&&&&&&{%&if&paginator.previous_page&%}&&&&&&&&&&&a&href="{{&paginator.previous_page_path&}}"&上一页&/a&&&&&&&{%&endif&%}&&&&&&&&&&&&{%&if&paginator.next_page&%}&&&&&&&&&&&a&href="{{&paginator.next_page_path&}}"&下一页&/a&&&&&&&{%&endif&%}&&{%&endif&%}&&如果想要显示所有的页码:[html]
{%&for&page&in&(1..paginator.total_pages)&%}&&&&&&{%&if&page&==&1&%}&&&&&&&&&&&a&href="/index.html"&{{&page&}}&/a&&&&&&&{%&else&%}&&&&&&&&&&&a&href="{{&site.paginate_path&|&replace:&':num',page&}}"&{{&page&}}&/a&&&&&&&{%&endif&%}&&{%&endfor&%}&&因为第一页是index.html,不是page1,所以要特殊处理一下。这样一个简单的分页就完成了。附分页对象paginator的所有属性:page 当前页码per_page 每页文章数量posts 当前页的文章列表total_posts 总文章数total_pages 总页数previous_page 上一页页码 或 nilprevious_page_path 上一页路径 或 nilnext_page 下一页页码 或 nilnext_page_path 下一页路径 或 nil本来在显示分类页面也准备加上分页的,后来一想,所有的文章信息已经存在JSON里了,做分页也是一个假分页,就作罢了。
发表评论:
TA的最新馆藏

我要回帖

更多关于 github pages jekyll 的文章

 

随机推荐