All Projects → aereal → Gohn

aereal / Gohn

Licence: mit
Hatena Notation (はてな記法) Parser written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gohn

Dan Jurafsky Chris Manning Nlp
My solution to the Natural Language Processing course made by Dan Jurafsky, Chris Manning in Winter 2012.
Stars: ✭ 124 (+629.41%)
Mutual labels:  parser, text-processing
Imdbpy
IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database about movies, people, characters and companies
Stars: ✭ 792 (+4558.82%)
Mutual labels:  parser
Php Mime Mail Parser
A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).
Stars: ✭ 687 (+3941.18%)
Mutual labels:  parser
Expr Eval
Mathematical expression evaluator in JavaScript
Stars: ✭ 752 (+4323.53%)
Mutual labels:  parser
Redis Replicator
Redis replication tool. support sync, psync, psync2. can parse rdb, aof, mixed rdb and aof files. support redis-6.2
Stars: ✭ 694 (+3982.35%)
Mutual labels:  parser
Himalaya
JavaScript HTML to JSON Parser
Stars: ✭ 758 (+4358.82%)
Mutual labels:  parser
Goformation
GoFormation is a Go library for working with CloudFormation templates.
Stars: ✭ 671 (+3847.06%)
Mutual labels:  parser
Netlist Graph
Java library for parsing and manipulating graph representations of gate-level Verilog netlists
Stars: ✭ 7 (-58.82%)
Mutual labels:  parser
Php Parser
PHP parser written in Go
Stars: ✭ 787 (+4529.41%)
Mutual labels:  parser
Tolerant Php Parser
An early-stage PHP parser designed for IDE usage scenarios.
Stars: ✭ 717 (+4117.65%)
Mutual labels:  parser
Swagger Parser
Swagger 2.0 and OpenAPI 3.0 parser/validator
Stars: ✭ 710 (+4076.47%)
Mutual labels:  parser
Postcss
Transforming styles with JS plugins
Stars: ✭ 25,612 (+150558.82%)
Mutual labels:  parser
Dasel
Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.
Stars: ✭ 759 (+4364.71%)
Mutual labels:  parser
Meriyah
A 100% compliant, self-hosted javascript parser - https://meriyah.github.io/meriyah
Stars: ✭ 690 (+3958.82%)
Mutual labels:  parser
Proposal Binary Ast
Binary AST proposal for ECMAScript
Stars: ✭ 831 (+4788.24%)
Mutual labels:  parser
Ngx Markdown
Angular markdown component/directive/pipe/service to parse static, dynamic or remote content to HTML with syntax highlight
Stars: ✭ 687 (+3941.18%)
Mutual labels:  parser
Vipermonkey
A VBA parser and emulation engine to analyze malicious macros.
Stars: ✭ 697 (+4000%)
Mutual labels:  parser
Esprima
ECMAScript parsing infrastructure for multipurpose analysis
Stars: ✭ 6,391 (+37494.12%)
Mutual labels:  parser
Strictyaml
Type-safe YAML parser and validator.
Stars: ✭ 836 (+4817.65%)
Mutual labels:  parser
Markdown Wasm
Markdown parser and HTML generator implemented in WebAssembly, based on md4c
Stars: ✭ 833 (+4800%)
Mutual labels:  parser

gohn

gohn (Hatena Notation parser written in Go) is a parser for Hatena Notation (a.k.a. はてな記法).

⚠️ This software is like a sketch. API or any design may change without notice.

AST definition

See schema.json

Background

Why do we implement new Hatena Notation parser although there are several implementations?

In short, all of other implementations have a problem about complexity, or (and) lack of formal specification.

Complexity

The original Hatena Notation spec. and its implementation have some very complex features. For example, [URL:title] notation that tells the parser retrieve URL and use retrieved page title for anchor text.

Former implementations have failed to separation of concerns.

Lack of formal specification

As mentioned earlier, we have a specification of Hatena Notation, but it is not formal. In other words, former implementations are also informal specification.

This means we have to know how implementations work if we want to know definition of some notations.

It also causes lost of encapsulation, so changes will be mostly breaking.

Author

@aereal

License

The package is available as open source under the terms of the MIT License (see LICENSE).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].