Giter VIP home page Giter VIP logo

openkb's Introduction

openKB

logo

Build Status

openKB is a Markdown Knowledge base application (FAQ) built with Nodejs and ExpressJS. The application uses an embedded database (nedb) by default but can also use a MongoDB server by changing the config (see below). The application is designed to be easy to use and install and based around search rather than nested categories. Simply search for what you want and select from the results.

Demo: https://openkb.markmoffat.com

Installation

  1. Clone Repository: git clone https://github.com/mrvautin/openKB.git && cd openKB
  2. Install dependencies: npm install
  3. Start application: npm start
  4. Go to http://127.0.0.1:4444 in your browser

Running the application in Production using minified code can be done by:

  1. Create the minified/ugly files: npm run uglify
  2. Ensure the minified/ugly files are being used: NODE_ENV=production node app.js

Note: openKB supports Nodejs version 4.0 and above.

Deploy on Heroku

Deploy

Features

  • Search: openKB is a search based Knowledge base (FAQ) backed by Lunr.js indexing to create the best possible results on searches.
  • Backend: openKB uses the pure Javascript nedb embedded database by default or a MongoDB server.
  • Design/Themes: openKB is meant to be simple flat design. Themes can be added by creating a theme folder within public/themes/. See the example theme for more information.
  • Responsive: openKB is built using Bootstrap allowing it to be responsive and work on all devices. The admin can be a little difficult editing Markdown on smaller screens.
  • Mermaid: openKB allows for Mermaid charts in articles.
  • Editor: openKB uses Markdown-it which is based off the CommonMark spec. This allows for the very best Markdown experience.
  • Image management: openKB allows for drag and drop of images into articles. The image is automatically uploaded to the server in the background. Google Chrome users can also paste images directly from the clipboard.

Screenshots

Homepage

Homepage

Admin editor

Editor

Article view

Article view

Admin article management

Article filtering

Managing files

Files

Admin

Visit: http://127.0.0.1:4444/login

A new user form will be shown where a user can be created.

Config

Most of the configuration can be done on the /settings page but there are some addition values which require setting manually in the /config/config.json file.

Setting Description
route_name Sets the value in the URL for viewing an article (defaults to kb)
num_top_results Sets the number of results shown on the home page
date_format Sets the global date formatting. Uses moment.js date formatting, see more here: http://momentjs.com/docs/#/displaying
show_view_count Shows the view count next to the results on the homepage and search
update_view_count_logged_in Updates the view count if the user is logged in, as well as for anonymous users
show_published_date Shows the published date next to the results on the homepage and search
sort_by The order to sort articles
website_title The title of your website
show_featured_articles Whether to show any articles set to featured in a sidebar
show_featured_in_article Whether to show any articles set to featured in a sidebar when viewing an article
featured_articles_count The number of featured articles shown
theme The theme to use for public facing pages. Leave blank for default.
locale The language to use for public facing pages. Leave blank for default (English).
password_protect Setting to "true" will require a user to login before viewing ANY pages
show_kb_meta Whether to show article meta data including published date, last updated date, author etc
suggest_allowed If enabled non authenticated users can submit article suggestions for approval
show_author_email Controls whether the authors email address is displayed in the meta. Requires "Show article meta data" to be true.
mermaid Whether to allow Mermaid charts within articles
mermaid_auto_update Whether to auto update Mermaid charts in the preview window as you edit (default is true)
mermaid_options Additional options for Mermaid charts see here (Default options - link)
mathjax Whether to allow MathJax inputs within articles
app_context Allows for the website to be run from a non root path. Eg: http://127.0.0.1:4444/openkb/
links_blank_page Controls whether links within articles open a new page (tab)
add_header_anchors Whether to add HTML anchors to all heading tags for linking within articles or direct linking from other articles
typeahead_search Add live typeahead search results on the search inputs
index_article_body Whether to add the body of your articles to the search index (requires restart)
show_website_logo Controls whether to show the website_title text or a logo located: /public/logo.png (by default).
website_description A short website description when listing the homepage URL in search engines
database The database type to use. See Database setup
google_analytics Adds Google Analytics to public facing pages. Include the entire code from Google including the <script> tags.
style Add any Hex color codes, HTML color names and fonts to style the public pages of your KB.
allow_query_param Allow main page query params to be passed without going to the login page.

Data sorting You can control the sort order or articles. You can sort on anything but popular fields are kb_viewcount, kb_published_date, kb_last_updated or kb_votes

Setting the sort_by field in the config.json like so:

{field: 'kb_viewcount', order: -1};

