其它
Account
属性
属性名 | 说明 |
---|---|
id | 当前已登录账户的账户 ID |
is_login | `True/False`, 当前是否出于登录状态 |
is_admin | `True/False`, 当前登录用户是否是网站管理者(即所有者) |
sites | 获得当前已登录账户所拥有的站点列表 |
clouds | 获得当前已登录账户所关联的云端服务列表 |
基本函数
函数名 | 接受参数 | 返回值 | 说明 |
---|---|---|---|
need_login | 无 | 空字符 | 要求当前页面必须出于登录状态才能被访问到 |
need_admin | 无 | 空字符 | 要求站长处于登录状态的时候才能被访问到 |
login | callback_url='/' | 登录的 HTML 代码片段 | `callback_url`是登录成功之后需要跳转到的页面地址 |
logout | 无 | 页面跳转 | 退出当前已登录的账户 |
create_site | redirect_url=None | HTML 片段或页面跳转 | 在用户登录的状态下,创建一个网站,成功后跳转到到某个指定 URL (redirect_url) |
get_site | site_id | site 数据对象 (dict) | 获得当前账户下的某个 site 对象 |
delete_cloud | cloud_id | 空字符串 | 作用: 取消已经关联的某个 Cloud 服务;这个一般要与`account.clouds`配合使用 |
注意: 只有在当前网站在设置中设定了sender
,才会生效;sender
是指邮件中心中创建的类似xxx@bitcron.com
的邮箱地址。
send
作用: 通过 API,使用指定的 Bitcron Mail 发送邮件,调用方式为+mail.send(xxxxx)
。
参数: to, subject, content='', key='', **kwargs
to: 收件人地址
subject: 邮件标题
content: 邮件内容 (非 HTML 格式,普通文本)
key: 默认为空,如果有指定 key,则在发送的时候,会尝试寻找mails/<key>.html
这个站点内的文件作为邮件内容发送。
message: 额外的信息,默认为空,如果是一个 Markdown 文档的路径,会自动寻址,并将Markdown 编译后的 HTML 作为 message 的 value。
kwargs: 是指后续其它 k=v 类似的变量,如果有 key
匹配到的模板,会进一步用 kwargs 中的变量替换模板内 {{ key }}
这样的变量声明。
在send
调用的时候,传入key
这个参数,会尝试寻找_mails/<key>.html
的模板文件,并将 kwargs 内的变量重新渲染,即替换 {{ key }}
or {{ key.attr }}
,但不能处理 if/else
等额外逻辑。
同时,要注意,邮件模板有其特殊性,不能调用 css、scss 文件,所有样式应该是内嵌式的。如果涉及到了图片,请务必保证图片的地址是全地址,而不是相对地址。
默认调用
由于 Bitcron 系统内的一些默认调用,会产生一些邮件通知的请求,从而调用
Mail.send
这个命令进行邮件的发送。
comment
在评论产生、或者评论@某某
而会产生这个调用。
对应的 key 为comment
, 如果需要修改邮件模板,对应修改、创建的模板地址为_mails/comment.html
。
调用Mail.send
命令的时候,其中 kwargs 由以下几个变量构成:
link: 所评论页面的 URL
comment: 一个数据对象,包含 ip、email、site(网址)、content(评论内容)属性可调用。
parent: 所评论的数据对象,比如一篇日志。
message: 固定值为 _messages/comment.md
license
在 License 发送的行为(License.register
)中会产生的调用。
对应的 key 为license
, 如果需要修改邮件模板,对应修改、创建的模板地址为mails/license.html
。
调用Mail.send
命令的时候,其中 kwargs 由以下几个变量构成:
app_name: License 的名称
order_id: 订单 ID,可能为空
license_key: License 的实际 key
message: 默认值为 messages/ license.md
Pay
这是支付接口,目前仅提供支付宝的支持。
文档待补充....
Realtime
这是通过 websocket 进行实时通讯、通知的相关接口,目前主要是处理文件同步时的通知。
属性
ws_domain: 当前 Node(服务器) 对应的 websocket 协议下的域名
site_ws_url: 当前 ws_domain 下,当前网站下的文件同步变更的 websocket 协议下的 URL
其中,ws_domain 类似 realtime-api-192-168-1-2.bitcron.com
;site_ws_url 类似 ws://<ws_domain>/site/<site_id>
。
文件变更的通知
每一次文件的更新、删除、添加,都会通过site_ws_url
对应的websocket 地址,推送一个JSON数据,以此通知各个正在访问当前页面的浏览器,以调用一些必要的前端脚本来响应。
site_id: 网站的id (一般用不到)
path: 文件的路径 (相对于站点路径,全小写)
doc_type: 文件类型,tempalte、post、image、csv、file其中之一
date: 事件发生的时间戳
is_deleted: true/false, 表示是否为删除文件的操作。
listen_files
作用: 当网站内的文件发生更新、新增的时候,页面可以实时地做出响应的对应。
接收参数: <callback_func>
, callback_func
是一个字符串类型,表示一个在前端脚本中定义的、可直接调用的Javascript的函数名。
License
namespace 为
license
待补充...