0.0.25 • Published 3 months ago

emphase v0.0.25

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

Preface

Emphase is an Open Source project of VivaRado.

Screenshot

Screenshot

Introduction

Emphase is a code highlight library, emphasize your syntax!

Contributors:


Profile

Introduction / Profile


Project Overview

Introduction / Project Overview

  • Project Name: Emphase
  • Code Name: EM
  • Proposal Date: 25/12/2023

Design

Emphase is a Javascript code highlight script aiming to be small but legible and extendable.

It consists of the LanguageLoader, a CacheManager and an Elementmaker and Utils.


LanguageLoader

Design / LanguageLoader

The LanguageLoader is responsible for loading the languages on the client or server and caching them for later use.


CacheManager

Design / CacheManager

The CacheManager is responsible for locating the keywords and other details provided in the language files, replacing them with temporary hashes and storing the formatted HTML for later replacement.


ElementMaker

Design / ElementMaker

The ElementMaker is for creating the various HTML elements needed to display Emphase code blocks on the page.


Production

To work on extending this module a few things are provided:

Run in browser with reload allong with gulp watch:

npm run dev

Just build with gulp

npm run build

Work is done on the ES files. Gulp is structured to take these ES contents of src/es/* convert them to CJS and then broswerify them and put them to lib.


Installation

To install:

npm install emphase

On the client side, wether you want to use the library headless or acting on an element, you will need to include:

the CSS:

<link href="../lib/em.css" rel="stylesheet" type="text/css">

the Javascript:

<script src="../lib/em.js" type="text/javascript"></script>

Common JS (CJS)

<script src="../src/em.es.js" type="module"></script>

ES (ECMAScript module)

and the language file(s) you will need:

<script src="../src/languages/em_bash.js" type="text/javascript"></script>

Usage

Emphase comes in common and module flavor. After installation you can use Emphase on an element using the emphasize function with the language you need included with a script tag, or headless by providing some code (string) and the language (string) parameters.

Usage Scenarios:

  • ES (ECMAScript module):
    • Element (client-side)
    • Headless (server-side or client-side)
  • Common JS (CJS):
    • Element (client-side)
    • Headless (server-side or client-side)

You do not need to include the language if you are using emphase on the server side.


ES Element:

Usage / ES Element

Element:

<code class="lang-bash">
#!/bin/bash

if [ $a  -eq  true ]
then
  echo "A 'a'"
else
  echo "B 'b'"
fi
'</code>

Language Include:

<script src="./src/languages/em_bash.js" type="text/javascript"></script>  

Script:

import {Emphase} from 'Emphase';
var em = new emphase();

console.log( em.emphasize(document.querySelector(".lang-bash"), 'bash').result );

CJS Element:

Usage / CJS Element

Element:

<code class="lang-bash">
#!/bin/bash

if [ $a  -eq  true ]
then
  echo "A 'a'"
else
  echo "B 'b'"
fi
'</code>

Language Include:

<script src="./src/languages/em_bash.js" type="text/javascript"></script>  

Script:

const emphase = require("emphase");
var em = new emphase();

console.log( em.emphasize(document.querySelector(".lang-bash"), 'bash').result );

ES Headless:

Usage / ES Headless

import {Emphase} from 'Emphase';
var em = new emphase();

string = `
#!/bin/bash

if [ $a  -eq  true ]
then
  echo "A 'a'"
else
  echo "B 'b'"
fi
`;

console.log( em.emphasize(string, 'bash').result );

CJS Headless:

Usage / CJS Headless

const emphase = require("emphase");
var em = new emphase();

string = `
#!/bin/bash

if [ $a  -eq  true ]
then
  echo "A 'a'"
else
  echo "B 'b'"
fi
`;

console.log( em.emphasize(string, 'bash').result );

Features

  • Modern interface.
  • Extensive and Deep Language Coverage.
  • Light and Dark Theme.
  • Client and Server Side.
  • ~350 lines of code uncompressed.

User Interface

Features / User Interface

Overfading Numbers Tab

Screenshot


Syntax Support

Features / Syntax Support

Support Syntax:

  • Keywords
  • Values
  • Directives
  • Comments
  • Comment Blocks
  • Strings
  • String Blocks

Current Language Support:

NameFriendly NameCommentsComment BlocksStringsString BlocksKeywordsValuesDirectives
bashBashTrueTrueTrueFalseTrueTrueTrue
cCTrueTrueTrueTrueTrueTrueTrue
cppC++TrueTrueTrueTrueTrueTrueTrue
csC#TrueTrueTrueFalseTrueTrueTrue
fsF#TrueTrueTrueFalseTrueTrueFalse
goGoTrueTrueTrueTrueTrueTrueTrue
htmlHTMLTrueTrueTrueFalseTrueFalseFalse
javaJavaTrueTrueTrueTrueTrueTrueTrue
javascriptJavaScriptTrueTrueTrueTrueTrueTrueTrue
kotlinKotlinTrueTrueTrueTrueTrueTrueTrue
matlabMatlabTrueTrueTrueFalseTrueTrueFalse
perlPerlTrueFalseTrueTrueTrueTrueFalse
pythonPythonTrueTrueTrueTrueTrueTrueTrue
rRTrueFalseTrueFalseTrueTrueFalse
rubyRubyTrueTrueTrueFalseTrueTrueFalse
rustRustTrueTrueTrueFalseTrueTrueFalse
scalaScalaTrueTrueTrueFalseTrueTrueFalse
sqlSQLTrueTrueTrueFalseTrueFalseFalse
swiftSwiftTrueTrueTrueFalseTrueTrueFalse
typescriptTypeScriptTrueTrueTrueFalseTrueTrueFalse
vbVisual BasicTrueTrueTrueFalseTrueTrueFalse

Glossary

Emphase: em-fuh-see.


Reference

Language Keywords from jsyntax


0.0.25

3 months ago

0.0.24

4 months ago

0.0.20

4 months ago

0.0.21

4 months ago

0.0.22

4 months ago

0.0.23

4 months ago

0.0.14

4 months ago

0.0.15

4 months ago

0.0.16

4 months ago

0.0.17

4 months ago

0.0.18

4 months ago

0.0.13

4 months ago

0.0.12

5 months ago

0.0.11

5 months ago

0.0.10

5 months ago

0.0.9

5 months ago

0.0.8

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.5

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago