# Jotdown
Jotdown is a structured document language. It is an opinionated, augmented
subset of Markdown with features inspired by plain-text organizational tools
like org-mode. The main purpose of Jotdown is to centralize personal and
project organization into a set of plain-text documents that can be easily
edited, parsed, and manipulated both by scripts and humans alike.
Jotdown can be parsed into a list of plain tokens or into a compiled DOM
(Document Object Model). From the DOM it can then be translated into Markdown
for formatting and display purposes, or back into Jotdown after being modified
in its structured form.
Jotdown is offered simultaneously as a header-only C++ library and a compiled
Python module sharing the same code. The Python bindings are enabled via
pybind11. It is released under an MIT license, see LICENSE for more info.
See [DOCUMENTATION.md] for a detailed explanation of the language and its
features.
See [API_CXX.md] for documentation regarding the header-only C++ library.
See [API_PY.md] for documentation regarding the Python module, including how to
build and install it.
## Goals
These are the primary goals of the Jotdown language and project:
- Support the creation, analysis, and modification of plain-text structured
documents.
- Support the hypertext linkage of documents within a document-set, and to
outside resources on the web or elsewhere.
- First-class support for loading, querying, modifying, saving, and creating
documents in C++ and Python.
## Anti-Goals
These are specific anti-goals: intended limitations to the scope of the project:
- Full compatibility with Markdown.
- First class support for layout, display, and formatting.
- Jotdown is less concerned with the formatting of text than it is with the
content of text as a structured document. Formatting is left up to the
user to determine, though it is advised to use Markdown formatting where
possible if you intend to render your document by converting it to
Markdown first.
- Jotdown -> HTML conversion.
- This can be achieved indirectly via Jotdown -> Markdown conversion.
## Q/A
### Why not just use Markdown for this?
While Markdown is great as a text formatting language, it doesn't work as well
as a structured document language. It's main focus has always been generating
HTML, and as such many of the existing parsers don't even bother creating an
intermediate AST. Additionally, I wanted a bit more uniformity across documents
and as such I wanted to make sure there was (as much as feasible) only one way
to represent a specific document structure. For example, Jotdown forgoes the
"underlined headers" format in favor of only supporting headers with hashes.
### Why is Jotdown offered in C++ and Python?
I wanted to be able to support the runtime power and expressiveness of C++ while
also extending support into Python where scripts and plugins can be easily built
around Jotdown document structures.
### Why is my language not supported?
I'm sorry! I'm really happy you're interested in Jotdown though. Feel free to
submit an issue to add support for your language. I can't guarantee I'll ever
get around to writing bindings myself, but someone in the community might step
up and help out!
### Why are there functions for shifting the order of objects in containers?
I intend to use these functions to facilitate high-level document editing
features in an upcoming Vim plugin and toolchain for Jotdown document sets.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
jotdown-1.1.1.tar.gz (99个子文件)
jotdown-1.1.1
MANIFEST.in 93B
PKG-INFO 5KB
.gitmodules 173B
test
query.cpp 3KB
data
query
children.md 73B
.ycm_extra_conf.py 1KB
include
jotdown
interfaces.h 2KB
query.h 26KB
python
declarators.h 4KB
object.h 27KB
parser.h 28KB
error.h 460B
utils.h 5KB
api.h 1KB
compiler.h 18KB
LICENSE 1KB
setup.cfg 38B
moonlight
deps
date
test
tz_test
OffsetZone.h 3KB
include
date
ios.h 2KB
julian.h 70KB
islamic.h 69KB
date.h 225KB
chrono_io.h 1KB
solar_hijri.h 76KB
ptz.h 18KB
tz.h 83KB
iso_week.h 42KB
tz_private.h 10KB
include
picojson
picojson.h 32KB
picotest
picotest.h 1KB
tinyformat
tinyformat.h 42KB
moonlight
variadic.h 2KB
json.h 12KB
hash.h 533B
string.h 4KB
file.h 5KB
linked_map.h 5KB
collect.h 4KB
system.h 625B
curses.h 8KB
exceptions.h 5KB
cli.h 7KB
make.h 472B
posix.h 819B
slice.h 2KB
maps.h 1KB
core.h 881B
test.h 6KB
mmap.h 3KB
debug.h 1011B
ansi.h 4KB
automata.h 12KB
generator.h 7KB
sdl2.h 689B
time.h 5KB
jotdown.egg-info
PKG-INFO 5KB
not-zip-safe 1B
SOURCES.txt 4KB
top_level.txt 8B
dependency_links.txt 1B
select-test.md 63B
setup.py 1KB
.gitignore 73B
demo
jd-tokenize.cpp 1KB
jd-roundtrip.cpp 1KB
jd-query.cpp 2KB
jd-json.cpp 984B
demo.md 703B
README.md 3KB
select-notes.md 2KB
bake.py 5KB
pybind11
tests
pybind11_tests.h 2KB
constructor_stats.h 11KB
object.h 5KB
local_bindings.h 2KB
include
pybind11
chrono.h 8KB
attr.h 20KB
functional.h 4KB
pytypes.h 57KB
numpy.h 66KB
stl.h 14KB
options.h 2KB
common.h 120B
eval.h 4KB
embed.h 8KB
buffer_info.h 5KB
iostream.h 6KB
stl_bind.h 23KB
eigen.h 28KB
complex.h 2KB
detail
common.h 38KB
class.h 25KB
init.h 16KB
internals.h 16KB
descr.h 3KB
typeid.h 1KB
cast.h 91KB
operators.h 9KB
pybind11.h 98KB
共 99 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功