• Packages
  • Themes
  • Documentation
  • Blog
  • Discuss
Sign in

markdown-table-calc

Markdown table calculations
  • #markdown
  • #calc
  • #table
oswida
9
0
  • Repo
  • Bugs
  • Versions
  • License
Flag as spam or malicious

Atom editor markdown-table-calc package

Atom editor extension for making calculations in markdown tables. Inspired by an Emacs Org mode feature which allows to make TBLFM comments under the table and perform calculations.

References / Thanks

Big thanks to authors of two projects which are the calculation engine core:

  • Markdown-it (https://github.com/markdown-it/markdown-it) with the wonderful Markdown parser, I've used it to locate and extract table data in a Markdown document.
  • Hot formula parser from https://github.com/handsontable/formula-parser - incredible useful library for evauating mathematical formulas.

Features

  • Define table formulas in Markdown files
  • Recalculate all formulas in a file using custom command

Usage

To define a set of table formulas, you can add a special HTML comment below a given Markdown table (TBLFM is a tribute to an Emacs Org mode :) . Only the first comment under the table will be taken into account.

| Column A | Column B | Column C |
|:---------|:---------|:---------|
| 123      | 456      | 789      |
| 0        | 0        | 0        |
<!--TBLFM C2=A1+A2; C1=56*78/4 -->

The comment can span multiple lines and contain multiple formulas separated by a semicolon. Formulas are calculated in the order they are written. Table cells are described using spreadsheet notation, columns designated with letters like A,B,C .. Z (and even more AA, AB etc.) and rows with integers 1,2,3 ... You can also use range notation like A1:E23. Moreover, hot-formula-parser contains also a big set of predefined functions which can be used in formulas. The list of these functions (taken by SUPPORTED_FORMULAS function) looks like this:

- ABS,ACCRINT,ACOS,ACOSH,ACOT,ACOTH,ADD,AGGREGATE,AND,ARABIC,ARGS2ARRAY,ASIN,ASINH,ATAN,ATAN2,ATANH,AVEDEV,AVERAGE,AVERAGEA,AVERAGEIF,AVERAGEIFS,
- BASE,BESSELI,BESSELJ,BESSELK,BESSELY,BETA.DIST,BETA.INV,BETADIST,BETAINV,BIN2DEC,BIN2HEX,BIN2OCT,BINOM.DIST,BINOM.DIST.RANGE,BINOM.INV,BINOMDIST,BITAND,BITLSHIFT,BITOR,BITRSHIFT,BITXOR,
- CEILING,CEILINGMATH,CEILINGPRECISE,CHAR,CHISQ.DIST,CHISQ.DIST.RT,CHISQ.INV,CHISQ.INV.RT,CHOOSE,CHOOSE,CLEAN,CODE,COLUMN,COLUMNS,COMBIN,COMBINA,COMPLEX,CONCATENATE,CONFIDENCE,CONFIDENCE.NORM,CONFIDENCE.T,CONVERT,CORREL,COS,COSH,COT,COTH,COUNT,COUNTA,COUNTBLANK,COUNTIF,COUNTIFS,COUNTIN,COUNTUNIQUE,COVARIANCE.P,COVARIANCE.S,CSC,CSCH,CUMIPMT,CUMPRINC,
- DATE,DATEVALUE,DAY,DAYS,DAYS360,DB,DDB,DEC2BIN,DEC2HEX,DEC2OCT,DECIMAL,DEGREES,DELTA,DEVSQ,DIVIDE,DOLLAR,DOLLARDE,DOLLARFR,
- E,EDATE,EFFECT,EOMONTH,EQ,ERF,ERFC,EVEN,EXACT,EXP,EXPON.DIST,EXPONDIST,
- F.DIST,F.DIST.RT,F.INV,F.INV.RT,FACT,FACTDOUBLE,FALSE,FDIST,FDISTRT,FIND,FINV,FINVRT,FISHER,FISHERINV,FIXED,FLATTEN,FLOOR,FORECAST,FREQUENCY,FV,FVSCHEDULE,
- GAMMA,GAMMA.DIST,GAMMA.INV,GAMMADIST,GAMMAINV,GAMMALN,GAMMALN.PRECISE,GAUSS,GCD,GEOMEAN,GESTEP,GROWTH,GTE,
- HARMEAN,HEX2BIN,HEX2DEC,HEX2OCT,HOUR,HTML2TEXT,HYPGEOM.DIST,HYPGEOMDIST,
- IF,IMABS,IMAGINARY,IMARGUMENT,IMCONJUGATE,IMCOS,IMCOSH,IMCOT,IMCSC,IMCSCH,IMDIV,IMEXP,IMLN,IMLOG10,IMLOG2,IMPOWER,IMPRODUCT,IMREAL,IMSEC,IMSECH,IMSIN,IMSINH,IMSQRT,IMSUB,IMSUM,IMTAN,INT,INTERCEPT,INTERVAL,IPMT,IRR,ISBINARY,ISBLANK,ISEVEN,ISLOGICAL,ISNONTEXT,ISNUMBER,ISODD,ISODD,ISOWEEKNUM,ISPMT,ISTEXT,
- JOIN,
- KURT,
- LARGE,LCM,LEFT,LEN,LINEST,LN,LOG,LOG10,LOGEST,LOGNORM.DIST,LOGNORM.INV,LOGNORMDIST,LOGNORMINV,LOWER,LT,LTE,
- MATCH,MAX,MAXA,MEDIAN,MID,MIN,MINA,MINUS,MINUTE,MIRR,MOD,MODE.MULT,MODE.SNGL,MODEMULT,MODESNGL,MONTH,MROUND,MULTINOMIAL,MULTIPLY,
- NE,NEGBINOM.DIST,NEGBINOMDIST,NETWORKDAYS,NOMINAL,NORM.DIST,NORM.INV,NORM.S.DIST,NORM.S.INV,NORMDIST,NORMINV,NORMSDIST,NORMSINV,NOT,NOW,NPER,NPV,NUMBERS,NUMERAL,
- OCT2BIN,OCT2DEC,OCT2HEX,ODD,OR,
- PDURATION,PEARSON,PERCENTILEEXC,PERCENTILEINC,PERCENTRANKEXC,PERCENTRANKINC,PERMUT,PERMUTATIONA,PHI,PI,PMT,POISSON.DIST,POISSONDIST,POW,POWER,PPMT,PROB,PRODUCT,PROPER,PV,
- QUARTILE.EXC,QUARTILE.INC,QUARTILEEXC,QUARTILEINC,QUOTIENT,
- RADIANS,RAND,RANDBETWEEN,RANK.AVG,RANK.EQ,RANKAVG,RANKEQ,RATE,REFERENCE,REGEXEXTRACT,REGEXMATCH REGEXREPLACE,REPLACE,REPT,RIGHT,ROMAN,ROUND,ROUNDDOWN,ROUNDUP,ROW,ROWS,RRI,RSQ,
- SEARCH,SEC,SECH,SECOND,SERIESSUM,SIGN,SIN,SINH,SKEW,SKEW.P,SKEWP,SLN,SLOPE,SMALL,SPLIT,SPLIT,SQRT,SQRTPI,STANDARDIZE,STDEV.P,STDEV.S,STDEVA,STDEVP,STDEVPA,STDEVS,STEYX,SUBSTITUTE,SUBTOTAL,SUM,SUMIF,SUMIFS,SUMPRODUCT,SUMSQ,SUMX2MY2,SUMX2PY2,SUMXMY2,SWITCH,SYD,
- T,T.DIST,T.DIST.2T,T.DIST.RT,T.INV,T.INV.2T,TAN,TANH,TBILLEQ,TBILLPRICE,TBILLYIELD,TDIST,TDIST2T,TDISTRT,TEXT,TIME,TIMEVALUE,TINV,TINV2T,TODAY,TRANSPOSE,TREND,TRIM,TRIMMEAN,TRUE,TRUNC,
- UNICHAR,UNICODE,UNIQUE,UPPER,
- VALUE,VAR.P,VAR.S,VARA,VARP,VARPA,VARS,
- WEEKDAY,WEEKNUM,WEIBULL.DIST WEIBULLDIST,WORKDAY,
- XIRR,XNPV,XOR,
- YEAR,YEARFRAC

Extension command

To activate table formula recalculation you need to use a new editor command: Markdown Table Calc: Recalculate

Known Issues

This is my first Atom package, please, expect that something can go wrong.

0.0.0

Initial release of markdown table calc

License

The MIT License (see the LICENSE file for the full text).

I think this package is bad news.

Good catch. Let us know what about this package looks wrong to you, and we'll investigate right away.

  • Terms of Use
  • Privacy
  • Code of Conduct
  • Releases
  • FAQ
  • Contact
with by