CNode

介绍下我的 Cirru 项目, 一套基于缩进的语法

Jjiyinyiyong发布于12 年前最后回复12 年前14 回复6561 浏览0 收藏

Cirru 是我的个人项目, 定义了一套基于缩进的语法, 然后这个语法很容易解析到语法树, 就可以用来玩和做一些比较有趣的事情, 但是我发现最有用的功能是用 Cirru 来替代 HTML 语法生成 HTML

比如这样一段 HTML, 不考虑缩进的话:

<meta charset="utf-8">
<div class="demo-a demo-b" data="root node">demo of text
  <span>nothing</span>plain text</div>
<div id="entry" class="c demo"></div>
<div class="demo"></div>
<div id="demo">content</div>
<div class="class-a"></div>

我可以在 Cirru 的语法上加上一些特殊符号, 写成这样:

meta (:charset utf-8)
div (:class demo-a demo-b)
  = demo of text
  :data root node
  span $ = nothing
  = plain text
#entry.demo (:class c)
div.demo
div#demo $ = content
.class-a

主页刚刚更新 http://cirru.org/ GitHub 主页是 https://github.com/cirru 一个 Twitter 帐号 https://twitter.com/cirrulang

页面上都是抓子项目 README 生成的文档,,, 都是英文的... 相关的项目有下面这些.. 都是很小的项目,, 但是数量看起来, 呵呵:

  • Parser
    • Cirru Parser in CoffeeScript
    • Cirru Parser in Go
  • Evaluater
    • Evaluater in Go
    • Evaluater in CoffeeScript
    • Cirru Shell
    • Cirru Table: concept of debugging
  • Converter
    • Convert JSON to Cirru
    • Convert Cirru to Mustache
    • HTML templating in Cirru
    • Write JavaScrip AST with Cirru
  • Editor Support
    • Sublime Text Package
    • Cirru Editor
    • Brackets Package
    • CodeMorror support
    • Ace Editor support
    • Atom Editor support
  • Highlighting
    • Rainbow Plugin
    • Highlight.js fork with Cirru syntax
    • Pygments fork with Cirru syntax
    • Custom-made Syntax Highlighting
查看回复

回复 (14)

X
xieren58#1·12 年前

又一个jade么?性能呢

J
jiyinyiyong#2·12 年前
引用 xieren58又一个jade么?性能呢

我的功能少了一个数量级, 所以还没想过去测试性能.. 要不给的 case 我用 Cirru HTML 写对应的看看?

B
booxood#3·12 年前

是有多不想直接写HTML啊。。。

J
jiyinyiyong#4·12 年前
引用 booxood是有多不想直接写HTML啊。。。

说到关键了, 但还可以再深入一点, 我造这个语法的原因, 花括号和尖括号这类语法, 一来干扰视线, 二来干扰思考代码的流程, 不能忍

X
XadillaX#5·12 年前

生成html的话让我想起了jade

P
Pana#6·12 年前

高大上的东西, 这个不好搞呀, 加油

J
jiyinyiyong#7·12 年前
引用 Pana高大上的东西, 这个不好搞呀, 加油

看起来比较酷, 不过不前搞的没涉及深层的知识, 暂时还可以

W
waksana#8·12 年前

特别好

X
xiuxu123#9·12 年前

看来有很多人不喜欢括号啊,甚至都有点极端了,

J
jiyinyiyong#10·12 年前
引用 xiuxu123看来有很多人不喜欢括号啊,甚至都有点极端了,

嗯, 做出来可以不用, 但是应该有人去做.

X
xiuxu123#11·12 年前
引用 xiuxu123看来有很多人不喜欢括号啊,甚至都有点极端了,

@jiyinyiyong 你那么不喜欢括号啊,原生的不是挺好的吗!

J
jiyinyiyong#12·12 年前
引用 xiuxu123看来有很多人不喜欢括号啊,甚至都有点极端了,

@xiuxu123 不好. 看看 Jade 仓库 Star 的数量就知道不是少数人不喜欢 HTML 的语法 https://github.com/visionmedia/jade/

X
xiuxu123#13·12 年前
引用 xiuxu123看来有很多人不喜欢括号啊,甚至都有点极端了,

@jiyinyiyong 你不能这样理解啊,看star数量就觉得人多啊,全球那么多开发者,点star毕竟还是只有那么一部分的,还有很多没有点的呢。我这里没有别的意思,就是觉得你太执着了。

J
jiyinyiyong#14·12 年前
引用 xiuxu123看来有很多人不喜欢括号啊,甚至都有点极端了,

@xiuxu123 嗯, 大部分的人是不能像我这样的, 我觉得总得有那么一个两个去探索. 6k+ 不是小的数量了. GitHub 上能到这程度的项目没有多少个.

参与回复
登录后即可参与回复。登录