GithubHelp home page GithubHelp logo

codex-team / codex.docs Goto Github PK

View Code? Open in Web Editor NEW
581.0 25.0 59.0 6.27 MB

Free Docs app powered by Editor.js ecosystem

Home Page: https://docs.codex.so

License: Apache License 2.0

JavaScript 22.06% CSS 13.68% Twig 7.08% TypeScript 57.18%
docs editorjs notes

codex.docs's Introduction

CodeX Docs

CodeX Docs is a free docs application. It's based on Editor.js ecosystem which gives all modern opportunities for working with content.

You can use it for product documentation, for internal team docs, for personal notes or any other need.

page-overview-bright

It's super easy to install and use.

Features

  • 🤩 Editor.js ecosystem powered
  • 📂 Docs nesting — create any structure you need
  • 📱 Nice look on Desktop and Mobile
  • 🔥 Beautiful page URLs. Human-readable and SEO-friendly.
  • 🦅 Hawk is hunting. Errors tracking integrated
  • 💌 Misprints reports to the Telegram / Slack
  • 📈 Yandex Metrica integrated
  • 🚢 Deploy easily — no DB and other deps required
  • 🤙 Simple configuration
  • ⚙️ Tune UI as you need. Collapse sections, hide the Sidebar

Demo

Here is our Demo Application where you can try CodeX Docs in action.

Guides

  1. Getting Started
  2. Configuration
  3. Kubernetes deployment
  4. Authentication
  5. Writing
  6. How to enable analytics
  7. Contribution guide

Getting Started

1. Clone the repo.

git clone https://github.com/codex-team/codex.docs

2. Fill the config

Read about available configuration options.

3. Run the application

Using Yarn

yarn && yarn start

Using Docker

docker-compose build
docker-compose up

Using Kubernetes

We have the ready-to-use Helm chart to deploy project in Kubernetes

Development

See documentation for developers in DEVELOPMENT.md.

About CodeX

CodeX is a team of digital specialists around the world interested in building high-quality open source products on a global market. We are open for young people who want to constantly improve their skills and grow professionally with experiments in cutting-edge technologies.

🌐 Join 👋 Twitter Instagram
codex.so codex.so/join @codex_team @codex_team

codex.docs's People

Contributors

alsolovyev avatar cabad11 avatar dependabot[bot] avatar dorofeevmark avatar explosion-scratch avatar ezzer17 avatar gohabereg avatar hytekcoop avatar khaydarov avatar n0str avatar nespecc avatar nikmel2803 avatar notimmates avatar nvc8996 avatar polinashneider avatar robonetphy avatar slaveeks avatar talyguryn avatar tatianafomina avatar y-k-y 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

codex.docs's Issues

Show list of subpages if page has no content

If page was created to be a section (as folder) and it has no content may be it would be great if I will be able to see list of subpages.

Or every page can contain subpages list at the end. As codex.media platform: example.

Config files refactoring

At now we have two separate configuration files. I think that we can unite this two files in one common config file.

We need to discuss format of this file and its features (plugins, for example)

Improve form for pages editing

At now we have bad UI for creating and positioning new pages

image

What to do

  • Improve dropdown for parent article choosing
  • Improve UI of other fields (order, alias etc)

Переделать CreateMenu

Нужно переделать рекурсивный метод, который получает порядок подстраниц.
Новый алгоритм:
получаем все страницы и порядок для подстраниц. Обходим по очереди страницы и дочерние страницы сортируем по порядку или просто по тому порядку в котором они есть

Add authentication

  • Add /auth page with field for password
  • Check password on backend from file (eg. .db/password.db or from .env file)
  • If password is correct, set cookie with JWT
  • On each page if there is JWT in cookies allow user to create or edit articles
  • Do not show New and Edit button if user isn`t authenticated

When clicking on the Add page button, remember the current page

It is necessary to set the current page as a parent in the parent page selection field

image

Steps to reproduce: - run docs instance - auth via /auth - go to some existing page - click "Add new page" - You will see that new page will be created in the "Root", but it would be much more convenient if there was a page that the user was on before

ui: update layout

Update the layout of the application:

  1. The new dimensions of the Header, Sidebar, Body, Right Column
  2. The new element: Right Column
  3. The Sidebar and the Header have been fixed.
  4. The Sidebar and the Right Column have internal scroll
  5. The Sidebar has the fixed width
  6. The Right Column has a responsive width depending on the screen size. It should be placed at a maximum of 160px right from the content zone.

image

Mockup with main parts of layout: https://www.figma.com/file/P3X5qbxV5DZ0cM2arsmkrP/docs?node-id=158%3A211

Mockup with actual paddings, elements and so on: https://www.figma.com/file/P3X5qbxV5DZ0cM2arsmkrP/docs?node-id=63%3A47

History: добавить сохранение всех версий страниц при изменениях

image

При сохранении страницы нужно не перезаписывать прошлую информацию, а создавать новую сущность. Необходимо добавить поле dtModify и записывать туда таймстемп момента сохранения.

Получение самой свежей версии страницы решается поиском по id и сортировкой по dtModify.

Старые версии страницы должны быть доступны по ссылкам с GET параметром version.

/page/5flYp0h8HKWMeINY?version=1548255132476

Необходимо иметь возможность открыть для редактирования любую версию и сохранить её, сделав актуальной.

image

Discussion: frontend refactoring

Disadvantages of the current frontend implementation:

  • JS code base is hard to maintain for big project (which docs can be in the future). It is better to refactor to TS
  • Twig templates: deprecated and hard to support
  • hard to serve twig templates and static assets (svg images, for example)

we should think about how we can fix these problems and maybe move to a more modern stack

Про .codexdocsrc

Надо добавить информацию о .codexdocsrc в readme.md

Choose license type

Right now we do not have a license selected for the product and we need to select it

ui: update copy-link behaviour

Currently, there are some problems with copy-link behavior:

image

Problems:

  1. Hovering the Heading blocks shows the "copy" icon, but it is actually not a button (no click handler).
  2. When you try to hover over the "copy" icon, it will disappear.
  3. Nothing happened by clicking on the "copy" icon
  4. Actually, there is no copying, just replacing the URL with hash.
  5. No "success" signal

The new version should

image

  1. Work like a button
  2. Appear by hovering a header block, disappear with delay
  3. Actually put the URL to the Buffer
  4. Play the success-animation

image

  1. The Header itself shouldn't have a click handler.

🌅 Mockup: https://www.figma.com/file/P3X5qbxV5DZ0cM2arsmkrP/docs?node-id=155%3A194

Add beautiful urls

Current page URLs looks like

https://editorjs.io/page/rPT11QRMYLW8gXSi
https://editorjs.io/page/wxiTGkGxG9pxHj2w

We need to get something like this:

https://editorjs.io/base-concepts
https://editorjs.io/usage

So we need to create alias system:

  1. Add uri field to the Page
  2. Add aliases table that will be store binary hash of alias and entity type and id
  3. On page creation, fill uri by transliterated title
  4. Add ability to change uri manually
  5. Add alias route below our core-routes list. Route will look at aliases page and find entity.
  6. Support old (changed) aliases by deprecated property at aliases table. They should redirect to new alias until new entity wants to get this alias.

Pass docs password from environment variable

For security and convenience reasons it is better to pass docs password for /auth route via environment variable, rather than storing it in database and generating via script.
This feature also will allow us to pass password via Kubernetes secret.

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.