Valid order values are: -1 or 1

1 = ascending order

-1 = decending order

Database setup

By default, openKB uses an embedded Javascript database called nedb for easy installation. This works really well for small to medium sized applications but has it's limitations if you wanted to scale your application to handle many articles and concurrent users. For this reason, openKB also supports using a MongoDB server by simply changing the config file.

Here is the config.json for the embedded database (NeDB):

"database": {
    "type": "embedded"
}

Here is an example config.json for a MongoDB server. You can use your own localhost MongoDB instance or you may choose a hosted MongoDB server like mLab or Atlas.

"database": {
    "type": "mongodb",
    "connection_string": "mongodb://127.0.0.1:27017/openkb"
}

Alternately, for security reasons, you can use the Node environment variable (below) to store your MongoDB connection string.

MONGODB_CONNECTION_STRING

Public API

An optional public API can be enabled through /settings to allow inserting of documents by HTTP POST using services like IFTTT etc.

Note:The API is disabled by default

Once turned on, the API is hosted on route: example.com/api/newArticle via POST of a Object. The JSON schema is:

    'type': 'object',
    'properties': {
        'api_auth_token': {'type': 'string'},
        'kb_title': {'type': 'string'},
        'kb_body': {'type': 'string'},
        'kb_permalink': {'type': 'string'},
        'kb_published': {'type': 'boolean'},
        'kb_keywords': {'type': 'string'},
        'kb_author_email': {'type': 'string'},
        'kb_password': {'type': 'string'},
        'kb_featured': {'type': 'boolean'},
        'kb_seo_title': {'type': 'string'},
        'kb_seo_description': {'type': 'string'}
    },
    'required': ['api_auth_token', 'kb_title', 'kb_body', 'kb_author_email', 'kb_published']

Note: An API access token is required to be able to use the API. If the API is turned on without a token, all requests will reject. Please use a hard to guess token

The return Object from the API will be as follows:

{
  "result": false,
  "errors": [
    "Any error messages"
  ]
}

The errors value will have any validation or error message which have occurred. The result is an approval boolean. Eg: true was successful and false wasn't.

Migrating from NeDB to MongoDB (experimental)

You can upgrade from NeDB to Mongodb by running the following command:

Note: You will first need to setup a valid MongoDB connection as per the "Database setup" instructions.

npm run-script dbUpgrade

please raise a Github issue if errors are encountered

Typeahead search

The typeahead search is great! Your user types in the word or phrase and the results pop up under the search box. But... One of the things to consider is that there is a little more data being transmitted from server to browser to enable this functionality. This is not normally a big issue for most browsers as the data is cached but you may run into issues if the number of articles in your app is quite large.

As a general rule there is about 3KB of compressed data being transferred from server to browser for 20 articles with long titles and keywords. If you have hundreds of articles, the amount of data will increase and could cause performance issues. It is something to consider if your app seems to slow down once the article numbers increase. If this is the case, you can simply just turn it off.

Contributing

Have design skills? Want to design theme(s) for openKB? Please design and submit PR.

openKB examples

Have openKB running on a public facing server? Submit a PR with your URL and it will be updated here.

Running in production

Using PM2 seems to be the easiest and best option for running production websites. See the PM2 for more information or a short guide here: https://mrvautin.com/Running-Nodejs-applications-in-production-forever-vs-supervisord-vs-pm2.

openkb's People

Contributors

aboubeta avatar ahmadyazdanii avatar alihalabyah avatar alvaro-octal avatar bangbang93 avatar beanmoss avatar dependabot[bot] avatar gallarotti avatar gloriousducks avatar goldyfruit avatar gsw945 avatar jdcain avatar kevinhwq avatar mrvautin avatar p-j avatar peterbrinck avatar philhack avatar plehanov avatar saaitt avatar salahaddin avatar savikko avatar scaniatv avatar snyk-bot avatar steve-mcl avatar talaviss avatar unixben avatar victorsuhl avatar vikaskedia avatar xiddic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openkb's Issues

Adding keywords buggy in Chrome

Adding keywords is a little buggy on a few points...

  • typing long words causes it to hide after a few characters

keywords
keywords2

  • using backspace when in the keywords area doesn't delete keywords

MD file export

Not that I would change but it would be good if you could batch export all the articles into markdown files and maybe individually as well.

Bug: Unordered sub-lists

I cant get unordered sub-lists don't seem to work. Any ideas?

* First ordered list item
* Another item
⋅⋅* Unordered sub-list. 
  • First ordered list item
  • Another item
    ⋅⋅* Unordered sub-list.

Meta information in admin

