Плоский файл CMS с выводом JSON

1

Я пытаюсь создать простой сайт с управлением файлами с плоским файлом и Vue.js front-end. Я надеюсь аппроксимировать следующую файловую структуру:

app
- various vue files and folders
- data.json
- posts
- - post1.md
- - post2.md

Будет какой-то процесс сборки, который берет каждый файл уценки в app/posts, обрабатывает уценку и сохраняет все в app/data.json. Затем интерфейс vue.js может просто импортировать data.json и использовать его для гидратации различных компонентов по мере необходимости.

Проблема, с которой я сталкиваюсь в поиске решения, заключается в том, что там есть много плоских CMS, но очень немногие из них, похоже, позволяют вам получить между обработкой плоских файлов и визуализацией шаблонов. Большинство плоских файлов CMS, с которыми я столкнулся, предназначены для создания структуры каталогов статических сайтов html-документов. Поскольку я намереваюсь использовать интерфейсный фреймворк с маршрутизацией (я использую Vue, но это может быть React, Choo и т.д.), Мне нужен CMS с плоским файлом, который легко сбрасывает обрабатываемые им данные из структуры папок в один JSON файл, который может быть адаптирован для использования в качестве модели данных для Vue.

Я много раз искал это и много раз. Тот факт, что так мало результатов возвращаются, несмотря на вездесущность интерфейсных js-фреймворков, заставляет меня задаться вопросом, есть ли какая-то очевидная причина, почему вы не строили сайт таким образом, или какой-то ключевой термин, который мне не хватает.

Итак, мои вопросы:

  1. Есть ли CMS с плоским файлом, который позволяет легко собирать данные, которые он извлекает, без создания полного статического сайта?

  2. Если нет, то почему? Неужели обработка папки, полной файлов разметки, достаточно проста, чтобы ее можно было выполнить только с помощью специального сценария npm? Является ли очевидная причина того, что создание мини-базы js-framework-friendly с плоской файловой системы является немой идеей?

  • 0
    Я действительно хочу реальные предварительно отрендеренные HTML-страницы. В качестве очевидных преимуществ приходят более быстрое время отображения начальной страницы, упрощенная SEO и поддержка клиентов без JS. Но если вас это не волнует, почему бы просто не использовать что-то вроде github.com/miaolz123/vue-markdown и визуализировать свою клиентскую версию уценки тоже?
  • 0
    Спасибо за ответ! Мы используем интерфейсную среду для оптимизации множества манипуляций с DOM, которые требуются проекту. Если мы используем vue-markdown для рендеринга уценки на клиенте, нам все равно нужно сгенерировать базу данных (в идеале просто файл json) со списком всех файлов уценки в проекте, их необработанного содержимого и их frontmatter. Я думаю, что это действительно суть того, что я пытаюсь выяснить. Не могли бы вы сказать, что, как только уценка будет на внешнем интерфейсе, проблема создания файла базы данных станет достаточно тривиальной, чтобы просто запустить мой собственный генератор в виде сценария npm или чего-то еще?
Показать ещё 2 комментария
Теги:
vue.js
flat-file

1 ответ

0

Если вы все еще нуждаетесь в решении: возможно, это будет один из наших PHP и jQuery на основе плоского файла CMS. Он выводит все в database.js в формате JSON. Структура database.js выглядит следующим образом:

{
    "config": {
        "siteTitle": "Website title",
        "theme": "default",
        "defaultPage": "home",
        "login": "loginURL",
        "password": "$2y$10$3Et0aY82zCjSZJDAkBep7uXrQHQa3PtLt0okgqF2oen\/IIriiL65O",
        "menuItems": {
            "0": {
                "name": "Home",
                "slug": "home",
                "visibility": "show"
            },
            "1": {
                "name": "Example",
                "slug": "example",
                "visibility": "show"
            }
        }
    },
    "pages": {
        "home": {
            "title": "Home",
            "keywords": "Keywords, for, this, page",
            "description": "A short description.",
            "content": "<h1>Home content.<\/h1>"
        },
        "example": {
            "title": "Example",
            "keywords": "Keywords, for, this, page",
            "description": "A short description is also good.",
            "content": "An example page."
        }
    }
}

CMS потребуется какая-то специальная работа, чтобы вы могли вытащить данные из базы данных. (Поскольку только зарегистрированный пользователь может читать/записывать в database.js). Это позволит вам вывести данные базы данных с помощью Vue и работать с отображением содержимого. Ссылка проекта: https://github.com/robiso/wondercms

Ещё вопросы

Сообщество Overcoder
Наверх
Меню