GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - markserv/markserv: 🏁 serve markdown as html (GitHub style), index directories, live-reload as you edit

BranchesTags
Open more actions menu

Latest commit

 

History

341 Commits
341 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
lib
lib
 
 
media
media
 
 
tests
tests
 
 
.all-contributorsrc
.all-contributorsrc
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.snyk
.snyk
 
 
.travis.yml
.travis.yml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 

Repository files navigation

Markserv Logo

🏁 serve markdown as html (GitHub style), index directories, and hot-reload as you edit

Gitter CHANGELOG Build Status Coverage Status All Contributors Npm Version Known Vulnerabilities

Markserv Demo

✨ Features

  • Markdown content rendered as HTML
  • GitHub flavor CSS and Syntax Highlighting
  • Just in Time Templating: Markdown, HTML & LESS
  • Hot-reload as you edit (no browser plugin required)
  • Directory indexes
  • MIME Type file support

Supporting: MathJax, Chinese Characters, Table of Contents, Tables, Heading Anchors

Markserv directory index

💻 Installation

# NPM
$ npm i -g markserv

# Yarn
$ yarn global add markserv

🕹️ Usage

To start Markserv from the CLI

# Open closest README.md
$ readme

# Open file
$ markserv README.md

# Open a directory
$ markserv node_modules

Markserv CLI Splash

Start Markserv and open a file or directory.

# File
$ markserv ./path/to/file.md

# Directory
$ markserv ./

Start Markserv and open the closest README.md file in the browser:

$ readme

⚡ Hot Reload

Markserv includes built-in hot-reload via WebSocket. When you save a Markdown file, the page content updates instantly without a full page reload and without any browser plugin.

To disable hot-reload, use --no-hotreload:

markserv --no-hotreload README.md

Markserv Live Reload

🎨 Themes

Markserv ships with four themes: dark (default), light, synthwave, and solarized. You can set the theme from the CLI:

# Use light theme
markserv --light README.md

# Use synthwave theme
markserv --synthwave README.md

# Or use the --theme flag for any theme
markserv --theme solarized README.md

You can also toggle between themes in the browser using the theme button in the bottom-right corner. Your choice is saved in localStorage and persists across hot-reloads.

🔗 Markdown Links

You can link to an external Markdown file in the same way that you use GitHub Wiki links. You can use the example code here to see how external links work.

Example code:

[Skateboarding Dog!](tests/Linked-Markdown-Example.md)

Example link:

Skateboarding Dog!

⏱️ Just in Time Templating

Markserv allows you to include nested content using --templates. Templates are fetched and rendered when you request them in your browser. The maxDepth of includes is set to 10.

Note: Templating is disabled by default. Enable it with --templates:

markserv --templates README.md

If you would like to look at an example, you can look in the tests/templates directory of this repo.

To see the server output of this templating example:

$ git [email protected]/f1lt3r/markserv.git
$ cd markserv
$ markserv --templates tests/templates/index.html

Include Markdown

Note: Any markdown files that you include will be transformed to HTML.

Where foo/bar/baz/qux.md equals:

## Qux

And Markserv renders the following content:

# Include Markdown
{markdown: foo/bar/baz/qux.md}

The server response will be:

<h1>Include Markdown</h1>
<h2>Foo Bar</h2>

Include HTML

Where foo/bar/baz/qux.html equals:

<h2>Qux</h2>

And Markserv renders the following content:

# Include Markdown
{html: foo/bar/baz/qux.html}

The server response will be:

<h1>Include Markdown</h1>
<h2>Qux</h2>

Include LESS

Note: Any LESS files that you include will be transformed to CSS.

Where foo/bar/baz/qux.css equals:

@link-color: green;
a {color: @link-color}

And Markserv renders the following content:

<style>{less: foo/bar/baz/qux.css}</style>

The server response will be:

<style>
a {
  color: #008000;
}
</style>

🎌 Flags

To list the options/flags for the markserv CLI tool:

$ markserv --help

Changing the HTTP Port

You can change the HTTP Port like this:

markserv -p 80

Making Markserv available to external networks

In some cases localhost might be the address on which the server is listening, in which case it is hard to make the site available to external networks even with the right IP. Use the following as an example to make sure the server is accessible from external networks:

markserv -p 8642 -a 0.0.0.0

Above example runs the server on port 8642 and it can be accessed from external networks using public IP of the machine on which the server is running. If you want the server to keep running in a seperate thread even when you log out, use this:

nohup markserv -p 8642 -a 0.0.0.0 &

This will make the server instance persistent and will be available to access even when you log out or even when your ssh session closes (in case you are accessing a remote machine through ssh to set up markserv server)

💘 Credits

  • Logos used in the directory list: PKief - vscode-material-icon-theme

Contributors

Thanks goes to these wonderful people (emoji key):

Alistair MacDonald
Alistair MacDonald

💻
陳瀛洲
陳瀛洲

💻
Kefei Lu
Kefei Lu

💻
Zhenfei You
Zhenfei You

💻
Andrew
Andrew

💻
Daniel Perez
Daniel Perez

💻
Sushruth Shastry
Sushruth Shastry

💻
Patryk Rzucidło
Patryk Rzucidło

💻
EstebanMarin
EstebanMarin

💻
Matthew Reishus
Matthew Reishus

📖
Daniel Wennberg
Daniel Wennberg

💻
Pete Hodgson
Pete Hodgson

💻
Deleted user
Deleted user

📖
Liam Dawson
Liam Dawson

💻
Ilia Choly
Ilia Choly

💻
Richard Carrion
Richard Carrion

💻
Alyson Felipe
Alyson Felipe

🐛
Mel
Mel

🐛
Gagan Bansal
Gagan Bansal

🐛
rauaap
rauaap

💻
Santiago
Santiago

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

About

🏁 serve markdown as html (GitHub style), index directories, live-reload as you edit

f1lt3r.io

Topics

clidirectoryfiles-servedgfmgithubhighlightinghtmlincludeindexeslive-reloadlivereloadmarkdownmarkdown-itmarkservmarkserv-climdrealtimeserversyntaxtemplating

Resources

Readme
MIT license
Activity
Custom properties

Stars

637 stars

Watchers

9 watching

Forks

95 forks
Report repository

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.