See when an article was created, the user and maybe when it was updated in the admin interface.
This is especially helpful when more than one person is authoring articles.

Encrypted details / access

Sometimes I have to store sensitive or connection information in articles. How would be best to handle this?
Password lock articles so you can only open them with a code?
Is the data within the KB file encrypted in any way?

I don't think a full blown user permissions structure would be the way forward as it would ruin the simplicity of openKB, but some way of locking certain articles may be handy.

Feature: Video embed

Sometimes we have the need to store help / guide videos in articles, especially on complex processes.

Maybe look at integrating some sort of video embedding from internal. We would not host any of these videos publicly (Youtube etc) but could store them as MP4 in the uploads folder.

Article text spacing

Creating blank lines seems a little difficult. I have tried the markdown method of 2 blank spaces followed by a return but it is lost or ignored in OpenKB.

The ability to use blank lines would make formatting text and images a little clearer...

screenshot_090315_025932_pm

Without blank lines everything just seems crammed together.
Blank lines are recognised in Github?

Uable to set permalink

Setting a permalink seems to do nothing.
Validate and Generate also show no activity server side?

Creating new article bug

  • Create new article
  • Set Title
  • Set Status to published
  • Fill out content
  • assign tags
  • Save / create the article

Article is created but....

  • status is reverted back to draft
  • tags are removed

Re adding the tags and setting the status to publish at this point now works.

Bug: crash on save

TypeError: Cannot read property 'type' of undefined
    at getClassyFromInlineToken (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:114:30)
    at Array.parseBlock (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:166:16)
    at Core.process (/home/webuser/adminkb/node_modules/markdown-it/lib/parser_core.js:51:13)
    at MarkdownIt.parse (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:493:13)
    at MarkdownIt.render (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:513:36)
    at /home/webuser/adminkb/routes/index.js:87:28
    at newArguments.(anonymous function) (/home/webuser/adminkb/node_modules/nedb/lib/executor.js:29:17)
    at /home/webuser/adminkb/node_modules/nedb/lib/datastore.js:642:18
    at /home/webuser/adminkb/node_modules/nedb/lib/persistence.js:201:12
    at FSReqWrap.oncomplete (fs.js:82:15)
TypeError: Cannot read property 'type' of undefined
    at getClassyFromInlineToken (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:114:30)
    at Array.parseBlock (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:166:16)
    at Core.process (/home/webuser/adminkb/node_modules/markdown-it/lib/parser_core.js:51:13)
    at MarkdownIt.parse (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:493:13)
    at MarkdownIt.render (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:513:36)
    at /home/webuser/adminkb/routes/index.js:87:28
    at newArguments.(anonymous function) (/home/webuser/adminkb/node_modules/nedb/lib/executor.js:29:17)
    at /home/webuser/adminkb/node_modules/nedb/lib/datastore.js:642:18
    at /home/webuser/adminkb/node_modules/nedb/lib/persistence.js:201:12
    at FSReqWrap.oncomplete (fs.js:82:15)
TypeError: Cannot read property 'type' of undefined
    at getClassyFromInlineToken (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:114:30)
    at Array.parseBlock (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:166:16)
    at Core.process (/home/webuser/adminkb/node_modules/markdown-it/lib/parser_core.js:51:13)
    at MarkdownIt.parse (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:493:13)
    at MarkdownIt.render (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:513:36)
    at /home/webuser/adminkb/routes/index.js:87:28
    at newArguments.(anonymous function) (/home/webuser/adminkb/node_modules/nedb/lib/executor.js:29:17)
    at /home/webuser/adminkb/node_modules/nedb/lib/datastore.js:642:18
    at Persistence.persistNewState (/home/webuser/adminkb/node_modules/nedb/lib/persistence.js:198:40)
    at /home/webuser/adminkb/node_modules/nedb/lib/datastore.js:639:24
TypeError: Cannot read property 'type' of undefined
    at getClassyFromInlineToken (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:114:30)
    at Array.parseBlock (/home/webuser/adminkb/node_modules/markdown-it-classy/index.js:166:16)
    at Core.process (/home/webuser/adminkb/node_modules/markdown-it/lib/parser_core.js:51:13)
    at MarkdownIt.parse (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:493:13)
    at MarkdownIt.render (/home/webuser/adminkb/node_modules/markdown-it/lib/index.js:513:36)
    at /home/webuser/adminkb/routes/index.js:87:28
    at newArguments.(anonymous function) (/home/webuser/adminkb/node_modules/nedb/lib/executor.js:29:17)
    at /home/webuser/adminkb/node_modules/nedb/lib/datastore.js:642:18
    at /home/webuser/adminkb/node_modules/nedb/lib/persistence.js:201:12
    at FSReqWrap.oncomplete (fs.js:82:15)

