• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

mypebble/rest-framework-latex: A LaTeX renderer for Django REST Framework

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

mypebble/rest-framework-latex

开源软件地址(OpenSource Url):

https://github.com/mypebble/rest-framework-latex

开源编程语言(OpenSource Language):

Python 100.0%

开源软件介绍(OpenSource Introduction):

REST Framework LaTeX Plugin

CircleCI PyPI version Documentation Status

A simple plug-n-play LaTeX renderer for Django REST Framework.

Documentation

Installing

REST Framework LaTeX can be downloaded from PyPI:

pip install rest-framework-latex

Dependencies

Currently the LaTeX plugin requires lualatex - to install this on Ubuntu:

sudo aptitude install texlive-latex-extra texlive-xetex

This will probably take some time due to the size of LaTeX (around 1GB)

Using the Renderer

You can then configure the renderer in your settings or on each view:

REST_FRAMEWORK = {
  'DEFAULT_RENDERER_CLASSES': [
    'rest_framework_latex.renderers.LatexRenderer',
  ]
}

LATEX_RESOURCES Setting

The LATEX_RESOURCES directory contains the base template environment e.g. any images or static resources to include in your template. This must be set for the renderer to work:

LATEX_RESOURCES = '/home/user/path_to_resources'

This works just like TemplateHTMLRenderer but by setting a latex_name on your view:

from rest_framework import viewsets

from rest_framework_latex import renderers


class SomeViewSet(viewsets.ViewSet):
  """
  """
  renderer_classes = [
    renderers.LatexRenderer,
  ]

  latex_name = 'directory/latexfile.tex'

Latex Templates

To use the template tags, add rest_framework_latex to your INSTALLED_APPS:

INSTALLED_APPS = [
  ...
  'rest_framework_latex',
  ...
]

The TeX file used for rendering will be pushed through Django's templating system. This will cause some issues whereby you want to do something like:

\textt{{{ some_variable }}}

To get around this issue you will need to do something like the following:

\textt{% templatetag openbrace %}{{ some_variable }}{% templatetag closebrace %}

Included Tags

Tag Tag/Filter Purpose
latex_safe Filter Escape all user-entered content for LaTeX rules
latex_resources Tag Print the value of settings.LATEX_RESOURCES

How it works

The renderer works by creating a new temporary directory, and then copying over the LATEX_RESOURCES directory into the new temporary directory.

Next it renders the TeX file into the temporary directory.

Then it runs lualatex over the TeX file, and this will produce the PDF file we read into memory.

Then we delete the temporary directory and return the PDF to the client.

Django Compatibility

The REST Framework LaTeX plugin is compatible with Django 1.11 and up and Django REST Framework 3.3 and up.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap