hashdown 1.1.1

  • Readme
  • Changelog
  • Example
  • Installing
  • 35

Hashdown is an online tool to convert text into a format that's easier and safer for sharing

editor url: https://hashdown.github.io/edit.html

Hashdown supports 5 different encoding methods

EncodingFeatureSample Output
Braillnaryoutput binary dots⡯⡯⡯⠺⡢⡣⡣⡤⡳⡣⡭⡭⠺⡩⡻⡳
Linkdirectly open the decoded resulthttps://hashdown.github.io/#GMgIv-_0GTC7iTBH4gyek93I
Base2e15minimal output characters炅땯腖귻㟫䩍븀묓歊
TadpoleCodeWHat??/゙ًًٍٍٍٍََََُُُِِِّّّّّّّّّْْْْْْْْْْْْٕ۪۪۪ٓۤ۠ۤ۠
ShadowCodeHide ContentEncoded data‌​‍​‌ is invisible

It supports 5 different encoding modes

Braillnary #

Braillnary means braille binary, it converts string to binary and shows it in the form of braille code

Encode Table

0x010x020x040x080x100x200x400x80

Hashdown link convert text into url hash, so you can open the link directly without the extra step to open a decoder

Example: https://hashdown.github.io/#SGFzaERvd24gTGluayBpcyBBd2Vzb21l

  • The encoding and decoding are 100% done in client side javascript, our server never know your text. the url hash (what's after #) is never sent to the network.
  • When the server is down, you can still decode the content from the url if you can find any Hashdown mirror site or an offline version of Hashdown tool.
  • You can also use a password to protect your content.

Base2e15 #

Base2e15 convert text to unicode characters, each unicode character represents 15 bits of data.

Since Hashdown supports compression, it allows you to store more data in limited number of characters

Tadpole Code #

Tadpole Code convert text to unicode combining characters, which is able to combine everything into "single" character.

Shadow Code #

Shadow Code convert text to ASCII control code, which is invisible in most browsers.

Wrap the input data with {} to hide part of the text, otherwise all text will be converted to Shadow Code

InputOutput
with{}Hello{Hidden Text} WorldHello‍‍​‌​‍‌​​‍‌​‍​ World
without{}Hide All>‍‍​‌‍‍​‌​‌​​<

When all text are hidden, >< is added to make it easier to copy paste.

Changelog #

1.1.0 #

  • Dart 2 support

1.0.5 #

  • Rename hidden text to shadow code

1.0.4 #

  • Add hidden text codec

1.0.3 #

  • Improve tadpole code for different font/os

1.0.2 #

  • Add js api and improve dart api

1.0.1 #

  • Support Markdown and Hashdown Link

example/example.dart

import 'package:hashdown/hashdown.dart';

void main() {
  // encode string to hashdown link
  String hashdownLink =
      Hashdown.encodeString('Hashdown is awesome', new HashdownOptions());
  
  // encode string to base2e15
  String base2e15 = Hashdown.encodeString(
      'Hashdown is awesome', new HashdownOptions()..codec = Hashdown.BASE2E15);
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  hashdown: ^1.1.1

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter pub get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:hashdown/hashdown.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
0
Health:
Code health derived from static analysis. [more]
75
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
60
Overall:
Weighted score of the above. [more]
35
Learn more about scoring.

We analyzed this package on Jul 13, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.15

Analysis suggestions

Package not compatible with runtime flutter-native on Android

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime flutter-native on Linux

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime flutter-native on Windows

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime flutter-native on iOS

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime flutter-native on macOS

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime native

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Package not compatible with runtime native-aot

Because:

  • package:hashdown/hashdown.dart that imports:
  • package:hashdown/lzma.dart that imports:
  • package:js/js.dart that imports:
  • dart:js

Health suggestions

Fix lib/hashdown.dart. (-7.71 points)

Analysis of lib/hashdown.dart reported 16 hints, including:

line 33 col 32: Unnecessary new keyword.

line 146 col 29: Unnecessary new keyword.

line 152 col 41: Unnecessary new keyword.

line 167 col 31: Unnecessary new keyword.

line 177 col 29: Unnecessary new keyword.

Fix lib/src/crypt.dart. (-4.41 points)

Analysis of lib/src/crypt.dart reported 9 hints, including:

line 9 col 23: Unnecessary new keyword.

line 10 col 40: Avoid const keyword.

line 17 col 22: Unnecessary new keyword.

line 24 col 17: Unnecessary new keyword.

line 30 col 17: Unnecessary new keyword.

Fix lib/src/codecs.dart. (-3.93 points)

Analysis of lib/src/codecs.dart reported 8 hints, including:

line 11 col 14: Unnecessary new keyword.

line 14 col 14: Unnecessary new keyword.

line 17 col 14: Unnecessary new keyword.

line 21 col 14: Unnecessary new keyword.

line 24 col 14: Unnecessary new keyword.

Fix additional 7 files with analysis or formatting issues. (-12.38 points)

Additional issues in the following files:

  • lib/shadow.dart (6 hints)
  • lib/tadpole.dart (6 hints)
  • lib/braille.dart (5 hints)
  • lib/src/compress.dart (3 hints)
  • lib/src/utf16.dart (3 hints)
  • lib/lzma.dart (1 hint)
  • lib/rc4.dart (1 hint)

Maintenance issues and suggestions

Use constrained dependencies. (-20 points)

The pubspec.yaml contains 3 dependencies without version constraints. Specify version ranges for the following dependencies: base2e15, convert, js.

Homepage URL doesn't exist. (-20 points)

At the time of the analysis the homepage field http://www.hashdown.net was unreachable.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0 <3.0.0
base2e15 any 0.3.0
convert any 2.1.1
js any 0.6.2
Transitive dependencies
charcode 1.1.3
collection 1.14.13 1.15.0-nullsafety
typed_data 1.2.0 1.3.0-nullsafety
Dev dependencies
build_runner any
build_web_compilers any
test any