分类目录归档:技术

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