Code change protected_kb.hbs

<h2 class="form-signin-heading" div align="center">This article is locked</h2>
<h3 div align="center">Please enter the password to gain access</h3>

Bug: Session timeout

A logged in users session times out too fast.
Suggest adding a time-out setting in the config, or option to remove the time-out all together.

The most frustrating thing is generating an article and then pressing Insert and it popping to the login screen having lost all what was created.

Status toggle bug

Latest commit is showing the on/off toggle (which is nice) as a tick box?

This is the same in the Article list and within an Article itself beside the title.

Search 404 within article

If I try to use the "Search" bar whilst within an article returns a 404 Not Found error.
Searching using the same term on the front page works fine.

Not Found
404
Error: Not Found
    at c:\xampp\htdocs\openkb\app.js:113:15
    at Layer.handle [as handle_request] (c:\xampp\htdocs\openkb\node_modules\express\lib\router\layer.js:82:5)
    at trim_prefix (c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:270:13)
    at c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:237:9
    at Function.proto.process_params (c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:312:12)
    at c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:228:12
    at Function.match_layer (c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:295:3)
    at next (c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:189:10)
    at c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:560:15
    at next (c:\xampp\htdocs\openkb\node_modules\express\lib\router\index.js:186:14)

Improved search

I really really like openKB and I think it is the best Markdown knowledge base available at the moment but one feature that lets it down is the search. It just doesn't seem good enough, especially when lots of articles are in the Knowledge base.

For example....

I have an article called DECT 400 Status Icons which also has the tags dect 400 symbol icon status
If I search for DECT Icons nothing is returned.

Raneto (another markdown KB) has a brilliant search but I think it works off an articles description. Could the search in openKB work the same as Raneto?

404 Bad Gateway

Seeing the following errors server side fot the latest build...

GET /error/HTTP_BAD_GATEWAY.html.var 404

Still trying to pinpoint when this happens. Does the system rely on any externally hosted content / cdn?

Bug: Lock Icon

Lock icon issued in commit e376d5919ff9b2c4020cb85211408c45242db028 not working in the latest release.

e376d59

Tested on both Chrome and IE

Unavailable article

When an article is unpublished or its status set to off the user is still able to see it if they have a URL to the article.

Maybe some sort of unavailable page letting them know the article is down for maintenance?

Author title change / options

Sometimes shwoing the authors email address isnt the best practivce in a corporate envionment. Suggest changing / giving the option to show the authors name and not the email address.

Name currently not stored in the users account so this would also have to be added.

Permission Error

It seems the app wants to access a directory outside the working directory. I just cloned the repo, ran npm install and wanted to start it via npm start. If you need further information let me know.

/var/openKB/node_modules/mkdirp/index.js:90
                    throw err0;
                    ^

Error: EACCES: permission denied, mkdir '/public'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:799:18)
    at sync (/var/openKB/node_modules/mkdirp/index.js:71:13)
    at Function.sync (/var/openKB/node_modules/mkdirp/index.js:77:24)
    at new DiskStorage (/var/openKB/node_modules/multer/storage/disk.js:21:12)
    at module.exports (/var/openKB/node_modules/multer/storage/disk.js:65:10)
    at new Multer (/var/openKB/node_modules/multer/index.js:15:20)
    at multer (/var/openKB/node_modules/multer/index.js:75:12)
    at Object.<anonymous> (/var/openKB/routes/index.js:608:14)
    at Module._compile (module.js:435:26)

Updating openKB?

Can openKB just have files overwritten and then server started again?

Crashing on opening "Files" section

Clicking files option in menu causes server to crash...

