作者归档:白宦成

关于 白宦成

独立开发者, 自由职业者, 写作者

django logo negative

Django 引入 Simple MDE

我比较喜欢 Django 的一点就是其非常完善的后台,借助这个后台,我可以免去 sideproject 的一大部分开发工作(过去的 sideproject 在后台开发时花费大量的时间,我不会前段真是痛苦)。
作为一个程序员,我自然是更喜欢 markdown 编辑器的,所以我没有在系统中引用 ueditor ,而是选择了 SimpleMDE

安装 Package

执行如下命令安装

pip install django-simplemde

安装完成后,在 INSTALLED_APPS 中添加 simplemde

INSTALLED_APPS = (
    # ...
    'simplemde',
    # ...
)

使用

使用时,只需要在 models 中引用即可

from django.db import models
from simplemde.fields import SimpleMDEField
class Entry(models.Model):
    title = models.CharField(max_length=250, verbose_name=u'Title')
    content = SimpleMDEField(verbose_name=u'mardown content')

配置

使用时,最好是进行一定的配置,这是我的配置,将其粘贴在 settings.py 即可

SIMPLEMDE_OPTIONS = {
    'placeholder': '支持 Markdown 语法',
    'status': False,
    'autosave': {
        'enabled': True
    },
    'hideIcons': ["guide", "heading"],
    'toolbar': False,
    'toolbarTips': Flase,
    'spellChecker':False
}

具体的配置项可以在 https://github.com/sparksuite/simplemde-markdown-editor#configuration 找到

django logo negative

Django Models 参数

我创建model必加的字段


class Category(models.Model):
    pub_date = models.DateTimeField('发布日期',auto_now_add=True)
    update_date = models.DateTimeField('更新日期',auto_now=True)
    sort = models.IntegerField("序号",default=99,help_text="序号越小越靠前")
    def __unicode__(self):
        return self.title
    def __str__(self):
        return self.title
    class Meta:
        verbose_name = '目录'
        verbose_name_plural = '0-目录'
        ordering = ['sort']  # 按照哪个栏目排序
        get_latest_by = 'pub_date'
black and yellow box on white table

创建了新的 Django Project 后需要设置的

  1. 创建 Env
    virtualenv venv
  2. 生成 git 目录
    git init
  3. 加入gitignore
    # Byte-compiled / optimized / DLL files
    __pycache__/
    *.py[cod]
    # C extensions
    *.so
    # Distribution / packaging
    bin/
    build/
    develop-eggs/
    dist/
    eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    venv/
    collectstatic/
    *.egg-info/
    .installed.cfg
    *.egg
    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt
    # Unit test / coverage reports
    .tox/
    .coverage
    .cache
    nosetests.xml
    coverage.xml
    # Translations
    *.mo
    # Mr Developer
    .mr.developer.cfg
    .project
    .pydevproject
    # Rope
    .ropeproject
    # Django stuff:
    *.log
    *.pot
    # Sphinx documentation
    docs/_build/
    # editor
    .vscode
    # database
    db.sqlite3
  4. 修改中文
    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'
  5. 设置静态文件目录
    STATIC_ROOT = 'collectstatic'
  6. Database
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', #数据库引擎
            'NAME': 'user_im',                       #数据库名
            'USER': 'root',                       #用户名
            'PASSWORD': '',                   #密码
            'HOST': '',                           #数据库主机,默认为localhost
            'PORT': '',                           #数据库端口,MySQL默认为3306
            'OPTIONS': {
                'autocommit': True,
            },
        }
    }
    
dual screen 1745705 640

运营用加强 Markdown 编辑器

初衷

我一个朋友需要参与公司针对 V2ex 的运营,而 V2ex 如果想要发富文本,就需要 markdown 语法,对于他一个长期担任运营岗的人来说,Markdown让他十分困扰。虽然有很多不错的编辑器,但是由于他会有一些特殊的需求,所以还是十分不舒服。因此我便打算帮他做一个运营用的插件,帮他完成他所需要的特殊功能

特性

  • 满足运营者常用功能需求(H1-H6)
  • 提供插入新窗口打开连接的功能
  • 提供插入含连接的图片的功能
  • 插入含描述的图片
  • 选中文字标红
  • 快速打开图床

Demo

http://co.ixiqin.com

功能说明

插入新窗口打开连接

可以在打开的对话框中输入标题和连接。自动生成一个基于HTML的新页面打开连接
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

插入含连接的图片

可以在打开的对话框中输入连接、标题、图片地址、图片描述生成对应代码。
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

插入含描述的图片

可以在打开的对话框中输入图片地址、图片描述生成对应代码。
需要注意的是,此连接的会生成在文章尾部,需要自行复制到适当位置。

选中文字标红

选择要标红的文字,点击特色功能区的按钮,即可对指定文字进行标红处理。

快速打开图床

编辑器未做图片上传,故而提供了一个图床的地址,可以将图片上传到sm.ms,复制其生成的图片的连接,使用菜单栏中的工具添加即可。

源码地址

https://github.com/bestony/CoEditor

涉及技术

前端开发、JavaScriptEditor.md
 

1491819427196880

Linux 中国 – LCBot 微信机器人

初衷

加强微信群管理

特性

  • 关键词添加好友自动拉群
  • 私聊发送关键词自动加群
  • 新用户进群自动发送欢迎
  • 设定管理员,管理员可以通过发送命令T人(需要机器人是群主)
  • 监控群每小时发送心跳包
  • 管理员踢人监控群内留底
  • 被拉黑的用户,无法被再次拉群。需要管理员手动释放。
  • 管理员在监控群发送指令获取状态或进行特定操作(现支持“状态”、“重启”、“刷新”)

Demo

不提供

源码

https://github.com/LCTT/LCBot

1491819427196880

Linux 中国 – 「运维密码」微信小程序

初衷

由于 Google Authenticator 没有办法很好的做到备份,在更换手机时,会非常麻烦,所以我们希望能够自己制作这样一款小程序,来完成备份的功能。

特性

  • 本地计算动态口令,无需联网
  • 本地备份动态口令,安全放心
  • 每30秒更新一次动态口令,低占用

依赖

微信小程序开发工具

Demo

n9aoh

源码地址

https://github.com/LCTT/WeApp-Password

Todo

  • 云服务
  • 解决本地数据因微信清空丢失的问题
dual screen 1745705 640

Linux 中国 – LCTT 选题工具

初衷

LCTT 使用 Markdown 来作为翻译原文,但是由于原文均为 HTML 格式,在选题时需要手工处理,要耗费大量的时间,所以便制作了选题工具,希望借助机器来完成

特性

  • 可以根据输入的 html 代码生成对应的 Markdown (表格未支持)
  • 支持数字型 Markdown 语法
  • 加入 Editor.md ,选题完成后可以进行编辑
  • 使用 js 来完成复制工作

Demo

http://lctt.ixiqin.com

源码

https://github.com/LCTT/LCTT-Helper/

dual screen 1745705 640

阿里云论坛 BBCode 编辑器

初衷

制作这个编辑器是在我担任阿里云论坛版主期间,由于阿里云论坛的编辑器实在难用,且由于 Cookies 很容易过期,导致辛苦编辑很久的帖子会由于实效而丢失。于是我希望能够有个编辑器来帮助我更好的编辑帖子。

特性

  • 兼容 phpwind 的 BBCode
  • 接入了 SM.MS 的图床

Demo

http://edit.ixiqin.com

源码

https://github.com/bestony/Editor