screenshot_090315_115508_am

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'restart' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prerestart',
4 verbose run-script   'prestop',
4 verbose run-script   'stop',
4 verbose run-script   'poststop',
4 verbose run-script   'restart',
4 verbose run-script   'prestart',
4 verbose run-script   'start',
4 verbose run-script   'poststart',
4 verbose run-script   'postrestart' ]
5 info prerestart [email protected]
6 info prestop [email protected]
7 info stop [email protected]
8 info poststop [email protected]
9 info restart [email protected]
10 info prestart [email protected]
11 info start [email protected]
12 verbose unsafe-perm in lifecycle true
13 info [email protected] Failed to exec start script
14 verbose stack Error: [email protected] start: `node app.js`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:213:16)
14 verbose stack     at EventEmitter.emit (events.js:110:17)
14 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
14 verbose stack     at ChildProcess.emit (events.js:110:17)
14 verbose stack     at maybeClose (child_process.js:1015:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
15 verbose pkgid [email protected]
16 verbose cwd c:\xampp\htdocs\openkb
17 error Windows_NT 6.3.9600
18 error argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "restart"
19 error node v0.12.7
20 error npm  v2.11.3
21 error code ELIFECYCLE
22 error [email protected] start: `node app.js`
22 error Exit status 1
23 error Failed at the [email protected] start script 'node app.js'.
23 error This is most likely a problem with the openkb package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     node app.js
23 error You can get their info via:
23 error     npm owner ls openkb
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

Share article via email link

Suggestion.... add an email share link to each article.
Email title should be the KB article name and body should be the article URL.

Bug: Glyphicons 404

Seeing this in the server log when accessing the user edit page...

GET /fonts/glyphicons-halflings-regular.woff2 404

KB Article URL

KB articles URL's are usually quite complex / random e.g. http://openkb.com/kb/hM4CWiUADw0ovIXB

Is there any way of making this more numerical so that it is easy for searching and giving out to people. For example ask a person to search for KB article 45678 and it shows the correct article. The URL for said article would be http://openkb.com/kb/45678

I hope that makes sense?

Upload directory bug

The upload directory drop down does not recognise existing folders within /public/images/

404 server side

Showing 404 for the following URLs server side....

GET /stylesheets/bootstrap-tokenfield.css 404
GET /javascripts/markdown-it-classy.js 404
GET /javascripts/openKB.js 404

Image ok in preview but not live

Image showing perfectly when creating an article within the preview window...
Article edit and preview

But when the article is published the image is not valid...
live article error

The image URL is the same if I inspect the page and manually browsing to the image works ok.

Markdown rendering bug

Markdown with the new version is showing bullet and numbered lists correctly.
They look fine in preview but when live they are incorrect....

In preview and edit
screenshot_090815_023400_pm


When live
screenshot_090815_023549_pm

Bullet points seem to have been converted to a numbered list!?

Article suggestion

Simple way for users to suggest additions to articles or completely new ones.
I guess a form with requester name and idea firing off as an email would keep it easy.

Adding keywords bug

Some articles wont allow keywords to be entered.

Running a clean copy of the latest version. Browser = chrome (latest build)

Feature: Drag to upload

Maybe integrate the drag to upload feature? The same way GitHub works when adding images.

This would make creating articles very fast.

Drag image onto article composing section.... image auto uploads and correct markdown is written automatically.

What do you think?

Images uploaded in this way would need a unique number / code assigning to them, maybe also in a sub-folder within 'uploads'

Bug: Show author email: false

Setting....

// Controls whether the authors email address is displayed in the meta. Needs    config.settings.show_kb_meta" set to true

config.settings.show_author_email = false;

Authors email address is still shown. Users name is not shown regardless of the option configured.

Bug: Mermaid diagrams

Using the following markdown should render a simple A > B chart but nothing renders...

graph LR
    id1

Have tried other mermaid markdown but nothing renders.

Author details missing

Author blank at the bottom of aticles.
Suggest maybe using First and Last name of user account (would require new fields).

screenshot_092215_082321_am

Cannot setup with long TLD

It seems not possible to setup openKB with TLD's that are longer than 4 chars.

See following example:

codes


code

Question: Current URL

For the article information section where is the Current URL defined?

My instance always shows http://localhost but we have another DNS address assigned to it. Can this be set anywhere in the config?

Initial setup

Hi,
I have openKB installed and running ok. If I click on login and enter the first time email address and password the form appears to submit but just reappears if you click login again.

Any ideas?

New markdown

The new markdown being used seems to have lost a lot of nice features...

  • Bullet lists seem to render incorrectly
  • tables seem basic now and don't have hover over row highlighting

I'm not sure what else has changed, but from what I can see it doesnt seem as clean or asthetically pleasing compared to the last release.

Not sure if this was caused by the last release or the change of MD?

Feature: Image folder variable

Add a variable for image URLs to save time when adding images....

![VPN Connection Windows 7](/images/windows/vpnconnection.png)

instead of

![VPN Connection Windows 7](http://example.com/images/windows/vpnconnection.png)

Similar to Raneto....

%image_url%: The base URL of your images folder (public/images)

Bug: Missing article info since last update

Adding the share icon appears to have removed the following info in the "article details" section

  • author name
  • author email
  • Permalink

image

config.settings.show_kb_meta = true;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.